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

tomclancys

  • Захожу иногда
  • 129
  • 3 / 0
Здравствуйте.

Как можно вывести список материалов ниже названия подкатегории с количеством в ней материалов на макете со списком материалов категории (/components/com_content/views/category/tmpl/default_children.php).

На финише должна получится такая консутркция:
- Название категории
-- Таблица со списком материалов
-Название подкатегории
-- Материал подкатегории 1
-- Материал подкатегории 2
-- Материал подкатегории 3
-- Материал подкатегории 4

Сейчас вот такой код выводит ниже подкатегории список материалов основной категории т.е. дубль, а нужно соотвественно чтобы список материалов был подкатегории.
Код
<?php

defined('_JEXEC') or die;

JHtml::_('bootstrap.tooltip');

$class = ' class="first"';
$lang  = JFactory::getLanguage();

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html');

// Create some shortcuts.
$params    = &$this->item->params;
$n         = count($this->items);
$listOrder = $this->escape($this->state->get('list.ordering'));
$listDirn  = $this->escape($this->state->get('list.direction'));

// Check for at least one editable article
$isEditable = false;

if (!empty($this->items))
{
foreach ($this->items as $article)
{
if ($article->params->get('access-edit'))
{
$isEditable = true;
break;
}
}
}

$tableClass = $this->params->get('show_headings')!= 1 ? ' table-noheader' : '';
?>

<?php if (count($this->children[$this->category->id]) > 0) : ?>
<?php foreach ($this->children[$this->category->id] as $id => $child) : ?>
<?php
if ($this->params->get('show_empty_categories') || $child->getNumItems(true) || count($child->getChildren())) :
if (!isset($this->children[$this->category->id][$id + 1])) :
$class = ' class="last"';
endif;
?>

<div <?php echo $class; ?>>
<?php $class = ''; ?>
<?php if ($lang->isRtl()) : ?>

<?php else : ?>

<?php foreach ($this->items as $i => $article) : ?>
<?php if ($this->items[$i]->state == 0) : ?>

<?php else : ?>

<?php endif; ?>

<?php if (in_array($article->access, $this->user->getAuthorisedViewLevels())) : ?>

<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->language)); ?>"><?php echo $this->escape($article->title); ?></a>

<?php if (JLanguageAssociations::isEnabled() && $this->params->get('show_associations')) : ?>
<?php $associations = ContentHelperAssociation::displayAssociations($article->id); ?>
<?php foreach ($associations as $association) : ?>
<?php if ($this->params->get('flags', 1)) : ?>
<?php $flag = JHtml::_('image', 'mod_languages/' . $association['language']->image . '.gif', $association['language']->title_native, array('title' => $association['language']->title_native), true); ?>
&nbsp;<a href="<?php echo JRoute::_($association['item']); ?>"><?php echo $flag; ?></a>&nbsp;
<?php else : ?>
<?php $class = 'label label-association label-' . $association['language']->sef; ?>
&nbsp;<a class="' . <?php echo $class; ?> . '" href="<?php echo JRoute::_($association['item']); ?>"><?php echo strtoupper($association['language']->sef); ?></a>&nbsp;
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
<?php else : ?>
<?php
echo $this->escape($article->title). ' : ';
$menu   = JFactory::getApplication()->getMenu();
$active = $menu->getActive();
$itemId = $active->id;
$link   = new JUri(JRoute::_('index.php?option=com_users&view=login&Itemid=' . $itemId, false));
$link->setVar('return', base64_encode(ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->language)));
?>
<a href="<?php echo $link; ?>" class="register">
<?php echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE'); ?>
</a>
<?php if (JLanguageAssociations::isEnabled() && $this->params->get('show_associations')) : ?>
<?php $associations = ContentHelperAssociation::displayAssociations($article->id); ?>
<?php foreach ($associations as $association) : ?>
<?php if ($this->params->get('flags', 1)) : ?>
<?php $flag = JHtml::_('image', 'mod_languages/' . $association['language']->image . '.gif', $association['language']->title_native, array('title' => $association['language']->title_native), true); ?>
&nbsp;<a href="<?php echo JRoute::_($association['item']); ?>"><?php echo $flag; ?></a>&nbsp;
<?php else : ?>
<?php $class = 'label label-association label-' . $association['language']->sef; ?>
&nbsp;<a class="' . <?php echo $class; ?> . '" href="<?php echo JRoute::_($association['item']); ?>"><?php echo strtoupper($association['language']->sef); ?></a>&nbsp;
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?>

<?php endforeach; ?>

<?php endif; ?>
<?php if (count($child->getChildren()) > 0 && $this->maxLevel > 1) : ?>
<div class="collapse fade" id="category-<?php echo $child->id; ?>">
<?php
$this->children[$child->id] = $child->getChildren();
$this->category = $child;
$this->maxLevel--;
echo $this->loadTemplate('children');
$this->category = $child->getParent();
$this->maxLevel++;
?>
</div>
<?php endif; ?>

</div>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
*

tomclancys

  • Захожу иногда
  • 129
  • 3 / 0
Разобрался. Можно закрывать.

Вывод материалов в подкатегориях(/components/com_content/views/category/tmpl/default_children.php):
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_content
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

JHtml::_('bootstrap.tooltip');

$class = ' class="first"';
$lang  = JFactory::getLanguage();

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html');

// Create some shortcuts.
$params    = &$this->item->params;
$n         = count($this->items);
$listOrder = $this->escape($this->state->get('list.ordering'));
$listDirn  = $this->escape($this->state->get('list.direction'));

// Check for at least one editable article
$isEditable = false;

if (!empty($this->items))
{
foreach ($this->items as $article)
{
if ($article->params->get('access-edit'))
{
$isEditable = true;
break;
}
}
}

$tableClass = $this->params->get('show_headings') != 1 ? ' table-noheader' : '';
?>

<?php if (count($this->children[$this->category->id]) > 0) : ?>
<?php foreach ($this->children[$this->category->id] as $id => $child) : ?>
<?php
if ($this->params->get('show_empty_categories') || $child->getNumItems(true) || count($child->getChildren())) :
if (!isset($this->children[$this->category->id][$id + 1])) :
$class = ' class="last"';
endif;
?>

<div <?php echo $class; ?>>
<?php $class = ''; ?>
<?php if ($lang->isRtl()) : ?>

<?php else : ?>

<h3 class="page-header item-title"><?php echo $this->escape($child->title); ?></h3>

<?php
$model = JModelList::getInstance('Articles', 'ContentModel', array('ignore_request'=>true));
$appParams = JFactory::getApplication()->getParams();
$model->setState('params', $appParams);
$model->setState('filter.category_id', $child->id);
$items = $model->getItems();

foreach ($items as $item) {
    echo "<div>";
    echo "<a href='";
    echo JRoute::_(ContentHelperRoute::getArticleRoute($item->id, $child->id));
    echo "'>";
    echo $item->title;
    echo "</a>";
    echo "</div>";
}
?>

<?php endif; ?>

<?php if (count($child->getChildren()) > 0 && $this->maxLevel > 1) : ?>
<div class="collapse fade" id="category-<?php echo $child->id; ?>">
<?php
$this->children[$child->id] = $child->getChildren();
$this->category = $child;
$this->maxLevel--;
echo $this->loadTemplate('children');
$this->category = $child->getParent();
$this->maxLevel++;
?>
</div>
<?php endif; ?>

</div>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>


« Последнее редактирование: 30.10.2017, 10:46:38 от tomclancys »
*

tomclancys

  • Захожу иногда
  • 129
  • 3 / 0
А так можно вывести в подкатегориях дополнительные поля в материалах:
Код
      <?php
      // Код отвечающий за вывод дополнительных полей
      JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
      $jcFields = FieldsHelper::getFields('com_content.article', $item, true);
      $array = json_decode(json_encode($jcFields), true);
      $fields = [];
      foreach ($array as $field) {
        array_push($fields, $field['label'], $field['value'], $field['rawvalue']);
      }
      $pole1 = $fields[1]; //Выводим доп. поле №1 из массива
      $pole2 = $fields[7]; //Выводим доп. поле №2 из массива
      // Код отвечающий за вывод дополнительных полей
     
      echo $pole1; //Показываем доп. поле №1 из массива
      echo $pole2; //Показываем доп. поле №2 из массива
     
      ?>
« Последнее редактирование: 30.10.2017, 10:47:15 от tomclancys »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать материалы определенных категорий из поиска?

Автор leonid.m

Ответов: 2
Просмотров: 101
Последний ответ 07.12.2017, 17:50:15
от leonid.m
Материалы в Joomla x3

Автор Edward_m

Ответов: 6
Просмотров: 128
Последний ответ 06.12.2017, 08:32:37
от Edward_m
Как при помощи "Полей" вывести для каждой статьи похожие материалы?

Автор korkka44

Ответов: 12
Просмотров: 171
Последний ответ 04.12.2017, 10:44:38
от Septdir
Вывод последних материалов

Автор mario052

Ответов: 4
Просмотров: 154
Последний ответ 16.11.2017, 15:50:51
от mario052
вывод материалов по меткам!!!

Автор troll2342

Ответов: 6
Просмотров: 222
Последний ответ 13.11.2017, 14:58:05
от Septdir