我知道这可能是通过CCK和视图完成的,也许是徽标内容类型。但我想知道是否有人知道如何做到以下的最佳方式(也许有一个模块已经这样做了):
我想要SEASONAL显示我的徽标。即如果我创建了我的徽标的CHRISTMAS版本,例如徽标中的圣诞帽,则必须在圣诞节或圣诞节前7天显示。这7天必须在PER LOGO的基础上更改。即我可能想要在整个12月份展示圣诞节标志,但只有一天才能展示圣诞节标志。
它必须自动选择各种徽标和ALSO,以满足语言。我有三种语言,因此我的网站上有三种不同的徽标。
答案 0 :(得分:3)
拥有徽标的内容类型有一个缺点,因为您需要为每个页面加载两个节点。
另一种解决方案是实现创建徽标块的模块。然后,您可以调整主题以获得徽标所在的区域,并将此块放入该区域。你可以在块中拥有你想要的任何逻辑。如果您愿意,请包含管理界面。这可以按用户缓存(并且每天清除一次),因此开销只是从缓存而不是节点负载加载块。这也使表现和逻辑分离,我可以想象一个季节性的图像模块会很受欢迎。
答案 1 :(得分:1)
如果这是一套非常简单的规则,我只是从模板页面做到这一点(如果是12月份,请包含此徽标,如果不包含此其他徽标等等)。
如果你想要完全自定义,那么我会制作一个小模块,也许是一个带有图像和日期范围的CCK可翻译内容类型,因此它会根据你的规则适当选择图像。然后模块将导出一个块以放入其中一个区域,比如标题。这也是语言意识。
我认为一个观点可能不足以做完整的事情,它需要有点复杂......
答案 2 :(得分:1)
只需使用一些原始的PHP ...
如果您的网站使用普通的网址结构,您可以执行以下操作:
<?php
$path = drupal_get_path_alias($_GET['q']);
$path = explode('/', $path);
if ($path[0] == 'english') {
$logolangclass = 'english';
};
?>
然后你可以做一些像这样的常规日期()东西:
<?php
$today = date("md");
if ($today == "1215") {
$logoseasonclass = "christmas";
}
?>
然后使用这两个变量为您构建一个css类,如下所示:
<div id="MyLogo" class="<?php echo $logolangclass $logoseasonclass ?>"></div>
渲染时会生成如下内容:
<div id="MyLogo" class="english christmas"></div>
答案 3 :(得分:1)
这是一个简单但有效的解决方案,使用cck和views:
创建'标题图片'内容类型。添加图片,网址和“显示时间”选择列表的字段。
图像我使用带有裁剪模块的图像上传,限制为400px宽,100px高,以适应标题块。
'显示'选择列表时我填充了夏季,冬季,秋季,万圣节,圣诞节,退伍军人日等。
url是可选的。
在视图中,按类型= header_pic和show_when =过滤您现在要显示的内容,limit = 1.
需要Customfield PHP模块插件用于视图,并添加:
<?php
$temp = node_load($data->nid);
if ($data->node_data_field_header_pic_url_field_header_pic_url_url) {
echo '<a href="' . $data->node_data_field_header_pic_url_field_header_pic_url_url
. '" title="' . $data->node_data_field_header_pic_url_field_header_pic_url_title
.'"><img src="/' . $temp->field_header_image[0]['filepath'] . '" /></a>';
}
else {
echo '<img src="/' . $temp->field_header_image[0]['filepath'] . '" />';
}
?>
我注意到的字段与您的实际字段相关。
这样做只有在填充了url字段时才使用该url字段包装图像。
然后在块显示中设置视图,并在标题区域中设置该块。根据主题的不同,你可能需要稍微破解page.tpl.php,将标题块区域移动到真正的标题区域(但是一旦你进入那里就很容易看到你需要做什么)。
您甚至可以制作同一视图的页面视图,以便在页面上一次显示所有精美的页眉图像(/ headerpics),每个页面都有一个编辑链接,以便于管理。
如果您只想要季节性图片,这将有效。这是非技术用户上传和裁剪图像的简单形式。唯一的管理员需求是视图过滤器中偶尔的季节(显示时间)变化。