Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 635 Просмотров
*

timofe

  • Захожу иногда
  • 148
  • 0 / 0
  • alex tim.
Всем привет!
Есть характеристики у товара, например " Диапазоны GSM"
И ее опции, которые выводятся через запятую: 800, 900, 1800, 1900, 2100
Вопрос: как сделать так, чтобы опции выводились списком, каждая в своей строке?

В файле product_default.php выводится так:
<span class="extra_fields_value"><?php print $extra_field['value'];?></span>

Дальше не понимаю((..Спасибо!
*

kit2m2

  • Живу я здесь
  • 3269
  • 268 / 0
  • Беру сайты на полное сопровождение
Код
.extra_fields_value {
    display: block;
}
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

timofe

  • Захожу иногда
  • 148
  • 0 / 0
  • alex tim.
Ну нет, это было бы слишком просто))...
На самой странице блок выводится так:
<span class="extra_fields_value">800, 900, 1800, 1900</span>
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Код
<span class="extra_fields_value"><?php print str_replace(',', ',<br/>', $extra_field['value']);?></span>
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

timofe

  • Захожу иногда
  • 148
  • 0 / 0
  • alex tim.
Да!
Вот это победа!
Спасибо!)))
*

timofe

  • Захожу иногда
  • 148
  • 0 / 0
  • alex tim.
Расширим вопрос))..

А чтобы значения не просто переходили на новую строку, а оборачивались в <ul><li>900</li></ul> ?
Спасибо!))
*

kit2m2

  • Живу я здесь
  • 3269
  • 268 / 0
  • Беру сайты на полное сопровождение
А чтобы значения не просто переходили на новую строку, а оборачивались в <ul><li>900</li></ul> ?
Можно сделать средствами PHP:

1. Сначала разбить строку - $extra_field['value'] на массив (array) при помощи функции explode
Код
$extra_field_arr = [];/*Объявлять до этого цикла - <?php foreach($this->product->extra_field as $extra_field){?>*/
$extra_field_arr = explode(", ", $extra_field['value']);

2. Потом пройтись по массиву и добавить нужные html-теги - <li>значение</li>
Код
foreach ($extra_field_arr as $key=>$value) {
    $extra_field_arr[$key] = '<li>'. $value .'</li>';
}

3. Затем обратно преобразовать массив в строку при помощи функции implode
Код
$extra_field['value'] = implode("", $extra_field_arr)

4. Вывести полученную строку между тегами - <ul>строка</ul>
Код
<span class="extra_fields_value"><ul><?php print $extra_field['value'];?></ul></span>
Но так как <ul></ul> и <li></li> - это блочные элементы, а <span></span> - это строчный элемент, то лучше сделать так:
Код
<ul class="extra_fields_value"><?php print $extra_field['value'];?></ul>
вместо <span class="extra_fields_value"></span>
или так:
Код
<div class="extra_fields_value"><ul><?php print $extra_field['value'];?></ul></div>
Получите маркированный список опций характеристики.
« Последнее редактирование: 02.06.2023, 06:27:20 от kit2m2 »
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3269
  • 268 / 0
  • Беру сайты на полное сопровождение
А чтобы значения не просто переходили на новую строку, а оборачивались в <ul><li>900</li></ul> ?
Зачем спрашивали то, просто так?
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться