Joomla 1.5 Как сделать так, чтоб при каждом входе категории, менялся фон сайта?

Тема в разделе "Структура данных сайта", создана пользователем sparklingman, 05.11.2010.

  1. Offline

    sparklingman Недавно здесь

    Регистрация:
    13.09.2010
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Как сделать так, чтоб при каждом входе категории, менялся фон сайта?
    Ну допустим так. Захожу на главную страницу, там зеленый сайт, захожу в другой раздел, "Видео", а там серый фон, захожу в раздел "чата", и там желтый фон. Как можно сделать так? И шапка тоже менялась.
     
  2.  
  3. sergiks
    Offline

    sergiks специалист

    Регистрация:
    10.10.2010
    Сообщения:
    362
    Симпатии:
    36
    Пол:
    Мужской
    Программирование не испугает? Могу привести фрагмент кода с решением.
     
  4. Offline

    sparklingman Недавно здесь

    Регистрация:
    13.09.2010
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Приведи пожалуйста.:)
     
  5. Offline

    Fatima430 специалист

    Регистрация:
    18.07.2009
    Сообщения:
    363
    Симпатии:
    38
    Пол:
    Женский
    можно к соответствующим пунктам меню прикрутить оддельный шаблон (как вариант без пограммирования)
     
  6. sergiks
    Offline

    sergiks специалист

    Регистрация:
    10.10.2010
    Сообщения:
    362
    Симпатии:
    36
    Пол:
    Мужской
    Смысл такой: в шаблоне настраиваем фон по умолчанию, и в зависимости от категории "объезжаем" его с помощью CSS.
    В файле шаблона index.php нужно
    1. определить категории и их цвета в виде пар "номер_категории"=>"цвет":
    Код (PHP):
    1. $catColors = array(
    2. 12=>'#CC6633',
    3. 34=>'#AABBCC',
    4. 56=>'#332211'
    5. );

    (после последней пары запятая не нужна!)

    2. Теперь надо узнать, в какой категории мы оказались:
    это берется из значения JRequest::getInt('catid') — номер текущей категории, если мы в контенте.

    3. Доп. проверка: если мы смотрим материал (option=com_content) и известен номер категории из. п.2,
    то надо объявить дополнительно стиль фона, и чтобы он был более значим, чем уже объявленный "по умолчанию":
    Код (PHP):
    1. $catid = JRequest::getInt('catid');
    2. if( JRequest::getVar('option') == 'com_content' && array_key_exists($catid, $catColors)) {
    3.   $document =& JFactory::getDocument();
    4.   $document->addStyleDeclaration( 'body {background:' . #catColors[$catid] . ' !important;}' );
    5. }


    В общем, вставив в шаблоний index.php оба фрагмента кода один-за-другим, по идее должно получиться то, что нужно.
    Warning: код из головы, в работе не проверял, возможны досадные опечатки )
     
    sparklingman нравится это.

Поделиться этой страницей

Загрузка...