ti-enxame.com

Como usar o JFactory :: getLanguage () de outro diretório?

Como posso obter o idioma selecionado atualmente usando a Função JFactory::getLanguage(); de outro diretório?

Eu sei como fazer isso quando estou lá:

mas preciso chamá-lo de ...

  • /web/scripts/myScripts/myScript.php

Tentou importar o Joomla Framework:

// Set flag that this is a parent file.
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);

if (file_exists(dirname(__FILE__) . '/../../defines.php')) {
    include_once dirname(__FILE__) . '/../../defines.php';
}

if (!defined('_JDEFINES')) {
    define('JPATH_BASE', dirname(__FILE__));
    require_once JPATH_BASE.'/../../includes/defines.php';
}
require_once JPATH_BASE.'/../../includes/framework.php';

// Instantiate the application.
$app = JFactory::getApplication('site');

// Initialise the application.
$app->initialise();

$lang =& JFactory::getLanguage()->getTag();
3
user3433065

A definição para JPATH_BASE ainda está faltando no seu código. Para importar a API do Joomla, você pode simplesmente usar o seguinte:

define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/..' ));

require_once ( JPATH_BASE . '/includes/defines.php' );
require_once ( JPATH_BASE . '/includes/framework.php' );

$app = JFactory::getApplication('site');
$app->initialise();

Então, para obter a tag de idioma:

$lang = JFactory::getLanguage();
$tag  = $lang->getTag();

Você precisa garantir que JPATH_BASE foi definido corretamente. Não tenho certeza de onde seu arquivo externo PHP está localizado em relação à sua instalação do Joomla, mas você precisará alterar a linha 2 do código de importação da API).

Espero que isto ajude

0
Lodder