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

时间:2009-10-16 01:03:56

标签: drupal

只是想知道你们可能需要分享的提示或技巧。与此类帖子一样,每个帖子只需一个提示,以便他们可以独立投票。

我将开始:无论你做了主题,你都可以使用the mothership theme作为主题的基本主题来继承,这样你的标记就会更清晰,更简洁。

18 个答案:

答案 0 :(得分:22)

使用drush安装/更新模块并执行维护任务。 如果你使用drupal你就不能没有它。

答案 1 :(得分:16)

在对Drupal中的任何自定义功能进行编码之前,请确保没有适合它的模块。

答案 2 :(得分:15)

  • 使用zen theme - 不仅如此 这也使得主题更容易理解 反映状态的CSS类 网站(如<body class="not-front not-logged-in page-node node-type-project-project two-sidebars">) - 真的很棒 轻松自定义您的网站。

  • 浏览Drupal Modules - 十分之九的机会你会发现什么 你在找那里 - 是吗? 安全和/或维护 - 这是一个 不同的问题;)但至少 你会有一个起点。

答案 3 :(得分:14)

在设置新网站时,我们会立即创建一个以网站/项目命名的空白自定义模块。这将成为放置所有小的修复/ kludges / tweak的中心位置,以解决所有那些不是真正功能的小变更请求,并且不需要完整的模块(最初;) - 这个模块应该是定期审查和重构以删除过时的内容或删除变成功能的内容,因此需要自己完整的模块。

主题相同 - 无论我们开始使用哪个主题,通常都会快速/立即修改,因此最好从头开始将其重命名为网站/项目。

“网站模块”补充了“网站主题”,因为它包含与业务/工作流/数据相关的调整/操作,否则最终会混淆主题template.php文件(实际上应该只包含主题特定的东西) )。

答案 4 :(得分:13)

了解views模块进出

答案 5 :(得分:10)

两条建议:

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

寻找一种方法来做你想要的,包括CCK / Views集成。这显然是Drupal的未来,因此一个独立的模块可以完成您希望它与视图/ CCK相关模块竞争的模块,可能会在不久的将来消失。

++对Geshan的建议。

答案 6 :(得分:8)

使用backup and migrate模块可以为您提供很多帮助。

答案 7 :(得分:6)

Drupal中最强大的功能是改变系统。这表现在两个方面

  • 整个主题系统
  • drupal_alter()(最常见的是像hook_form_alter一样)

这些东西如此强大的原因在于它可以让你改变drupal核心功能并改变drupal如何呈现不同的东西而不用改变drupal核心本身(或贡献的模块)。

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

答案 8 :(得分:5)

答案 9 :(得分:4)

我听说有人使用国际化功能来改变他们原本无法做到的文本。

答案 10 :(得分:4)

安装并使用devel module。花一些时间预先了解它如何帮助您调试模块,主题开发等。

答案 11 :(得分:3)

我在此演示文稿中分享了一些提示

http://www.slideshare.net/mirnazim/best-practices-for-drupal-developers-by-mir-nazim-drupal-camp-india-2008

注意:幻灯片共享中的字体是F *** ed up,它更适合下载。

答案 12 :(得分:2)

使用/ var / www作为我的web root,我创建了/ var / www / sites和symlink我的站点目录,以及/ var / www / files for robots.txt。它使得升级(在没有SCM的情况下)不那么可怕,只需用新版本覆盖/ var / www / drupal文件夹并点击update.php。

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

我自由地使用devel的dsm()函数,所以我建议使用该模块。它使得调试 - 无需调试器(即在生成移动之后)更加痛苦。

此外,管理员菜单可让您更轻松地管理您的网站;它为您提供了dhtml弹出菜单访问层次结构中的所有管理页面,因此您和大多数管理功能之间只有一次点击。

答案 13 :(得分:2)

使用exportables,通过ctools模块或内置的视图等来获取数据库之外的关键配置设置并将其置于版本控制中。这将使更新和更改从一个站点更改为另一个站点变得更加容易。

答案 14 :(得分:2)

如果您没有使用PHP5或非mysql数据库,请使用Pressflow(http://pressflow.org)而不是Drupal。 Pressflow针对mysql + php5进行了优化,并在您的网站增长时支持更好的缓存设置,例如将Varnish放在Drupal面前,供匿名用户使用。

答案 15 :(得分:1)

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

有时您可能需要检查$ id号以外的其他内容,以确定将节点放入哪个“区域”。在这种情况下,在hook_preprocess_node函数(您可以将其作为themename_preprocess_node放置在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;
  }
}

答案 16 :(得分:1)

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

答案 17 :(得分:0)

Panels3

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