Jump to content
Sign in to follow this  
NaFigator

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

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Довольно не сложно нужно в контролер там где отображается шапка 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');

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

Share this post


Link to post
Share on other sites

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

Edited by afwollis
исправил ссылку

Share this post


Link to post
Share on other sites

Я в ступоре. На версии 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.

Edited by afwollis
исправил ссылку

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

<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

Share this post


Link to post
Share on other sites

Попробуйте:

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']   = 'Товаров:';
Edited by afwollis
исправил ссылку

Share this post


Link to post
Share on other sites

Попробуйте:

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

А после чего, если не секрет... Edited by afwollis
исправил ссылку

Share this post


Link to post
Share on other sites

по вкусу

Edited by afwollis
исправил ссылку

Share this post


Link to post
Share on other sites

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

$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']                  );            }
Edited by afwollis
исправил ссылку

Share this post


Link to post
Share on other sites

Товарищи, помогите с переносом модулей в 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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

<? echo carthead; ?>

Share this post


Link to post
Share on other sites

<? echo carthead; ?>

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

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

:)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.