Скрыть 2 последних доп. поля в шаблоне K2 для Joomla 3.х

  • 8 Ответов
  • 194 Просмотров

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

*

Оффлайн lgmax

Всем привет.

Есть необходимость скрыть отображение последних двух доп. полей компонента K2 в Joomla 3.x.

Сейчас реализовано скрытие 1 последнего доп. поля.

Вот пример:

<?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): array_pop($this->item->extra_fields)?>
<div class="CompanyExtraFields">
<ul>
<?php foreach ($this->item->extra_fields as $key => $extraField): ?>
<?php if($extraField->value): ?>
<li class="<?php echo ($key%2)? " odd " : "even "; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
<span class="itemExtraFieldsLabel"><?php echo $extraField->name; ?>:</span>
<span class="itemExtraFieldsValue"><?php echo $extraField->value; ?></span>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>

Можно сделать через это:

$x =0; $s = count($this->item->extra_fields)-2;
foreach ($this->item->extra_fields as $key => $extraField){ if($x <= $s) { echo "выводим"; } $x++; }

Мы получаем размер массива, где 2 последних комментария(строки) нам не нужны.
Предположим их 7, а нам нужно вывести 5.
От общего количества, которые мы получили (7) отнимаем 2 и получаем 5 переменная ($s)
Ставим условие в цикл, если флаг(переменная $x) меньше или равна переменной ($s) то выводим, если больше то не выводим.

Кто сможет адаптировать это в готовый код?

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
лучше не выводить условие. А останвливать цикл да и key у них от 0 вроде шел
тобишь у нас семь полей ключи выходя  0 1 2 3 4 5 6
На надо останвить массив когда ключ будет 5 (а имет соотвесвенно 6)
Код: php
$max = 5;
foreach ($this->item->extra_fields as $key => $extraField) {
if ($key == ($max)) {
break;
}
}
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн lgmax

Да там не то чтобы их 7, их не ограниченное кол-во.

Вообще, нужно просто скрыть последние 2, не зависимо от того, сколько их.

Как это реализовать, не подскажете?

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Да там не то чтобы их 7, их не ограниченное кол-во.

Вообще, нужно просто скрыть последние 2, не зависимо от того, сколько их.

Как это реализовать, не подскажете?
Точно так же. только max надо посчитать
Код: php
$max = count($this->item->extra_fields) - 2;
foreach ($this->item->extra_fields as $key => $extraField) {
if ($key == ($max)) {
break;
}
}
« Последнее редактирование: 19.05.2017, 20:12:46 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн lgmax

Ок. Если не сложно, впиши пожалуйста свой пример в код выше. Заранее благодарен. Думаю это будет полезно всем.

*

Оффлайн lgmax

Вообщем, сделал так - вместо array_pop($this->item->extra_fields) написал array_splice($this->item->extra_fields, count($this->item->extra_field) - 2), только не уверен что это правильно.

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Вообщем, сделал так - вместо array_pop($this->item->extra_fields) написал array_splice($this->item->extra_fields, count($this->item->extra_field) - 2), только не уверен что это правильно.
Да нет и почему и так можно. убрать два последний эллемента.
Просто я лично вообще не понимаю зачем вам скрывать два последних, если можно просто выводить поля по одному. Чуть сортировка даст сбой убиреться не то поле.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн lgmax

Дело в том, что для каждой категории у меня разные доп. поля и не определенного наименования, поэтому отдельный вывод не подходит.

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Дело в том, что для каждой категории у меня разные доп. поля и не определенного наименования, поэтому отдельный вывод не подходит.
Ну непонятный alias  - это вообще малясь ваш косяк. А вообще можно и по id,
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты