Bonjour,
Je reviens vers vous pour un soucis dont je ne trouve pas la solution :
Je dois afficher des infos structurées (des articles) dans un site, pour le faire j'ai créé un layout approprié, jusque là tout va bien.
J'aimerais, lorsque je clique sur "détails", ouvrir le détail de l'article dans une modale JQuery, ici ça va toujours ...
Lors du chargement de la modale, je passe une requête en AJAX sur un fichier php pour récupérer les infos de l'article ... ici ça comment à mer**** ...
J'arrive bien a passer et récupérer des infos de la page appelée, ce qui me manque c'est de récupérer les infos de l'article dont je passe l'id en paramètre.
Je peux utiliser des infos via une requête (voir ci-dessous), c’est un peu brut, mais c'est des tests) .
Il est possible de travailler avec certaines fonctions du framework ( exemple Factory::getContainer()->get('DatabaseDriver') mais pas d'autre, selon la fonction demandée, j'ai des erreurs : throw new \Exception('Failed to start application', 500), même en essayant de charger l'application avec :
L'ide de base serait de récupérer un objet "$item" de l'article, histoire de pouvoir jouer avec comme dans un layout, mais je me tord les neurones sans y arriver
Une idée de ce qui bloque, ou alors un autre moyen pour afficher ces infos dans la popup ?
Ci-dessous : code qui fonctionne, mais uniquement en brut ... sans avoir accès à un objet "article".
Je reviens vers vous pour un soucis dont je ne trouve pas la solution :
Je dois afficher des infos structurées (des articles) dans un site, pour le faire j'ai créé un layout approprié, jusque là tout va bien.
J'aimerais, lorsque je clique sur "détails", ouvrir le détail de l'article dans une modale JQuery, ici ça va toujours ...
Lors du chargement de la modale, je passe une requête en AJAX sur un fichier php pour récupérer les infos de l'article ... ici ça comment à mer**** ...
J'arrive bien a passer et récupérer des infos de la page appelée, ce qui me manque c'est de récupérer les infos de l'article dont je passe l'id en paramètre.
Je peux utiliser des infos via une requête (voir ci-dessous), c’est un peu brut, mais c'est des tests) .
Il est possible de travailler avec certaines fonctions du framework ( exemple Factory::getContainer()->get('DatabaseDriver') mais pas d'autre, selon la fonction demandée, j'ai des erreurs : throw new \Exception('Failed to start application', 500), même en essayant de charger l'application avec :
Code:
use Joomla\CMS\Factory; $app = Factory::getApplication('site'); $app->execute(); // Votre code personnalisé ici echo 'Application Joomla initialisée avec succès !';
Une idée de ce qui bloque, ou alors un autre moyen pour afficher ces infos dans la popup ?
Ci-dessous : code qui fonctionne, mais uniquement en brut ... sans avoir accès à un objet "article".
Code:
<?php $articleId = $_GET['sNumArtJeu']; // Initialiser Joomla define('_JEXEC', 1); // Inclure le framework Joomla require_once __DIR__ . '../../../../../../includes/defines.php'; require_once __DIR__ . '../../../../../../includes/framework.php'; use Joomla\CMS\Factory; use Joomla\CMS\Table\Table; $db = Factory::getContainer()->get('DatabaseDriver'); $query = $db->getQuery(true) ->select($db->quoteName(array('a.id', 'a.title', 'a.alias', 'a.introtext', 'a.fulltext', 'a.state', 'a.catid', 'a.created', 'a.modified','f.id','f.name', 'cf.value'))) ->from($db->quoteName('#__content', 'a')) ->join('LEFT', $db->quoteName('#__fields_values', 'cf'), $db->quoteName('a.id') . ' = ' . $db->quoteName('cf.item_id')) ->join('LEFT', $db->quoteName('#__fields', 'f'), $db->quoteName('cf.field_id') . ' = ' . $db->quoteName('f.id')) ->where($db->quoteName('a.id') . ' = ' . (int) $articleId); $db->setQuery($query); $results = $db->loadObjectList(); print_r($results); if ($results) { $article = new stdClass(); $article->id = $results[0]->id; $article->introtext = $results[0]->introtext; $article->fulltext = $results[0]->fulltext; foreach ($results as $result) { if ($result->name) { $article->customFields[$result->name] = $result->value; } } } echo "*************************"; var_dump($article);
Commentaire