gpt4 book ai didi

drupal - 开发Drupal网站的前端-基础

转载 作者:行者123 更新时间:2023-12-01 14:37:45 27 4
gpt4 key购买 nike

最近,我得到了一个现有的Drupal项目,并被要求改进前端(HTML,JavaScript,CSS)。我在Django,PHP,Ruby等方面具有大量的前端和后端开发经验,但是我没有任何Drupal经验,并且弄清楚项目中发生的事情充其量是很麻烦的。

谁能提供一个典型Drupal网站如何组合在一起的概要(或提供一些链接),以及添加页面元素,更改CSS和添加JavaScript功能所要做的事情?什么合适的地方呢?

当然,问代码开发人员正在发生的事情真是太好了-但无处可寻。

这是我到目前为止所看到的,从大约2个小时的代码中和在线开始开始:

有很多模块,主题文件(CSS,一些图像)位于site / all / themes / theme_name / ...

HTML文件(模板)似乎随机散布在各个位置-在模块,*。tpl.php文件等中。

该主题有一个.info文件,其中包含区域的定义等。这些区域对应于模板文件中的变量-但是变量在哪里定义/编辑?

这使我不敢理the头发,任何有关如何更换前端的帮助都将非常有用!

最佳答案

从长远来看,使用Zen之类的主题框架(假设预算要花几个小时以上进行灯光更新)是一个不错的方法,特别是对于Drupal初学者而言,因为Zen的开发人员已经考虑了所有允许主题可在许多不同的网站和浏览器上正常运行。

也许我误解了Scott的建议,但我认为他的主要观点是,通过研究Zen框架,您将学习最佳实践。这也是正确的-例如,查看现有的主题和主题框架是查看template.php文件应如何结构以及如何包含JS文件的好方法。

在实现细节方面,有一些基础知识可能会帮助您入门:

地区/街区:

  • 当您在info文件中定义一个区域(例如regions[header])时,然后$header变量在您的页面模板(例如page.tpl.php)中变为可用。创建新区域时,为了在模板中访问它,您需要clear your theme cache。您可以通过打印变量来在页面模板的任何位置包括您的区域:
    <?php print $header; ?>
    添加区域后,通常使用“块”填充该区域。 The Drupal documentation about blocks is here。您可以通过单击“添加块”来手动创建新块。您还可以通过创建新的视图来生成新的动态块(请参见下文)。块在安装时也经常由模块添加。

  • JavaScript / jQuery:
  • ,您可以在template.php中使用drupal_add_js()包含JavaScript文件,也可以将它们包含在信息文件中,例如scripts[] = js/myscript.js。每当您修改info文件时,您还需要清除主题缓存。

    如果您使用的是Drupal 7,则this page概述了如何构建JS文件以及如何将它们包括在主题中。对于Drupal 6(或5),this page涵盖了这些主题。

    您可能已经知道这一点,但是jQuery库已经包含在Drupal中。 jQuery的版本通常低于当前发布的版本,但是如果需要,您可以使用jQuery Update至少更新到更高的版本。

  • 观看次数/ CCK
  • 如果主题中有任何以viewsnode- / node--开头的tpl文件,它们可能会覆盖视图/内容类型。您可能希望至少了解CCK / Views的基础知识,因为它们构成了许多tpl.php覆盖的基础。您可能没有创建新的视图或内容类型,但是如果以前的开发人员创建了这些视图或内容类型,他们可能会创建一些tpl文件来覆盖一个或两个。假设已安装视图,并且您的用户角色可以访问它,请查看各种视图以了解其工作方式。如果tpl.php文件以views开头,则它将覆盖View中的某些内容。如果它以node开头(node.tpl.php除外,它是所有Drupal节点的通用模板),则通常会覆盖内容类型(通常使用CCK模块创建)。

    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.php,并在 template.php中进行更多的模板覆盖,这是大多数主题逻辑理想的驻留位置。这可以帮助您合并(和重复使用)模板替代。如果预算/时间不太紧,请了解 template.php函数。

    关于drupal - 开发Drupal网站的前端-基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944404/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com