Drupal 6 作为块或节点的Drupal背景图像

Drupal 6 作为块或节点的Drupal背景图像,drupal-6,cck,background-image,Drupal 6,Cck,Background Image,我在思考如何在我的定制Drupal6主题中制作可编辑的背景图像时遇到了困难。我的客户希望在其网站的每个主要部分使用不同的背景图像(具有多种内容类型:页面、博客、图像库),为了保持一切动态,我希望背景图像可以编辑 我想做的是为各种内容类型添加一个背景图像字段,允许用户引用内容库中的图像或上载新图像(类似于ImageAssist),并将其应用于模板中的某个区域。关于这方面的最佳方法有什么建议吗 有没有办法将自定义内容类型转换为动态背景图像块?我正在使用图像、图像缓存、视图、CCK、图像辅助、面板、文

我在思考如何在我的定制Drupal6主题中制作可编辑的背景图像时遇到了困难。我的客户希望在其网站的每个主要部分使用不同的背景图像(具有多种内容类型:页面、博客、图像库),为了保持一切动态,我希望背景图像可以编辑

我想做的是为各种内容类型添加一个背景图像字段,允许用户引用内容库中的图像或上载新图像(类似于ImageAssist),并将其应用于模板中的某个区域。关于这方面的最佳方法有什么建议吗

有没有办法将自定义内容类型转换为动态背景图像块?我正在使用图像、图像缓存、视图、CCK、图像辅助、面板、文件字段和图像字段模块


谢谢大家!

这些天我自己也在这样一个网站上工作。 我所做的是: 1.创建此图像的内容字段,站点管理员可以在其中上载新背景 2.在template.php中,我将图像位置添加到我创建的新$var['background']中 3.在pape.tpl.php中,我在正文中添加了一个div,其中包含页面的所有内容, 4.在a bove div中,我添加了一个样式并打印$background作为背景值 示例(使用[]重新保存以避免自动删除代码): [body class=“[?php打印$body_类;?]” [div id=“page”style='background:url([?php print$background?])不重复;'] [/div] [/body] 希望这有帮助
Avner

现在我正在硬编码一个url,这在我弄明白如何使它动态之前是毫无意义的。以下是my template.php文件的一部分:

function phptemplate_preprocess(&$vars, $hook) {
  $vars['background'] = base_path().'sites/default/files/wood-med.jpg';
   //...
}
  </head>

    <body class="<?php print $body_classes ?>" style='background-image: url("<?php print $background ?>");background-repeat: repeat-y;'>
      <div id="pageWrapper">
      // ....
下面是我的page.tpl.php文件的相关部分:

function phptemplate_preprocess(&$vars, $hook) {
  $vars['background'] = base_path().'sites/default/files/wood-med.jpg';
   //...
}
  </head>

    <body class="<?php print $body_classes ?>" style='background-image: url("<?php print $background ?>");background-repeat: repeat-y;'>
      <div id="pageWrapper">
      // ....


是否正在使用函数phptemplate\u preprocess?也许我错过了,但drupals的API站点上有这样的功能。
我认为您应该使用phptemplate\u preprocess\u页面,该页面应实现为:
“function THEMENAME_preprocess_page(&$vars)”并放置在主题目录中的template.php中。
该函数很可能已经存在,您应该在其末尾添加以下行:
global$base\u url
如果(!empty($vars['node']->type)){
如果($vars['node']->type=='CONTENT-type-A')| |($vars['node']->type=='CONTENT-type-B'){
$vars['background']=$base_url./“$vars['node']->字段_background[0]['filepath']; }
}

请注意,字段_background是一个cck字段

关于page.tpl.php,我不希望在body标记中输入图像。我将其放在a div中,这将允许更大的灵活性(例如,如果您希望图像位于浏览器顶部下方20px)。例如:


一种更简单、更简洁的方法是在phptemplate_preprocess_page()函数中添加template.php:


如果(isset($node->field_background[0]['filepath'])){
$vars['style'].='';
$vars['styles'].='div#page{background:url(“.$base_url./”。$node->field_background[0]['filepath']”;};
$vars['style'].='';
}

谢谢你的回复!但是你只使用了一张图片吗?我希望通过某种方式使在每个部分上放置不同的图片变得容易。当你说“图片位置”时,你是指硬编码url吗?一点也不,正如我在评论中解释的,背景可以更改并作为变量输入(在我的示例中为$background)。发布您的template.php,我将尝试帮助您完成代码