我想在我的Joomla模板中添加一些php,以便在非常具体的位置调用活动部分名称。
我可以使用此代码获取活动菜单标题
(at the top of my file, also used for something else)
<?php
$menu =& JSite::getMenu();
$active = $menu->getActive();
$params = $menu->getParams( $active->id );
$class = $params->get( 'pageclass_sfx' );
?>
<?php echo JSite::getMenu()->getActive()->name ?>
但是我还没有办法调用活动部分标题。
如果您能提供帮助,请告诉我。 THX。
答案 0 :(得分:0)
无法真正测试这个,但它应该完成它
$db =& JFactory::getDBO(); // if you havent included already
$thisArticle=JRequest::getInt( 'id');// gets current article id
$query = 'SELECT sectionid FROM #__content WHERE id = ' . $thisArticle;// query to get the secton id
$db->setQuery($query, 0, 1);
$thisSectionID = $db->loadResult();
$query2 = 'SELECT * FROM jos_sections WHERE id = "$thisSectionID"'; // query to get the section title from section id
$db->setQuery($query2);
$column= $db->loadResultArray();
$sectionTitle = $column['2'] ; // variable to post section title
你可以在一个查询中完成所有这一切,使用连接
答案 1 :(得分:0)
在网上找到一大堆代码 - 我根据自己的需要修改了代码:
原始代码(输出部分:类别)
<?php
defined('_JEXEC') OR defined('_VALID_MOS') OR die( "Direct Access Is Not Allowed" );
$str = '';
$str =& JRequest::getVar('id');
$aStr = explode(":",$str);
$id = $aStr[0];
if ($id > 0) {
$db = JFactory::getDBO();
$query = "SELECT jos_sections.title as stitle, jos_categories.title as ctitle
FROM jos_content
LEFT JOIN jos_sections ON jos_content.sectionid = jos_sections.id
LEFT JOIN jos_categories ON jos_content.catid = jos_categories.id
WHERE jos_content.id = " . $id;
$db->setQuery($query);
$titles = $db->loadObjectList();
echo " " . $titles[0]->stitle . ": " . $titles[0]->ctitle;
}
?>
我的版本:
<?php
defined('_JEXEC') OR defined('_VALID_MOS') OR die( "Direct Access Is Not Allowed" );
$str = '';
$str =& JRequest::getVar('id');
$aStr = explode(":",$str);
$id = $aStr[0];
if ($id > 0) {
$db = JFactory::getDBO();
$query = "SELECT jos_sections.title as stitle
FROM jos_content
LEFT JOIN jos_sections ON jos_content.sectionid = jos_sections.id
WHERE jos_content.id = ".$id;
$db->setQuery($query);
$titles = $db->loadObjectList();
echo '<span class="componentheading">'.$titles[0]->stitle.'</span>';
}
else {
echo '<h1>'.JSite::getMenu()->getActive()->name.'</h1>';
}
?>
它获取部分名称,如果它什么也得不到,它将获得相关的活动菜单项,如果有的话。
希望它可以帮助某人!花了一些时间让这个工作。
最后一件事:它适用于Joomfish - 翻译组件