0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 20304 Просмотров
*

ruppert

  • Захожу иногда
  • 65
  • 0 / 3
Всем привет!
Господа, кто знает, как правильно прописать в шаблоне так, чтобы из заданной папки каждый раз при перезагрузке страницы выбиралось рандомное изображение фона?
Для конкретного изображения я пишу примерно такую конструкцию в template.css:

{background:#fff url(http://ххх.ru/.../images/1.png); background-position:left top; background-repeat:repeat; background-attachment:fixed;} Это работает нормально.

А хотелось бы, чтобы из нескольких имеющихся в папке IMAGES изображений, выбиралось случайное. Как это правильно прописать? Не получается у меня чего то... Прошу подсказку!

Ну и попутно: подскажите, как прописать относительную ссылку вместо абсолютной? Тоже чего то не хочет работать, как не стараюсь.
« Последнее редактирование: 06.04.2014, 00:19:56 от ruppert »
*

ruppert

  • Захожу иногда
  • 65
  • 0 / 3
Спасибо. Решение рабочее.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
На всякий случай скопирую решение сюда


Еще вариант создаете в папке шаблона папку myimg. Туда кидаете файлы картинок (в примере с расширением *.jpg)
Здесь в примерах, файл куда вставляете код index.php лежит в корне папки шаблона. В ином случае нужно переопределить строку __DIR__.DS.'myimg' обозначающую путь к папке с картинками.
Рандомный вывод
Код: php-brief
<?php
$sdir = array();
$files = scandir(__DIR__.DS.'myimg');
foreach ($files as $i => $entry)
{ if ($entry != '.' && $entry != '..' && fnmatch('*.jpg', $entry)) $sdir[] = $entry;}
?>
<body style="background-image:url(<?php echo '/templates/'.$this->template.'/myimg/'.$sdir[array_rand($sdir)]; ?>)">
Вывод по порядку
Код: php-brief
<?php
$sdir = array();
$files = scandir(__DIR__.DS.'myimg');
foreach ($files as $i => $entry)
{ if ($entry != '.' && $entry != '..' && fnmatch('*.jpg', $entry)) $sdir[] = $entry;}
$session = JFactory::getSession();
$img_nom = $session->get('img_nom', 0);
$link = $sdir[$img_nom];
$img_nom = ($img_nom == count($sdir)-1)? 0: $img_nom + 1;
$session->set('img_nom', $img_nom);
?>
<body style="background-image:url(<?php echo '/templates/'.$this->template.'/myimg/'.$link; ?>)">
*

Buhuginn

  • Новичок
  • 4
  • 0 / 0
  • Мертвый дух
Попробуйте PHP ImagER 1.0, если не получится настроить - стучите
*

korkeaw

  • Новичок
  • 1
  • 0 / 0
Thank you for this answer.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться