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

Vlad1

  • Захожу иногда
  • 79
  • 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

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

marksetter

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

Vlad1

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

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

Vlad1

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

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

beliyadm

  • Легенда
  • 9655
  • 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; ?>
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

Vlad1

  • Захожу иногда
  • 79
  • 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

  • Захожу иногда
  • 79
  • 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 , и наконец ответить что-то ?? Ну или на почту или на тел можно. А то какой-то монолог у меня по всем каналам связи.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Делаю запрос к базе к полю images, выдает пустые значения а они есть там

Автор Dolphin4ik_1

Ответов: 1
Просмотров: 120
Последний ответ 14.07.2022, 12:48:33
от sivers
Сортировка материалов в блоге

Автор ebonydabster

Ответов: 6
Просмотров: 700
Последний ответ 13.07.2022, 16:42:46
от original.gangsta
Настраиваемые поля не отображаются в дочерней категории

Автор Dolphin4ik_1

Ответов: 0
Просмотров: 108
Последний ответ 13.07.2022, 16:05:02
от Dolphin4ik_1
Исчезло меню при редактировании материалов и категорий

Автор Lier

Ответов: 20
Просмотров: 1491
Последний ответ 27.06.2022, 15:29:04
от dron
Как вывести списки материалов в категориях?

Автор mak200

Ответов: 1
Просмотров: 174
Последний ответ 03.06.2022, 19:22:20
от KKAAZZOO