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

Не срабатывает условие для категории

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

Здравствуйте, написала для категории с id 91 условие, но оно не срабатывает, подскажите, пожалуйста, что может быть не так?

 

<?php if ($category_id == 91) { ?>
текст
        <?php } ?>

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


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

а там точно 91?

 

var_dump что говорит?

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


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

 у вас из контроллера category_id разве передается в category.tpl ?

Простая проверка id категории ничего не даст

Надо из контроллера ее включить в массив $data

И тогда только можно использовать.

Типа

$data['cat_id_to_tpl'] =  $category_id;

и уже 

$cat_id_to_tpl использовать в шаблоне вывода

Для начала просто выведя номер категории через

<?php echo $cat_id_to_tpl; ?>

Изменено пользователем jaffagold

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


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

А можете точнее написать как мне прописать в контроллере и в тпл файле?

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


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

Во-первых, принято всю логику прописывать в контроллере, а вывод делать в tpl

То, что вы делаете, создавая логику category.tpl может работать, но считается сделанным не по стандарту. Но если речь идет об одной правке, то ничего страшного не случится.

Только не забывайте создавать резервные копии файлов до правки.

Что касается самого кода. Если осторожно и в пошаговом режиме, то примерно так

То в контроллере category.php есть в районе 140 строки такой код, который заполняет массив $data для передачи данных в category.tpl

То, что выделено зеленым добавлено, чтобы передать в этом массиве id текущей категории. Чтобы не было путаницы имя переменной сделано понятным для восприятия и чтобы ничего не зацепить, в случае ошибки.

Спойлер

            $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');
            $data['compare'] = $this->url->link('product/compare');

            $url = '';

            if (isset($this->request->get['filter'])) {
                $url .= '&filter=' . $this->request->get['filter'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            if (isset($this->request->get['limit'])) {
                $url .= '&limit=' . $this->request->get['limit'];
            }
//id категории для передачи в tpl
            $data['cat_id_to_tpl'] =  $category_id;
//

            $data['categories'] = array();

 

Теперь, в нужном месте в файле category.tpl

Можно вставить такой учебный код

Спойлер

 <!-- вставка id категории -->
      <h1>Test</h1>
      <?php echo $cat_id_to_tpl; ?>
      <?php if ($cat_id_to_tpl == 91) {?>
            <?php echo "Категория совпала"; ?>
            <h3>Ура!!!!!!</h3>
      <?php } ?>

<!-- вставка id категории -->

Тут сначала тестовое сообщение, чтобы выводилось без всяких условий. (так мы убедимся, что правки сработали)

Потом вывод id категории

Потом условие совпадения, в котором вывод сообщения с помощью php и html

Сохранить файлы. Обновить модификаторы. Перезагрузить страницу ( Ctrl+F5).

Проверить появление кода.

Удалить ненужное. Заменить  сообщение на желаемый код. 

 

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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

×

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

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