Замена изображения в шапке

Главные вкладки

Аватар пользователя RASSEL RASSEL 26 августа 2011 в 15:03

Всем привет!

Столкнулся с задачей: Как сделать, чтоб при переходе на конкретную страницу, появлялось конкретное изображение в шапке!

Более - менее подходящее решение взял с темы "marinelli", но там изображение меняется рандомно при переходе на любую страницу.
В теме "marinelli", за замену изображений отвечает файл rotate.php
Для удобства, вот код файла:

<?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 фотографий.

Прошу помощи в решении этой задачи, не могу сообразить что-куда!

Комментарии

Аватар пользователя anartist anartist 26 августа 2011 в 15:34

Может быть, это не самое удачное решение, и есть гораздо проще, но я бы, например, создал несколько блоков, каждый со своим изображением, а в настройках блоков указал бы, на каких страницах их показывать. Блоки бы поместил в имеющийся или в новый регион в шапке (или вместо шапки).

P.S. Критика способа приветствуется.

Аватар пользователя RASSEL RASSEL 26 августа 2011 в 15:37

Пока шел на роботу, это решение тоже пришло в голову!
Но может можно это как-то программно сделать?

Аватар пользователя msidiagnos01 msidiagnos01 26 августа 2011 в 20:40
<?php if ($node->nid=="**"):?>
<img class="****" src="путь_до_картинки" />
<?php endif;?>

Не покатит? Все картинки запихать в одну blablabla.jpg, для каждого условия пхп к картинке приписать нужный класс, к классам приписать свойство "background-position:", где указывать координаты нужной картинки.

Аватар пользователя RASSEL RASSEL 5 сентября 2011 в 13:55

Реализовал подстановкой блоков с разными картинками + вывод блока на определенной странице!
Вместо шапки прикрутил новый регион, и всю эту ересь засунул туда.
Результат тут:
ццц.magicshop.od.ua
.magicshop.od.ua/kontakty

Аватар пользователя dalmat dalmat 20 октября 2013 в 9:23

Вопрос чайника со свистком: заменил картинки в слайдере, а они не выводятся, выводятся старые. Подскажите, плиз!