web-dev-qa-db-fra.com

Charger l'article K2 avec ajax

J'utilise la disposition des catégories pour présenter des articles sur ma page d'accueil avec joomla 3.3. Je personnalise cette vue pour que les liens d’article tirent les articles dans cette page via ajax au clic.

C'est le code pertinent que j'ai personnalisé:

HTML:

<h2 class="catView" data-link="<?php echo $this->item->link; ?> #k2Container">
    <?php if(isset($this->item->editLink)): ?>
</h2>

jQuery:

$('article.catView h2').click(function(){
    var link    = $(this).attr("data-link");
    $(this).parents().next('.artContainer').slideToggle(500).load(link);
});

Cela fonctionne, je parviens à récupérer les données dont j'ai besoin et à les afficher correctement.

MAIS

Je me demande si c'est la bonne façon de procéder. Au lieu de récupérer une autre page, devrais-je essayer de récupérer des données directement à partir de la base de données? Existe-t-il un moyen "spécial joomla" de faire cela?

Je préférerais ne pas compter sur une extension tierce pour cela et souhaiterais contrôler et comprendre cette tâche.

3
web-tiki

http://jeffchannell.com/Joomla/load-the-joomla-framework-in-a-non-joomla-php-script.html

En utilisant la technique ci-dessus, vous pouvez créer un fichier ajax.php dans le répertoire racine et utiliser les API Joomla pour appeler vous-même les données à partir de la base de données, puis les convertir en JSON.

Cela vous permettra éventuellement d’utiliser les assistants k2 pour l’aider. L'appel de la base de données comme ceci ne devrait être utilisé que si vous avez besoin d'un haut niveau de personnalisation.

betweenbrian fait un bon point avec ce lien http://getk2.org/blog/786-k2-v257-released-introduces-json-jsonp-content-output en ce que si k2 prend en charge JSON, et il récupère les données dont vous avez besoin, c'est probablement ce qu'il vous faut.

on pense aussi à com_ajax, cependant, il a été construit pour les modules/plugins. k2 étant lui-même un composant, il ne fonctionnera probablement pas comme prévu.

En conclusion, il n’existe pas de méthode "spéciale Joomla" pour gérer ajax, mais il existe de nombreuses possibilités pour obtenir ce dont vous avez besoin.

2
Jordan Ramstad