Новости Joomla

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

sergm87

  • Новичок
  • 6
  • 0 / 0
в K2 сначал идет вывод подкатегорий, а потом всех материалов  в них.
нужно сделать чтобы сначала шло название подкатегории, потом ее материалы.
нужно редактировать файл category.php. вставил в цикл вывода подкатегорий такой код
Код
<?php foreach($this->leading as $key=>$item): ?>

<?php
// Define a CSS class for the last container on each row
if( (($key+1)%($this->params->get('num_leading_columns'))==0) || count($this->leading)<$this->params->get('num_leading_columns') )
$lastContainer= ' itemContainerLast';
else
$lastContainer='';
?>

<div class="itemContainer<?php echo $lastContainer; ?>"<?php echo (count($this->leading)==1)? '' : ' style="width:'.number_format(100/$this->params->get('num_leading_columns'), 1).'%;"'; ?>>
<?php
// Load category_item.php by default
$this->item=$item;
echo $this->loadTemplate('item');
?>
</div>
<?php if(($key+1)%($this->params->get('num_leading_columns'))==0): ?>
<div class="clr"></div>
<?php endif; ?>
<?php endforeach; ?>
<?php if($this->params->get('subCatDescription')): ?>
<!-- Subcategory description -->
<p><?php echo $subCategory->description; ?></p>
<?php endif; ?>

<!-- Subcategory more... -->
<a class="subCategoryMore" href="<?php echo $subCategory->link; ?>">
<?php echo JText::_('K2_VIEW_ITEMS'); ?>
</a>

<div class="clr"></div>
</div>
</div>
<?php if(($key+1)%($this->params->get('subCatColumns'))==0): ?>
<div class="clr"></div>
<?php endif; ?>
<?php endforeach; ?>
в таком случае выводится после каждой подкатегории выводится список материалов из всех.
подразумеваю что разгадка в этой сроке $this->leading as $key=>$item. но как передать нужные параметры
*

olejan

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Re: вывод материалов подкатегорий
« Ответ #1 : 24.06.2012, 21:55:36 »
Не нашел решения? для меня тоже актуально.
*

vovanx

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: вывод материалов подкатегорий
« Ответ #2 : 05.07.2012, 13:00:30 »
Тип меню выбираем следующий K2 -> Последние материалы из (одной или более) страницы пользователя или категории
Источник контента -> Категории
Настройки категории -> нажимаем на кнопку "Нажмите чтобы выбрать одну или несколько категорий" -> выбираем интересующие нас категории.

Вуаля!
*

whatyouname?

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Re: вывод материалов подкатегорий
« Ответ #3 : 18.08.2012, 21:38:32 »
sergm87, category.php - это всего лишь шаблон, и в нёго передаются переменные $this->leading, $this->primary, $this->secondary и $this->links, в которых материалы подкатегорий идут вперемешку. Нужно их в модели при извлечении из базы разделять. Где именно, не подскажу, надо искать. А пока, как временное решение, можно просто проверять, к какой подкатегории относится материал. Для этого в вашем коде измените часть
Код
// Load category_item.php by default
$this->item=$item;
echo $this->loadTemplate('item');

на

Код
// Load category_item.php by default
$this->item=$item;
if($this->item->category->name == $subCategory->name)
echo $this->loadTemplate('item');

Правда при этом все материалы будут прогоняться столько раз, сколько у вас подкатегорий, что не совсем оптимально. Но при относительно небольшом количестве отображаемых материалов на быстродействии это не скажется
« Последнее редактирование: 19.08.2012, 08:58:06 от whatyouname? »
*

alexmay

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: Вывод материалов подкатегорий
« Ответ #4 : 15.08.2013, 01:19:04 »
Делаем все в category.php:

Сначала запросим данные из БД в цикле подкатегорий. После стоки 79-80:

Код
<?php foreach($this->subCategories as $key=>$subCategory): ?> 

вставляем:

Код
<?php
            $user = &JFactory::getUser();
$aid = $user->get('aid');
$db = & JFactory::getDBO();

$jnow = &JFactory::getDate();
        $now = $jnow->toMySQL();
        $nullDate = $db->getNullDate();

$query = "SELECT * FROM #__k2_items WHERE
                trash = 0 AND
                published = 1 AND
catid = {$subCategory->id} AND
( publish_up = ".$db->Quote($nullDate)." OR publish_up <= ".$db->Quote($now)." ) AND
( publish_down = ".$db->Quote($nullDate)." OR publish_down >= ".$db->Quote($now)." )
ORDER BY created DESC
LIMIT 0,5";

$db->setQuery($query);

$sItems = $db->loadObjectList();

?>

Потом, например после вывода описания категории (строка 130-135):

Код
<p><?php echo $subCategory->description; ?></p>

выводим сами материалы:

Код
<?php if (count($sItems)): ?>

<div class="subCatItems">
<?php foreach($sItems as $sItem):
$link = K2HelperRoute::getItemRoute($sItem->id.':'.urlencode($sItem->alias),$sItem->catid.':'.urlencode($subCategory->alias));
$sItem->link=urldecode(JRoute::_($link));
?>
<div>
<a href="<?php echo $sItem->link; ?>"><?php echo $sItem->title; ?></a>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
*

alexmay

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: Вывод материалов подкатегорий
« Ответ #5 : 15.08.2013, 01:20:13 »
(удалено)
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
Re: Вывод материалов подкатегорий
« Ответ #6 : 15.08.2013, 13:56:16 »
del
« Последнее редактирование: 15.08.2013, 14:00:31 от jurassik »
сам шучу - сам смеюсь
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться