1

在 joomla 3 中,我可以按字母顺序加载特定类别下的类别。

我想显示一个如下所示的字母栏,我创建并放置在编辑中

布局/joomla/content/category-default.php

| 一个 | 乙| C | D | E | F | 克| H | 我 | Ĵ | ķ | 大号 | 中号 | N | ○ | 磷 | 问……

类别应显示为

一个

苹果

艺术

早餐

...

当我们单击栏中的字母时,它应该转到列表中的特定区域(ID)。

如果您知道如何对这些类别进行分组和放置带有 ID 的标题以及我需要在哪里处理 joomla 文件,请告诉任何人?

4

2 回答 2

1

您可以在类别视图上使用替代布局。我可能会为字母栏使用 JLayout。然后在你的 foreach https://github.com/joomla/joomla-cms/blob/master/components/com_content/views/categories/tmpl/default_items.php#L18

您必须检查是否有新字母,如果有,请输入字母标题。

唯一的问题是,如果一封信下面什么都没有怎么办。你还能接受链接吗?如果不是,您可能需要一个插件来运行另一个查询来收集结果的第一个字母。

于 2013-08-26T12:41:46.263 回答
0

我找到了问题的答案,我在 components/com_content/views/category/tmpl/default_children.php 上编辑了页面

在带有 id 的 foreach 之前添加了字母栏

$lastletter = 0;

|<a href="#LetterA"> A </a>|<a href="#LetterB"> B </a>| <a href="#LetterC">C </a>| <a href="#LetterD">D</a> | <a href="#LetterE">E</a>

在foreach里面输入下面的代码

$currentleter = substr($this->escape($child->title),0,1);  

if ($lastletter != $currentleter):
echo '<div id="Letter' . $currentleter .  '" class="letterheader">' . $currentleter . '</div>';
$lastletter = $currentleter;
endif; 

它工作得很好,感谢上帝和谁特别帮助过我艾琳

于 2013-08-27T06:31:20.333 回答