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

orchanin

  • Осваиваюсь на форуме
  • 176
  • 3
Вывод доп полей
« : 20.12.2010, 08:58:07 »
Меня заинтересовала такая фишка: Есть 2 дополнительных поля (к примеру). Задача вывести одно дополнительное поле например перед изображением а второе доп поле после изображения. Другими словами как разделить дополнительные поля для позиционирования их в разных местах на странице?
Я буду пробовать решить этот вопрос самостоятельно, и если решу выложу решение, но если кто то сталкивался с этим и может облегчить мой труд прошу отписаться!
Я ведь учусь только!
www.opengs.ru
*

lifecom

  • Осваиваюсь на форуме
  • 99
  • 1
Re: Вывод доп полей
« Ответ #1 : 17.03.2011, 14:24:00 »
Решение нашли?
*

lesta

  • Осваиваюсь на форуме
  • 25
  • 6
Re: Вывод доп полей
« Ответ #2 : 17.03.2011, 15:06:16 »
сталкивалась с этим
у нас все доп. поля выводятся в цикле foreach
можно убрать цикл и выводить поля с нужны айди, то есть
<li class="<?php echo "odd1" ; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">           
           <span class="itemExtraFieldsLabel"><?php echo $this->item->extra_fields[11]->name; ?></span>
             <span class="itemExtraFieldsValue"><?php echo $this->item->extra_fields[11]->value; ?> </span>    
здесь результатом будет отображение доп. поля 11 по счету
*

vatb

  • Осваиваюсь на форуме
  • 31
  • 11
Re: Вывод доп полей
« Ответ #3 : 17.03.2011, 21:36:15 »
Можно и написать условие

Код
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<?php if((!empty($extraField->value)) && (($extraField->value)!= "http://") && ($extraField->id!=3) && ($extraField->id!=4) : ?>  
         <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; ?>

         Этот код выведет дополнительные поля, если они не пусты и его id не равен 3  и 4. Т.е. выведет любое доп поле, кроме третьего и четвертого.
Подставляйте свои id, если нужно несколько, допишите еще условия.
В нужном месте страницы выведите этот блок но с условием   && ($extraField->id=3) || ($extraField->id=4)
« Последнее редактирование: 19.03.2011, 09:19:34 от vatb »
*

realovich

  • Давно я тут
  • 201
  • 52
  • Зрящий в корень
Re: Вывод доп полей
« Ответ #4 : 18.03.2011, 15:25:48 »
Можно и написать условие

Код
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<?php if((!empty($extraField->value)) && (($extraField->value)!= "http://") && ($extraField->id!=3) && ($extraField->id!=4) : ?>  
         <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; ?>

         Этот код выведет дополнительные поля, если они не пусты и его id не равен 3  и 4. Т.е. выведет любое доп поле, кроме третьего и четвертого.
Подставляйте свои id, если нужно несколько, допишите еще условия.
В нужном месте страницы выведите этот блок но с условием   && ($extraField->id=3) || ($extraField->id=4)

У меня этот код ругается:
Parse error: syntax error, unexpected ':' in /.../components/com_k2/templates/default/category_item.php on line 138
« Последнее редактирование: 18.03.2011, 15:34:53 от realovich »
*

realovich

  • Давно я тут
  • 201
  • 52
  • Зрящий в корень
Re: Вывод доп полей
« Ответ #5 : 18.03.2011, 15:34:37 »
И можно ли как-то указать, чтобы только одно доп. поле вывести, а не путем исключения.
*

vatb

  • Осваиваюсь на форуме
  • 31
  • 11
Re: Вывод доп полей
« Ответ #6 : 19.03.2011, 09:18:30 »
сорри, забыл if закрыть))   добавьте перед <?php endforeach; ?>    <?php endif; ?> все должно заработать.

Цитировать
И можно ли как-то указать, чтобы только одно доп. поле вывести, а не путем исключения.

да, там же ниже написано как это сделать. Поставить условие  && ($extraField->id=3)  оно выведет только поле с ид=3

Я поправил код выше

*

xlife

  • Новичок
  • 5
  • 0
Re: Вывод доп полей
« Ответ #7 : 12.04.2011, 19:12:15 »
Можно и написать условие

Код
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<?php if((!empty($extraField->value)) && (($extraField->value)!= "http://") && ($extraField->id!=3) && ($extraField->id!=4) : ?> 
         <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; ?>

         Этот код выведет дополнительные поля, если они не пусты и его id не равен 3  и 4. Т.е. выведет любое доп поле, кроме третьего и четвертого.
Подставляйте свои id, если нужно несколько, допишите еще условия.
В нужном месте страницы выведите этот блок но с условием   && ($extraField->id=3) || ($extraField->id=4)

разместил этот код в item.php 
ругается на строку
<?php if((!empty($extraField->value)) && (($extraField->value)!= "http://") && ($extraField->id!=3) && ($extraField->id!=4) : ?> 
*

eragon

  • Осваиваюсь на форуме
  • 148
  • 7
Re: Вывод доп полей
« Ответ #8 : 08.03.2012, 11:18:58 »
$extraField->id работает?

Имеем следующий код в item.php:
Код: php
	  <?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>
  <h2><?php echo JText::_('K2_ADDITIONAL_INFO'); ?></h2>
<ul class="buka">
<?php foreach ($this->item->extra_fields as $key=>$extraField): ?>
<?php if(($extraField->value) && ($extraField->id!=8) && ($extraField->id!=9) && ($extraField->id!=10)): ?>
<li><span style="display:block;float:left;font-weight:bold;margin:0 4px 0 0;width:30%;"><?php echo $extraField->name; ?>:</span> <span><?php echo $extraField->value; ?></span></li>
<?php endif; ?>

<?php if(($extraField->value) && ($extraField->id=8)): ?>
<?php $temp_k2_dw1 = '<div class="box">
<div align="center"><h3 style="margin-top:0px;">'.$extraField->name.'</h3>
'.$extraField->value.'</div>
</div>'; ?>
<?php endif; ?>
<?php if(($extraField->value) && ($extraField->id=9)): ?>
<?php $temp_k2_dw2 = '<div class="box">
<div align="center"><h3 style="margin-top:0px;">'.$extraField->name.'</h3>
'.$extraField->value.'</div>
</div>'; ?>
<?php endif; ?>
<?php if(($extraField->value) && ($extraField->id=10)): ?>
<?php $temp_k2_dw3 = '<div class="box">
<div align="center"><h3 style="margin-top:0px;">'.$extraField->name.'</h3>
'.$extraField->value.'</div>
</div>'; ?>
<?php endif; ?>
<?php endforeach; ?>
</ul>
  <?php endif; ?>
 
  <?php echo $temp_k2_dw1; ?>
  <?php echo $temp_k2_dw2; ?>
  <?php echo $temp_k2_dw3; ?>
Где у нас поля с ID 8, 9, 10 "особенные" и которые нужно вывести в другом месте.

И имеем следующее, все, кроме 8, 9, 10, выводится, как и положено. Дальше в переменные $temp_k2_dw1, $temp_k2_dw2, $temp_k2_dw3 записываем данные из полей с ID 8, 9, 10 соответственно. В итоге получаем, что во всех этих 3х переменных данные из поля с ID 10.

Пробовал там где нужно вывести эти 3 поля, сделать аналогичный цикл, но с подобными условиями, аналогичная проблема, все 3 поля одинаковые.

P.S. В материале конечно же все поля как следует заполнены.
*

Dorfman

  • Живу я здесь
  • 1148
  • 74
  • Почти влез...
Re: Вывод доп полей
« Ответ #9 : 05.07.2013, 16:24:08 »
Всё никак руки до этой темы не доходили!
щас продолжу...

PS В связи с тем, что Администрацией сайта (и я их понимаю) был забанен за распространение вареза сайт-источник данного полезного материала, мне не удалось опубликовать здесь прямую ссылку на оригинал, и пришлось причесать сей опус, дополнив его также необходимыми полезностями, и выложить у себя на сайте.
Итак, Издеваемся над стилями и допполями в К2
« Последнее редактирование: 06.07.2013, 17:57:56 от Dorfman »
*

alexspi

  • Осваиваюсь на форуме
  • 28
  • 0
Re: Вывод доп полей
« Ответ #10 : 13.09.2013, 19:00:32 »
спасибо за решение почти всё получилось, кроме страницы вывода по тегам, он категорически отказывается считывать нужные доп поля (((

Спойлер
[свернуть]

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

newvideo

  • Осваиваюсь на форуме
  • 192
  • 2
Re: Вывод доп полей
« Ответ #11 : 25.02.2014, 18:00:15 »
подскажите пожалуйста, как к выводимому значению поля добавить картинку? может через стили?
« Последнее редактирование: 25.02.2014, 21:41:57 от newvideo »
кто не работает, тот ест
*

Dorfman

  • Живу я здесь
  • 1148
  • 74
  • Почти влез...
Re: Вывод доп полей
« Ответ #12 : 02.03.2014, 13:01:08 »
уже писал вот тут. Делай по аналогии.
*

SolopoV

  • Завсегдатай
  • 476
  • 12
  • зеленею...
Re: Вывод доп полей
« Ответ #13 : 17.08.2015, 21:22:01 »
Не совсем то, но может кому то и пригодится:
Выводим некоторые данные из полей плагина userExtendedFields в модуль mod_k2_users:

Код
<?php
$fields = new JRegistry($user->plugins);
if($fields->get('userExtendedFieldstelephone')!= ''){
echo "<div class=\"userExtendedFields\">";
echo JText::_('MOD_K2_TELEPHONE');
echo $fields->get('userExtendedFieldstelephone');
echo "</div>";
}

if($fields->get('userExtendedFieldsmobile')!= ''){
echo "<div class=\"userExtendedFields\">";
echo JText::_('MOD_K2_MOBILE_TELEPHONE');
echo $fields->get('userExtendedFieldsmobile');
echo "</div>";
}
?>
Может и криво, зато работает.

Кто подскажет, как кастомизировать вывод этих же полей в файле profile.php?

Там сейчас следующая конструкция:
Код
<?php foreach($this->K2Plugins as $K2Plugin): ?>
<?php if(!is_null($K2Plugin)): ?>
<?php echo $K2Plugin->fields; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
А хотелось бы разделить название поля и само поле (нечто вроде):
<span>название</span><span>данные</span>

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться