Всем привет!
Столкнулся с задачей: Как сделать, чтоб при переходе на конкретную страницу, появлялось конкретное изображение в шапке!
Более - менее подходящее решение взял с темы "marinelli", но там изображение меняется рандомно при переходе на любую страницу.
В теме "marinelli", за замену изображений отвечает файл rotate.php
Для удобства, вот код файла:
/**
* randomly select an image from the current directory and return it
*
* todo - consider accepting a local path as $_GET['img'] for overrides
* to remain compatible with Marinelli's rotate.php
*
* (but why? why possible use case is there for linking to
* rotate.php?img=file.gif instead of straight to file.gif?)
*/
$file_types = array(
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'png' => 'image/png'
) ;
$regex = '/\.(' . implode('|',array_keys($file_types)) . ')$/i' ;
$files = array() ;
$directory = opendir(".");
while ( FALSE !== ($file = readdir( $directory )) ) {
if ( preg_match( $regex, $file ) ) {
$files[] = $file ;
}
}
if ( !empty( $files ) ) {
$which = rand(0,sizeof($files)-1) ;
if ( $file = file_get_contents( $files[$which] ) ) {
$parts = explode('.',$files[$which]) ;
$ext = strtolower($parts[sizeof($parts)-1]) ;
header( "Content-type: " . $file_types[$ext] ) ;
header( "Expires: Wed, 29 Jan 1975 04:15:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );
print $file ;
}
}
Как допилить, чтоб к примеру при переходе на node/3 появлялось изображение image_3.png, а при переходе на node/24 появлялось изображение image_5.png ?
Всего будет 4-6 фотографий.
Прошу помощи в решении этой задачи, не могу сообразить что-куда!
Комментарии
Может быть, это не самое удачное решение, и есть гораздо проще, но я бы, например, создал несколько блоков, каждый со своим изображением, а в настройках блоков указал бы, на каких страницах их показывать. Блоки бы поместил в имеющийся или в новый регион в шапке (или вместо шапки).
P.S. Критика способа приветствуется.
Пока шел на роботу, это решение тоже пришло в голову!
Но может можно это как-то программно сделать?
задать класс для шапки и через css менять картинки
если на конкретную страницу, то писать шаблон на эту страницу page-конкретная страница.tpl.php
Спасиб, буду пробовать!
<?php if ($node->nid=="**"):?>
<img class="****" src="путь_до_картинки" />
<?php endif;?>
Не покатит? Все картинки запихать в одну blablabla.jpg, для каждого условия пхп к картинке приписать нужный класс, к классам приписать свойство "background-position:", где указывать координаты нужной картинки.
Реализовал подстановкой блоков с разными картинками + вывод блока на определенной странице!
Вместо шапки прикрутил новый регион, и всю эту ересь засунул туда.
Результат тут:
ццц.magicshop.od.ua
.magicshop.od.ua/kontakty
Вопрос чайника со свистком: заменил картинки в слайдере, а они не выводятся, выводятся старые. Подскажите, плиз!
Не идет