web-dev-qa-db-fra.com

Appel des paramètres de titre de catégorie depuis un com_content

J'ai essayé de chercher sur chaque site Joomla une solution, mais je n'ai pas encore trouvé le résultat qui convient.

J'ai créé ce module personnalisé pour ma page et je dois afficher le titre de la catégorie "corrent". Je sais que j'ai compris que l'original joomla com_content montre la catégorie correspondante en utilisant ce code:

defined('JPATH_BASE') or die;

?>
<div class="category-name"> 

    <?php $title = $this->escape($displayData['item']->category_title); ?>
    <?php if ($displayData['params']->get('link_category') && $displayData['item']->catslug) : ?>
        <?php echo '<a href="' . JRoute::_(ContentHelperRoute::getCategoryRoute($displayData['item']->catslug)) . '" itemprop="genre" data-toggle="tooltip"><i class="fa fa-folder-open-o"></i> ' . $title . '</a>'; ?>
    <?php else : ?>
        <?php echo '<span itemprop="genre" itemprop="genre" data-toggle="tooltip" title="' . JText::_('COM_CONTENT_CONTENT_TYPE_CATEGORY') . '">' . $title . '</span>'; ?>
    <?php endif; ?>
</div>

J'ai essayé de le copier/coller dans mon module, mais cela n'a pas fonctionné. J'ai compris que je devais d'abord importer le composant d'assistance Joomla. quelque chose comme ça:

jimport('joomla.application.component.helper');
$content_params = JComponentHelper::getParams( 'com_content' );
$show_category = $content_params->get( 'show_category' );

et maintenant je dois afficher le titre de la catégorie, mais je ne sais pas comment faire. Quelqu'un peut-il m'aider, s'il vous plaît?

2
Peter

Voici un petit morceau de code qui récupérera le nom de la catégorie pour vous. Ce code suppose que vous êtes sur une page d'article.

<?php

$JInput = JFactory::getApplication()->input;
$articleId = $JInput->get('id','','int');

$categoryName = getCategoryName($articleId);

echo $categoryName;

function getCategoryName($articleId)
{
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('c.title');
    $query->from('#__categories AS c');
    $query->join("INNER","#__content AS a ON c.id = a.catid");
    $query->where("a.id = '$articleId'");
    $db->setQuery($query);
    $row = $db->loadObject();

    return $row->title;
}
?>

Pour un seul élément de menu artilce, l'URL générée dans la base de données contient un paramètre id. JInput saisit la valeur de id et interroge la base de données à l'aide de la fonction getCategoryName, qui renvoie le nom de catégorie correct pour vous sous la forme de la variable $ categoryName.

Avoir un bon.

2
Terry Carter