Перейти к содержанию
View in the app

A better way to browse. Learn more.

Русскоязычное сообщество Opencart

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

В связи с блокировкой банка QIWI оплата через сайт не возможна.
Для оплаты и получения дополнений просьба писать в личные сообщения 
Admin*у
или в Телеграмм https://t.me/pascha_opencart
После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Разные шаблоны страниц

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

Опубликовано

Как же бывает часто при разработке интернет-магазина на базе opencart надо для некой категории или для определенного товара делать вывод по другому шаблону или же для определенных позиций выводить специфические данные.

Как же бывает часто при разработке интернет-магазина на базе opencart надо для некой категории или для определенного товара делать вывод по другому шаблону или же для определенных позиций выводить специфические данные.

Как правило, многие программисты делают условия для вывода другого дизайна, зная id категории или товара, например:

<?php if($product_id == 563){ ?>
	Расположение: <?php echo $location; ?><br>
	Код производителя: <?php echo $sku; ?>
<?php } ?>

Этот подход хорош тем, что его сделать не сложно, быстро и удобно. Однако, в ситуациях когда для каждого товара надо сделать вывод разных данных этот метод превратит код шаблона product.tpl или category.tpl в множество условий и увеличению кода. В дальнейшем поддержка и изменения будут очень проблематичными из-за плохой читаемости кода и его размеров.

Однако, учитывая особенность структуры opencart создать для каждого товара свой шаблон не составит труда. Для этого нам надо изменить в контроллере вывод шаблона и присвоить в админке какой то переменной имя этого шаблона.

Для начала сделаем поле для ввода имени используемого шаблона страницы в админке. Для этого я рекомендую использовать любую ненужную вам переменную, например mpn, эта переменная появилась в версии 1.5.5.1 и на практике лишь единицы её используют. Если вы в ней не сохраняете никаких данных то смело можно использовать под наши цели. mpn в opencart имеет ограничение в 64 символa на уровне базы данных, но для названия шаблона страницы хватит. Для того, что бы её задействовать в магазине достаточно просто изменить языковый файл и переименовать «mpn» в «Имя шаблона» в файле /admin/language/russian/catalog/product.php

Далее в админке пишем название, например template_for_notebook, в директории /catalog/view/theme/default/template/product копируем файл product.tpl и назначаем ему имя которое соответствует введенному только уже с расширение .tpl в нашем случае это template_for_notebook.tpl.

Для того что бы все это заработало нам необходимо просто заменить пару строчек в файле /catalog/controller/product/product.php. Находим:

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
	$this->template = $this->config->get('config_template') . '/template/product/product.tpl';
} else {
	$this->template = 'default/template/product/product.tpl';
}

Заменяем на код

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/'.$product_info['mpn'].'.tpl')) {
    $this->template = $this->config->get('config_template') . '/template/product/'.$product_info['mpn'].'.tpl';
} else {
    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
        $this->template = $this->config->get('config_template') . '/template/product/product.tpl';
    } else {
        $this->template = 'default/template/product/product.tpl';
    }
}

После этих манипуляций можно смело редактировать файл /catalog/view/theme/default/template/product/template_for_notebook.tpl т.к. он будет отвечать лишь за отображения товара в котором мы прописали этот шаблон.

Последние посетители 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.