Помощь [РЕШЕНО]Вывод доп.полей K2 в модуль

JetNet

Постоялец
Регистрация
23 Авг 2015
Сообщения
50
Реакции
13
Доброго времени.

Суть вопроса. Есть код:

Код:
<?php if($params->get('itemExtraFields') && count($item->extra_fields)): ?>
      <div class="moduleItemExtraFields">
          <ul class="spisiok">
            <?php foreach ($item->extra_fields as $extraField): ?>
                    <?php if($extraField->value != ''): ?>
                    <li>
                        <span class="moduleItemExtraFieldsLabel"><?php echo $extraField->name; ?></span>
                        <span class="moduleItemExtraFieldsValue"><?php echo $extraField->value; ?></span>
                        <div class="clr"></div>
                    </li>
                    <?php endif; ?>
            <?php endforeach; ?>
          </ul>
      </div>
      <?php endif; ?>

Он выводит все заполненные доп.поля из материала K2.

Вопрос: как сделать выводт только нужных полей?

Старый метод
Код:
$extrafields = array();
foreach($this->item->extra_fields as $item)
{   
$extrafields[$item->id] = $item->value;
}

$istochnik = $extrafields[15];

увы не работает.
 
Код:
<?php foreach ($item->extra_fields as $extraField): ?>
                    <?php if($extraField->value != ''): ?>

                    <?php if($extraField->name == 'имя из алиаса поля') : ?> таких вещей нужно будет добавить очень много
                    <li>
                        <span class="moduleItemExtraFieldsLabel"><?php echo $extraField->name; ?></span>
                        <span class="moduleItemExtraFieldsValue"><?php echo $extraField->value; ?></span>
                        <div class="clr"></div>
                    </li>
                    <?php endif; ?>
                    <?php endif; ?>
            <?php endforeach; ?>


Это если делать костыль.

А вообще в к2 это настраивает сядет все с админки
1. Создаёте группу дополнительные полей,
2. Добавляете в группу поля
3. Присваивает группу доп. Полей к категории
4. При редактирования страницы к2 указываете только те которые должны заполняться
 
Это да, но задача немного другая. В самом материале К2 доп.поля выводятся правильно - все. Мне же необходимо вывести определенные поля в mod_K2Content. И вот там либо все, либо ничего.
 
Код:
<?php if(($extraField->name == 'имя из алиаса поля 1') ||
            ($extraField->name == 'имя из алиаса поля 2') ||
            ($extraField->name == 'имя из алиаса поля 3') : ?> таких вещей нужно будет добавить очень много
                    <li>
                        <span class="moduleItemExtraFieldsLabel"><?php echo $extraField->name; ?></span>
                        <span class="moduleItemExtraFieldsValue"><?php echo $extraField->value; ?></span>
                        <div class="clr"></div>
                    </li>
<?php endif; ?>

Такое условие, возможно немного доработанное позволит вам выводить нужные поля.
Я не помню какие поля хранятся в объекте $extraField. Поэтому, возможно, поле name это не алиас. Сделайте var_dump($extraField) чтобы получить содержимое объекта.
 
Такое условие, возможно немного доработанное позволит вам выводить нужные поля.
Я не помню какие поля хранятся в объекте $extraField. Поэтому, возможно, поле name это не алиас. Сделайте var_dump($extraField) чтобы получить содержимое объекта.

Спасибо, сейчас попробую.
 
Проблема решена следующим кодом:

Код:
<?php
       if($params->get('ItemExtraFields') && count($item->extra_fields));
            foreach ($item->extra_fields as $extr):
                {   
                    $extrafields[$extr->id] = $extr->value;
                }
                      $extraField=array();
?>   
            <?php endforeach; ?>
<?php if($extrafields[1]): ?>
<div class="Класс Модуля ">
<?php echo $extrafields[1];?>
</div>
<?php endif; ?>
 
Назад
Сверху