Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最喜欢的Drupal技巧或最佳实践?_Drupal - Fatal编程技术网

最喜欢的Drupal技巧或最佳实践?

最喜欢的Drupal技巧或最佳实践?,drupal,Drupal,只是想知道你们应该分享些什么技巧。像往常一样,像这样的帖子,请每个帖子只给一个小费,这样他们就可以独立投票了 我将开始:无论你如何制作主题,您可以将其用作主题继承的基础主题,这样您的标记将更清晰、更不冗长。我听说有人使用国际化功能来更改原本无法更改的文本位。了解模块的输入和输出使用该模块对您有很大帮助。该模块功能最强大Drupal,它正在改变系统。这表现在两个方面 整个主题系统 (通常被视为钩形变化) 这些功能之所以如此强大,是因为它使您能够改变drupal核心功能,并改变drupal呈现不

只是想知道你们应该分享些什么技巧。像往常一样,像这样的帖子,请每个帖子只给一个小费,这样他们就可以独立投票了


我将开始:无论你如何制作主题,您可以将其用作主题继承的基础主题,这样您的标记将更清晰、更不冗长。

我听说有人使用国际化功能来更改原本无法更改的文本位。

了解模块的输入和输出

使用该模块对您有很大帮助。

该模块功能最强大Drupal,它正在改变系统。这表现在两个方面

  • 整个主题系统
  • (通常被视为钩形变化)
这些功能之所以如此强大,是因为它使您能够改变drupal核心功能,并改变drupal呈现不同内容的方式,而无需改变drupal核心本身(或贡献的模块)


这可能是Drupal成功的主要原因之一,因为它允许开发人员定制Drupal以完全满足他们的需求,并且仍然保留Drupal和贡献模块的所有进展。

在Drupal中编写任何自定义功能之前,确保没有用于该主题的模块。

使用node.tpl.php中的$id变量使主题允许除长的垂直内容列表之外的其他内容。例如,您可以检查$id是否为1,如果是,则将节点包装在一个div中,该div将节点放在页面右上角的一个大突出显示区域中。(这在与“在列表顶部设置粘性”功能结合使用时非常有用。)然后,您可以在页面下方的某个位置设置两列,其中包含$id,介于2和8之间,以及9和15之间

有时,您可能需要检查$id号以外的内容,以确定将节点放置到哪个“区域”。在这种情况下,在hook_preprocess_节点函数中执行一些检查非常有用(您可以将其作为mename_preprocess_节点放置在template.php文件中),该函数包含一个静态变量,您可以使用该变量存储页面上已显示的节点上的检查结果。例如,我使用它在节点上方显示日期标题,前提是尚未显示该日期的节点,如下所示:

if ($vars['teaser']) {
  static  $last_date;
  $date = format_date($node->created, 'custom', 'l jS F');
  if  ( $date != $last_date ) {
    $vars['show_date'] = TRUE;
    $last_date =  $date;
  }
  else {
    $vars['show_date'] = FALSE;
  }
}
  • 使用-不仅仅是它 它还增加了一个功能,使主题制作更容易 反映用户状态的CSS类 网站(如
    )-使它真正 易于自定义您的网站

  • 浏览- 10次机会中有9次你会发现什么 你在那里找——是吗 安全和/或维护-即 不同的问题;)但至少 你会有一个起点


设置新站点时,我们会立即创建一个以站点/项目命名的空白自定义模块。这成为了一个中心位置,在这里可以放置所有弹出的小补丁/混乱/调整,以解决所有那些不是真正功能的小更改请求,并且不需要一个完整的模块(起初;)-应定期审查和重构该模块,以删除过时的内容,或删除转变为功能的内容,从而获得一个完整的模块

主题也一样-无论我们的站点开始使用什么主题,通常都会很快/立即进行修改,因此最好从一开始就将其重命名为站点/项目


“站点模块”是对“站点主题”的补充,因为它包含与业务/工作流/数据相关的调整/操作,否则会使themes template.php文件(实际上应该只包含特定于主题的内容)变得混乱。

使用/var/www for my web root,我创建/var/www/sites并将我的sites目录符号链接到它,并为robots.txt创建/var/www/files。它使升级(在没有SCM的情况下)不那么可怕,只需用新版本覆盖/var/www/drupal文件夹并点击update.php

使用本地drupal副本进行开发;与通过WAN进行本地调试相比,本地调试的难度要小得多,而且在IDE中将站点的代码作为项目使用更容易,IDE(IDE上的dep)可以为您提供代码完成和轻松访问文件的功能。完成后,您可以通过ftp/scp或使用您熟悉的任何SCM推送更改

我大量使用了devel的dsm()函数,因此我推荐使用该模块。它使不带调试器的调试(即产品移动后)的痛苦大大减轻

此外,管理菜单使管理您的网站更容易;它使您可以通过dhtml弹出菜单访问层次结构中的所有管理页面,因此您与大多数管理功能之间只需单击一次。

用于安装/更新模块和执行维护任务。 如果您使用drupal,您就不能没有它。

安装并使用。提前花些时间了解它如何帮助您调试模块、主题开发等。


学习它,使用它,掌握它。它使您的站点高度动态。

我在本演示中分享了一些技巧

注意:幻灯片中的字体已经过修饰,最好下载。

两条建议:

不要盲目地使用第一个与您想要的模块同名的模块。通常,第一个模块“捕获”该特性的名称空间,但另一个名称不太恰当的模块将更好地实现该功能

环顾四周,寻找一种实现您想要的功能的方法,包括CCK/视图集成。很明显,这是Drupal的未来,因此一个独立的模块,能够完成您希望它完成的任务,与视图/CCK相关的模块竞争,在不久的将来可能会消亡


++根据格珊的建议。

++

是开始主题开发的另一个伟大模块。使用它作为基本主题,我能够在数小时内将现有主题移植到Drupal。

通过ctools模块或bu使用exportables