基本的drupal模型/概念

Bob*_*ack 4 drupal content-management-system drupal-7

我正在将一个站点从专有的cms(reddot)迁移到drupal.对于它的所有缺陷,reddot有一个非常简单而灵活的模型:

  • 模板由带有可变内容占位符的标记组成
  • 每个内容,从整页到共享的侧边栏内容,甚至可以从模板构建单个图像,如果存在适当的内容

我对drupal的第一印象是:哇,这很复杂!而不是三个简单的对象,现在我正在处理节点,页面,块,区域,视图,面板等.重新创建我熟悉的模板/内容/占位符模型的最简单方法是什么?

ber*_*kes 7

Reddot使用了一个结构相当好的MVC系统.另外,从我有限的经验来看,Reddot遵循的只有一种方法来实现Foo -philosophy.

来到Drupal,尤其是作为前端开发者,你会失望,失去很多头发,当你意识到一切都必须重新完成时,可能会诅咒几次.

来到Drupal你会喜欢巨大的(不幸的是无组织的)文档及其灵活性和大量新的可能性.

当人们从适当的架构系统进入Drupal时,我建议他们做一件事:成为实用主义 - 极端主义者.不要(永远)尝试将事情做得恰到好处,干净或经过深思熟虑.一旦你真正理解Drupal,你将只能做到这一点.而这只有很多经验.只是小提琴,直到它工作,关闭代码,再也不要看它.

你需要学习的第一件事是Drupals PHPTemplate引擎,它与Reddots有很大不同,但有很多相似之处.Reddot使用RenderTags,Drupals PHPTemplate使用普通的旧PHP.

<%!! Context:CurrentPage.Template.Name !!%>  
Run Code Online (Sandbox Code Playgroud)

<?php print $name ?> 
Run Code Online (Sandbox Code Playgroud)

是的,$name完全是全球范围的.记得?我告诉过你要成为一个实用主义极端分子.甚至不要考虑命名空间,对象范围等.

想知道你有哪些变量?做一个<?php print get_defined_vars() ?>.

想在模板中添加新变量吗?你需要预处理它们.

想要更改,更改,删除或修改现有变量?您是需要预处理,还是模板覆盖甚至编写新模块,使新的或不同的变量可用?知道选择哪个,何时进行预处理,何时创建模块,何时覆盖,何时实现钩子以改变内容是经验.Drupal从来没有想过清楚,没有一般规则或最佳实践,除了Foo概念没有成功的最后十一次,也许Bar证明了最好的.