【问题标题】:Drupal 7 working with fieldsDrupal 7 处理字段
【发布时间】:2013-07-02 23:23:28
【问题描述】:

您好,我是 Drupal 新手,我在为这个 CMS 的最佳实践而苦苦挣扎。现在我正在尝试使用 Panels 3 Module 来创建我的网站页面,其中包含我创建的自定义布局。我似乎无法理解的是来自面板以及 drupal 安装中的每个单独模板(node.tpl、字段函数、region.tpl 等)的大量过度标记。我需要创建一些非常精细的网站设计,而从 Drupal 模板和字段函数生成的 html 确实让我的工作变得不可能。我习惯了 wordpress,我可以简单地创建一个数据库查询示例(wp_query()),获取我需要的值并将它们显示在我想要的任何标记中。我在 Drupal 中缺少什么?我真的应该覆盖 7 个模板文件一直到 Drupal 中的字段级别以获得一些干净的标记吗?我在这里错过了什么?

【问题讨论】:

    标签: drupal content-management-system panel drupal-theming drupal-panels


    【解决方案1】:

    在您自己的主题template.php 中,您可以实现theme_field() 挂钩来设置每个字段的输出样式。区域、块、节点、页面也存在类似的钩子。 只需复制default code 并修改即可。

    这是我通常如何简化输出的示例,例如内容滑块:

    function yourtheme_field__field_slidertext(&$variables) {
      $output = '';
      foreach ($variables['items'] as $delta => $item) {
        $output .= '<li class="slide">' . drupal_render($item) . '</li>';
      }
      $output = '<ul class="slider">' . $output . '</ul>';
      return $output;
    }
    

    如果您想要一种更简单的方法来去除标记并为字段选择一些常见的输出选项,请查看Drupal Fences 模块。

    【讨论】:

    • 感谢您的回复,我会立即尝试此解决方案。然而,事实上我必须这样做一次,而不是单独通过节点、页面、区域等在每个单独的级别上,这对我来说似乎是完全荒谬的。我不敢相信这是现代 cms 的默认行为,更不用说那里最受欢迎的行为之一了。它创建的标记对于任何以干净的 html 为荣或有任何类型的复杂设计要创建的人来说都是可怕的。是否有任何模块、工具或预建主题已经为此提供了解决方案?再次感谢您。
    • 无论如何我都想自定义所有字段的输出。但你是完全正确的,它有点笨拙。实际上有一个模块可以帮助您在前端进行此自定义:Drupal Fences - HTH。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    相关资源
    最近更新 更多