Доп поля K2 в сторонних приложениях

  • 16 Ответов
  • 2583 Просмотров

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

Здравствуйте.
Волнует вопрос по выводу конкретных доп. полей K2 в сторонних компонентах.
Например, есть модуль bt content slider.
По умолчанию, поля k2 не выводит, но вставив в шаблон модуля конструкцию
<?php echo $row->extra_fields_search; ?>
можно получить вывод  всех дополнительных полей материала.
Как вывести не все, а например нужные мне (по ID или алиасу)?

*

jurassik

сам шучу - сам смеюсь

Re: Доп поля K2 в сторонних приложениях
« Ответ #2 : 31.03.2013, 04:13:22 »
да

Как получить поле по алиасу в шаблоне k2 мне известно.
Вы бы могли привести пример кода, который бы работал в стороннем модуле типа bt content slider.
если этот код выводит все поля
Код
<?php echo $row->extra_fields_search; ?>

*

jurassik

Re: Доп поля K2 в сторонних приложениях
« Ответ #3 : 31.03.2013, 07:11:35 »
Код
<?php print_r ($row->extra_fields_search); ?>
увидите переменные
сам шучу - сам смеюсь

Re: Доп поля K2 в сторонних приложениях
« Ответ #4 : 31.03.2013, 15:30:43 »
увидите переменные

Код
<?php print_r ($row->extra_fields_search); ?>
Также выводит сам значения полей как и
Код
<?php echo $row->extra_fields_search; ?>

Переменных не видно...

Зато вот это
Код
<?php echo $row->extra_fields;?>

Выводит это
                 
 [{"id":"1","value":"\u0417 \u041f\u043d \u043f\u043e \u041f\u0422 \u043e 16:10"},{"id":"3","value":"
« Последнее редактирование: 31.03.2013, 15:45:04 от romagromov »

*

jurassik

Re: Доп поля K2 в сторонних приложениях
« Ответ #5 : 31.03.2013, 15:36:43 »
а какая переменная материала?
сам шучу - сам смеюсь

Re: Доп поля K2 в сторонних приложениях
« Ответ #6 : 31.03.2013, 15:46:49 »
Я в этом модуле ничего не понимаю...
Вот весь код шаблона

Код
<?php
/**
 * @package mod_bt_contentslider - BT ContentSlider Module
 * @version 1.4
 * @created Oct 2011

 * @author BowThemes
 * @email support@bowthems.com
 * @website http://bowthemes.com
 * @support Forum - http://bowthemes.com/forum/
 * @copyright Copyright (C) 2012 Bowthemes. All rights reserved.
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 *
 */
// no direct access
defined('_JEXEC') or die('Restricted access');
if($modal){JHTML::_('behavior.modal');}
$document = JFactory::getDocument();
if(count($list)>0){?>
<div id="btcontentslider<?php echo $module->id; ?>" style="display:none;width:<?php echo $moduleWidthWrapper;?>" class="bt-cs<?php echo $moduleclass_sfx? ' bt-cs'.$params->get('moduleclass_sfx'):'';?>">
<?php if( $next_back && $totalPages  > 1  ) : ?>
<a class="prev" href="#">Prev</a><a class="next" href="#">Next</a>
<?php endif; ?>
<?php
$add_style = "";
if( trim($params->get('content_title')) ){
$add_style= "border: 1px solid #CFCFCF;padding:10px 0px;";
?>
<h3 style="width:<?php echo $moduleWidth;?>">
<?php if($params->get('content_link')) {?>
<a href="<?php echo $params->get('content_link');?>"><span><?php echo $params->get('content_title')?> </span></a>
<?php } else { ?>
<span><?php echo $params->get('content_title')?> </span>                   
<?php   }?>
</h3>
<?php } ?>
<div class="slides_container" style="width:<?php echo $moduleWidth.";".$add_style;?>">

<?php foreach( $pages as $key => $list ): ?>
<div class="slide" style="width:<?php echo $moduleWidth;?>">
<?php foreach( $list as $i => $row ): ?>
<div class="bt-row <?php if($i==0) echo 'bt-row-first'; else if($i==count($list)-1) echo 'bt-row-last' ?>"  style="width:<?php echo $itemWidth;?>%" >
<div class="bt-inner">
<?php if( $row->thumbnail && $align_image != "center"): ?>
<a target="<?php echo $openTarget; ?>" class="bt-image-link<?php echo $modal? ' modal':''?>" title="<?php echo $row->title;?>" href="<?php echo $modal?$row->mainImage:$row->link;?>">
  <img <?php echo $imgClass ?>  src="<?php echo $row->thumbnail; ?>" alt="<?php echo $row->title?>"  style="width:<?php echo $thumbWidth ;?>px; float:<?php echo $align_image;?>;margin-<?php echo $align_image=="left"? "right":"left";?>:5px" title="<?php echo $row->title?>" />
</a>
<?php endif ; ?>
<?php if( $show_category_name ): ?>
<?php if($show_category_name_as_link) : ?>
<a class="bt-category" target="<?php echo $openTarget; ?>"
title="<?php echo $row->category_title; ?>"
href="<?php echo $row->categoryLink;?>"> <?php echo $row->category_title; ?>
</a>
<?php else :?>
<span class="bt-category"> <?php echo $row->category_title; ?> </span>
<?php endif; ?><br />
<?php endif; ?>

<div class="extra_field">
                   
                    <?php echo $row->extra_fields;?>
                    </div>
                   
<?php if( $row->thumbnail && $align_image == "center" ): ?>
<div class="bt-center">
<a target="<?php echo $openTarget; ?>"
class="bt-image-link<?php echo $modal? ' modal':''?>"
title="<?php echo $row->title;?>" href="<?php echo $modal?$row->mainImage:$row->link;?>">
<img <?php echo $imgClass ?> src="<?php echo $row->thumbnail; ?>" alt="<?php echo $row->title?>"  style="width:<?php echo $thumbWidth ;?>px;" title="<?php echo $row->title?>" />
</a>
</div>
<?php endif ; ?>
                   
                    <?php if( $showTitle ): ?>
<a class="bt-title" target="<?php echo $openTarget; ?>"
title="<?php echo $row->title; ?>"
href="<?php echo $row->link;?>"> <?php echo $row->title_cut; ?> </a>
<?php endif; ?>
<?php if( $showAuthor || $showDate ): ?>
<div class="bt-extra">
<?php if( $showAuthor ): ?>
<span class="bt-author"><?php echo JText::sprintf('BT_CREATEDBY' ,
JHtml::_('link',JRoute::_($row->authorLink),$row->author)); ?>
</span>
<?php endif; ?>
<?php if( $showDate ): ?>
<span class="bt-date"><?php echo JText::sprintf('BT_CREATEDON', $row->date); ?>
</span>
<?php endif; ?>
</div>
<?php endif; ?>

<?php if( $show_intro ): ?>
<div class="bt-introtext">
<?php echo $row->description; ?>
</div>
<?php endif; ?>

<?php if( $showReadmore ) : ?>
<p class="readmore">
<a target="<?php echo $openTarget; ?>"
title="<?php echo $row->title;?>"
href="<?php echo $row->link;?>"> <?php echo JText::_('READ_MORE');?>
</a>
</p>
<?php endif; ?>

</div>
<!--end bt-inner -->
</div>
<!--end bt-row -->
<?php
if($itemsPerCol > 1 && $i < count($list)-1){
if(($i+1)%$itemsPerRow ==0){
echo '<div class="bt-row-separate"></div>';
}
}
?>
<?php endforeach; ?>
<div style="clear: both;"></div>

</div>
<!--end bt-main-item page -->
<?php endforeach; ?>
</div>
</div>
<!--end bt-container -->
<div style="clear: both;"></div>

<script type="text/javascript">
if(typeof(btcModuleIds)=='undefined'){var btcModuleIds = new Array();var btcModuleOpts = new Array();}
btcModuleIds.push(<?php echo $module->id; ?>);
btcModuleOpts.push({
slideEasing : '<?php echo $slideEasing; ?>',
fadeEasing : '<?php echo $slideEasing; ?>',
effect: '<?php echo $effect; ?>',
preloadImage: '<?php echo $preloadImg; ?>',
generatePagination: <?php echo $paging ?>,
play: <?php echo $play; ?>,
hoverPause: <?php echo $hoverPause; ?>,
slideSpeed : <?php echo $duration; ?>,
autoHeight:<?php echo $autoHeight ?>,
fadeSpeed : <?php echo $fadeSpeed ?>,
equalHeight:<?php echo $equalHeight; ?>,
width: <?php echo $moduleWidth=='auto'? "'auto'":$params->get( 'module_width', 0 ); ?>,
height: <?php echo $moduleHeight=='auto'? "'auto'":$params->get( 'module_height', 0 ); ?>,
pause: 100,
preload: true,
paginationClass: '<?php echo $butlet==1 ? 'bt_handles': 'bt_handles_num' ?>',
generateNextPrev:false,
prependPagination:true,
touchScreen:<?php echo $touchScreen ?>
});
</script>
<?php
// set position for bullet
if($butlet) {
$nav_top = (-1)*(int)$params->get( 'navigation_top', 0 );
$nav_right = (-1)*(int)$params->get( 'navigation_right', 0 )+5;
if(trim($params->get('content_title'))) $nav_top += 13;
$document->addStyleDeclaration(
$modid . ' ' . ($butlet == 1 ? '.bt_handles' : '.bt_handles_num'). '{'.
'top: ' . $nav_top .'px !important;'.
'right: ' . $nav_right . 'px !important'.
'}'
);

}
// set responsive for mobile device
if($moduleWidth=='auto'){
$document->addStyleDeclaration(
'
@media screen and (max-width: 480px){.bt-cs .bt-row{width:100%!important;}}'
);
}
}
else
{
echo '<div>No result...</div>';
} ?>

*

jurassik

Re: Доп поля K2 в сторонних приложениях
« Ответ #7 : 31.03.2013, 16:11:21 »

Код
<?php print_r (row->extra_fields);?>
сам шучу - сам смеюсь

Re: Доп поля K2 в сторонних приложениях
« Ответ #8 : 31.03.2013, 16:17:23 »
Код
 <?php print_r (row->extra_fields);?>
- вешает сайт

Код
 <?php print_r ($row->extra_fields);?>

Выводит это
               
 [{"id":"1","value":"\u0417 \u041f\u043d \u043f\u043e \u041f\u0422 \u043e 16:10"},{"id":"3","value":"

*

jurassik

Re: Доп поля K2 в сторонних приложениях
« Ответ #9 : 31.03.2013, 16:31:59 »
а в чем разница кода? но в любом случае переменных нет.
я бы использовал стандартный модуль, и приделал к нему слайдер
Спойлер
[свернуть]
сам шучу - сам смеюсь

Re: Доп поля K2 в сторонних приложениях
« Ответ #10 : 31.03.2013, 16:56:21 »
а в чем разница кода? но в любом случае переменных нет.
я бы использовал стандартный модуль, и приделал к нему слайдер
Спойлер
[свернуть]

Я бы тоже так сделал, но есть уже готовый модуль, который есть.
Там приличные сложности со стилями, обрезка изображений и т.д. Короче прикинув за и против, понял что рентабельнее вывести одно доп. поле, чем с ноля подгонять целый шаблон.

Re: Доп поля K2 в сторонних приложениях
« Ответ #11 : 16.04.2013, 20:50:35 »
Я бы тоже так сделал, но есть уже готовый модуль, который есть.
Там приличные сложности со стилями, обрезка изображений и т.д. Короче прикинув за и против, понял что рентабельнее вывести одно доп. поле, чем с ноля подгонять целый шаблон.
как-то решил свою проблему? я вот не могу добиться выводить альтернативный текст вместо readmore

Re: Доп поля K2 в сторонних приложениях
« Ответ #12 : 16.04.2013, 21:12:42 »
В общем использую поле автора для своего текста. не выход, но пользователь и не подозревает :)

*

iluvvm

Re: Доп поля K2 в сторонних приложениях
« Ответ #13 : 19.04.2013, 23:03:09 »
Все из-за того, что все все доп.поля зашифрованы в JSON в одной ячейке таблицы. Любой кто делает большой навороченный проект с сортировкой и обработкой данных рано или поздно будет жестко обломан. Это должно красными буквами быть написано на главной странице К2.

*

Dorfman

  • ******
  • 1148
  • [+]78 / [-]4
  • Почти влез...
Re: Доп поля K2 в сторонних приложениях
« Ответ #14 : 22.04.2013, 01:22:30 »
как-то решил свою проблему? я вот не могу добиться выводить альтернативный текст вместо readmore
Если вместо "подробнее" появляется readmore - поищите в языковых файлах его значение и подправьте (добавьте). А лучше обновите языковой пакет.

*

amazko

Re: Доп поля K2 в сторонних приложениях
« Ответ #15 : 27.01.2015, 05:21:27 »
Ретбята вопрос решился с выводом? тоже очень интересует етот вопрос..
<a href="http://www.ukraine.com.ua/?page=132632" title="Хостинг Украина" target="_blank"><img src="http://www.ukraine.com.ua/design/ukraine/img/ukraine_2.gif" title="Хостинг Украина" border="0" alt="Hosting Ukraine"/></a>

Re: Доп поля K2 в сторонних приложениях
« Ответ #16 : 23.06.2015, 12:38:30 »
Тоже вот посчастливилось с подобным столкнуться. Использовал модуль  sj_k2_categories_accordion и соответственно вывод материалов в нем тоже стандартный и доп. поля не присутствуют.
Вывод дополнительных полей К2 в модулях и сторонних расширениях поддерживающих К2
Код
<?php $db=JFactory::getDBO();
                  $q="SELECT extra_fields FROM #__k2_items WHERE id=$item->id";
          $db->setQuery($q);
  $data_row = $db->loadResult();
                  $json = json_decode($data_row); {?>
                     
  <div>
  <?php print_r($json[Х]->value); ?>    // Тут "Х" порядковый номер (! не id !) доп. поля начиная от "0". Просто подставляйте 0 или 1 или 2 или 3 или т.д. пока нужное доп. поле не отобразится.
  </div> 
 
            <?php } ?>