Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (1)

Лучшие ответы пользователя

Все ответы (1)
  • Как создать макет страницы товара, отличный от других?

    @oleg_plotnik
    Разработчик
    Столкнулся со схожей проблемой. Решения в интернете не устроили. Сделал свой вариант, может кому пригодится.
    Добавляем в catalog\model\catalog\product.php новую функцию
    // получение пути шаблона
    public function getProductLayoutRoute($layout_id) {
    	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "layout_route WHERE layout_id = '" . (int)$layout_id . "'");
    	if ($query->num_rows) {
    		return $query->row['route'];
    	} else {
    		return "";
    	}
    }


    Меняем в catalog\controller\product\product.php строку
    $this->response->setOutput($this->load->view('product/product', $data));

    на
    $layout_id = $this->model_catalog_product->getProductLayoutId($product_id);
    if($layout_id) {
    	$route = $this->model_catalog_product->getProductLayoutRoute($layout_id);
    	// проверяем существование файла шаблона
    	$filepath = DIR_TEMPLATE . $this->config->get('config_theme') . '/template/' . $route . '.tpl';
    	if(file_exists($filepath)) {
    		$this->response->setOutput($this->load->view($route, $data));
    	} else {
    		$this->response->setOutput($this->load->view('product/product', $data));
    	}
    } else {
    	$this->response->setOutput($this->load->view('product/product', $data));
    }


    Далее, создаем копию product.tpl и называем его, скажем, zakaz.tpl. Контроллер копировать НЕ надо.
    В админке добавляем макет Zakaz, указываем путь к новому файлу шаблона product/zakaz (без tpl). Идем в товар, меняю ему дизайн с Product на Zakaz.
    Ответ написан
    2 комментария