Могу ли я показать список контактов в категории, на странице "Список всех категорий контактов" в Joomla?

Вопрос:

Итак, в двух словах, у вас есть два варианта отображения контактов в Joomla:

  1. Показать все категории контактов Joomla.
  2. Показать все Joomla Контакты в одной категории.

Я хочу использовать первый вариант, но объединять список под каждой категорией, отображая список контактов в этой категории и ссылку на их профиль.

Самый простой способ, который я думал об этом, – изменить переопределение шаблона файла com_contact/categories/default_items.php

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

<ul>
<?php // Add list of contacts for each category
foreach ($this->items as $i => $item) : ?>
<li>
<a href="<?php echo JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid)); ?>">
<?php echo $item->name; ?>
</a>
</li>
<?php endforeach; ?>
</ul>

Но я предполагаю, что не могу просто скопировать и вставить, поскольку в $this-> элементы должны быть добавлены дополнительные узлы.

На данный момент ни один список не генерируется, а только <ul> вне цикла foreach.. но также интересно, <li> и <a> IS сгенерированы.. но ссылка на текущую страницу, на которой я включен ( Вероятно, потому что $item->slug все еще рассматривается как категория).

Так может ли кто-нибудь указать мне в правильном направлении, как обращаться к контактам внутри категории? Все, что мне нужно, – это имя и пул /URL.

UPDATE: я видел это в том же файле (default_items.php), и хотя я понимаю, что это относится к дочерним категориям… будет ли это местом для начала фактических контактов внутри категорий?

<?php if (count($item->getChildren()) > 0) :?>
<div class="collapse fade" id="category-<?php echo $item->id;?>">
<?php
$this->items[$item->id] = $item->getChildren();
$this->parent = $item;
$this->maxLevelcat--;
echo $this->loadTemplate('items');
$this->parent = $item->getParent();
$this->maxLevelcat++;
?>
</div>
<?php endif; ?>

БУМП. У кого-нибудь есть опыт? Или возможность вызова отдельных контактов при просмотре категории? Как они связаны?

Ответ №1

Для Category view в файле default_children.php после тега <li... добавить код:

    <?php

// Get Category Model data
$categoryModel = JModelLegacy::getInstance('Category', 'ContactModel', array('ignore_request' => true));

$categoryModel->setState('category.id', $child->id);
$categoryModel->setState('list.ordering', 'a.name');
$categoryModel->setState('list.direction', 'asc');
$categoryModel->setState('filter.published', 1);

$contacts = $categoryModel->getItems();

?>

Для Custom Fields добавьте это после кода previus:

    JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
foreach($contacts as $contactItem) {
$currentContFields[] = FieldsHelper::getFields('com_contact.contact', $contactItem, true);
}

Оцените статью
TechArks.Ru
Добавить комментарий