Перейти к содержанию
kate1987

[Решено] Разные стили для главной и остальных страниц

Рекомендуемые сообщения

Здравствуйте. Использую опенкарт 1,5,4 ДЛя главной и для остальных страниц сайта у меня поддключаются разные стили для расположения меню. А именно на главной меню опускается на определенное кол-ство символов, на остальных поднимается обратно. Реализовано с помощью такого нехитрого кода

		  <?php


if (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home' || !isset($this->request->get['route'])) { $main=' margin-bottom: 105px; margin-top: 345px;';}
if (isset($this->request->get['route']) && $this->request->get['route'] != 'common/home' || !isset($this->request->get['route'])) { $main='margin-bottom: 105px; margin-top: 0px;';}
?>

<div style="<?php echo $main; ?>" id="menu">
......

Проблема в том что когда пользователь первый раз заходит на сайт 'common/home' не добавляется к урл и меню не опускается. Подскажите пожалуйста как решить данную проблему? Спасибо

post-17380-0-68405100-1364472564_thumb.png

post-17380-0-70154900-1364472767_thumb.png

post-17380-0-29957700-1364472775_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сама себе помогаю) В контроллер header.php после protected function index() { добавила

$route = empty($this->request->get['route']) ? 'common/home' : $this->request->get['route'];
$css_file = str_replace('/', '_', $route) . '.css';
if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/stylesheet/' . $css_file)) {
	$this->document->addStyle('catalog/view/theme/' . $this->config->get('config_template'). '/stylesheet/' . $css_file);
}

Что делает этот код? В зависимости от урл страницы смотрит создан ли файл стиллей с одноименным названием, допустим вы находитесь на главной common/home Создаем файл стилей common_home.css В нем пишем нужные стили. Если вы хотите новые стили для страницы категорий тогда нужно создать файл стилей product_category.css И т.д.

После применения кода моя проблема исправилась)

Изменено пользователем kate1987
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а я просто в нужном tpl подключаю стиль)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что же Вы себе так жизнь усложняете? Каждый контроллер может вызывать для себя свои стили и свои скрипты. Что никто не обращает на циклы в хедере и не задется вопросом, что за скрипты и что за стили в них циклируют?)) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подозреваю, что большинство людей не знает о существовании таких функций, как $this->document->addStyles(), $this->document->addScripts() и пр...

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Аналогичная проблема..

В файле template/common/header.tpl код:

<?php
   $request = new Request();
   if ( !isset($request->get['route']) ||  $request->get['route']=='common/home' ) { ?>
        <div class="wraper-top-home">
   <?php }else {?>
        <div class="wraper-top">
<?php } ?>

Почему не срабатывает при включении ЧПУ? 

Подскажите, пли-и-из!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну... потому что условие записано неверно, и возможна генерация ошибка
 

<?php
//$request = new Request(); // подозреваю, что это лишнее 
if ( isset($this->request->get['route']) && $this->request->get['route']!='common/home' ) { ?>
<div class="wraper-top">
<?php }else {?>
<div class="wraper-top-home">
<?php } ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что код из родного дистрибутива, Opencart 1.5.4.1 - при выключенном ЧПУ корректно работает.

Но как только включаю ЧПУ, появляется проблема, где-то что-то связано с url-адресами..

 

chukcha, заменила код предложенным вариантом - вся верстка полезла... Ни главная, ни остальные страницы не отображаются корректно..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не верю...

 

в любои случае открывается div. Поэтому верстка полезть не могла.

Показывайте - поеханную верстку.

Проверяйте наличие тегов див с классами

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

chukcha

Респект Вам!! Заработало!!  :eek:  :eek:

Нашла ошибку: во-первых, лишнюю строку прописала:

<?php } ?> 

а во-вторых, не работало, пока не удалила закомментированный фрагмент кода в старой редакции..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Использую опенкарт 1,5,4 ДЛя главной и для остальных страниц сайта у меня поддключаются разные стили для расположения меню. А именно на главной меню опускается на определенное кол-ство символов, на остальных поднимается обратно. Реализовано с помощью такого нехитрого кода

			  <?php


if (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home' || !isset($this->request->get['route'])) { $main=' margin-bottom: 105px; margin-top: 345px;';}
if (isset($this->request->get['route']) && $this->request->get['route'] != 'common/home' || !isset($this->request->get['route'])) { $main='margin-bottom: 105px; margin-top: 0px;';}
?>

<div style="<?php echo $main; ?>" id="menu">
......
Проблема в том что когда пользователь первый раз заходит на сайт 'common/home' не добавляется к урл и меню не опускается. Подскажите пожалуйста как решить данную проблему? Спасибо

 

Такая же проблема. Стили предназначенные только для home_page прописываются на всех страницах. Это происходит после установки модуля ЧПУ. Подскажите плз как это испраить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такая же проблема. Стили предназначенные только для home_page прописываются на всех страницах. Это происходит после установки модуля ЧПУ. Подскажите плз как это испраить?

Только что выяснилось что это происходит если в настройках модуля seopro в "Окончание ЧПУ" установить "/"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.