[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод изображения.
kick
Здравтсвуйте. Может быть кто то уделит минутку моему не существенному для вас вопросу?

Я хочу выводить различные фоновые изображения в зависимости от страницы. Тоесть на Главной-один фон, на Контакты-другой фон и т.д.
Это я осуществлю вот таким образом:

if ($_SERVER['REQUEST_URI'] == '/contact.html') { $classvariable = 'wm-box wm-sheet2'; }
if ($_SERVER['REQUEST_URI'] == '/foto.html') { $classvariable = 'wm-box wm-sheet'; }


Все эти страницы привязаны к меню, но ведь есть же страницы, которые не привязаны к меню и их урлы генерируются автоматически (допустим страница новости которая ещё не создана и т.д.) Подскажите пожалуйста, как прописать условие, что если отображается не contact.html и не foto.html. и ещё там тройка страниц то должно быть { $classvariable = 'wm-box wm-sheet'; }
Благодарю за ответ.
koala
Цитата
Все эти страницы привязаны к меню, но ведь есть же страницы, которые не привязаны к меню и их урлы генерируются автоматически (допустим страница новости которая ещё не создана и т.д.)


То есть не создана? У вас к примеру есть news.php - это страница новостей, ?id= - идентификатор новости. Это я написал к примеру. Для страницы news.php выбираете картинку и она будет отображаться на фоне для всех новостей. Или вам надо для каждой отдельной новости свою картинку?

Можно сделать через switch. В default написать стандартную картинку если страница не совпадает с /contact.html или /foto.html

_____________
Vi Veri Veniversum Vivus Vici
kick
Цитата (koala @ 25.07.2013 - 07:31)
То есть не создана? У вас к примеру есть news.php - это страница новостей, ?id= - идентификатор новости. Это я написал к примеру. Для страницы news.php выбираете картинку и она будет отображаться на фоне для всех новостей. Или вам надо для каждой отдельной новости свою картинку?

Можно сделать через switch. В default написать стандартную картинку если страница не совпадает с /contact.html или /foto.html

Я прошу прощения. Я не правильно выразился. Нужно чтобы у всех остальных страниц которые не указаны в перечне скрипта
Не указаны вот в этом перечне:
[code]
if ($_SERVER['REQUEST_URI'] == '/contact1.html') { $classvariable = 'wm-box wm-sheet1'; }
if ($_SERVER['REQUEST_URI'] == '/contact2.html') { $classvariable = 'wm-box wm-sheet2'; }
if ($_SERVER['REQUEST_URI'] == '/contact3.html') { $classvariable = 'wm-box wm-sheet3'; }
if ($_SERVER['REQUEST_URI'] == '/contact4.html') { $classvariable = 'wm-box wm-sheet4'; }
выводился блок DIV wm-box wm-sheet
Вот так:
if(тут условие == любая другая страница) { $classvariable = 'wm-box wm-sheet'; }
Может быть я не оттого пляшу? Мне нужно на конкретных четырех страницах выводить разные изображения фона и для этого я в CSS я создал четыре разных стиля для блока #wm-box wm-sheet1,2,3,4. А на всех остальных страницах фон должен быть одинаковым...для этого в CSS я так же прописал стиль #wm-box wm-sheet
kick
Цитата (koala @ 25.07.2013 - 07:31)
Можно сделать через switch. В default написать стандартную картинку если страница не совпадает с /contact.html или /foto.html

Вот-вот..об этом я и говрю. Если страница не совпадает ни с одной из страниц в перечне скрипта, то нужно использовать вот эту... Вот как это написать на PHP?=))
SoMeOnE
Так можно.
$uri = $_SERVER['REQUEST_URI'];
switch ($uri) {
case '/contact1.html':
$classvariable = 'wm-box wm-sheet1';
break;
case '/contact2.html':
$classvariable = 'wm-box wm-sheet2';
break;
default:
// Здесь то что Вам нужно
break;
dron4ik
а что собственно возвращает $_SERVER['REQUEST_URI'] на той или иной станице?

_____________
Ex3m.com.ua — Активный образ жизни
HErATuB

$value = array('/contact1.html'=> 'wm-box wm-sheet1',
'/contact2.html'=> 'wm-box wm-sheet2',
'/contact2.html'=> 'wm-box wm-sheet2');
$classvariable = $value[$_SERVER['REQUEST_URI']];

Не?
Guest
[php]
$a=$_SERVER['REQUEST_URI'];

if($a== '/contact.html')
{
$classvariable = 'wm-box wm-sheet1';
}

elseif($a== '/contact2.html')
{
$classvariable = 'wm-box wm-sheet2';
}

elseif($a== '/foto.html')
{
$classvariable = 'wm-box wm-sheet2';
}

else
{
$classvariable = 'wm-box wm-sheet';
}
rooor
Guest
а если вариантов 20?
20 раз писать if-elseif?))
HErATuB
rooor
Твои предложения? smile.gif
rooor
switch()
но с массивом мне больше нравится)
только немного изменить твой код
$value = array(
'/contact1.html'=> 'wm-box wm-sheet1',
'/contact2.html'=> 'wm-box wm-sheet2',
'/contact2.html'=> 'wm-box wm-sheet2');
$classvariable = isset($value[$_SERVER['REQUEST_URI']]) ? $value[$_SERVER['REQUEST_URI']] : 'default';
kick
koala,SoMeOnE,dron4ik,HErATuB,Guest,rooor cпасибо огромное за конструктивный диалог. Последняя схема работает просто замечательно. Всё гениальное, как говорится-просто.user posted image

С вашего позволения я более подробно сейчас опишу то, что мы здесь обсуждали, потому таких как я чайников полно, а ответ я нашел только на этом форуме с Вашей помощью. Пусть люди пользуются.

В общем пишу для тех, кому нужно изменить фоновое изображение у блоков в зависимости от страницы (для тех кто думает, что это можно делать только в Joomla в конце предложения сами добавляем- "...в зависимости от страницы в Joomla)=)
======================================================
Итак. У нас в коде страницы есть блок
<div class="vash_block"> </div>
... для которого в CSS прописано фоновое изображение вот таким образом:

.vash_block {
background: url("../images/ВАШЕ ФОНОВОЕ ИЗОБРАЖЕНИЕ.png") no-repeat scroll center top transparent;
margin: 0 auto;
width: 950px;
}

...теперь, если вам нужно, чтобы на страницы с контактами у вас было другое фоновое изображение, на странице с галлереей был третий фон, или к примеру на странице с надписью Red HACK вам не нравится чувак в капюшоне=), то делаем следующее.

Ищем папку с вашим шаблоном на сервере, далее ищем файл index.php открываем его и прописываем такой следующий код:

<?php
$value = array(
'/contact.html'=> 'vash_box1', // АДРЕС СТРАНИЦЫ КОНТАКТОВ
'/gallery.html'=> 'vash_box2', //АДРЕС СТРАНИЦЫ ГАЛЛЕРЕЯ
'/feed_back.html'=> 'vash_box3'); //АДРЕС ОБРАТНОЙ СВЯЗИ
$classvariable = isset($value[$_SERVER['REQUEST_URI']]) ? $value[$_SERVER['REQUEST_URI']] : 'vash_box';
?>

...в этом коде вы указываете адрес каждой страницы на которой нужно изменить фоновое изображение и в той же строке указываете наименование блока, который прописан у вас в CSS (в данном случае это три блока vash_box1, vash_box2 ,vash_box3). Для каждого из блоков в CSS прописано индивидуальное фоновое изображение.

Ну и в самом конце кода, вам нужно указать название того блока <div> который будет использоваться по умолчанию. То есть когда пользователь будет находится на любой другой странице не указанной вами в скрипте, будет подключаться блок с фоновым изображением по умолчанию (в данном примере .vash_box)

После всех этих перетрубаций опускаетесь ниже по коду страницы и ищете ваш злополучный блок <vash_box> в HTML коде страницы. Находите его, возрадуетесь и вместо названия класса блока прописываете вот такую конструкцию:
Было:
<div class="vash_box"></div>

Стало:
<div class="<?php echo $classvariable; ?>"></div>


Ну вот собственно и всё. Дальше опять возрадуетесь, заходите опять на этот форум, люто,бешенно поднимаете карму всем участникам этой ветки и пользуетесь на здоровье.

P.S. : Мне можете не поднимать, я просто пиво пью и мне скучно=))...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.