Joomla / 将类别描述添加到文章类别模块
Posted
技术标签:
【中文标题】Joomla / 将类别描述添加到文章类别模块【英文标题】:Joomla / Add category description to Article Category modules 【发布时间】:2012-02-24 01:47:46 【问题描述】:如何在 Joomla 的文章分类模块中添加分类描述?
分组项目后唯一的php调用是<?php echo $group_name; ?>
。
提前致谢!
【问题讨论】:
【参考方案1】:所以在:/modules/mod_articles_category/default.php
确保您先创建一个覆盖,然后添加:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('id', 'title', 'description'));
$query->from($db->quoteName('#__categories'));
$query->where($db->quoteName('extension') . ' = ' . $db->quote('com_content'));
$db->setQuery($query);
$categories = $db->loadObjectList('id');
紧随其后:定义('_JEXEC')或死亡;
然后在每个项目中你可以像这样加载它:
echo $categories[$item->catid]->description;
如果在分组而不是项目上使用,它有点不同,这里是整个顶部 sn-p 替换:
<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_category
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('id', 'title', 'description'));
$query->from($db->quoteName('#__categories'));
$query->where($db->quoteName('extension') . ' = ' . $db->quote('com_content'));
$db->setQuery($query);
$categories = $db->loadObjectList('title');
?>
<ul class="category-module<?php echo $moduleclass_sfx; ?> mod-list">
<?php if ($grouped) : ?>
<?php foreach ($list as $group_name => $group) : ?>
<li>
<div class="mod-articles-category-group"><?php echo JText::_($group_name); ?></div>
<p><?php echo count($group) > 0 ? $categories[$group_name]->description : ''; ?></p>
因为 $group 只包含列表,所以我们这次取而代之的是名称并从名称中加载类别。
【讨论】:
【参考方案2】:我知道这是一篇旧帖子,但对于 Joomla! 3.5 及更高版本您可以使用...
$category = JCategories::getInstance('Content')->get($item->catid);
比在模板覆盖文件中调用数据库容易得多。
【讨论】:
【参考方案3】:放入你的 default.php 覆盖或自定义模板:
<?php // tested in Joomla 3.1.5 only
$input = JFactory::getApplication()->input;
$idbase = $params->get('catid');
$catID = $idbase[0];
//echo $catID;
$db = JFactory::getDBO();
$db->setQuery("SELECT description FROM #__categories WHERE id = ".$catID." LIMIT 1;");
$catDesc = $db->loadResult();
?>
<div class="catdesc">
<?php echo $catDesc; ?>
</div>
修改自: http://www.noxidsoft.com/development/get-the-category-blog-description-in-joomla-3-1-5/
【讨论】:
最好用$db->q("$catID")
引用值,$params->getInt('catid')
避免注入。【参考方案4】:
将此添加到您的 default.php 覆盖。
<?php
$db = &JFactory::getDBO();
$id = JRequest::getString('id');
$db->setQuery('SELECT #__categories.description FROM #__content, #__categories WHERE #__content.catid = #__categories.id AND #__content.id = '.$id);
$category = $db->loadResult();
echo $category;
?>
【讨论】:
以上是关于Joomla / 将类别描述添加到文章类别模块的主要内容,如果未能解决你的问题,请参考以下文章