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

4 нуля после запятой в цене в заголовке - как убрать?


Recommended Posts

Всем привет!

OcStore 2.1.0.2.1
Формирую тег Title и Description через контроллер product.php и category.php.

Столкнулся с непонятным для меня моментом:
- цена товара указана нормально, без доп. чисел после запятой (настроил в Админке - Локализация - Валюты)
- вставляю цену в тег title вот так {$product_info['price']} :

$this->document->setTitle("{$product_info['name']} за {$product_info['price']}р купить в интернет магазине Modamio");

- очищаю кэш дополнений, обновляю сайт
- и вижу в заголовке следующую картину:
Joxi.png.5a8380432040870d1baff1857e259822.png
Пример:
http://modamio.ru/belosnezhnyj-legkij-zhenskij-dzhemper

Так и не смог найти ответа в гугле.
Помогите советом.
Где убрать эти 4 нуля, чтобы цена нормально выводилась в тайтле?

Заранее благодарен!

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


$this->document->setTitle("{$product_info['name']} за " . $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) . " купить в интернет магазине Modamio");

 

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

41 минуту назад, ibond сказал:

$this->document->setTitle("{$product_info['name']} за " . $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) . " купить в интернет магазине Modamio");

 

Красавчик!
Благодарю.

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


ibond - извини за наглость, но если ты подскажешь, как в title категории в контроллере выставить минимальную цену товара (среди всех товаров в категории) - будет просто супер!

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


45 минут назад, arthyrgrex сказал:

ibond - извини за наглость, но если ты подскажешь, как в title категории в контроллере выставить минимальную цену товара (среди всех товаров в категории) - будет просто супер!

 

Может не лучший вариант, но жить может.

    <file path="catalog/controller/product/category.php">
        <operation>
            <search><![CDATA[
                $data['categories'] = array();
            ]]></search>
            <add position="before"><![CDATA[

                $filter_price = array(
                    'filter_category_id' => $category_id,
                    'sort'               => 'p.price',
                    'order'              => 'ASC',
                    'start'              => ($page - 1) * $limit,
                    'limit'              => 1
                );
                $results_p = $this->model_catalog_product->getProducts($filter_price);
                foreach ($results_p as $p) {
                    $this->document->setTitle("{$p['name']} за " . $this->currency->format($this->tax->calculate($p['price'], $p['tax_class_id'], $this->config->get('config_tax'))) . " купить в интернет магазине Modamio");
                }

            ]]></add>
        </operation>
    </file>

 

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

Очень интересная тема.

3 часа назад, ibond сказал:

$this->document->setTitle("{$product_info['name']} за " . $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) . " купить в интернет магазине Modamio");

 

Как насчет многоязычного магазина, как можно подобное реализовать но чтоб вместо "купить в интернет магазине Modamio" подставлялось значение из ленг файла?

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


Легко :)

 

Для этого можно использовать какое-нибудь созданное многоязычное поле в setting

 

И модификатором его добавлять

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

1 минуту назад, chukcha сказал:

многоязычное поле в setting

если можно, на примере что и где создавать? и как это прикрутить к 

$this->document->setTitle("{$product_info['name']} за " . $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) . " купить в интернет магазине Modamio");
Надіслати
Поділитися на інших сайтах


Делаете модификатор который в настройки добавляет нужные поля
Называете их как нибудь

config_title_add с привязкой к id языка

а потом

 

$this->document->setTitle("{$product_info['name']} за " . $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) . $this->config->get('config_title_add')[$this->config_get('confog_language_id']);

 

или пишете модуль, в настройках которого аналогичные по смыслу переменные

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

1 час назад, chukcha сказал:

Делаете модификатор который в настройки добавляет нужные поля
Называете их как нибудь

config_title_add с привязкой к id языка

а потом

 


$this->document->setTitle("{$product_info['name']} за " . $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) . $this->config->get('config_title_add')[$this->config_get('confog_language_id']);

 

или пишете модуль, в настройках которого аналогичные по смыслу переменные

не работает выдает ошибку.

Интересует как сделать шаблон по типу 

$this->document->setTitle("{$product_info['name']} + поле модель товара + кастомное поле для каждого языка типа title_add
Надіслати
Поділитися на інших сайтах


8 минут назад, bitrixlviv сказал:

не работает выдает ошибку.

Интересует как сделать шаблон по типу 


$this->document->setTitle("{$product_info['name']} + поле модель товара + кастомное поле для каждого языка типа title_add
$this->config->get('config_title_add')[$this->config_get('confog_language_id']);

chukcha, из головы писал, а Вы скопировали и не посмотрели наверное :)

 

Можно так:

if ($this->config->get('config_language_id') === 1) {
	$bla = 'бла';
} else {
	$bla = 'bla';
}

 

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

так поля еще заполнить надо, а это в админке, форма и прочее..

 

Т.е. вот вариант последний от ibond  как вариант для быстрого решения, пусть и не оптимального

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

9 минут назад, ibond сказал:

$this->config->get('config_title_add')[$this->config_get('confog_language_id']);

chukcha, из головы писал, а Вы скопировали и не посмотрели наверное :)

 

Можно так:


if ($this->config_get('confog_language_id') === 1) {
	$bla = 'бла';
} else {
	$bla = 'bla';
}

 

ничего не понятно :(

это очень интересная тема могли б вы написать полную правильную конструкцию?

типа

$this->document->setTitle($product_info['name']) this->currency->format($this->tax->calculate($p['price'];

интересует чтоб была слудуюющая конструкция

$this->document->setTitle("{$product_info['name']} + поле модель товара + кастомное поле для каждого языка типа title_add
 
Надіслати
Поділитися на інших сайтах


25 минут назад, bitrixlviv сказал:

ничего не понятно :(

это очень интересная тема могли б вы написать полную правильную конструкцию?

типа


$this->document->setTitle($product_info['name']) this->currency->format($this->tax->calculate($p['price'];

интересует чтоб была слудуюющая конструкция


$this->document->setTitle("{$product_info['name']} + поле модель товара + кастомное поле для каждого языка типа title_add
 

 

 

if ($this->config->get('config_language_id') === 1) {
	$bla = 'русский титул';
} else {
	$bla = 'японский титул';
}

$this->document->setTitle("{$product_info['name']} " . $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) . " " . $bla);

 

 

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

ibond,chukcha,

1. этот вариант не подойдет так как у меня 3 язика :)  поэтому лучше использовать переменную которую я охотно готов вписать в ленг файлы напрямую,  можна даже без поля в админке.

2. нужна конструкция где будет модель товара для того, чтоб сделать его уникальным типа:

$this->document->setTitle("{$product_info['name']} + кастомное поле для каждого языка типа title_add + поле модель товара 

Кроме того думаю такое решение будет интересно многим форумчанам.

Заранее большое спасибо.

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


switch ($this->session->data['language']) {
 case 'uk-ua':
	$bla = 'щось україньскою';
    break;
 case 'ru-ru':
    break;
 case 'en-gb':
    break;
}

 

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

chukcha, Parse error: syntax error, unexpected 'switch' (T_SWITCH) in /***************www/catalog/controller/product/product.php on line 218

Змінено користувачем bitrixlviv
Надіслати
Поділитися на інших сайтах


Да какая разница, куда и где

в любом случае нужен способ/метод ее достать

 

в главном язіковм файле ее и прописывайте

 

а затем $data['bla-bla'] = $this->language->get('bla-bla')

 

Но мой метод модулем или в настройках - более универсален - не требуется прямого доступа к файлам.

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


chukcha, Вы извините я не программист, я занимаюсь SEO.

Попробовал так 

$this->document->setTitle($product_info['name']) $data['bla-bla'] = $this->language->get('bla-bla') ;

тоже ошибка 


Parse error: syntax error, unexpected '$data' (T_VARIABLE) in /*******************/www/catalog/controller/product/product.php on line 217

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


19 минут назад, chukcha сказал:

switch ($this->session->data['language']) {
 case 'uk-ua':
	$bla = 'щось україньскою';
    break;
 case 'ru-ru':
    break;
 case 'en-gb':
    break;
}

 

 

Попробуйте case 'ru' case 'en', а вообще покажите, что дает print_r($this->session->data['language']) в разных языках.

Также мой вариант, если Вы знаете какой id у языка, то:

 

if ($this->config_get('confog_language_id') === 1) {
	$bla = 'rutitle';
} elseif ($this->config_get('confog_language_id') === 2) {
	$bla = 'entitle';
} else {
	$bla = 'uatitle';
}

 

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

ibond,

2. нужна конструкция где будет модель товара для того, чтоб сделать его уникальным типа:

нужно что то похоже на то, что предложил chukcha, типа 
 

$this->document->setTitle($product_info['name']) $data['bla-bla'] = $this->language->get('bla-bla') ;

 

НО с добавлением туда поля модель товара и конечно нужно чтобы оно работало :)

P.S. я не программист, я занимаюсь SEO. Поэтому очень прошу пишите как должно быть со всеми точками, запятыми и т.д. Заранее спасибо.

Змінено користувачем bitrixlviv
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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