代码之家  ›  专栏  ›  技术社区  ›  a20

为什么drupal主题化如此困难?有没有简化或加快学习的技巧?

  •  3
  • a20  · 技术社区  · 14 年前

    我知道基本的主题,主题与第三方物流文件,视图模板,沉思模板等,但我得到迷失每当我进入模板.php文件。

    然而,即使是 ,绝对是设计过度了!

    6 回复  |  直到 10 年前
        1
  •  10
  •   googletorp    14 年前

    • 模板文件 $content

    • 预处理函数 ,将使您能够添加或更改模板中使用的变量。将函数命名为hooks: yourtheme_page 对于页面模板 yourtheme_node

    • . 您可以覆盖主题函数来更改所使用的标记。您只需要创建一个名为 yourtheme_[theme_function_name] . 要做到这一点,您不需要了解太多php。通常,您只需复制原始的主题函数,并对其进行一些修改即可获得所需的标记。

    hook_form_alter ,它允许您修改窗体、按钮上使用的文本等。这在Drupal7中被更改,这将更容易设置主题。

    所以它其实并不那么复杂,只要使用上面描述的3个基本工具就可以了。棘手的部分可能是命名函数和模板,但是 devel themer 我可以帮你。你使用的另一个工具是 devel 它可以帮助您打印出变量,以便您可以检查它们并查看节点上的fx CCK字段。

        2
  •  6
  •   marcvangend    14 年前

    Front End Drupal .

    在我看来,Drupal主题化并不难,只要你围绕着模板、覆盖、.info文件和预处理函数等概念。这些都与php技能没有直接关系,都是关于理解系统的。

    有趣的是,你是一个主题,但你只谈论php,而不是CSS和HTML。以我的经验,很多主题任务都可以用CSS来完成,甚至不用接触php。

    base/starter theme (就像 Zen Genesis )已经有了。我建议使用一个基本主题,并实现自己的设计作为一个子主题。

        3
  •  6
  •   anschauung    14 年前

    我认为这对于有经验的PHP开发人员来说可能更困难,因为您必须克服许多在vanilla PHP中没有意义的概念(“在适当的时候神奇地调用函数。。。因为它是如何 命名

    @googletorp的答案相当全面,所以我只想补充一些实用的技巧来帮助我:

    许多

    2) 充分利用 devel 模块,尤其是“主题注册表”菜单(注意添加新的主题函数时它是如何更改的)、“渲染”选项卡和 dpm() dvm() 功能

    4) 倒空你的杯子。在主题级别,PHP实际上只是用于简单的逻辑和语法——几乎所有实质内容都由DrupalAPI函数处理。试着像Drupal开发人员而不是PHP开发人员那样思考(也就是说,不要仅仅因为你建立了一个普通的PHP站点就认为你知道如何做一些事情),这样你的工作会更轻松。

    坚持住!一旦你弄明白了,主题系统实际上很容易使用。

        4
  •  3
  •   berkes    14 年前

    回答你的问题 为什么这么难

    Drupal主题看起来可能势不可挡,因为有太多的可能性,请参阅@googletorps answer以获得一个很好的概述。 拥有“多种方法做一件事”带来了力量:有能力的用户可以选择所有可能性中最好的。但这也带来了复杂性:新用户无法获得良好的领先优势,因为没有“你应该这样做”。完全停止。”

    除了大量的方法来完成任务外,还有筑巢的问题。Drupal有一个非常深嵌套项的概念。举一个随机但简单的例子:

    username<menuitem<menuitem<menuitem<menu<block<region<page. 
    

    将呈现一个菜单项,在侧边栏块的三级深菜单项中包含用户名。 大多数模板环境都有一个页面的概念,其中包含多个“内容”,最多可能包含一些部分。巢穴最多有三层深。每一级都有一个明确的、不同的专业领域。Drupal没有这样的功能:嵌套是相当随意的。每个嵌套项与其父项没有区别。同样,这为高级用户提供了一个很好的概念和强大的功能,但是对于新的开发人员/设计师来说,这是很难找到的。

    最后,很难学习的另一个原因是,Drupal在线文档更像是一个wiki,而不是一个从头到尾的阅读手册。有很多好书填补了这个空白,不过你得买。

        5
  •  1
  •   anonymouse    14 年前

    如果你还没看过的话,这是一个关于为什么Drupal6主题化很困难以及如何在Drupal7中改进的很好的演示。有希望!在经历了更多的主题化之后,第二次看这个视频对我来说更有意义。 http://sf2010.drupal.org/conference/sessions/design-and-theming-whats-new-drupal-7

        6
  •  1
  •   Mikey P    14 年前

    其中一个最大的技巧是将主题函数正常呈现的内容覆盖到模板中。这使您可以对标记进行更多的控制,并且还允许您在将其交给模板之前使用预处理函数来操作变量。

    http://drupaldojo.com/session/fine-tuning-ui-theming-forms-drupal-60

    推荐文章