Joomla - 回声部分名称

时间:2011-01-09 16:07:26

标签: php joomla

我想在我的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。

2 个答案:

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