Her*_*aaf 2 frontend drupal drupal-theming
我最近获得了一个现有的Drupal项目,并要求改进前端(HTML,JavaScript,CSS).我在Django,PHP,Ruby等方面拥有大量的前端和后端开发经验,但我之前没有任何Drupal经验,并且弄清楚项目中发生的事情最多也证明是麻烦的.
任何人都可以给出一个典型的Drupal网站如何粘在一起的概述(或提供一些链接),以及我必须做些什么来添加页面元素,更改CSS和添加JavaScript功能?适合这个的地方是什么?
当然,向代码开发人员询问发生了什么事情会很棒 - 但他无处可寻.
这是我到目前为止看到的,从代码和在线大约2个小时的刮擦:
有大量的模块,主题文件(CSS,一些图像)位于sites/all/themes/theme_name/...
HTML文件(模板)似乎随机散布在各个地方 - 模块,*.tpl.php文件等.
该主题有一个.info文件,其中包含区域的定义等.这些区域对应于模板文件中的变量 - 但是定义/编辑的变量在哪里?
这让我把头发拉出头来,如何改变前端的任何帮助都会很棒!
从长远来看,使用像Zen这样的主题框架(假设预算超过几个小时的光更新)是一个很好的方法,特别是对于Drupal初学者,因为Zen的开发人员已经考虑了所有许多细节,允许主题适用于许多不同的网站和浏览器.
也许我误解了Scott的建议,但我认为他的主要观点是通过检查Zen框架,你将学习最佳实践.这也是事实 - 查看现有主题和主题框架是了解template.php文件应如何构建的好方法,例如,应该如何包含JS文件.
在实施细节方面,有一些基础知识可能会帮助您获得正常运行:
地区/块:
当您在info文件中定义区域时,例如regions[header],$header变量随后可在您的页面模板中使用(例如page.tpl.php).创建新区域时,要在模板中访问它,您需要清除主题缓存.您可以通过打印变量将您的区域包含在页面模板中的任何位置:
<?php print $header; ?>
添加区域后,通常使用"块"填充该区域.关于块的Drupal文档就在这里.您可以通过单击"添加块"手动创建新块.您还可以通过创建新视图来生成新的动态块(请参见下文).模块在安装时通常也会添加块.
的JavaScript/jQuery的:
您可以drupal_add_js()在template.php中包含JavaScript文件,也可以将它们包含在您的信息文件中,如下所示:scripts[] = js/myscript.js.您还需要在修改info文件时随时清除主题缓存.
如果您正在使用Drupal 7,那么此页面将为您提供有关如何构建JS文件以及如何将它们包含在主题中的精彩概述.对于Drupal 6(或5),此页面涵盖了这些主题.
你可能已经知道了,但是jQuery库已经包含在Drupal中了.jQuery的版本通常低于当前发布的版本,但如果需要,您可以使用jQuery Update至少更新到更高版本.
查看/ CCK
如果主题中有任何以/ views或开头的tpl文件,则它们可能会覆盖视图/内容类型.您可能想要至少了解CCK/Views的基础知识,因为这些构成了许多tpl.php覆盖的基础.您可能没有创建新的视图或内容类型,但如果以前的开发人员这样做,他们可能会创建一些tpl文件来覆盖其中一个或两个.假设安装了Views并且您的用户角色可以访问它,请查看各种视图以了解它们的工作方式.如果以tpl.php文件开头,则它会覆盖视图中的某些内容.如果它以(除了,它是所有Drupal节点的通用模板)开头,它通常会覆盖内容类型(通常使用CCK模块创建).node-node--viewsnodenode.tpl.php
tpl文件的一个关键方面是像CSS一样,它们具有特异性级联.因此,在Drupal 6中,如果您有page.tpl.php,这将是您网站上所有页面的模板.但是,您可以使用模板覆盖首页page-front.tpl.php.同样的node.tpl.php.如果您有一个名为Event的内容类型,则可以使用覆盖节点模板node-event.tpl.php.理解这个概念将帮助您理解tpl命名约定.
最后一点,这可能需要一段时间才能习惯,新的Drupal themers的一个常见问题是,他们看到每次想要覆盖界面中的某些东西时都可以使用模板.因此,当他们想要覆盖五个页面或内容类型时,他们会创建五个模板.这"工作",但它往往是矫枉过正,可能会产生维护问题.随着您越来越习惯使用Drupal的主题系统,您会发现创建越来越少的page--blah-blah.tpl.phps并执行更多模板覆盖template.php,这是理想情况下大多数主题逻辑所在的位置.这有助于您整合(并重复使用)模板覆盖.如果预算/时间不是太紧,请了解template.php功能.
| 归档时间: |
|
| 查看次数: |
2324 次 |
| 最近记录: |