web-dev-qa-db-fra.com

Afficher le contenu et le titre de l’article Joomla avec PHP

J'ai un composant et un module construits par une société externe. Le contenu de ce composant est codé en dur. Je souhaite le modifier afin que le contenu soit appelé à partir du gestionnaire d'articles Joomla.

Le composant utilise des codes individuels (appelés par '+ nugget.code +') que je souhaite faire correspondre à un article Joomla, portant le même nom.

Par exemple, si le code (dans le composant) est AB1, je souhaite charger un article portant le titre "AB1".

Que devrais-je écrire pour inclure le contenu Joomla dans un composant externe?

J'ai essayé:

$article_id = +nugget.code +  ": " +nugget.name + ;
$article =& JTable::getInstance("content");
$article->load($article_id);

var $heading = $('<h5>'. $article->get("title").'</h5>');
$text.append($heading);

Mais ça ne marche pas.

Le composant externe appelle "+ nugget.code +" - (qui dans cet exemple, supposons que la valeur soit "REI1")

Le composant externe appelle également "+ nugget.name +" - (dans cet exemple, supposons que la valeur soit "Test Article")

Donc '+ nugget.code + ":" + nugget.name +' serait "REI1: Test Article"

Ce que je veux, c’est que s’il existe un article dans Joomla intitulé "REI1: Article de test", il doit alors être affiché.

3
RustyJoomla

Je ne suis au courant d'aucun code direct qui vous aidera à obtenir un article basé sur titre de l'article. Mais je peux voir qu’une façon de le faire est la suivante:

Vérifiez le modèle com_content pour la fonction getListQuery à ce chemin: /administrator/components/com_content/models/articles.php Cette fonction est utilisée pour interroger des articles à partir d'une base de données, en fonction de filtres et d'une requête de recherche passée au back-end.

Vous pouvez utiliser inherit cette classe pour utiliser cette fonction ou la prendre directement sous forme logique. Pour obtenir le résultat de la recherche, vous devez stocker le titre de l'article comme suit:

$this->setState('filter.search', "+nugget.code +": "+nugget.name+");

OR

$this->setState('filter.search', $articleTitle);

$articleTitle Contient la valeur du titre de votre article.

Le meilleur moyen consiste à utiliser la logique de cette fonction et à supprimer les requêtes de filtre non désirées et les conditions IF de la logique principale.

1
SD.