0

有没有办法弄清楚html.tpl.php中父页面的标题是什么?我问是因为我根据页面上选择的父链接更改背景图片。希望有意义,网址是:http: //quaaoutlodge.com/drupal-7.14/

谢谢,罗恩


不知道如何做到这一点......不得不修改我的架构并采取必要的步骤来完成我想做的事情......

4

1 回答 1

2

PHP 是一种服务器端编程语言。当用户请求页面时,服务器为该页面执行 PHP 并将生成的 HTML 发送给用户。PHP 通信只能以这种方式发生。用户只能看到生成的 HTML。如果用户需要与 PHP 交互(例如更改页面输出),则用户必须发起另一个页面请求。

Javascript 是一种客户端编程语言。在正常的服务器环境中,Javascript 的执行只发生在用户的机器上(不在服务器上)。在 PHP 执行期间不会发生 Javascript 执行,因此您不能将 Javascript 代码与 PHP 代码混合。Rab 使用 Javascript 的建议没有回答您的问题,您对他的回复是试图将 Javascript 与 PHP 混合。

在 Drupal 术语中,您可以通过有组织的菜单访问站点上的节点集合。每当用户查看特定一级菜单项的子页面时,您都希望更改页面上的特定图像(我将假设 Quaaout Lodge 徽标)。例如,查看“我们的历史”或“到达这里”将加载(而不是默认的 Quaaout Lodge 徽标)以某种方式连接到“The Lodge”的父项的不同图像。

由于您似乎对 Drupal 不太熟悉,因此最简单的解决方案之一是将图像指定为background-imageCSS 中的属性而不是img元素。每个页面都应该有一个应用于body其页面元素的唯一类属性。例如,在“我们的历史”页面上,应用于body元素的类之一是page-node-7. page-node-7不适用于 Drupal 中的任何其他页面。您可以快速查找每个页面的唯一类并添加 CSS 属性以更改每个页面background-image等。如果您想使用此方法但使其更简洁,您可以使用Node Class 模块来改进它将自定义类应用于每个页面。您可以为您在“The Lodge”菜单项下创建的每个页面添加一个“lodge-image”类。这将使内容编辑器可以更改特定页面的图像,而无需任何人直接修改 CSS。我假设(我可能错了)Drupal7 中的 Node Class 模块会将一个类添加到 body 元素以及节点的 HTML 容器中。

或者,更好的解决方案是使用 Drupal 模块根据某些菜单或路径条件选择徽标。这些仅在使用 Drupal 中的徽标配置选项(在外观设置中)设置图像时才有效。最合适的模块可能是Logo Tool,但它还没有为 Drupal7 开发,所以它还不是一个选项。Subsites模块有一个 Drupal7 版本正在开发中。通常不建议在生产站点上使用开发版本,但似乎值得一试。

其他一些更好但更困难的方法是:在 template.php 预处理函数中覆盖/设置徽标,编写一个新模块来设置徽标或创建自定义图像块(并向您的显示块的主题),自己将 Logo Tool 转换为 Drupal7,编写一个新模块来自动为页面的菜单祖先的 body 元素添加一个类属性(CSS 方法,除了创建菜单项之外不需要额外的操作),以及还有几个我能想到的。

所以你有很多选择。

于 2012-07-10T07:10:06.383 回答