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

Редактирование Корзины Покупок

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

Всем доброго времени суток.
У меня стал вопрос изменить внешний вид корзины на главной странице.

<div class="btn-group" id="shopping_cart">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> 
<i class="typcn typcn-shopping-cart"></i> 
<span class="title"> Корзина Покупок</span> 
<span class="font1">Товаров: 0 - (0.00 грн)</span> 
</button>
<div class="dropdown-menu">
<?php echo $cart; ?>
</div>
</div>

Интересует, как прикрутить: 

<div class="btn-group" id="shopping_cart">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="typcn typcn-shopping-cart"></i> 
<span class="title"> Корзина Покупок</span> 
<span class="font1"><?php echo $text_items; ?></span>
</button>
<div class="dropdown-menu">
<?php echo $cart; ?>
</div>
</div>
 

При вот такой замене получаю:

Notice: Undefined variable: text_items in /home/vol2_7/cuccfree.com/cucch_15428377/htdocs/catalog/view/theme/default2/template/common/header.tpl on line 153

 

 Почему php машина ругается на : <span class="font1"><?php echo $text_items; ?></span>  ?
Подскажите как исправить. 
Зарание большое спасибо!

 

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


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

Открыть контроллер модуля корзины и поискать там text_items, может станет понятней.
 
catalog\controller\module\cart.php

$this->data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));

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


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

 

Открыть контроллер модуля корзины и поискать там text_items, может станет понятней.

 

catalog\controller\module\cart.php

$this->data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));

Забавно то, что при выводе в cart.tpl ошибок нет. В header.tpl ругается.

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


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

Ещё раз внимательно прочитать сообщение выше.

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


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

Ещё раз внимательно прочитать сообщение выше.

Я посмотрел. Код полностью соответствует моему.

Возможно беда в 

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

PS. Я с php далеко не очень дружу. 

Добавление строки:

} else {
$this->template = 'default/template/module/cart.tpl';
$this->template = 'default/template/common/header.tpl';
}

Проблемы не решает.

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


Ссылка на сообщение
Поделиться на другие сайты
Я посмотрел. Код полностью соответствует моему.

 

:ugeek: No coments.

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


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

написано же в ошибке, не определена переменная в хидере. при чем тут карт? чтобы переменная показывалась в хидере она должна быть определена в контроллере хидер

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


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

написано же в ошибке, не определена переменная в хидере. при чем тут карт? 

Для того что бы понять чего не хватает в хидере.

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


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

Для того что бы понять чего не хватает в хидере.

я не тебе ответил, твой ответ вполне понятен. зачем вообще лезть в хидер, если хочешь поменять корзину так меняй вьюшку корзины

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


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

я не тебе ответил, твой ответ вполне понятен. зачем вообще лезть в хидер, если хочешь поменять корзину так меняй вьюшку корзины

 в начале топика читаем код ошибки

Notice: Undefined variable: text_items in /home/vol2_7/cuccfree.com/cucch_15428377/htdocs/catalog/view/theme/default2/template/common/header.tpl on line 153

следовательно  в данный момент тс пытается прикрутить в хидер  и это не моя прихоть.

 

 

 1

 

это количество телодвижений,которые нужны для добавления в контроллер хидера той строки ,что я написал уже в первом сообщении.

 

 

только для чего всё это если сама корзина подключается в хидер одной строкой 

<?php echo $cart; ?>

а все телодвижения с классами уже в тплке самой корзины .

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


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

 в начале топика читаем код ошибки

Notice: Undefined variable: text_items in /home/vol2_7/cuccfree.com/cucch_15428377/htdocs/catalog/view/theme/default2/template/common/header.tpl on line 153

следовательно  в данный момент тс пытается прикрутить в хидер  и это не моя прихоть.

 

 

это количество телодвижений,которые нужны для добавления в контроллер хидера той строки ,что я написал уже в первом сообщении.

 

 

только для чего всё это если сама корзина подключается в хидер одной строкой 

<?php echo $cart; ?>

а все телодвижения с классами уже в тплке самой корзины .

<div class="dropdown-menu">
<?php echo $cart; ?>
</div>

Это выпадающее меню. Которое подключается после нужной мне строки. Т.е миникорзина.

По делу:

В header.php

Дописал код

// Totals
$this->load->model('setting/extension');


$total_data = array(); 
$total = 0;
$taxes = $this->cart->getTaxes();


// Display prices
if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$sort_order = array(); 


$results = $this->model_setting_extension->getExtensions('total');


foreach ($results as $key => $value) {
$sort_order[$key] = $this->config->get($value['code'] . '_sort_order');
}


array_multisort($sort_order, SORT_ASC, $results);


foreach ($results as $result) {
if ($this->config->get($result['code'] . '_status')) {
$this->load->model('total/' . $result['code']);


$this->{'model_total_' . $result['code']}->getTotal($total_data, $total, $taxes);
}


$sort_order = array(); 


foreach ($total_data as $key => $value) {
$sort_order[$key] = $value['sort_order'];
}


array_multisort($sort_order, SORT_ASC, $total_data); 
} 
}


$this->data['totals'] = $total_data;


$this->data['heading_title'] = $this->language->get('heading_title');


$this->data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));

Если прописать просто

$this->data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));

Проблема не решается. 

НО, даже после копипаста всего масива ошибка пропадает, но работать не хочет.

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


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

Хз что ещё ответить.Корзина в хидер подключается  той самой  стройкой <?php echo $cart;?> и куда её там запихать уже не имеет значение.

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


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

Хз что ещё ответить.Корзина в хидер подключается  той самой  стройкой <?php echo $cart;?> и куда её там запихать уже не имеет значение.

<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>">
    <head>        

<meta charset="UTF-8" />
        <title><?php echo $title; ?></title>
       <?php if ($cart) { ?>
        <link href="<?php echo $cart;?> ?>" rel="$cart" />
        <?php } ?>
    </head>

Так ты имеешь ввиду?

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


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

Посеял где то свой шар магический,чтоб прояснить ситуацию.Как найду и прочту мысли,сразу отвечу.

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


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

Посеял где то свой шар магический,чтоб прояснить ситуацию.Как найду и прочту мысли,сразу отвечу.

Нашелся)

 

cart.php

header.php

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


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

И что я должен в двух этих портянках лицезреть? Замысел который в итоге будет в шапке неизвестного мне магазина с неизвестными функциями корзины в неизвестном месте? Шар лучше пришли магический.Свой так и не нашёл.

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


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

все что ты хочешь сделать с корзиной засунь во вьюху cart.tpl в хидере выведи корзину <?php echo $cart; ?>

если тебе разные блоки корзины надо по "разным углам распихать" то используй css стили

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


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

И что я должен в двух этих портянках лицезреть? Замысел который в итоге будет в шапке неизвестного мне магазина с неизвестными функциями корзины в неизвестном месте? Шар лучше пришли магический.Свой так и не нашёл.

Совсем не понятный элемент шапки:

                            <div class="btn-group" id="shopping_cart">
                                <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> 
<i class="typcn typcn-shopping-cart"></i> 
<span class="title"> Корзина Покупок</span> 
<span class="font1">Товаров: 0 - 0.00(грн)</span>
</button>
                                <div class="dropdown-menu">
                                    <?php echo $cart; ?>
                                </div>
                            </div>

Совсем понятная задача:

                            <div class="btn-group" id="shopping_cart">
                                <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> 
<i class="typcn typcn-shopping-cart"></i> 
<span class="title"> Корзина Покупок</span> 
<span class="font1"><?php echo $text_items; ?></span>
</button>
                                <div class="dropdown-menu">
                                    <?php echo $cart; ?>
                                </div>
                            </div>

мб ты меня немного не понимаешь. 

<?php echo $text_items; ?> выводит кол-во товара и сумарную цену.

пример 5 500

Подключение его через header.php не удается. Коды выше.

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


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

все что ты хочешь сделать с корзиной засунь во вьюху cart.tpl в хидере выведи корзину <?php echo $cart; ?>

если тебе разные блоки корзины надо по "разным углам распихать" то используй css стили

Выводится на 2 строчки ниже:

                                <div class="dropdown-menu">
                                    <?php echo $cart; ?>
                                </div>
и все работает. 

Это вывод "мини" корзины. if курсор на объекте.

post-688491-0-73684300-1414562396_thumb.jpg

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


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

Да уж.

 

А что мешает сделать как написал lexxkrt ?

 

И не лезть ни в какие контроллеры а всё это сделать стилями?

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


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

Да уж.

 

А что мешает сделать как написал lexxkrt ?

 

И не лезть ни в какие контроллеры а всё это сделать стилями?

Есть сайт:

http://essence-perfumum.ua/

Меня интересует то, как у него сделана корзина.

Хочу спилить ее полностью. Точь в точь.

Через CSS добился того, что не при клике, а при нахождении курсора на объекте выпадает "мини корзина" .

Но вопрос который не могу решить заключается ИМЕННО В СПЕЦИФИКЕ ДВИЖКА, а не решений CSS+HTML+JS и тд. Стоял конкретный вопрос, не методик изобретения велосипеда по путешествию около большой луны, а конкретно как ВНЕДРИТЬ оператор $text_items; в header.tpl . У человека который делал там - получилось.

При прописывании его в cart.tpl все корректно отображается.

НО в header.tpl ошибка.

Повторюсь, подскажи пожалуйста как внедрить его с card.php в header.php

Конкретно понимаю, что 

$this->data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));

Именно то, что нужно. Но выше есть условия и переменные которые использует. Смотрю туда и ничего не понимаю...к сожалению. Потому и пишу с просьбой помочь.

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


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

Есть сайт:

http://essence-perfumum.ua/

Меня интересует то, как у него сделана корзина.

Хочу спилить ее полностью. Точь в точь.

а чем эта корзина отличается от оригинальной опенкартовской, за исключением стилей?

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


Ссылка на сообщение
Поделиться на другие сайты
Через CSS добился того, что не при клике, а при нахождении курсора на объекте выпадает "мини корзина" .

 

 

для этого нужно всего одно значение в common.js сменить  с click например на hover или mouseover. 

 

А вот где там в примере  вторая  "зашифрованная корзина" в выпадающем списке в упор не вижу.

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


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

Но вопрос который не могу решить заключается ИМЕННО В СПЕЦИФИКЕ ДВИЖКА, а не решений CSS+HTML+JS и тд. Стоял конкретный вопрос, не методик изобретения велосипеда по путешествию около большой луны, а конкретно как ВНЕДРИТЬ оператор $text_items; в header.tpl . У человека который делал там - получилось.

неправда там чистый опенкарт, никаких изменений нет, посмотри код, вся корзина в контейнере <div id="cart">. чтобы открывалось по щелчку, а не по наведению используй javascript, или bootstrap как там сделано

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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