简而言之,在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-&gt;项目中添加额外的节点。
目前,没有生成任何列表,只有<ul>
循环外的foreach
..但有趣的是,<li>
和<a>
正在生成..但链接到我正在使用的当前页面(可能是因为$item->slug
仍然被视为类别)。
那么有人能指出我如何引用某个类别中的联系人的正确方向吗?我所追求的只是名称和slug / URL。
更新: 我在同一个文件(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; ?>
BUMP - 有没有人有这方面的经验?或者在查看类别时能够呼叫个人联系人?它们是如何联系在一起的?
答案 0 :(得分:0)
标记为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);
}