问题标签 [drupal-theming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
drupal - Drupal 子主题?
我正在尝试基于 Zen 的子主题(starterkit)做一组辅助子主题。
理想情况下:
- 家长主题
- 第 1 节
- 第 2 节
- 第 2A 节
我已经安装并运行了我的父主题。对于部分子主题,我复制了父主题,并重命名了相应的文件和文件夹,并将.info中的基本主题更改为父主题的名称。然而它并没有继承某些东西,比如 template.php (部分主题没有它们,因为我认为它们应该被继承)——这意味着我没有像我的父主题那样接收正文类。
我真正需要实现的是为这些不同的部分设置特定的样式,主要是文本颜色和背景图像的变化。这是最简单的方法吗?我不想有一个巨大的样式表,所以任何指针都值得赞赏。
drupal - 如果用户登录 Drupal,如何显示注销按钮?
如果用户已登录,我需要在我的网站上显示一个注销按钮,如果用户未登录,我需要显示一个登录按钮。我该怎么做?
php - 在 Drupal 模块回调、预处理和模板之间传递数据
我创建了一个名为 finder 的模块,我想从 url 获取参数,处理它们,然后通过 tpl 文件显示结果。这是相关的功能...
现在我知道 finder_view 正在被调用。我也知道正在调用 finder_preprocess_finder_view。最后,我知道 result.tpl.php 正在用于输出。但是我无法解决如何在回调中做有意义的工作,以某种方式使预处理器中的数据可用以添加到“变量”中,以便我可以在 tpl 文件中访问。
在您使用 tpl 文件的情况下,回调是否对任何事情都有用?过去我已经这样做了,回调完成所有工作并传递给主题函数,但这次我想使用文件进行输出。
谢谢...
更新:这实际上是一个参数命名问题。Drupal 6 在 hook_theme 中使用“arguments”键而不是“variables”。一旦改变,一切都按预期工作。我也删除了预处理器,因为我的逻辑正在回调中执行。
drupal - 动态 URL 的 Drupal page.tpl.php 模板
我阅读了 Drupal 中的基本路径/模板命名,但我不知道如何处理动态 URL。
比如说,我有一个页面:www.example.com/company/companyname/news - 公司名称是动态的。有没有办法为此创建模板页面,例如 page-company-*-news.tpl.php?(当然,这是一个非法的文件名)。此字段“公司名称”也可以包含连字符(“-”)。
我正在运行 Drupal 6,路径是用 Pathauto 创建的。
谢谢你,迈克尔
drupal - 如何样式化模块?
如何为特定视图设置drupal 6中现有模块的样式?在哪里放置文件?在模块目录或视图目录中。我只需要覆盖节点的样式。谢谢!
第二个问题:你把 hook_form_alter 函数放在哪里?谢谢!
php - 分别对两个 Drupal 聚合器块进行主题化
我对 Drupal 还很陌生,但现在已经玩了一段时间了——但这让我很困惑:
我目前正在构建的网站上有两个聚合器块。有没有办法为整个区块设置主题?其次,有没有办法根据它是哪个聚合器来对整个块进行主题化?
我可以通过theme_aggregator_block_item
. 但是,我的两个聚合器块中的这个主题项目。我想要项目的不同输出,具体取决于它是哪个聚合器。
我已经尝试了 block-aggregator.tpl.php 方法,但是我在该文件中所做的任何更改都不会得到反映(即使在清除缓存之后)。我把这个文件放在我的主题目录和我的主题目录/模板中(只是为了确保),但仍然无处可去。当我将其他内容放在此文件夹中时,它们将被覆盖。另外,我看不出这如何使我能够以一个或另一个为主题。
我想象它可以使用if($block_name_var == 'aggregator 1') { // do this }
类型方法,但我似乎无法让块模板首先为其设置主题。
任何想法或想法将不胜感激。
php - Drupal 6 页面模板取决于节点类型
我正在尝试根据内容类型对节点页面进行主题化。在这里,我尝试按照http://drupal.org/node/249726中的说明进行操作。
我所做的,将 node.tpl.php 文件复制到我的主题目录。将其重命名为 page-node-mycontenttype.tpl.php 并在我的模板文件中编写预处理函数,如上面的链接所示。
显然发现它只显示节点内容,但不显示常见的布局元素(HTML)(在 page.tpl.php 中定义的徽标、页眉、页脚和侧边栏等)。
那么我是否有必要在 page-node-mycontenttype.tpl.php 中再次定义相同的通用布局元素(HTML)(那些在 page.tpl.php 中定义)?
如果是这样,那么我必须管理 2 个模板文件。任何 HTML 更改都需要在两个模板文件中进行两次。
有没有更好的方法让页面和节点内容类型都引用公共布局模板文件,只有中间内容区域来自两个不同的文件(页面或节点内容类型)?
您能否建议实现这一目标的常见做法和方法?
注意:确保要根据内容类型覆盖节点模板文件,然后模板文件 node.tpl.php 和 node-[content_type].tpl.php 文件都需要在您的主题目录中。
drupal - 使用 Smarty 学习 Drupal 的案例
我正在重新开始并重新学习 Drupal,希望能改掉一些坏习惯。我正在阅读 Ric Shreves 的 Drupal 6 Themes,他简要介绍了 Drupal 可以使用的不同主题引擎,其中之一是 Smarty。
我开始养成的一个坏习惯是有时将查询或其他复杂逻辑放在 tpl 文件中。为了得到你想要的东西,通常很难沿着链条到达预处理器或模块。此外,坦率地说,当你在最后期限时,它就可以工作。
在我对 Smarty 的短暂体验中,我记得它归结为格式化和简单的循环结构,所以你必须找到预处理函数。如果我刚开始使用 Drupal 时被迫使用 Smarty,我可能不会处于现在的状态。
最后一个问题。第一次使用 Drupal 的人是否可以使用 Smarty?
drupal - Drupal 7 - 将字段描述放在字段上方
默认情况下,在 Drupal 7 中,字段描述显示在字段下方。有没有办法把它们移到场地上方?
在 Drupal 6 中,您可以将以下代码粘贴到 template.php 中以移动描述。但是,该代码在 Drupal 7 中不起作用:
drupal - drupal评论模块中的theme_comment_thread_expanded函数有什么作用?
我不太了解这个功能。我希望这里有人可以帮助解释它。谢谢你。