Новости Joomla

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

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
В К2 версий >= 2.5.1 разработчики решили немаловажную проблему: если доп. поле пустое - оно не выводится. Хотя и не без "косяка" - не ведётся проверка на "чёт-нечёт", поэтому если поля выводятся "зеброй" - происходят накладки по цветам. Ну, во всяком случае, движение вперёд наблюдается :)

Однако есть ещё один важный вопрос: если для определённой категории я назначаю группу доп. полей, но в определённой статье из этой категории я не вывожу ни одного доп.поля, то заголовок "Дополнительная информация" всё равно выводится. Как сформулировать условие проверки типа

1)  получаем кол-во заполненных доп.полей (либо наличие хотя бы одного)
2)  Ставим условие: if (количество доп. полей) >0, то идём в п.4
3)  else пропускаем строку из п.4
4)  <?php echo JText::_('K2_ADDITIONAL_INFO'); ?>
« Последнее редактирование: 26.12.2011, 19:16:53 от Dorfman »
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Пых
« Ответ #1 : 23.12.2011, 03:03:02 »
Уважаемые форумчане, ну кто в пыхе силён, помогите плз! >:(
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
А как вообще убрть эту "Дополнительная информация"?

Пробовал закоментить строку:
не помогло... :(

« Последнее редактирование: 23.12.2011, 07:34:57 от Dgikar »
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Код: php
<h3><?php echo JText::_('K2_ADDITIONAL_INFO'); ?></h3>

Именно эта строка и отвечает за вывод заголовка. Попробуйте не закомментить, а просто удалить эту строку в файле item.php:
ВНИМАТЕЛЬНО ПРОВЕРЬТЕ ПУТЬ:
www.mysite.com/components/com_k2/templates/default/item.php
ЛИБО
www.mysite.com/templates/moy_shablon/html/com_k2/templates/default/item.php
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
... www.mysite.com/templates/moy_shablon/html/com_k2/templates/default/item.php
Спасибо, именно по этому пути, лежит решение проблемы, только, у меня, строка выглядит иначе:
Код: php
<h3><?php echo JText::_('Additional Info'); ?></h3>
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Тада понятно. Но хоть заработало?

А по моему вопросу, собственно, по первому посту, кто-нибудь подсказать чего-нить сможет?
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Я скажу так: идея хорошая, но разработчики еще в ранних версиях дали возможность любой материал кастомизировать в его настройках.

Так что для любого материала можно отключить отображение допполей, но все-таки автоотключение и проверка не помешали бы.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Так что для любого материала можно отключить отображение допполей, но все-таки автоотключение и проверка не помешали бы.

Та у меня куча таких идей, по доработке. Но знаний и оптыа не хватает, чтобы решить всё самому. Вот и собираю по крупицам. Потом надо будет в ФАКе статейку написать :)
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
... Но хоть заработало? ...
Да, спасибо - совсем забыл про то, что в темплейте, есть еще файлы...
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
1)  получаем кол-во заполненных доп.полей (либо наличие хотя бы одного)
2)  Ставим условие: if (количество доп. полей) >0, то идём в п.4
3)  else пропускаем строку из п.4
4)  <?php echo JText::_('K2_ADDITIONAL_INFO'); ?>

Ну что, так и не нашёлся знаток ПЫХа для решения этой задачки?
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Где не выводится - в шаблоне категории?

Замените в шаблоне в условии

Код
<?php if($this->item->params->get('catItemExtraFields') && count($this->item->extra_fields)): ?>

на

Код
<?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>

или можно двойную проверку попробовать:


Код
<?php if(($this->item->params->get('catItemExtraFields') && $this->item->params->get('itemExtraFields')) && count($this->item->extra_fields)): ?>
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
не-а, в шаблоне материала. Хотя - какая разница? Только я не понял: что данная проверка проверяет? В моей задаче - проверить: если есть хоть одно заполненное доп. поле - выводить текст, иначе - пропустить.
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
не-а, в шаблоне материала.

Тогда по идее и не должно у вас выводиться, родное условие там не должно выводить полностью блок допполей, заголовок в том числе.
Надо поэкспериментировать с разными типами допполей на досуге.

Цитировать
если есть хоть одно заполненное доп. поле

count($this->item->extra_fields) - это и есть оно
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
А оно выводится, падла...

Вот тут под текстом должно выводиться и выводится, т.к. есть доп. поле. А вот тут - нет ни одного заполненного доп. поля, но заголовок "Дополнительная информация" всё равно выводится!
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
А вот тут - нет ни одного заполненного доп. поля, но заголовок "Дополнительная информация" всё равно выводится!

Там и <ul> </ul> пустой выводится, чего быть не должно.

Блок допполей в шаблоне материала точно стандартный, не переделывали?

Выведите в блоке допполей var_dump($this->item->extra_fields), посмотрите что покажет.
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Шаблон, конечно, переделывал, но в этом месте ничего не трогал

вот кусок из item.php вместе с ИФ-ами...

Код: php
<?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>
 <!-- Item extra fields -->
 <div class="itemExtraFields">
  <h3><?php echo JText::_('K2_ADDITIONAL_INFO'); ?></h3>
  <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 class="clr"></div>
 </div>
 <?php endif; ?>
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
а если перед этим поставить проверку<?php if($extraField->value): ?>
         <?php if($extraField->name){ ?> или <?php if($extraField->name == "null"){ ?>
если не сработает то $extraField->name меняем на $extraField->value а лучше сразу попробовать с $extraField->name
и закрыть перед }
         <?php endif; ?>
что покажет

запарился есть <?php if($extraField->value): ?>
делаем <?php if($extraField->value != "null" ): ?> это сработает
« Последнее редактирование: 27.12.2011, 22:12:31 от flyingspook »
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
а если перед этим поставить проверку<?php if($extraField->value): ?>

Мы не можем вставить это перед блоком - там массив допполей, а это проверка значения отдельного поля

Надо всё же посмотреть что по var_dump выводится
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
запарился есть <?php if($extraField->value): ?>
делаем <?php if($extraField->value != "null" ): ?> это сработает

наверное можем
если из массива сразу вывод делать того что не равно нуль, то есть заполненое поле
только написал на коленки и требуется просто проверить
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Вся беда в том, что этот глюк странно себя ведёт: в корневой категории - происходит, а в подкатегориях - нет. Как понять эту мистику?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Chosen для доподнительных полей multiselect K2

Автор Divn

Ответов: 5
Просмотров: 3083
Последний ответ 07.10.2022, 21:26:32
от Divn
Решено: Более одной группы доп. полей

Автор chilly_bang

Ответов: 75
Просмотров: 12335
Последний ответ 07.02.2022, 17:06:11
от Dobrota
Ошибка дополнительных полей в конце материала

Автор Vekach

Ответов: 4
Просмотров: 1186
Последний ответ 22.09.2020, 17:45:22
от Vekach
Отображение доп. полей материала в спойлере или структурировано

Автор Falana

Ответов: 0
Просмотров: 915
Последний ответ 25.02.2020, 20:37:34
от Falana
Как сделать нечто подобное с помощью дополнительных полей?

Автор designerandrey

Ответов: 0
Просмотров: 879
Последний ответ 04.04.2019, 17:20:32
от designerandrey