Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


NaFigator

Recommended Posts

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

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


  • 2 months later...
  • 2 weeks later...

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

Я в ступоре. На версии 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
исправил ссылку
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

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

<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
исправил ссылку
Надіслати
Поділитися на інших сайтах


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

$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

Не могу понять где править и что.
Надіслати
Поділитися на інших сайтах


Надіслати
Поділитися на інших сайтах


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

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


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.