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

Vlad1

  • Захожу иногда
  • 98
  • 0 / 0
Всем привет!

Подскажите, пожалуйста, по следующей проблеме.

Есть кастомное поле допустим field-colors (id=1) типа checkbox со значениями red / green / yellow. Есть материал, допустим "Яблоко", которому присвоено сразу два значения в этом поле, например, red и green.

В списке материалов категории вывожу поле для каждого материала следующим кодом:
Код
<ul>
<?php foreach ($this->items as $i => $article) : ?>
<?php if ($this->items[$i]->state == 0) : ?>
<div class="system-unpublished cat-list-row<?php echo $i % 2; ?>">
        <?php else : ?>
        <li>
        <a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->language)); ?>">
            <div class="cat-list-row<?php echo $i % 2; ?> d-flex">
        <?php endif; ?>
                        <div><?php echo $this->escape($article->title); ?></div>
                        <div><?php echo $this->escape($article->jcfields[1]->value); ?></div>
                </div>
                </a>
                </li>
<?php endforeach; ?>
</ul>

Таким образом вывод выглядити примерно так:

Яблоко ... red, green

Но мне нужно обернуть значения red и green в отдельные классы, например, так:

Яблоко ... red, green

Подскажите, пожалуйста, как это сделать.
*

beliyadm

  • Легенда
  • 9659
  • 1659 / 66
  • Севастополь == Россия
Наверно только в цикле foreach проверять значение $article->jcfields[1]->value на установленное в админке и задавать соответствующий класс элементу
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

marksetter

  • Давно я тут
  • 811
  • 30 / 0
класс вывести через i+1
индивидуальная помощь: @SetAlexx
*

Vlad1

  • Захожу иногда
  • 98
  • 0 / 0
Наверно только в цикле foreach проверять значение $article->jcfields[1]->value на установленное в админке и задавать соответствующий класс элементу

Вот об этом думал, но знаний не хватает, как это в код воплотить...
*

Vlad1

  • Захожу иногда
  • 98
  • 0 / 0
класс вывести через i+1

Уточните, пожалуйста. Пока не понимаю
*

beliyadm

  • Легенда
  • 9659
  • 1659 / 66
  • Севастополь == Россия
<?php foreach ($this->items as $i => $article) : ?>
Если осмысленные названия классов не нужны - то вариант marksetter проще
Упрощенный пример


Код
<?php foreach ($this->items as $i => $article) : ?>
<?php
// класс каждого элемента будет возрастать fieldClass1, fieldClass2, fieldClass3 и тд, в исходном коде будет видно
$fieldClass = 'fieldClass'.i;
?>
<div class="<?php echo fieldClass; ?>"><?php echo $this->escape($article->jcfields[1]->value); ?></div>
<?php endforeach; ?>
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Vlad1

  • Захожу иногда
  • 98
  • 0 / 0
Если осмысленные названия классов не нужны - то вариант marksetter проще
Упрощенный пример


Код
<?php foreach ($this->items as $i => $article) : ?>
<?php
// класс каждого элемента будет возрастать fieldClass1, fieldClass2, fieldClass3 и тд, в исходном коде будет видно
$fieldClass = 'fieldClass'.i;
?>
<div class="<?php echo fieldClass; ?>"><?php echo $this->escape($article->jcfields[1]->value); ?></div>
<?php endforeach; ?>

Ковыряюсь часа три, не получается.
Классы генерируются хаотично, и значения каждый в свой div не оборачиваются ...
« Последнее редактирование: 27.06.2022, 22:12:19 от Vlad1 »
*

Vlad1

  • Захожу иногда
  • 98
  • 0 / 0
Незнаю, насколько правильно с точки зрения производительности и уязвимости (поправьте, если есть критика). Сделал так:

Код
<?php $field_str = $this->escape($article->jcfields[1]->value); ?>
<?php
if (strpos($field_str, 'red')!== false) {
  echo '<div style="color: red;">red</div>';
}
?>
<?php
if (strpos($field_str, 'green')!== false) {
  echo '<div style="color: green;">green</div>';
}
?>
« Последнее редактирование: 28.06.2022, 23:05:59 от Vlad1 »
*

Ciaoatutti

  • Новичок
  • 1
  • 0 / 0
Уважаемый beliyadm, когда мы, наконец, сможем закончить сайты, которые Вы взялись сделать и пропали? Месяц пишу с скайп - без ответа. Я, конечно, не исключаю, что это глюки скайпа..) но какие-то очень избирательные, однако.

Какие есть альтернативы для связи, если Ваш скайп так стал «глючить», телефон отвечает Вашим голосом, что я ошиблась, а почта вообще не отвечает?

Можете, пожалуйста, просмотреть мой контакт в скайп nadezda_usanova , и наконец ответить что-то ?? Ну или на почту или на тел можно. А то какой-то монолог у меня по всем каналам связи.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавление поля в форму регистрации

Автор Robert24

Ответов: 3
Просмотров: 230
Последний ответ 10.10.2022, 23:35:04
от Robert24
Тип поля формы Select sql, как заполнить его через функцию php?

Автор GuDeVic

Ответов: 13
Просмотров: 759
Последний ответ 07.10.2022, 12:25:45
от fsv
[howto] Блог. Вывод материалов в списке подкатегорий

Автор dynamit

Ответов: 3
Просмотров: 755
Последний ответ 05.10.2022, 13:37:10
от Mitriy
Перенос материалов и категорий (с сохранением ID) на другой сайт

Автор mak200

Ответов: 0
Просмотров: 169
Последний ответ 09.09.2022, 09:30:53
от mak200
Исключить из списка материалов категории текущий материал

Автор Vlad1

Ответов: 3
Просмотров: 278
Последний ответ 21.08.2022, 21:24:51
от marksetter