ti-enxame.com

Carregar artigo K2 com ajax

Eu estou usando o layout de categoria para destacar artigos na minha primeira página com o joomla 3.3. Estou personalizando essa visualização para que os links dos artigos tragam os artigos para esta página via ajax ao clicar.

Este é o código relevante que eu personalizei:

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);
});

Isso funciona, eu consigo recuperar os dados necessários e exibi-los corretamente.

MAS

Gostaria de saber se esta é a maneira correta de fazer isso. Em vez de recuperar uma outra página, devo tentar recuperar dados diretamente da base de dados? existe uma maneira "especial de Joomla" de fazer isso?

Eu preferiria não confiar em uma extensão de terceiros para isso e gostaria de controlar e entender esta tarefa.

3
web-tiki

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

Usando a técnica acima, você pode criar um arquivo ajax.php no diretório raiz e usar as APIs do Joomla para chamar você mesmo os dados do banco de dados e depois converter para JSON.

Isso permitirá que você use os auxiliares do k2 para ajudá-lo. Chamar o banco de dados como este só deve ser usado se você precisar de um alto nível de personalização.

betweenbrian faz um bom argumento com este link http://getk2.org/blog/786-k2-v257-released-introduces-json-jsonp-content-output , se o k2 suportar JSON, e ele recupera os dados necessários, provavelmente é perfeito para o que você precisa fazer.

o com_ajax também vem à mente, no entanto, foi desenvolvido para módulos/plugins. O próprio k2 é um componente, portanto, provavelmente não funcionará conforme o esperado.

Portanto, em conclusão, não existe uma maneira "especial do Joomla" de lidar com o ajax, mas existem muitas possibilidades para você fazer o que precisa.

2
Jordan Ramstad