X
    Categoria: Joomla

[Joomla] – Usando arquivo externo para pegar conteúdo de artigos

 

Se você criar uma query para executar e recuperar o conteúdo é relativamente fácil podemos usar até mesmo esse tutorial, mas como disse as vezes utilizamos plugins, nesse caso eu estava com um problema ao exibir a URL correta, pois utilizo o plugin SEF Advance

Depois de muitas pesquisas, procurar em vários sites e não achar quase nada, fui juntando vários artigos e consegui solucinar meu problema. Antes de exibir o resultado precisamos aplicar o tal plugin.

até ai tudo bem, e como que eu faço isso?

Bom, abaixo segue o script:

 

define( '_JEXEC', 1 );
define('JPATH_BASE', 'C:EasyPHPwwwjoomla' );



define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );


include_once JPATH_BASE .DS.'components/com_content/models/article.php';   
require_once JPATH_BASE .DS.'components/com_content/helpers/route.php';
require_once JPATH_BASE .DS.'components/com_content/helpers/query.php';


JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_content/models', 'ContentModel');

$mainframe = JFactory::getApplication('site');
$mainframe->initialise();	
//Importamos os plugins
JPluginHelper::importPlugin( 'system' );
                                                                   
$db = JFactory::getDbo();
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));

// Set application parameters in model
$app = JFactory::getApplication();
$appParams = $app->getParams();
$model->setState('params', $appParams);

$model->setState('list.start', 0);
$model->setState('list.limit', 30);
$model->setState('filter.published', 1);

// Access filter
$access     = !JComponentHelper::getParams('com_content')->get('show_noauth');
$authorised = JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id'));
$model->setState('filter.access', $access);

$dir      = 'DESC';

$model->setState('list.ordering', 'a.publish_up');
$model->setState('list.direction', $dir);
		
$items = $model->getItems();

	foreach ($items as &$item)
		{
			$item->slug    = $item->id . ':' . $item->alias;
			$item->catslug = $item->catid . ':' . $item->category_alias;

			if ($access || in_array($item->access, $authorised))
			{
				//AQUI aplicamos os plugins e resolvemos o problema
				$mainframe->triggerEvent('onAfterInitialise', array( $item, $params, 0));
				$item->link = rtrim(JUri::base(), '/') .JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug));
			}
			echo $item->link;
		}

return $items;

		
           

É simples e fácil, espero ter ajudado…

 

 

Juliano Rossetto: Formado em Analise e Desenvolvimento de Sistemas. Desenvolvedor dos principais CMS ( Wordpress, Joomla). Desenvolvedor de E-commerce (Opencart e WooCommerce). Analista de SEO: Otimização de sites para mecanismos de buscas. Analista de Infraestrutura voltado para servidores na nuvem: Amazon Web Services (AWS), DigitalOcean e Linode. Para dúvidas ou serviços entre em contato aqui.
Posts relacionados