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

Twist6

  • Новичок
  • 3
  • 0 / 0
Как можно сделать чтобы не выводились незаполненные доп. поля? А так же, можно ли реализовать такое, например дополнительное поле "Жанр" в нем записано "Боевик", чтобы можно было щелкнуть по "Боевик" и выводило все статьи с жанром Боевик ?
*

Twist6

  • Новичок
  • 3
  • 0 / 0
Re: Дополнительные поля
« Ответ #1 : 12.09.2010, 09:54:47 »
Может кто нибудь помочь?

Re: Дополнительные поля
« Ответ #2 : 21.09.2010, 14:27:56 »
Если еще актуально.

Необходимо подредактировать файлы item.php и category_item.php.

Ниже – три текстовых блока:

Первым идет блок, которым нужно заменять содержимое в файлах item.php и category_item.php.

Затем блоки, которые нужно заменять.

После того как замените текст в category_item.php, необходимо еще поменять:
<span class="itemExtraFieldsLabel"> на <span class="catItemExtraFieldsLabel"> и
<span class="itemExtraFieldsValue"> на <span class="catItemExtraFieldsValue">

___________
Код
<ul>
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<?php if((!empty($extraField->value)) && (($extraField->value)!= "http://")) : ?>
<?php $class = ($class == 'even')? 'odd' : 'even'; ?>
<li class="<?php echo $class; ?> 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> <br class="clr" />
</li>
<?php else : ?>
<?php /*?>If for some reason you wanted something else to show in place of an empty field, you would put it here. You may need to wrap it in an li for proper formatting<?php */?>
<?php endif; ?>
<?php endforeach; ?>
</ul>

Original from item.php:
  <ul>
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<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 endforeach; ?>
</ul>

Original from category_item.php:
  <ul>
<?php foreach ($this->item->extra_fields as $key=>$extraField): ?>
<li class="<?php echo ($key%2)? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
<span class="catItemExtraFieldsLabel"><?php echo $extraField->name; ?></span>
<span class="catItemExtraFieldsValue"><?php echo $extraField->value; ?></span>
</li>
<?php endforeach; ?>
</ul>

« Последнее редактирование: 19.10.2011, 17:57:05 от staticlight »
*

jmsfx

  • Новичок
  • 7
  • 1 / 0
Re: Дополнительные поля
« Ответ #3 : 25.09.2010, 21:04:29 »
все работает. спс
« Последнее редактирование: 26.09.2010, 14:32:38 от jmsfx »
*

gazprom

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Дополнительные поля
« Ответ #4 : 30.11.2010, 20:34:52 »
Думаю тут кто нить может помочь.
Пытаюсь сделать чтоб доп поля выводились не только в самом итеме но в категории в каторой он относится.
Из item.php выдернул
 
Код
<?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>
 <!-- Item extra fields -->
 <div class="itemExtraFields">
  <h3><?php echo JText::_('Additional Info'); ?></h3>
  <ul>
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<li class="<?php echo ($key%2)? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
<span class="itemExtraFieldsLabel"><?php echo "fdsfds".$extraField->name; ?>:</span>
<span class="itemExtraFieldsValue"><?php echo $extraField->value; ?></span>
</li>
<?php endforeach; ?>
</ul>
   <div class="clr"></div>
 </div>
 <?php endif; ?>
Перекинул в category_item.php но вот в массиве <?php foreach ($this->item->extra_fields as $key=>$extraField):?>
$this->item->extra_fields возникает ошибка, хотя выводится если прописать перед foreach [{"id":"4","value":"2"},{"id":"5","value":"2,5"},{"id":"3","value":"1"}]
В чем ошибка непойму, кто может подскажите, пожайлуста.
« Последнее редактирование: 30.11.2010, 21:07:12 от gazprom »
*

DSergeev™

  • Захожу иногда
  • 64
  • 1 / 0
  • Не возжелай себе рейтинга другого блоггера
Re: Дополнительные поля
« Ответ #5 : 06.12.2010, 04:42:50 »
Пытаюсь сделать чтоб доп поля выводились не только в самом итеме но в категории в каторой он относится.

так включи отображение доп. полей в настройках отображения категории и наступит тебе счастье :)
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Re: Дополнительные поля
« Ответ #6 : 07.12.2010, 10:50:27 »
Если еще актуально.

Необходимо подредактировать файлы item.php и category_item.php.

Ниже – три текстовых блока:


Вы бы переделанные файлики здесь просто выложили бы, проверенные в работе так сказать...
*

gazprom

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Дополнительные поля
« Ответ #7 : 11.12.2010, 17:54:11 »
так включи отображение доп. полей в настройках отображения категории и наступит тебе счастье :)
Спасибо. Счастье пришло=)
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Re: Дополнительные поля
« Ответ #8 : 18.12.2010, 15:44:22 »
Если еще актуально.
Необходимо подредактировать файлы item.php и category_item.php.

Вы не можете этот код адаптировать для latest_item.php , что бы и при выводе последних новых сообщений выводились экстра-поля?
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Re: Дополнительные поля
« Ответ #9 : 18.12.2010, 15:52:31 »
Такое впечатление, что на форуме общаюсь сам с собой.  Этот код нужно вставить в last_item.php, если вы хотите что бы дополнительные поля выводились.
Например, если у вас 10 дополнительных полей, а нужно выводить только значение поля  "Цена", то пригодится этот код:

Код
<?php $this->item->extra_fields = K2ModelItem::getItemExtraFields($this->item->extra_fields); ?>
     <!-- Item extra fields -->
 <div class="itemExtraFieldsLast">
            <?php foreach ($this->item->extra_fields as $key=>$extraField): ?>
<?php /* info */; ?>
                        <?php
                        $emptyValue = false;
                        switch ($extraField->type) {
                                case "textfield":
                                case "textarea":
                                        if ($extraField->value =="") $emptyValue = true;
                                break;
                                case "link":
                                        if (strpos($extraField->value,"\"http://\"")) $emptyValue = true;
                                break;
                                case "radio":
                                break;
                                case "multipleSelect":
                                        // Test already done by K2. If value is empty, this type of field does not appear.
                                break;
                                case "select":
                                        // This type of field can't have an empty value (first item select by default)
                                break;
                        }
                        ?>
                        <?php if (!$emptyValue): ?>
                        <?php //echo $extraField->name; ?>
                            <?php if ($extraField->name=="Цена"): ?>
                                   <span class="itemExtraFieldsLastLabel"><?php echo $extraField->name; ?>:</span>
                                  <span class="itemExtraFieldsLastValue"><?php echo $extraField->value; ?></span>
                             <?php endif; ?>
                        <?php endif; ?>
                <?php endforeach; ?>
                 <div class="clr"></div>
             <?php if ($this->item->params->get('latestItemReadMore')): ?>
             <!-- Item "read more..." link -->
             <div class="latestItemReadMore">
             <a class="k2ReadMore" href="<?php echo $this->item->link; ?>">
             <?php echo JText::_('Read more...'); ?>
             </a>
                  <div class="clr"></div>
             </div>
             <?php endif; ?>
      </div>
      <div class="clr"></div>
« Последнее редактирование: 14.01.2011, 15:21:20 от x1 »
*

jenen

  • Новичок
  • 8
  • 0 / 0
Re: Дополнительные поля
« Ответ #10 : 13.01.2011, 15:03:26 »
Необходимо подредактировать файлы item.php и category_item.php.
а где эти файлы находятся?
нашла здесь components\com_k2\templates
« Последнее редактирование: 13.01.2011, 15:27:37 от jenen »
*

StarMag

  • Moderator
  • 228
  • 25 / 0
  • после ночи разбора РНР кода
Re: Дополнительные поля
« Ответ #11 : 13.01.2011, 15:29:10 »
а где эти файлы находятся?
/components/com_k2/templates/default
ну или
/templates/ваш_шаблон/html/com_k2/templates/default
если у вас стоит шаблон с поддержкой К2
Ну почему никто никогда не читает справочные материалы?...
*

сергей_Ш

  • Захожу иногда
  • 187
  • 1 / 0
здравствуйте, добрые люди.
подскажите такой момент. делаю k2 доп.поля в кол-ве 10 штук. но в материалах эти поля не все заполняются. обычно 6-7 полей в одном материале заполняется (т.е 4-3 поля пустые) или же 4-5 полей заполняются, а другие пустые остаются..

как скрыть незаполненные поля?

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

есть решение? т.е нужно так: поле заполнено - вывелось. не заполнено - не вывелось
« Последнее редактирование: 10.10.2011, 19:29:37 от SDKiller »
*

SDKiller

  • Moderator
  • 2706
  • 329 / 5
  • ...ergo sum
Re: дополнительные поля
« Ответ #13 : 10.10.2011, 18:29:28 »
Ну так сделайте условие в шаблоне для проверки содержимого в допполе

На примере шаблона материала item.php: если вы не используете разный стиль оформления для чётных-нечётных допполей, то можно прямо в этом цикле:

Код: php
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<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 endforeach; ?>

сделать так:

Код: php
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
    <?php if (!empty($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; ?>

По идее должно работать.
« Последнее редактирование: 10.10.2011, 21:12:15 от SDKiller »
*

сергей_Ш

  • Захожу иногда
  • 187
  • 1 / 0
Re: дополнительные поля
« Ответ #14 : 10.10.2011, 19:02:12 »
Ну так сделайте условие в шаблоне для проверки содержимого в допполе

На примере шаблона материала: если вы не используете разный стиль оформления для чётных-нечётных допполей, то можно прямо в этом цикле:

Код
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<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 endforeach; ?>


это код отвечающий за вывод class="itemExtraFields"
как его поправить чтоб было так как заявлено в первом посте?)
никаких разных стилей не используется. все как в к2 по умолчанию
*

SDKiller

  • Moderator
  • 2706
  • 329 / 5
  • ...ergo sum
Re: дополнительные поля
« Ответ #15 : 10.10.2011, 19:20:29 »
Дополнил пост.

В других шаблонах, где выводятся допполя делать по аналогии.

Если требуются разные стили для чётных-нечётных (odd-even) придётся ввести дополнительно в цикл свой счётчик и в этом условии
<?php echo ($key%2)? "odd" : "even"; ?> $key заменить на свою переменную
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
А $key - это просто дополнительный класс, который в CSS прописывается или что?
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

SDKiller

  • Moderator
  • 2706
  • 329 / 5
  • ...ergo sum
А $key - это просто дополнительный класс, который в CSS прописывается или что?

$key - это в данном случае индекс дополнительного поля в массиве всех допполей.

Если мы не выводим все допполя, то соответственно у нас собъётся разделение на чётные-нечётные строки при такой системе.
Поэтому нужно будет добавлять свой счётчик отображаемых по факту допполей и чётность-нечётность считать по нему.
*

SDKiller

  • Moderator
  • 2706
  • 329 / 5
  • ...ergo sum
Кстати, в К2 версии 2.5.x внесены изменения в шаблон - незаполненные допполя теперь не выводятся.

К сожалению описанный выше момент с odd-even разработчики проморгали  ^-^ :




Так что если вы назначаете чётным-нечётным строкам разные стили, править шаблон, вставляя в цикл свой счётчик, всё-таки придётся.
*

Dorfman

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

К сожалению описанный выше момент с odd-even разработчики проморгали  ^-^ :

Тю, а у меня нормально выводятся, чёт/нечёт, всё в поряде...

А, нет... Проверил... Действительно имеет место глюк  :(
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
Добрый день всем.
Пытался сделать чтобы скрывало незаполненные доп поля, но указанным выше способом не вышло.
пробовал так
Код
<?php foreach ($this->item->extra_fields as $key=>$extraField): ?>


<?php if($extraField->value): ?>
<table style="width:100%">
<tr>
<td style="width:30%;text-align:right;font-weight:bold;">
<span class="itemExtraFieldsLabel"><?php echo $extraField->name; ?>:</span></td>
<td class="<?php echo ($key%2)? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
<span class="itemExtraFieldsValue"><?php echo $extraField->value; ?></span>
</td>
</tr>
</table>
<?php if ($extraField->value != ''): ?>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
тоже не прокатило. Версия k2 2.5 Joomla 2.5.3
« Последнее редактирование: 23.03.2012, 12:55:04 от orexov_m »
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
В k2 2.5 незаполнненые допполя и так должны скрываться.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
В k2 2.5 незаполнненые допполя и так должны скрываться.
ну вот как то не скрываются, не зенаю почему
вот тут все поля заполнены http://test.upravdom44.ru/about/structure/item/1-generalnii-direktor.html
а вот тут поле прием граждан по личным вопросам не заполнено http://test.upravdom44.ru/about/structure/item/4-deloproizvoditel.html

Возможно я где то галочку в настройках не поставил, но вроде бы уже все перерыл и результата 0
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
"Галочки" тут ни при чём: незаполненные допполя автоматом скрываются. Проверьте отсутствие побелов в "проблемных" полях: возможно, Вы их раньше пытались заполнить, и после удаления остался пробельчик
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
"Галочки" тут ни при чём: незаполненные допполя автоматом скрываются. Проверьте отсутствие побелов в "проблемных" полях: возможно, Вы их раньше пытались заполнить, и после удаления остался пробельчик
Проверял. нет ни пробелов ничего. эффекта нет :(
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
какая точно версия К2?
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
какая точно версия К2?
2.5.5
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

AlinaTatsu

  • Новичок
  • 9
  • 2 / 0
Здравствуйте! Столкнулась с той же проблемой, K2 v2.5.5, Joomla! 2.5.4, дополнительные поля незаполненные информацией сами по себе не скрываются и даже после вставки условия в шаблоне для проверки содержимого в доп.поле по совету SDKiller, результат не радует:
Конструкционная скорость, км/ч: [{"name":null,"value":"","target":null}]
Срок службы, лет: [{"name":null,"value":"","target":null}]
Буду признательна за помощь ^-^
« Последнее редактирование: 04.10.2012, 11:53:02 от AlinaTatsu »
*

AlinaTatsu

  • Новичок
  • 9
  • 2 / 0
Цитировать
..дополнительные поля незаполненные информацией сами по себе не скрываются и даже после вставки условия в шаблоне для проверки содержимого в доп.поле по совету SDKiller, результат не радует..
тут всегда так плохо со скоростью ответов? ведь проблема существует и не решена :(
если кто решил или знает что ещё можно попробовать сделать, то отпишитесь пожалуйста.
*

mirokov

  • Новичок
  • 3
  • 0 / 0
Добрый день!
Подскажите пожалуйста какой файл нужно редактировать для перевода названий доп полей в K2 использую шаблон от JoomShaper (шаблон shaper_travel - Default) не могу переименовать вроде посмотрел языковые файлы но пока не могу найти решение, прошу помощи. Вот на картинке выделено что не могу перевести заранее благодарю за участие
Да и вот еще вопрос как добавлять такие вкладки?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Видны, но неактивны доп поля с front end

Автор grizlik

Ответов: 0
Просмотров: 1443
Последний ответ 02.04.2019, 20:15:08
от grizlik
Дополнительные поля в разных местах шаблона

Автор stanislav-1983

Ответов: 6
Просмотров: 3998
Последний ответ 12.09.2015, 14:25:01
от Eholov
Добавить дополнительные мета теги к К2-статье и наполнить их значениями доп. полей

Автор chilly_bang

Ответов: 0
Просмотров: 1302
Последний ответ 14.01.2013, 22:37:17
от chilly_bang