Utilizzando il T3 Framework non è stato possibile integrare plugin che assegnano un tema ad un particolare componente, quindi sono intervenuto direttamente nel codice del T3.
Seguendo molteplici informazioni prese frammentariamente tra un forum e l'altro ho cercato di assegnare un template durante l'utilizzo dei componenti di chronoforms e chronoconnectivity ma non era la strada corretta.
Ho così optato per inserire la procedura dentro il plugin del T3 e su suggerimento di un collega sviluppatore di joomla ho posizionato il codice all'interno dell'evento onAfterRoute() del t3.php così da poterlo far funzionare anche con gli url SEF.
Così facendo posso forzare l'utilizzo del template nelle sole pagine che utilizzano i componenti sopra citati.
Non sarà il massimo della parametrizzazione, ci sono degli evidenti limiti, ma ho risolto un problema non di poco conto, evitandomi un'ulteriore istanza di joomla in una sotto cartella.
function onAfterRoute()
{
if(defined('T3_PLUGIN')){
$app = JFactory::getApplication();
$input = $app->input;
$current_option = $input->getCmd('option');
if($current_option == 'com_chronoforms5' || $current_option == 'com_chronoconnectivity5'){
/*
$current = T3::getDefaultTemplate();
$getTemplateId = $app->getTemplate('albo')->id;
$t3tmid = 11;
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('id, home, template, params')
->from('`#__template_styles`')
->where('`client_id` = 0 AND `id`= ' . (int)$t3tmid)
->order('`id` ASC');
$db->setQuery($query);
$tm = $db->loadObject();
*/
$t3tmname = 'albo';
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('id, template')
->from('`#__template_styles`')
->where('`client_id` = 0 AND `template`= "albo"' )
->order('`id` ASC');
$db->setQuery($query);
$tmn = $db->loadObject();
$t3tmid = $tmn->id;
$query = $db->getQuery(true);
$query
->select('id, home, template, params')
->from('`#__template_styles`')
->where('`client_id` = 0 AND `id`= ' . (int)$t3tmid)
->order('`id` ASC');
$db->setQuery($query);
$tm = $db->loadObject();
if (is_object($tm) && file_exists(JPATH_THEMES . '/' . $tm->template)) {
$app->setTemplate($tm->template, (new JRegistry($tm->params)));
// setTemplate is buggy, we need to update more info
// update the template
$template = $app->getTemplate(true);
$template->id = $t3tmid;
$template->home = $tm->template;
}
}
T3Bot::preload();
$template = T3::detect();
.....