Форум русской поддержки Joomla!® CMS
06.12.2016, 18:12:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вывод доп полей

 (Прочитано 3806 раз)
0 Пользователей и 1 Гость смотрят эту тему.
orchanin
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 175



« : 20.12.2010, 09:58:07 »

Меня заинтересовала такая фишка: Есть 2 дополнительных поля (к примеру). Задача вывести одно дополнительное поле например перед изображением а второе доп поле после изображения. Другими словами как разделить дополнительные поля для позиционирования их в разных местах на странице?
Я буду пробовать решить этот вопрос самостоятельно, и если решу выложу решение, но если кто то сталкивался с этим и может облегчить мой труд прошу отписаться!
Записан
lifecom
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 99


« Ответ #1 : 17.03.2011, 15:24:00 »

Решение нашли?
Записан
lesta
Осваиваюсь на форуме
***

Репутация: +6/-0
Offline Offline

Сообщений: 25


« Ответ #2 : 17.03.2011, 16: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
Осваиваюсь на форуме
***

Репутация: +11/-0
Offline Offline

Сообщений: 31


« Ответ #3 : 17.03.2011, 22: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, 10:19:34 от vatb » Записан
realovich
Давно я тут
****

Репутация: +53/-1
Offline Offline

Пол: Мужской
Сообщений: 201


Зрящий в корень


« Ответ #4 : 18.03.2011, 16: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, 16:34:53 от realovich » Записан
realovich
Давно я тут
****

Репутация: +53/-1
Offline Offline

Пол: Мужской
Сообщений: 201


Зрящий в корень


« Ответ #5 : 18.03.2011, 16:34:37 »

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

Репутация: +11/-0
Offline Offline

Сообщений: 31


« Ответ #6 : 19.03.2011, 10:18:30 »

сорри, забыл if закрыть))   добавьте перед <?php endforeach; ?>    <?php endif; ?> все должно заработать.

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

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

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

Записан
xlife
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #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
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Сообщений: 148


« Ответ #8 : 08.03.2012, 11:18:58 »

$extraField->id работает?

Имеем следующий код в item.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
Живу я здесь
******

Репутация: +78/-4
Offline Offline

Пол: Мужской
Сообщений: 1142


Почти влез...


« Ответ #9 : 05.07.2013, 16:24:08 »

Всё никак руки до этой темы не доходили!
щас продолжу...

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

Репутация: +0/-0
Offline Offline

Сообщений: 29


« Ответ #10 : 13.09.2013, 19:00:32 »

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

Показать текстовый блок

мне надо чтобы он одно поле вывел рядом с названием
может подскажет кто?
Записан
newvideo
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 91


« Ответ #11 : 25.02.2014, 18:00:15 »

подскажите пожалуйста, как к выводимому значению поля добавить картинку? может через стили?
« Последнее редактирование: 25.02.2014, 21:41:57 от newvideo » Записан
Dorfman
Живу я здесь
******

Репутация: +78/-4
Offline Offline

Пол: Мужской
Сообщений: 1142


Почти влез...


« Ответ #12 : 02.03.2014, 13:01:08 »

уже писал вот тут. Делай по аналогии.
Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #13 : 17.08.2015, 22: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>

Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet