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();
.....