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

Recommended Posts

Доброй ночи, продолжаю свою эпопею по натягиванию верстки на движок, в данный момент столкнулся с двумя проблемами:
1. Вывод цены в модулях "Акции" (special) и "Хиты продаж"  (bestseller)
2. И собственно способ показа-вывода товаров в модуле "Акции" (special)
 
1. Столкнулся с проблемой разделения числового значения цены, и текстового вывода названия валюты в двух модулях, модуль Акции и модуль Хиты продаж, в обоих случаях код вывода ценника одинаков.
В верстке следующий код:

<span>2990 <i>руб.</i></span>

Визуально выглядит все вот так, чтобы так сказать было проще воспринять общую картину моей проблемы:
post-21748-0-88767500-1403556532_thumb.png
 
Я нашел два претендента на форуме, но первый вариант решения у меня не получилось реализовать, выдает ошибку ( ССЫЛКА), а второй я так и не понял как же реализовывать ( ССЫЛКА ) при помощи селектора. Надеюсь на любую помощь, а то без решения все выглядит очень печально, я уже думал забить на это, но думаю что решение поможет не только мне одному.
Может быть все таки возможно локальное решение через контроллеры модулей...это было бы шикарно.
 
2. Вывод товаров идет по алфавиту, в моем случае это не очень хорошо, тк акционных товаров будет больше чем может вместить в себя блок на главной (4 позиции), в связи с чем хотелось бы попросить помочь с реализацией рандомного вывода позиций, то есть чтобы с каждой загрузкой страницы позиции менялись.

 

Заранее огромное спасибо любому кто готов помочь.

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


В \system\library\currency.php

строчку

$string .= $symbol_right;

меняем, например, так (для наглядности :-) ):

$string .= "<font size=\"20\">" . $symbol_right . "</font>";

Можно прописать всё что угодно: стиль или просто цвет и размер.

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


В \system\library\currency.php

строчку

$string .= $symbol_right;

меняем, например, так (для наглядности :-) ):

$string .= "<font size=\"20\">" . $symbol_right . "</font>";

Можно прописать всё что угодно: стиль или просто цвет и размер.

 

Спасибо, сработало! А можно как-то локализовать это решение непосредственно в модуле? Ведь в других местах оформление может быть иным, у меня вот лично конфликт лишь с мини корзиной возникает, но все таки...

Может быть можно как-то извлекать в модуле из одной переменной два значения, price и symbol_right?

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


Спасибо, сработало! А можно как-то локализовать это решение непосредственно в модуле? Ведь в других местах оформление может быть иным, у меня вот лично конфликт лишь с мини корзиной возникает, но все таки...

Может быть можно как-то извлекать в модуле из одной переменной два значения, price и symbol_right?

Можно.

Например, если цена и руб. разбиты пробелом, заменить

<?php echo $price; ?>

на

<?php $price_and_symbol_right = explode(" ", $price);
echo $price_and_symbol_right[0]; ?>
<font size="20">
<?php echo $price_and_symbol_right[1]; ?>
</font>
Надіслати
Поділитися на інших сайтах


Можно.

Например, если цена и руб. разбиты пробелом, заменить

на

Попробовал, в итоге получил ошибку:

Notice: Undefined variable: price in /home/sitename/public_html/catalog/view/theme/default/template/module/special.tpl on line 11 Notice: Undefined offset: 1 in /home/sitename/public_html/catalog/view/theme/default/template/module/special.tpl on line 13

Ну ладно, я в принципе уже с мини-корзиной разобрался как решить проблему, просто теперь унифицирую всюду верстку, то есть проще говоря подстроюсь, тем более в моём случае 2990 руб. код не страшный, можно спокойно пережить это принуждение.

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


Попробовал, в итоге получил ошибку:

Нет пробела...

Можно поставить принудительно в system/library/currency.php

$string .= $symbol_right;

заменить на

$string .= " " . $symbol_right;

Или разбивать $price на 2 массива - цифры и буквы.

Что-то такого типа

<?php 
preg_match_all("/\d/", $price, $price_number); 
for ($i=0; $i< count($price_number[0]); $i++) {
echo $price_number[0][$i]; }
preg_match_all("/\D/", $price, $price_letter); 
for ($i=0; $i< count($price_letter[0]); $i++) {
echo $price_letter[0][$i]; }
?>
Надіслати
Поділитися на інших сайтах


 

Нет пробела...

Можно поставить принудительно в system/library/currency.php

$string .= $symbol_right;

заменить на

$string .= " " . $symbol_right;

Или разбивать $price на 2 массива - цифры и буквы.

Что-то такого типа

<?php 
preg_match_all("/\d/", $price, $price_number); 
for ($i=0; $i< count($price_number[0]); $i++) {
echo $price_number[0][$i]; }
preg_match_all("/\D/", $price, $price_letter); 
for ($i=0; $i< count($price_letter[0]); $i++) {
echo $price_letter[0][$i]; }
?>

 

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

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


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

Надо дальше копать в этом направлении :)

<span>2990 <i>руб.</i></span>

Откуда берется курсив? Если передается в переменной $price, то надо соответственно менять регулярные выражения (добавлять "<", ">" и "/").

В общем, надо посмотреть что передается в $price и от этого плясать.

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


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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