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

Добавить перед текстом "X товаров - X.XX руб." - текст "В корзине:"


Recommended Posts

Задача - добавить перед количеством товара - слова "В корзине".

Сейчас выглядит так: "1 товар - 510.00 руб." а надо - "В корзине 1 товар - 510.00 грн."

Пока что добавил добавил в файл /template/common/header.tpl:

<div id="cart">
    <div class="heading">
	  <font color="#FFFFFF">В корзине</font><h4><?php echo $text_cart; ?></h4>
	  <a><span id="cart_total"><?php echo $text_items; ?></span></a></div>
    <div class="content"></div>
</div>
но, понятное дело, слова "В корзине" в этом случае не кликабельны, т.е. при наведении на них корзина не появляется, т.к. сама ссылка выводится в $text_cart;.

Как бы мне запихнуть их туда, где собственно формируется кол-во товаров и цена? Всё облазил, не разобрался, пока не силен в php :(

Единственный момент - я использую доработку "Простая регистрация и заказ Simple" (https://opencartforum.com/topic/6738-платно-простая-регистрация-и-заказ-simple-110/)

Она заменяет стандартную обработку корзины в файле catalog/controller/checkout/cart.php на свою - в файле catalog/controller/checkout/simplecheckout_cart.php

Но ни в cart.php ни в simplecheckout_cart.php не нашел где формируется "X товаров - X.XX руб."

Буду очень благодарен за помощь! :-)

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


catalog/language/russian/common/header.php
Найти

$_['text_items']	 = '%s шт. - %s';
заменить на

$_['text_items']	 = 'В корзине %s шт. - %s';
ЗЫ. Только у вас там не "шт." написано, а "товар", насколько я понял. Но сути это не меняет. Правда, глупо выглядит, если будет написано "В корзине 2 товар". :-)
Надіслати
Поділитися на інших сайтах


monax, cпасибо за помощь! Я тоже сначала там копал, и у меня теперь там так и написано, но я не написал о еще одном моменте - я использую доработку "Умная корзина" - OCU Smarty Cart (Косметическое расширение на базе vQmod для корзины в шапке сайта, которое позволяет отображать человекопонятные склонения слов к количеству вложенных товаров. К примеру вместо 1 товар(ов) будет показано 1 товар или 2 товара, 27 товаров и т.д.)

Вот код ocu_smarty_cart.xml

<modification>
    <id>OCU Smarty Cart</id>
    <version>1.5.1</version>
    <vqmver>1.2/10.08.2011</vqmver>
    <author>Eugene Kuligin (a.k.a. Shaman)</author>
    <file name="system/engine/controller.php">
	    <operation>
		    <search position="before">
			    <![CDATA[protected function render() {]]>
		    </search>
		    <add>
			    <![CDATA[
				    protected function plural_tool($number, $total, $text) {
					    $cases = array (2, 0, 1, 1, 1, 2);
					    return $number . ' ' . $text[(($number % 100) > 4 && ($number % 100) < 20) ? 2 : $cases[min($number % 10, 5)]] . ' - ' . $total;
				    }
			    ]]>
		    </add>
	    </operation>
    </file>
    <file name="catalog/controller/common/header.php">
	    <operation>
		    <search position="replace">
			    <![CDATA[$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));]]>
		    </search>
		    <add>
			    <![CDATA[
				    switch (isset($this->request->cookie['language']) && $this->request->cookie['language']) {
					    case 'ru':
						    $this->data['text_items'] =  $this->plural_tool(
														 $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0),
														 $this->currency->format($total),
														 array('товар','товара','товаров'));
					    break;
					    case 'ua':
						    $this->data['text_items'] =  $this->plural_tool(
														 $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0),
														 $this->currency->format($total),
														 array('товар','товару','товарів'));
					    break;
					    default:
						    $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));
				    }
			    ]]>
		    </add>
	    </operation>
    </file>
    <file name="catalog/controller/checkout/cart.php">
	    <operation>
		    <search position="replace">
			    <![CDATA[$json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));]]>
		    </search>
		    <add>
			    <![CDATA[
				    switch (isset($this->request->cookie['language']) && $this->request->cookie['language']) {
					    case 'ru':
						    $json['total'] =  $this->plural_tool(
														 $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0),
														 $this->currency->format($total),
														 array('товар','товара','товаров'));
					    break;
					    case 'ua':
						    $json['total'] = $this->plural_tool(
														 $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0),
														 $this->currency->format($total),
														 array('товар','товару','товарів'));
					    break;
					    default:
						    $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));
				    }
			    ]]>
		    </add>
	    </operation>
    </file>

	 <file name="catalog/controller/checkout/simplecheckout_cart.php">
	    <operation>
		    <search position="replace">
			    <![CDATA[$json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));]]>
		    </search>
		    <add>
			    <![CDATA[
				    switch (isset($this->request->cookie['language']) && $this->request->cookie['language']) {
					    case 'ru':
						    $json['total'] =  $this->plural_tool(
														 $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0),
														 $this->currency->format($total),
														 array('товар','товара','товаров'));
					    break;
					    case 'ua':
						    $json['total'] = $this->plural_tool(
														 $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0),
														 $this->currency->format($total),
														 array('товар','товару','товарів'));
					    break;
					    default:
						    $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));
				    }
			    ]]>
		    </add>
	    </operation>
    </file>
</modification>

Может надо где-то в этом коде делать вставку слов "В корзине"? (надо было учить пхп когда возможность была :( )

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


  • 2 months later...

Разобрался, может кому пригодиться.

Строка В корзине х товар - х руб. формируется в xml файле vqmod-а Умная корзина - ocu_smarty_cart.xml.

В коде

		    <add>
			    <![CDATA[
				    protected function plural_tool($number, $total, $text) {
					    $cases = array (2, 0, 1, 1, 1, 2);
                        return $number . ' ' . $text[(($number % 100) > 4 && ($number % 100) < 20) ? 2 : $cases[min($number % 10, 5)]] . ' - ' . $total;
				    }
			    ]]>
		    </add>

меняем строчку

  return $number . ' ' . $text[(($number % 100) > 4 && ($number % 100) < 20) ? 2 : $cases[min($number % 10, 5)]] . ' - ' . $total;

на

  return 'В корзине ' . $number  .' ' . $text[(($number % 100) > 4 && ($number % 100) < 20) ? 2 : $cases[min($number % 10, 5)]] . ' - ' . $total;

и всё.

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


  • 11 months later...

А как реализовать такой вариант. 

В шапке где корзина не "Х  штук(и) - X.XX рублей", а просто "X.XX рублей"?

У меня ещё модуль simple стоит и помогите найти откуда "ноги растут".

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


А как реализовать такой вариант. 

В шапке где корзина не "Х  штук(и) - X.XX рублей", а просто "X.XX рублей"?

У меня ещё модуль simple стоит и помогите найти откуда "ноги растут".

Догадался сам:

Исправил в \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));

на:

$this->data['text_items'] = sprintf($this->currency->format($total));

И стала показывать как надо.

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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