如何在joomla类别列表上放置一个Alphabet栏

时间:2013-08-26 11:33:55

标签: php joomla content-management-system categories joomla3.0

在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文件,请告诉任何人?

2 个答案:

答案 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