在joomla 3中,我可以按字母顺序在一个特定类别顺序下加载类别。
我想要显示一个字母栏,如下所示我已经创建并放置在编辑
布局/的Joomla /内容/类别-如default.php
| A | B | C | D | E | F | G | H |我| J | K | L | M | N | O | P |问....
catergories应该显示为
A
苹果
技术
乙
早餐
...
当我们点击栏中的字母时,它应该转到列表上的特定区域(ID)。
如果您知道如何分组并将带有ID的标题分组到这些类别以及在哪里处理joomla文件,请告诉任何人?
答案 0 :(得分:1)
您可以在类别视图中使用替代布局。我可能会使用JLayout作为字母栏。 在你的foreach https://github.com/joomla/joomla-cms/blob/master/components/com_content/views/categories/tmpl/default_items.php#L18
你必须检查一封新信件,如果有,那就把信件标题。
唯一的问题是如果信件下没有任何内容。有没有链接,你还可以吗?如果不是,你可能需要一个插件来运行另一个查询来收集结果的第一个字母。
答案 1 :(得分:0)
我找到了问题的答案,我已经编辑了页面 组件/ com_content /视图/类别/ 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;
它运作良好,感谢GOD,曾经特别帮助我Elin