meowmeow Опубліковано: 15 серпня 2012 Share Опубліковано: 15 серпня 2012 Собираюсь реализовать в шапке сайта такую вещь: <?php if (Текущая страница=Главная) { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> Т.е скрипт должен проверять, что открытая страница является главной (home), и выводить один блок, а если не главная, то другой. Вопрос в том, как прописать это условие? Надіслати Поділитися на інших сайтах More sharing options...
meowmeow Опубліковано: 15 серпня 2012 Автор Share Опубліковано: 15 серпня 2012 Наверняка есть какой-то параметр, где хранится ссылка текущей страницы (common/home), но как его узнать и как правильно прописать? Или есть какие-то функции для определения текущей страницы? 1 Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 15 серпня 2012 Share Опубліковано: 15 серпня 2012 проще всего - задать свою переменную в контроллере соответствующей страницы и в шаблоне уже проверять наличие и значение данной переменной. 1 Надіслати Поділитися на інших сайтах More sharing options... meowmeow Опубліковано: 15 серпня 2012 Автор Share Опубліковано: 15 серпня 2012 Я задаю значение в контроллере страницы home: $this->data['current_page']='home'; В шаблоне задаю: <?php if ($current_page=='home') { ?> Но вылезает ошибка Notice: Undefined variable: current_page in Z:homemagazin1wwwcatalogviewthemedefaulttemplatecommonheader.tpl on line 74 Все верно, т.к проверяется значение в header.tpl, а в контроллере хедера переменная не задекларирована. Как получить значение переменной из контроллера home в контроллере header? Заметил, что например заголовок можно получить,там есть такая строка: $this->data['title'] = $this->document->getTitle(); Видимо как то аналогично, но как прописать? Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 15 серпня 2012 Share Опубліковано: 15 серпня 2012 (змінено) добавьте сквозную переменную в класс "document" [=== upload/system/library/document.php ===] аналогично той же "title". а потом уже в контроллере home присваивайте ей необходимое значение и проверяйте в шаблоне. обрамите свой код в соответствующие тэги Змінено 15 серпня 2012 користувачем afwollis 1 Надіслати Поділитися на інших сайтах More sharing options... meowmeow Опубліковано: 16 серпня 2012 Автор Share Опубліковано: 16 серпня 2012 Получилось :eek: Спасибо! Надіслати Поділитися на інших сайтах More sharing options... 2kes Опубліковано: 17 серпня 2012 Share Опубліковано: 17 серпня 2012 расскажи как? если не трудно=) Надіслати Поділитися на інших сайтах More sharing options... meowmeow Опубліковано: 21 серпня 2012 Автор Share Опубліковано: 21 серпня 2012 2kes, Придумал новую переменную - current_page. Далее пошагово, какие строки куда добавлял: 1. В файле document.php (system/library/) добавил две функции - получение новой переменной и передача новой переменной: public function setCurrent($current_page) { $this->current_page = $current_page; } public function getCurrent() { return $this->current_page; } 2. В файле home.php (catalog/controller/common) устанавливаем значение переменной: $this->document->setCurrent('home'); 3. В файле header.php (catalog/controller/common) получаем значение переменной: $this->data['current_page'] = $this->document->getCurrent(); 4. Ну и в конце концов, в файле шаблона header.tpl (catalog/view/theme/default/template/common) задаем условие, которое проверяет значение этой переменной: <?php if ($current_page=='home') { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> 2 Надіслати Поділитися на інших сайтах More sharing options... Baco Опубліковано: 21 серпня 2012 Share Опубліковано: 21 серпня 2012 Тут интересное решение от камрада из дальнего востока... Надіслати Поділитися на інших сайтах More sharing options... 1 month later... 2kes Опубліковано: 4 жовтня 2012 Share Опубліковано: 4 жовтня 2012 Огромное спасибо! Только для статических страниц, категорий, страницы продукта, корзины и т.д. точно также как и для главной значение переменной указать нужно. Иначе будет ошибка о том что переменная не найдена, в случае если вы перейдете в описание продукта, например. Надіслати Поділитися на інших сайтах More sharing options... meowmeow Опубліковано: 4 жовтня 2012 Автор Share Опубліковано: 4 жовтня 2012 Ну, можно сделать условие в случае отсутствия переменной Надіслати Поділитися на інших сайтах More sharing options... 12strun Опубліковано: 5 жовтня 2012 Share Опубліковано: 5 жовтня 2012 По моему вы тут велосипед изобретаете... У меня реализовано проще: if (!isset($this->request->get['route'])) { $this->request->get['route']='common/home'; // Чтобы не выдавало ошибку, если юзер набрал адрес в браузере руками } if ($this->request->get['route']=='common/home') { echo 'Я на главной'; } else { echo 'А это уже не главная страница'; } P.S. По аналогии можно и другие страницы идентифицировать... 5 Надіслати Поділитися на інших сайтах More sharing options... 9 months later... nevredimiy Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 По моему вы тут велосипед изобретаете... У меня реализовано проще: if (!isset($this->request->get['route'])) { $this->request->get['route']='common/home'; // Чтобы не выдавало ошибку, если юзер набрал адрес в браузере руками } if ($this->request->get['route']=='common/home') { echo 'Я на главной'; } else { echo 'А это уже не главная страница'; } P.S. По аналогии можно и другие страницы идентифицировать... Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Надіслати Поділитися на інших сайтах More sharing options... nevredimiy Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 У меня, почему-то, переменная current_page пустая. Не могу почнять почему. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 а $_SERVER['REQUEST_URI'] чем не подходит?? Надіслати Поділитися на інших сайтах More sharing options... 12strun Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Проверяйте по id статьи. Надіслати Поділитися на інших сайтах More sharing options... xdicolt Опубліковано: 30 липня 2013 Share Опубліковано: 30 липня 2013 Ну, можно сделать условие в случае отсутствия переменной скажите пожалуйста, а как точнее условие прописать? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... DAN Опубліковано: 11 серпня 2013 Share Опубліковано: 11 серпня 2013 (змінено) Проверяйте по id статьи. А как условие для проверки id статьи прописать? Что то не вдуплюсь. ВДУПЛИЛСЯ :-) $this->request->get['information_id']== Змінено 11 серпня 2013 користувачем DAN Надіслати Поділитися на інших сайтах More sharing options... 8 months later... Romans281 Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 (змінено) 2kes, Придумал новую переменную - current_page. Далее пошагово, какие строки куда добавлял: 1. В файле document.php (system/library/) добавил две функции - получение новой переменной и передача новой переменной: public function setCurrent($current_page) { $this->current_page = $current_page; } public function getCurrent() { return $this->current_page; } 2. В файле home.php (catalog/controller/common) устанавливаем значение переменной: $this->document->setCurrent('home'); 3. В файле header.php (catalog/controller/common) получаем значение переменной: $this->data['current_page'] = $this->document->getCurrent(); 4. Ну и в конце концов, в файле шаблона header.tpl (catalog/view/theme/default/template/common) задаем условие, которое проверяет значение этой переменной: <?php if ($current_page=='home') { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> Почему то выдаёт ошибку Notice: Undefined property: Document::$current_page in /system/library/document.php on line 22 Уже Разобрался СПАСИБО! Змінено 30 квітня 2014 користувачем Romans281 Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 В document.php после объявления класса надо добавить private $current_page; Надіслати Поділитися на інших сайтах More sharing options... vtx Опубліковано: 7 травня 2014 Share Опубліковано: 7 травня 2014 а $_SERVER['REQUEST_URI'] чем не подходит?? +1. Не стоит городить в контроллерах лишнего, да и не за чем. 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Reddie Опубліковано: 20 червня 2014 Share Опубліковано: 20 червня 2014 (змінено) Приветствую, уважаемые форумчане. Никак не могу разобраться с выделением пунктов. OCstore 1.5.5.1.2 Пытаюсь в вертикальном меню сделать инфу, в горизонтальном - категории. Пробовал самым простым на мой взгляд путем - по url с переменной $og_ulr и вышеупомянутым $_SERVER['REQUEST_URI'], оба при сравнении с текстовой строкой вида "/index.php?route=information/information&information_id=4" дают false. И нужный пункт не светится. Если текст в кавычках обозначить за переменной, например, $about - та же петрушка. Что-то видимо делаю не так. Как вариант думал проверять по $information_id для вертикального меню с инфой и id категории ($path) для горизонтального. Но вертикальное делаю вместо модуля категорий, в category.tpl, в его контроллере не упомянута $information_id вообще, ее надо там определить судя по всему. И задать ей нужное значение. Как это сделать - не нашел. Без этого работает только на информационных страницах. Аналогично в хедере нет переменной $path. Такие пироги. С php до этого не сталкивался вообще, а сделать надо. Надеюсь на вашу помощь. upd: https://opencartforum.com/topic/11529-resheno-proverka-kakaia-tekuschaia-stranitca-uslovi/?do=findComment&comment=75457 проделал штуки из этого поста. $current_page = $information_id и $current_page = $category_id в соответствующих контроллерах. По идее при большом количестве информационных страниц (>10) могут возникнуть траблы с одинаковыми id. А так работает. Спасибо) Змінено 20 червня 2014 користувачем Reddie Надіслати Поділитися на інших сайтах More sharing options... 6 months later... gello93 Опубліковано: 22 грудня 2014 Share Опубліковано: 22 грудня 2014 Я сделал может и по ленивом, но действенно и просто. Редактировал только header.tplВверху вставил код: <?php $path = "common/home"; $url = $_SERVER['REQUEST_URI']; if ($url == "/" or strripos($url, $path)) { $is_home = TRUE; }else{ $is_home = false; } ?> И далее в шапке делал проверку: <?php if (!$is_home) {echo "other_header";} ?> или наоборот: <?php if ($is_home) {echo "home_header";} ?> 3 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Alexlife Опубліковано: 16 лютого 2016 Share Опубліковано: 16 лютого 2016 последнее рулит) спс Надіслати Поділитися на інших сайтах More sharing options... sammygr Опубліковано: 24 лютого 2016 Share Опубліковано: 24 лютого 2016 Ну раз уж подняли старую тему, то и я спрошу) Нужно спрятать элемент не только на главной, но и на одной из информационных страниц. На данный момент для главной реализовано вот так: <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?> <!-- здесь вставить что-то только для главной страницы --> <?php } else {?> <!-- здесь вставить что-то для всех остальных страниц, кроме главной --> <?php } ?> Взято отсюда Подскажите, как сюда добавить условие для еще одной страницы (пускай её id=4), чтоб на ней элемент тоже не показывался? 1 Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Проверка, какая текущая страница - условие в php Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
meowmeow Опубліковано: 15 серпня 2012 Автор Share Опубліковано: 15 серпня 2012 Я задаю значение в контроллере страницы home: $this->data['current_page']='home'; В шаблоне задаю: <?php if ($current_page=='home') { ?> Но вылезает ошибка Notice: Undefined variable: current_page in Z:homemagazin1wwwcatalogviewthemedefaulttemplatecommonheader.tpl on line 74 Все верно, т.к проверяется значение в header.tpl, а в контроллере хедера переменная не задекларирована. Как получить значение переменной из контроллера home в контроллере header? Заметил, что например заголовок можно получить,там есть такая строка: $this->data['title'] = $this->document->getTitle(); Видимо как то аналогично, но как прописать? Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 15 серпня 2012 Share Опубліковано: 15 серпня 2012 (змінено) добавьте сквозную переменную в класс "document" [=== upload/system/library/document.php ===] аналогично той же "title". а потом уже в контроллере home присваивайте ей необходимое значение и проверяйте в шаблоне. обрамите свой код в соответствующие тэги Змінено 15 серпня 2012 користувачем afwollis 1 Надіслати Поділитися на інших сайтах More sharing options... meowmeow Опубліковано: 16 серпня 2012 Автор Share Опубліковано: 16 серпня 2012 Получилось :eek: Спасибо! Надіслати Поділитися на інших сайтах More sharing options... 2kes Опубліковано: 17 серпня 2012 Share Опубліковано: 17 серпня 2012 расскажи как? если не трудно=) Надіслати Поділитися на інших сайтах More sharing options... meowmeow Опубліковано: 21 серпня 2012 Автор Share Опубліковано: 21 серпня 2012 2kes, Придумал новую переменную - current_page. Далее пошагово, какие строки куда добавлял: 1. В файле document.php (system/library/) добавил две функции - получение новой переменной и передача новой переменной: public function setCurrent($current_page) { $this->current_page = $current_page; } public function getCurrent() { return $this->current_page; } 2. В файле home.php (catalog/controller/common) устанавливаем значение переменной: $this->document->setCurrent('home'); 3. В файле header.php (catalog/controller/common) получаем значение переменной: $this->data['current_page'] = $this->document->getCurrent(); 4. Ну и в конце концов, в файле шаблона header.tpl (catalog/view/theme/default/template/common) задаем условие, которое проверяет значение этой переменной: <?php if ($current_page=='home') { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> 2 Надіслати Поділитися на інших сайтах More sharing options... Baco Опубліковано: 21 серпня 2012 Share Опубліковано: 21 серпня 2012 Тут интересное решение от камрада из дальнего востока... Надіслати Поділитися на інших сайтах More sharing options... 1 month later... 2kes Опубліковано: 4 жовтня 2012 Share Опубліковано: 4 жовтня 2012 Огромное спасибо! Только для статических страниц, категорий, страницы продукта, корзины и т.д. точно также как и для главной значение переменной указать нужно. Иначе будет ошибка о том что переменная не найдена, в случае если вы перейдете в описание продукта, например. Надіслати Поділитися на інших сайтах More sharing options... meowmeow Опубліковано: 4 жовтня 2012 Автор Share Опубліковано: 4 жовтня 2012 Ну, можно сделать условие в случае отсутствия переменной Надіслати Поділитися на інших сайтах More sharing options... 12strun Опубліковано: 5 жовтня 2012 Share Опубліковано: 5 жовтня 2012 По моему вы тут велосипед изобретаете... У меня реализовано проще: if (!isset($this->request->get['route'])) { $this->request->get['route']='common/home'; // Чтобы не выдавало ошибку, если юзер набрал адрес в браузере руками } if ($this->request->get['route']=='common/home') { echo 'Я на главной'; } else { echo 'А это уже не главная страница'; } P.S. По аналогии можно и другие страницы идентифицировать... 5 Надіслати Поділитися на інших сайтах More sharing options... 9 months later... nevredimiy Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 По моему вы тут велосипед изобретаете... У меня реализовано проще: if (!isset($this->request->get['route'])) { $this->request->get['route']='common/home'; // Чтобы не выдавало ошибку, если юзер набрал адрес в браузере руками } if ($this->request->get['route']=='common/home') { echo 'Я на главной'; } else { echo 'А это уже не главная страница'; } P.S. По аналогии можно и другие страницы идентифицировать... Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Надіслати Поділитися на інших сайтах More sharing options... nevredimiy Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 У меня, почему-то, переменная current_page пустая. Не могу почнять почему. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 а $_SERVER['REQUEST_URI'] чем не подходит?? Надіслати Поділитися на інших сайтах More sharing options... 12strun Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Проверяйте по id статьи. Надіслати Поділитися на інших сайтах More sharing options... xdicolt Опубліковано: 30 липня 2013 Share Опубліковано: 30 липня 2013 Ну, можно сделать условие в случае отсутствия переменной скажите пожалуйста, а как точнее условие прописать? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... DAN Опубліковано: 11 серпня 2013 Share Опубліковано: 11 серпня 2013 (змінено) Проверяйте по id статьи. А как условие для проверки id статьи прописать? Что то не вдуплюсь. ВДУПЛИЛСЯ :-) $this->request->get['information_id']== Змінено 11 серпня 2013 користувачем DAN Надіслати Поділитися на інших сайтах More sharing options... 8 months later... Romans281 Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 (змінено) 2kes, Придумал новую переменную - current_page. Далее пошагово, какие строки куда добавлял: 1. В файле document.php (system/library/) добавил две функции - получение новой переменной и передача новой переменной: public function setCurrent($current_page) { $this->current_page = $current_page; } public function getCurrent() { return $this->current_page; } 2. В файле home.php (catalog/controller/common) устанавливаем значение переменной: $this->document->setCurrent('home'); 3. В файле header.php (catalog/controller/common) получаем значение переменной: $this->data['current_page'] = $this->document->getCurrent(); 4. Ну и в конце концов, в файле шаблона header.tpl (catalog/view/theme/default/template/common) задаем условие, которое проверяет значение этой переменной: <?php if ($current_page=='home') { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> Почему то выдаёт ошибку Notice: Undefined property: Document::$current_page in /system/library/document.php on line 22 Уже Разобрался СПАСИБО! Змінено 30 квітня 2014 користувачем Romans281 Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 В document.php после объявления класса надо добавить private $current_page; Надіслати Поділитися на інших сайтах More sharing options... vtx Опубліковано: 7 травня 2014 Share Опубліковано: 7 травня 2014 а $_SERVER['REQUEST_URI'] чем не подходит?? +1. Не стоит городить в контроллерах лишнего, да и не за чем. 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Reddie Опубліковано: 20 червня 2014 Share Опубліковано: 20 червня 2014 (змінено) Приветствую, уважаемые форумчане. Никак не могу разобраться с выделением пунктов. OCstore 1.5.5.1.2 Пытаюсь в вертикальном меню сделать инфу, в горизонтальном - категории. Пробовал самым простым на мой взгляд путем - по url с переменной $og_ulr и вышеупомянутым $_SERVER['REQUEST_URI'], оба при сравнении с текстовой строкой вида "/index.php?route=information/information&information_id=4" дают false. И нужный пункт не светится. Если текст в кавычках обозначить за переменной, например, $about - та же петрушка. Что-то видимо делаю не так. Как вариант думал проверять по $information_id для вертикального меню с инфой и id категории ($path) для горизонтального. Но вертикальное делаю вместо модуля категорий, в category.tpl, в его контроллере не упомянута $information_id вообще, ее надо там определить судя по всему. И задать ей нужное значение. Как это сделать - не нашел. Без этого работает только на информационных страницах. Аналогично в хедере нет переменной $path. Такие пироги. С php до этого не сталкивался вообще, а сделать надо. Надеюсь на вашу помощь. upd: https://opencartforum.com/topic/11529-resheno-proverka-kakaia-tekuschaia-stranitca-uslovi/?do=findComment&comment=75457 проделал штуки из этого поста. $current_page = $information_id и $current_page = $category_id в соответствующих контроллерах. По идее при большом количестве информационных страниц (>10) могут возникнуть траблы с одинаковыми id. А так работает. Спасибо) Змінено 20 червня 2014 користувачем Reddie Надіслати Поділитися на інших сайтах More sharing options... 6 months later... gello93 Опубліковано: 22 грудня 2014 Share Опубліковано: 22 грудня 2014 Я сделал может и по ленивом, но действенно и просто. Редактировал только header.tplВверху вставил код: <?php $path = "common/home"; $url = $_SERVER['REQUEST_URI']; if ($url == "/" or strripos($url, $path)) { $is_home = TRUE; }else{ $is_home = false; } ?> И далее в шапке делал проверку: <?php if (!$is_home) {echo "other_header";} ?> или наоборот: <?php if ($is_home) {echo "home_header";} ?> 3 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Alexlife Опубліковано: 16 лютого 2016 Share Опубліковано: 16 лютого 2016 последнее рулит) спс Надіслати Поділитися на інших сайтах More sharing options... sammygr Опубліковано: 24 лютого 2016 Share Опубліковано: 24 лютого 2016 Ну раз уж подняли старую тему, то и я спрошу) Нужно спрятать элемент не только на главной, но и на одной из информационных страниц. На данный момент для главной реализовано вот так: <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?> <!-- здесь вставить что-то только для главной страницы --> <?php } else {?> <!-- здесь вставить что-то для всех остальных страниц, кроме главной --> <?php } ?> Взято отсюда Подскажите, как сюда добавить условие для еще одной страницы (пускай её id=4), чтоб на ней элемент тоже не показывался? 1 Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Проверка, какая текущая страница - условие в php Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
meowmeow Опубліковано: 16 серпня 2012 Автор Share Опубліковано: 16 серпня 2012 Получилось :eek: Спасибо! Надіслати Поділитися на інших сайтах More sharing options...
2kes Опубліковано: 17 серпня 2012 Share Опубліковано: 17 серпня 2012 расскажи как? если не трудно=) Надіслати Поділитися на інших сайтах More sharing options...
meowmeow Опубліковано: 21 серпня 2012 Автор Share Опубліковано: 21 серпня 2012 2kes, Придумал новую переменную - current_page. Далее пошагово, какие строки куда добавлял: 1. В файле document.php (system/library/) добавил две функции - получение новой переменной и передача новой переменной: public function setCurrent($current_page) { $this->current_page = $current_page; } public function getCurrent() { return $this->current_page; } 2. В файле home.php (catalog/controller/common) устанавливаем значение переменной: $this->document->setCurrent('home'); 3. В файле header.php (catalog/controller/common) получаем значение переменной: $this->data['current_page'] = $this->document->getCurrent(); 4. Ну и в конце концов, в файле шаблона header.tpl (catalog/view/theme/default/template/common) задаем условие, которое проверяет значение этой переменной: <?php if ($current_page=='home') { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> 2 Надіслати Поділитися на інших сайтах More sharing options...
Baco Опубліковано: 21 серпня 2012 Share Опубліковано: 21 серпня 2012 Тут интересное решение от камрада из дальнего востока... Надіслати Поділитися на інших сайтах More sharing options... 1 month later... 2kes Опубліковано: 4 жовтня 2012 Share Опубліковано: 4 жовтня 2012 Огромное спасибо! Только для статических страниц, категорий, страницы продукта, корзины и т.д. точно также как и для главной значение переменной указать нужно. Иначе будет ошибка о том что переменная не найдена, в случае если вы перейдете в описание продукта, например. Надіслати Поділитися на інших сайтах More sharing options... meowmeow Опубліковано: 4 жовтня 2012 Автор Share Опубліковано: 4 жовтня 2012 Ну, можно сделать условие в случае отсутствия переменной Надіслати Поділитися на інших сайтах More sharing options... 12strun Опубліковано: 5 жовтня 2012 Share Опубліковано: 5 жовтня 2012 По моему вы тут велосипед изобретаете... У меня реализовано проще: if (!isset($this->request->get['route'])) { $this->request->get['route']='common/home'; // Чтобы не выдавало ошибку, если юзер набрал адрес в браузере руками } if ($this->request->get['route']=='common/home') { echo 'Я на главной'; } else { echo 'А это уже не главная страница'; } P.S. По аналогии можно и другие страницы идентифицировать... 5 Надіслати Поділитися на інших сайтах More sharing options... 9 months later... nevredimiy Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 По моему вы тут велосипед изобретаете... У меня реализовано проще: if (!isset($this->request->get['route'])) { $this->request->get['route']='common/home'; // Чтобы не выдавало ошибку, если юзер набрал адрес в браузере руками } if ($this->request->get['route']=='common/home') { echo 'Я на главной'; } else { echo 'А это уже не главная страница'; } P.S. По аналогии можно и другие страницы идентифицировать... Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Надіслати Поділитися на інших сайтах More sharing options... nevredimiy Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 У меня, почему-то, переменная current_page пустая. Не могу почнять почему. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 а $_SERVER['REQUEST_URI'] чем не подходит?? Надіслати Поділитися на інших сайтах More sharing options... 12strun Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Проверяйте по id статьи. Надіслати Поділитися на інших сайтах More sharing options... xdicolt Опубліковано: 30 липня 2013 Share Опубліковано: 30 липня 2013 Ну, можно сделать условие в случае отсутствия переменной скажите пожалуйста, а как точнее условие прописать? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... DAN Опубліковано: 11 серпня 2013 Share Опубліковано: 11 серпня 2013 (змінено) Проверяйте по id статьи. А как условие для проверки id статьи прописать? Что то не вдуплюсь. ВДУПЛИЛСЯ :-) $this->request->get['information_id']== Змінено 11 серпня 2013 користувачем DAN Надіслати Поділитися на інших сайтах More sharing options... 8 months later... Romans281 Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 (змінено) 2kes, Придумал новую переменную - current_page. Далее пошагово, какие строки куда добавлял: 1. В файле document.php (system/library/) добавил две функции - получение новой переменной и передача новой переменной: public function setCurrent($current_page) { $this->current_page = $current_page; } public function getCurrent() { return $this->current_page; } 2. В файле home.php (catalog/controller/common) устанавливаем значение переменной: $this->document->setCurrent('home'); 3. В файле header.php (catalog/controller/common) получаем значение переменной: $this->data['current_page'] = $this->document->getCurrent(); 4. Ну и в конце концов, в файле шаблона header.tpl (catalog/view/theme/default/template/common) задаем условие, которое проверяет значение этой переменной: <?php if ($current_page=='home') { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> Почему то выдаёт ошибку Notice: Undefined property: Document::$current_page in /system/library/document.php on line 22 Уже Разобрался СПАСИБО! Змінено 30 квітня 2014 користувачем Romans281 Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 В document.php после объявления класса надо добавить private $current_page; Надіслати Поділитися на інших сайтах More sharing options... vtx Опубліковано: 7 травня 2014 Share Опубліковано: 7 травня 2014 а $_SERVER['REQUEST_URI'] чем не подходит?? +1. Не стоит городить в контроллерах лишнего, да и не за чем. 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Reddie Опубліковано: 20 червня 2014 Share Опубліковано: 20 червня 2014 (змінено) Приветствую, уважаемые форумчане. Никак не могу разобраться с выделением пунктов. OCstore 1.5.5.1.2 Пытаюсь в вертикальном меню сделать инфу, в горизонтальном - категории. Пробовал самым простым на мой взгляд путем - по url с переменной $og_ulr и вышеупомянутым $_SERVER['REQUEST_URI'], оба при сравнении с текстовой строкой вида "/index.php?route=information/information&information_id=4" дают false. И нужный пункт не светится. Если текст в кавычках обозначить за переменной, например, $about - та же петрушка. Что-то видимо делаю не так. Как вариант думал проверять по $information_id для вертикального меню с инфой и id категории ($path) для горизонтального. Но вертикальное делаю вместо модуля категорий, в category.tpl, в его контроллере не упомянута $information_id вообще, ее надо там определить судя по всему. И задать ей нужное значение. Как это сделать - не нашел. Без этого работает только на информационных страницах. Аналогично в хедере нет переменной $path. Такие пироги. С php до этого не сталкивался вообще, а сделать надо. Надеюсь на вашу помощь. upd: https://opencartforum.com/topic/11529-resheno-proverka-kakaia-tekuschaia-stranitca-uslovi/?do=findComment&comment=75457 проделал штуки из этого поста. $current_page = $information_id и $current_page = $category_id в соответствующих контроллерах. По идее при большом количестве информационных страниц (>10) могут возникнуть траблы с одинаковыми id. А так работает. Спасибо) Змінено 20 червня 2014 користувачем Reddie Надіслати Поділитися на інших сайтах More sharing options... 6 months later... gello93 Опубліковано: 22 грудня 2014 Share Опубліковано: 22 грудня 2014 Я сделал может и по ленивом, но действенно и просто. Редактировал только header.tplВверху вставил код: <?php $path = "common/home"; $url = $_SERVER['REQUEST_URI']; if ($url == "/" or strripos($url, $path)) { $is_home = TRUE; }else{ $is_home = false; } ?> И далее в шапке делал проверку: <?php if (!$is_home) {echo "other_header";} ?> или наоборот: <?php if ($is_home) {echo "home_header";} ?> 3 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Alexlife Опубліковано: 16 лютого 2016 Share Опубліковано: 16 лютого 2016 последнее рулит) спс Надіслати Поділитися на інших сайтах More sharing options... sammygr Опубліковано: 24 лютого 2016 Share Опубліковано: 24 лютого 2016 Ну раз уж подняли старую тему, то и я спрошу) Нужно спрятать элемент не только на главной, но и на одной из информационных страниц. На данный момент для главной реализовано вот так: <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?> <!-- здесь вставить что-то только для главной страницы --> <?php } else {?> <!-- здесь вставить что-то для всех остальных страниц, кроме главной --> <?php } ?> Взято отсюда Подскажите, как сюда добавить условие для еще одной страницы (пускай её id=4), чтоб на ней элемент тоже не показывался? 1 Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Проверка, какая текущая страница - условие в php Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
2kes Опубліковано: 4 жовтня 2012 Share Опубліковано: 4 жовтня 2012 Огромное спасибо! Только для статических страниц, категорий, страницы продукта, корзины и т.д. точно также как и для главной значение переменной указать нужно. Иначе будет ошибка о том что переменная не найдена, в случае если вы перейдете в описание продукта, например. Надіслати Поділитися на інших сайтах More sharing options...
meowmeow Опубліковано: 4 жовтня 2012 Автор Share Опубліковано: 4 жовтня 2012 Ну, можно сделать условие в случае отсутствия переменной Надіслати Поділитися на інших сайтах More sharing options...
12strun Опубліковано: 5 жовтня 2012 Share Опубліковано: 5 жовтня 2012 По моему вы тут велосипед изобретаете... У меня реализовано проще: if (!isset($this->request->get['route'])) { $this->request->get['route']='common/home'; // Чтобы не выдавало ошибку, если юзер набрал адрес в браузере руками } if ($this->request->get['route']=='common/home') { echo 'Я на главной'; } else { echo 'А это уже не главная страница'; } P.S. По аналогии можно и другие страницы идентифицировать... 5 Надіслати Поділитися на інших сайтах More sharing options...
nevredimiy Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 По моему вы тут велосипед изобретаете... У меня реализовано проще: if (!isset($this->request->get['route'])) { $this->request->get['route']='common/home'; // Чтобы не выдавало ошибку, если юзер набрал адрес в браузере руками } if ($this->request->get['route']=='common/home') { echo 'Я на главной'; } else { echo 'А это уже не главная страница'; } P.S. По аналогии можно и другие страницы идентифицировать... Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Надіслати Поділитися на інших сайтах More sharing options...
nevredimiy Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 У меня, почему-то, переменная current_page пустая. Не могу почнять почему. Надіслати Поділитися на інших сайтах More sharing options...
ravilr Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 а $_SERVER['REQUEST_URI'] чем не подходит?? Надіслати Поділитися на інших сайтах More sharing options... 12strun Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Проверяйте по id статьи. Надіслати Поділитися на інших сайтах More sharing options... xdicolt Опубліковано: 30 липня 2013 Share Опубліковано: 30 липня 2013 Ну, можно сделать условие в случае отсутствия переменной скажите пожалуйста, а как точнее условие прописать? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... DAN Опубліковано: 11 серпня 2013 Share Опубліковано: 11 серпня 2013 (змінено) Проверяйте по id статьи. А как условие для проверки id статьи прописать? Что то не вдуплюсь. ВДУПЛИЛСЯ :-) $this->request->get['information_id']== Змінено 11 серпня 2013 користувачем DAN Надіслати Поділитися на інших сайтах More sharing options... 8 months later... Romans281 Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 (змінено) 2kes, Придумал новую переменную - current_page. Далее пошагово, какие строки куда добавлял: 1. В файле document.php (system/library/) добавил две функции - получение новой переменной и передача новой переменной: public function setCurrent($current_page) { $this->current_page = $current_page; } public function getCurrent() { return $this->current_page; } 2. В файле home.php (catalog/controller/common) устанавливаем значение переменной: $this->document->setCurrent('home'); 3. В файле header.php (catalog/controller/common) получаем значение переменной: $this->data['current_page'] = $this->document->getCurrent(); 4. Ну и в конце концов, в файле шаблона header.tpl (catalog/view/theme/default/template/common) задаем условие, которое проверяет значение этой переменной: <?php if ($current_page=='home') { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> Почему то выдаёт ошибку Notice: Undefined property: Document::$current_page in /system/library/document.php on line 22 Уже Разобрался СПАСИБО! Змінено 30 квітня 2014 користувачем Romans281 Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 В document.php после объявления класса надо добавить private $current_page; Надіслати Поділитися на інших сайтах More sharing options... vtx Опубліковано: 7 травня 2014 Share Опубліковано: 7 травня 2014 а $_SERVER['REQUEST_URI'] чем не подходит?? +1. Не стоит городить в контроллерах лишнего, да и не за чем. 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Reddie Опубліковано: 20 червня 2014 Share Опубліковано: 20 червня 2014 (змінено) Приветствую, уважаемые форумчане. Никак не могу разобраться с выделением пунктов. OCstore 1.5.5.1.2 Пытаюсь в вертикальном меню сделать инфу, в горизонтальном - категории. Пробовал самым простым на мой взгляд путем - по url с переменной $og_ulr и вышеупомянутым $_SERVER['REQUEST_URI'], оба при сравнении с текстовой строкой вида "/index.php?route=information/information&information_id=4" дают false. И нужный пункт не светится. Если текст в кавычках обозначить за переменной, например, $about - та же петрушка. Что-то видимо делаю не так. Как вариант думал проверять по $information_id для вертикального меню с инфой и id категории ($path) для горизонтального. Но вертикальное делаю вместо модуля категорий, в category.tpl, в его контроллере не упомянута $information_id вообще, ее надо там определить судя по всему. И задать ей нужное значение. Как это сделать - не нашел. Без этого работает только на информационных страницах. Аналогично в хедере нет переменной $path. Такие пироги. С php до этого не сталкивался вообще, а сделать надо. Надеюсь на вашу помощь. upd: https://opencartforum.com/topic/11529-resheno-proverka-kakaia-tekuschaia-stranitca-uslovi/?do=findComment&comment=75457 проделал штуки из этого поста. $current_page = $information_id и $current_page = $category_id в соответствующих контроллерах. По идее при большом количестве информационных страниц (>10) могут возникнуть траблы с одинаковыми id. А так работает. Спасибо) Змінено 20 червня 2014 користувачем Reddie Надіслати Поділитися на інших сайтах More sharing options... 6 months later... gello93 Опубліковано: 22 грудня 2014 Share Опубліковано: 22 грудня 2014 Я сделал может и по ленивом, но действенно и просто. Редактировал только header.tplВверху вставил код: <?php $path = "common/home"; $url = $_SERVER['REQUEST_URI']; if ($url == "/" or strripos($url, $path)) { $is_home = TRUE; }else{ $is_home = false; } ?> И далее в шапке делал проверку: <?php if (!$is_home) {echo "other_header";} ?> или наоборот: <?php if ($is_home) {echo "home_header";} ?> 3 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Alexlife Опубліковано: 16 лютого 2016 Share Опубліковано: 16 лютого 2016 последнее рулит) спс Надіслати Поділитися на інших сайтах More sharing options... sammygr Опубліковано: 24 лютого 2016 Share Опубліковано: 24 лютого 2016 Ну раз уж подняли старую тему, то и я спрошу) Нужно спрятать элемент не только на главной, но и на одной из информационных страниц. На данный момент для главной реализовано вот так: <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?> <!-- здесь вставить что-то только для главной страницы --> <?php } else {?> <!-- здесь вставить что-то для всех остальных страниц, кроме главной --> <?php } ?> Взято отсюда Подскажите, как сюда добавить условие для еще одной страницы (пускай её id=4), чтоб на ней элемент тоже не показывался? 1 Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] Проверка, какая текущая страница - условие в php
12strun Опубліковано: 24 липня 2013 Share Опубліковано: 24 липня 2013 Да. Но если страницы статические то это не работает. Допустим у меня будет в главном меню две ссылки на статью, а переменная $this->request->get['route'] будет равна information/information, и обоих случаях Проверяйте по id статьи. Надіслати Поділитися на інших сайтах More sharing options...
xdicolt Опубліковано: 30 липня 2013 Share Опубліковано: 30 липня 2013 Ну, можно сделать условие в случае отсутствия переменной скажите пожалуйста, а как точнее условие прописать? Надіслати Поділитися на інших сайтах More sharing options...
DAN Опубліковано: 11 серпня 2013 Share Опубліковано: 11 серпня 2013 (змінено) Проверяйте по id статьи. А как условие для проверки id статьи прописать? Что то не вдуплюсь. ВДУПЛИЛСЯ :-) $this->request->get['information_id']== Змінено 11 серпня 2013 користувачем DAN Надіслати Поділитися на інших сайтах More sharing options...
Romans281 Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 (змінено) 2kes, Придумал новую переменную - current_page. Далее пошагово, какие строки куда добавлял: 1. В файле document.php (system/library/) добавил две функции - получение новой переменной и передача новой переменной: public function setCurrent($current_page) { $this->current_page = $current_page; } public function getCurrent() { return $this->current_page; } 2. В файле home.php (catalog/controller/common) устанавливаем значение переменной: $this->document->setCurrent('home'); 3. В файле header.php (catalog/controller/common) получаем значение переменной: $this->data['current_page'] = $this->document->getCurrent(); 4. Ну и в конце концов, в файле шаблона header.tpl (catalog/view/theme/default/template/common) задаем условие, которое проверяет значение этой переменной: <?php if ($current_page=='home') { ?> <div class="1"></div><?php } else { ?> <div class="2"><?php echo $heading_title; ?> </div> <?php } ?> Почему то выдаёт ошибку Notice: Undefined property: Document::$current_page in /system/library/document.php on line 22 Уже Разобрался СПАСИБО! Змінено 30 квітня 2014 користувачем Romans281 Надіслати Поділитися на інших сайтах More sharing options...
shoputils Опубліковано: 30 квітня 2014 Share Опубліковано: 30 квітня 2014 В document.php после объявления класса надо добавить private $current_page; Надіслати Поділитися на інших сайтах More sharing options... vtx Опубліковано: 7 травня 2014 Share Опубліковано: 7 травня 2014 а $_SERVER['REQUEST_URI'] чем не подходит?? +1. Не стоит городить в контроллерах лишнего, да и не за чем. 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Reddie Опубліковано: 20 червня 2014 Share Опубліковано: 20 червня 2014 (змінено) Приветствую, уважаемые форумчане. Никак не могу разобраться с выделением пунктов. OCstore 1.5.5.1.2 Пытаюсь в вертикальном меню сделать инфу, в горизонтальном - категории. Пробовал самым простым на мой взгляд путем - по url с переменной $og_ulr и вышеупомянутым $_SERVER['REQUEST_URI'], оба при сравнении с текстовой строкой вида "/index.php?route=information/information&information_id=4" дают false. И нужный пункт не светится. Если текст в кавычках обозначить за переменной, например, $about - та же петрушка. Что-то видимо делаю не так. Как вариант думал проверять по $information_id для вертикального меню с инфой и id категории ($path) для горизонтального. Но вертикальное делаю вместо модуля категорий, в category.tpl, в его контроллере не упомянута $information_id вообще, ее надо там определить судя по всему. И задать ей нужное значение. Как это сделать - не нашел. Без этого работает только на информационных страницах. Аналогично в хедере нет переменной $path. Такие пироги. С php до этого не сталкивался вообще, а сделать надо. Надеюсь на вашу помощь. upd: https://opencartforum.com/topic/11529-resheno-proverka-kakaia-tekuschaia-stranitca-uslovi/?do=findComment&comment=75457 проделал штуки из этого поста. $current_page = $information_id и $current_page = $category_id в соответствующих контроллерах. По идее при большом количестве информационных страниц (>10) могут возникнуть траблы с одинаковыми id. А так работает. Спасибо) Змінено 20 червня 2014 користувачем Reddie Надіслати Поділитися на інших сайтах More sharing options... 6 months later... gello93 Опубліковано: 22 грудня 2014 Share Опубліковано: 22 грудня 2014 Я сделал может и по ленивом, но действенно и просто. Редактировал только header.tplВверху вставил код: <?php $path = "common/home"; $url = $_SERVER['REQUEST_URI']; if ($url == "/" or strripos($url, $path)) { $is_home = TRUE; }else{ $is_home = false; } ?> И далее в шапке делал проверку: <?php if (!$is_home) {echo "other_header";} ?> или наоборот: <?php if ($is_home) {echo "home_header";} ?> 3 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Alexlife Опубліковано: 16 лютого 2016 Share Опубліковано: 16 лютого 2016 последнее рулит) спс Надіслати Поділитися на інших сайтах More sharing options... sammygr Опубліковано: 24 лютого 2016 Share Опубліковано: 24 лютого 2016 Ну раз уж подняли старую тему, то и я спрошу) Нужно спрятать элемент не только на главной, но и на одной из информационных страниц. На данный момент для главной реализовано вот так: <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?> <!-- здесь вставить что-то только для главной страницы --> <?php } else {?> <!-- здесь вставить что-то для всех остальных страниц, кроме главной --> <?php } ?> Взято отсюда Подскажите, как сюда добавить условие для еще одной страницы (пускай её id=4), чтоб на ней элемент тоже не показывался? 1 Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
vtx Опубліковано: 7 травня 2014 Share Опубліковано: 7 травня 2014 а $_SERVER['REQUEST_URI'] чем не подходит?? +1. Не стоит городить в контроллерах лишнего, да и не за чем. 1 Надіслати Поділитися на інших сайтах More sharing options...
Reddie Опубліковано: 20 червня 2014 Share Опубліковано: 20 червня 2014 (змінено) Приветствую, уважаемые форумчане. Никак не могу разобраться с выделением пунктов. OCstore 1.5.5.1.2 Пытаюсь в вертикальном меню сделать инфу, в горизонтальном - категории. Пробовал самым простым на мой взгляд путем - по url с переменной $og_ulr и вышеупомянутым $_SERVER['REQUEST_URI'], оба при сравнении с текстовой строкой вида "/index.php?route=information/information&information_id=4" дают false. И нужный пункт не светится. Если текст в кавычках обозначить за переменной, например, $about - та же петрушка. Что-то видимо делаю не так. Как вариант думал проверять по $information_id для вертикального меню с инфой и id категории ($path) для горизонтального. Но вертикальное делаю вместо модуля категорий, в category.tpl, в его контроллере не упомянута $information_id вообще, ее надо там определить судя по всему. И задать ей нужное значение. Как это сделать - не нашел. Без этого работает только на информационных страницах. Аналогично в хедере нет переменной $path. Такие пироги. С php до этого не сталкивался вообще, а сделать надо. Надеюсь на вашу помощь. upd: https://opencartforum.com/topic/11529-resheno-proverka-kakaia-tekuschaia-stranitca-uslovi/?do=findComment&comment=75457 проделал штуки из этого поста. $current_page = $information_id и $current_page = $category_id в соответствующих контроллерах. По идее при большом количестве информационных страниц (>10) могут возникнуть траблы с одинаковыми id. А так работает. Спасибо) Змінено 20 червня 2014 користувачем Reddie Надіслати Поділитися на інших сайтах More sharing options...
gello93 Опубліковано: 22 грудня 2014 Share Опубліковано: 22 грудня 2014 Я сделал может и по ленивом, но действенно и просто. Редактировал только header.tplВверху вставил код: <?php $path = "common/home"; $url = $_SERVER['REQUEST_URI']; if ($url == "/" or strripos($url, $path)) { $is_home = TRUE; }else{ $is_home = false; } ?> И далее в шапке делал проверку: <?php if (!$is_home) {echo "other_header";} ?> или наоборот: <?php if ($is_home) {echo "home_header";} ?> 3 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Alexlife Опубліковано: 16 лютого 2016 Share Опубліковано: 16 лютого 2016 последнее рулит) спс Надіслати Поділитися на інших сайтах More sharing options... sammygr Опубліковано: 24 лютого 2016 Share Опубліковано: 24 лютого 2016 Ну раз уж подняли старую тему, то и я спрошу) Нужно спрятать элемент не только на главной, но и на одной из информационных страниц. На данный момент для главной реализовано вот так: <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?> <!-- здесь вставить что-то только для главной страницы --> <?php } else {?> <!-- здесь вставить что-то для всех остальных страниц, кроме главной --> <?php } ?> Взято отсюда Подскажите, как сюда добавить условие для еще одной страницы (пускай её id=4), чтоб на ней элемент тоже не показывался? 1 Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Alexlife Опубліковано: 16 лютого 2016 Share Опубліковано: 16 лютого 2016 последнее рулит) спс Надіслати Поділитися на інших сайтах More sharing options...
sammygr Опубліковано: 24 лютого 2016 Share Опубліковано: 24 лютого 2016 Ну раз уж подняли старую тему, то и я спрошу) Нужно спрятать элемент не только на главной, но и на одной из информационных страниц. На данный момент для главной реализовано вот так: <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?> <!-- здесь вставить что-то только для главной страницы --> <?php } else {?> <!-- здесь вставить что-то для всех остальных страниц, кроме главной --> <?php } ?> Взято отсюда Подскажите, как сюда добавить условие для еще одной страницы (пускай её id=4), чтоб на ней элемент тоже не показывался? 1 Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts