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

Как вынести корзину в шапку?

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

Собственно задача:есть макет магазина, где меню, поиск и корзина находятся в шапке.Долго копался в админке и еще дольше в коде, как, что и главное где вызывать так и не разобрался до конца. Понятно что скорее всего в самом файле шаблона, но вот какой класс куда подключать и какую функцию вызывать не понятно =(Подскажите пожалуйста, господа хорошие!!!

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


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

На оф сайте был готовый хак. поищи

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


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

спасибо за ответы, решил проблему яваскриптами....костыли конечно но проект нужно было сдавать срочно.Сейчас работаю над парсером экселевского каталога и загрузкой его в базу.Все по-науке с админкой и все такое)))Как соберу все и оттестирую могу выложить как доп. модуль к системе если кому интересно :)

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


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

Как соберу все и оттестирую могу выложить как доп. модуль к системе если кому интересно :D

очень интересно как будет готово было бы неплохо поюзать

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


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

Довольно не сложно нужно в контролер там где отображается шапка catalogcontrollercommonheader.php

вставить для опенкарта 140 на 167 строке этот код

$this->language->load('module/cart');				$this->load->model('tool/seo_url');		    	$this->data['heading_title'] = $this->language->get('heading_title');    			$this->data['text_subtotal'] = $this->language->get('text_subtotal');		$this->data['text_empty'] = $this->language->get('text_empty');    	 		$this->data['products'] = array();		    	foreach ($this->cart->getProducts() as $result) {        	$option_data = array();        	foreach ($result['option'] as $option) {          		$option_data[] = array(            		'name'  => $option['name'],            		'value' => $option['value']          		);        	}			      		$this->data['products'][] = array(        		'name'     => $result['name'],				'option'   => $option_data,        		'quantity' => $result['quantity'],				'stock'    => $result['stock'],				'price'    => $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))),				'href'     => $this->model_tool_seo_url->rewrite($this->url->http('product/product&product_id=' . $result['product_id'])),      		);    	}    	$this->data['subtotal'] = $this->currency->format($this->cart->getTotal());				$this->data['ajax'] = $this->config->get('cart_ajax');

сори спешил делать проект мусор не вычищал, но все работает. После прописываем в шаблоне.

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


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

Я в ступоре. На версии 1.4.0 легко перенес корзину в шапку методами плахи Новая работа на Opencart, но на ОС 0.0.7 такая схема не работает. Подскажите плиз. Fix305, я знаю, ты знаешь ;)

Изменено пользователем afwollis
исправил ссылку

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


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

Я в ступоре. На версии 1.4.0 легко перенес корзину в шапку методами плахи Новая работа на Opencart, но на ОС 0.0.7 такая схема не работает. Подскажите плиз. Fix305, я знаю, ты знаешь ;)

я бы сделал несколько иначе:

копируем файл ..catalogcontrollermodulecart.php и сохраняем под именем, например, carthead.php

открываем его

меняем первую строчку на

class ControllerModuleCarthead extends Controller {
меняем
$this->id = 'cart';
на
$this->id = 'carthead';
в ..catalogcontrollercommonheader.php после:

$this->id = 'header';				if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {			$this->template = $this->config->get('config_template') . '/template/common/header.tpl';		} else {			$this->template = 'default/template/common/header.tpl';		}
вставить

$this->children = array(			'module/carthead'		);
все, теперь в ..catalogviewthemedefaulttemplatecommonheader.tpl доступна переменная $carthead, которая выводит копию (правда немного расплывчатую так как CSSки прописаны для <div id="column_right"> и не действуют на <div id="header">, но это уже мелочи, сам думаю исправишь) бокса корзины, причем с рабочим AXAJ (вроде).

правда непомешает создать шаблончик для новоиспеченной корзины и указать его в файле ..catalogcontrollermodulecarthead.php.

Изменено пользователем afwollis
исправил ссылку

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


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

Результат:Error: Could not load controller module/cart!Пардон, разобрался. Контроллер корзины не надо удалять.

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


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

Здравствуйте.Подскажите, как правильно переносить модули. Я хочу перенести корзину в хидер, пример:беру код с корзиной и другими модулями заодно:

<div id="column_right">  <?php foreach ($modules as $module) { ?>  <?php echo ${$module['code']}; ?>  <?php } ?></div>
и получаю:
Notice: Undefined variable: modules in путь/catalog/view/theme/default/template/common/header.tpl on line 54Warning: Invalid argument supplied for foreach() in путь/catalog/view/theme/default/template/common/header.tpl on line 54
Если перетаскиваю чисто код корзины, то:
Notice: Undefined variable: ajax in путь/catalog/view/theme/default/template/common/header.tpl on line 75

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


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

Попробуйте:

catalog/view/theme/default/template/common/header.tpl

<?php if ($products) { ?>        [url="index.php?route=checkout/cart"](<?php echo $this->cart->countProducts(); ?>) <?php echo $text_shoppingbag; ?>[/url]    <?php    $count=count($totals);    $cartinfo = $totals[$count-1]['text'];    echo $cartinfo;    ?>       <?php } else { ?>       [url="index.php?route=checkout/cart"](<?php echo $this->cart->countProducts(); ?>) <?php echo $text_shoppingbag; ?>[/url]       <?php    foreach ($totals as $total) {     if ($total['title'] != 'Sub-Total:') {            echo $total['text'];         }       }         } ?>
catalog/controller/common/header.php

после

class ControllerCommonHeader extends Controller {   protected function index() {
добавить

$this->data['products'] = array();                foreach ($this->cart->getProducts() as $result) {            $option_data = array();            foreach ($result['option'] as $option) {                  $option_data[] = array(                    'name'  => $option['name'],                    'value' => $option['value']                  );            }
после

$this->data['text_advanced'] = $this->language->get('text_advanced');
добавить

$this->data['text_shoppingbag'] = $this->language->get('text_shoppingbag');
catalog/language/russian/common/header.php

добавить

$_['text_shoppingbag']   = 'Товаров:';
Изменено пользователем afwollis
исправил ссылку

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


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

Попробуйте:

catalog/view/theme/default/template/common/header.tpl

А после чего, если не секрет... Изменено пользователем afwollis
исправил ссылку

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


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

по вкусу

Изменено пользователем afwollis
исправил ссылку

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


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

Теперь сайт вообще не открывается, просто белый фон... Так получается после того как добавляется:

$this->data['products'] = array();                foreach ($this->cart->getProducts() as $result) {            $option_data = array();            foreach ($result['option'] as $option) {                  $option_data[] = array(                    'name'  => $option['name'],                    'value' => $option['value']                  );            }
Изменено пользователем afwollis
исправил ссылку

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


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

Товарищи, помогите с переносом модулей в header.tpl. Пробывал переносить модули отдельно и так:

<?php echo $column_right; ?>
вместо модулей выводится

TOP Notice: Undefined variable: column_right in путь/public_html/catalog/view/theme/default/template/common/header.tpl on line 55

Не могу понять где править и что.

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


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

Как можно перенести корзину в header.tpl без ошибок?

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


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

либо воспользоваться поиском по форуму, либо за деньги =)

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


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

Поиск ответа не дал. Если способами в этой теме, возникают ошибки.

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


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

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


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

Как вызвать $carthead в header?

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


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

<? echo carthead; ?>

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


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

<? echo carthead; ?>

Спасибо. Но все же:

Notice: Use of undefined constant carthead - assumed 'carthead' in путь/catalog/view/theme/default/template/common/header.tpl on line 56carthead

:)

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


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

делайте по инструкции, я сейчас от себя ничего не добавлял, как видите получилось)

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


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

делайте по инструкции, я сейчас от себя ничего не добавлял, как видите получилось)

Завтра попробую на свежую голову, наверное эта ошибка из-за того что не стал делать так называемый "шаблончик для новоиспеченной корзины и указать его в файле "

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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