社区!
我知道,这些问题不应该以意见为基础,而且我当然不会问“什么是最好的CMS ???"”。我已经尝试了很多不同的CMS,我想知道是否存在满足以下条件的CMS:
我不太喜欢使用TYPO3中的Fluid进行设计的复杂性。我不是这个领域的新手,但它让我觉得非常复杂,你必须知道TypoScript中的所有这些功能和知识在TYPO3之外没有多大用处。
另一方面,我觉得模板是完美的。您有后端布局,您可以在其中定义内容列(名称和编号),在流体布局中指定哪个内容列(此处为使用的数字)在哪里呈现。在后端内部,您将后端布局应用到根页面(它是我喜欢的继承,因为它比更改每个页面的模板更容易更改!)并且您可以将内容添加到此后端布局中定义的列中。我喜欢这个主意!
我喜欢的观点是内容可以存在于此结构之外 - 您可以创建一个内容元素并让它不被渲染,因为它没有指定布局列。此外,如果您想要更改布局,可以通过在新的后端布局中激活相同的列号来实现。可以毫无问题地更改列的名称 - 这是Concrete5的问题。
在Concrete5 中,所有内容都位于"区域内"各个页面上的(准内容列)。但是因为Concrete5只进行了内联编辑,所以你不能只改变你的区域名称(并且它们对你的编辑者来说是可见的,所以也许你想把它们改成更好的名字,即使有一些标准,比如' main'这不适合只会用他们的语言编辑内容的非英语人士)。如果你这样做,你就不能再访问这些区域内的内容,因为它与区域名称相结合(我想知道为什么没有ID系统,只有公共区域名称)。
另一点是糟糕的代码 - 我真的不喜欢某些CMS的输出,即使你能以某种方式控制它,有时会出现很多行的空白 - 真的很奇怪。 Concrete5的内联编辑功能非常酷,特别是能够使用Bootstrap并在视觉上布局你的块有三分之二到三分之一的宽度或类似的东西。但另一方面,您必须使用这些页眉和页脚包含才能使用Concrete5,因此您必须更改站点上的输出并且必须使用div-wrapper来使用内联编辑。只要它不会使最终输出混乱得太多(我认为,Concrete5在这方面相当不错),我真的没有任何反对意见。
我喜欢这方面的ModX 因为经过实验后我实际上只得到了我的html和我在最终源代码中放在页面编辑器中的东西。 ModX的问题是:没有内容元素/块,没有内容列/区域 - 你只拥有一个大的编辑器字段。我知道,你可以对它进行相当大的调整,但最终我觉得它并不是真正意味着你能够定义多个区域,你可以将不同类型的元素放入其中,是吗?喜欢" Header"," Text&媒体与#34;或者"滑块"在TYPO3 / Concrete5中,您可以隐藏(至少在TYPO3中)并自行移动。
(如果有一些好的版本控制,那也会很棒,但这只是我喜欢的TYPO3中的一件事我在Concrete5中不太喜欢,因为你可以& #39; t真正回滚对单个元素的更改,仅对整个网站 - 并且您无法隐藏部分内容(隐藏一些块,如隐藏TYPO3中的内容元素)到"保存&#34 ;例如,标题或普通文本元素的替代版本。)
长话短说,我正在寻找一个非常灵活的模板系统,让我按照自己的方式设计。它应该有个别内容元素(不同类型的元素,我也可以自己创建)和内容区域(/ columns),这样我就可以放置我可以单独设计的不同地方的内容。如果可能的话,它应该只输出我的代码(比如ModX)并且可以更改(比如重命名内容列/区域)。
回顾我在命名CMS中遇到的问题:
为了不抵消stackoverflow的目的,我想澄清一点,我并不是在寻找可能存在命名内容的每个CMS。有人可能会说"你可以在Drupal中完全做到这一点,只需安装这200个模块就可以了!#34;)但实际上是有意的(比如TYPO3 / Concrete5中的内容列和内容元素)特别是在Concrete5中,以这种方式工作感觉非常自然,你不会觉得必须破解系统好几天才能有一个良好的基础来开发你的网站。
我是否有可用的CMS(它应该是开源/免费的),它本质上支持这些开发原则。我希望你能帮助我和每个寻找支持这种工作方式的CMS的人!谢谢! :)
答案 0 :(得分:3)
来自TYPO3世界并且不了解其他系统以便真正比较:如果你有多个网格的复杂布局,你也会有一些编辑的复杂性。
我没有看到使用fluid_styled_content
的流体的真正复杂性,因为流体非常简单,存在很好的phpstorm插件,可以自动为您完成部分,视图帮助,...
答案 1 :(得分:0)
concrete5中的区域名称完全取决于您(尽管“Main”是相当标准的)。如果你不切换主题就没有问题。
您可以自由创建自己的主题/页面布局,并根据需要命名区域。
concrete5中的基本内容是Blocks not Areas。听起来你应该看看Stacks,它允许你根据需要将尽可能多的块/类型放入其中。他们 无法在任何地方显示。
有许多方法可以在没有名称的情况下以编程方式检索页面,区域,块和堆栈(包括全局),例如:
$someBlock = Block::getByID(5); // get your Block by bID #5
更不用说您可以创建自定义视图模板或覆盖要输出的核心文件(不限于HTML)。
concrete5甚至可以在命令行运行。
听起来有点时间使用Block文档会彻底改变你的想法......