Joomla - название раздела эха - PullRequest
1 голос
/ 09 января 2011

Я хотел бы добавить php в мой шаблон Joomla для вызова имени активного раздела в очень конкретном месте.

Я могу получить заголовок активного меню с этим кодом

(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 голосов
/ 14 января 2011

Нашел в сети кусок кода, который я изменил в соответствии со своими потребностями:

Оригинальный код (выходной раздел: Категория)

    <?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 - компонент перевода

0 голосов
/ 11 января 2011

Не могу на самом деле проверить это, но он должен это сделать

$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

Вы, вероятно, можете сделать все это в одном запросе, с помощью объединения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...