2011-01-09 93 views
1

我想在我的Joomla模板中放置一些PHP来在非常特定的位置调用活动部分名称。Joomla - echo部分名称

我可以得到活动的菜单标题与此代码

(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 ?> 

,但我还没有找到一个方法来调用活动部分的标题。

让我知道你是否可以提供帮助。谢谢。

回答

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 

你也许可以做到这一切在一个查询中也有加入

+0

感谢您的帮助。看起来不错,干净,但不幸的是我无法得到它的工作:( – 2011-01-14 15:52:32

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 - 翻译组件