JEvents è un calendario eventi per Joomla composto da un componente ed alcuni moduli di supporto. Esso permette di gestire eventi ricorrenti, assegnare eventi a categorie e molto altro.
In un CMS che sto realizzando avevo già implementato la gestione degli eventi, senza pensare al calendario. La struttura degli eventi non poteva cambiare perchè l'intera architettura delle informazioni si basava su alcune interconnessioni tra sezioni, quindi mi sono trovato a dovere interfacciare queste due entità.
Quello che volevo era far gestire il calendario a JEvents, mentre quando si entrava nel dettaglio degli eventi passare alla mia categoria. Quindi ho dovuto modificare il componente, e precisamente il file events.html.php
function viewEventRow( $id, $title, $task, $year, $month, $day, $contactlink, $option, $Itemid, $fgcolor ="orange",$bgcolor ="inherit") {
global $catidsOut, $database;
$cat = "";
if ($catidsOut != 0){
$cat = '&catids='.$catidsOut;
}
$cfg = & EventsConfig::getInstance();
$query = "SELECT id FROM #__content WHERE title = '" . $title . "';";
$database->setQuery( $query );
$nuovaid = trim( $database->loadResult());
$eventlink = sefRelToAbs( 'index.php?option=com_content&task=view&id=' . $nuovaid . '&Itemid=46');
// [mic] if title is too long, cut 'em for display
$tmpTitle = $title;
if( strlen( $title ) >= 50 ){
$tmpTitle = substr( $title, 0, 50 ) . ' ...';
} ?>
<a class="ev_link_row" href="<?php echo $eventlink; ?>" style="font-weight:bold;color:<?php echo $fgcolor;?<;" title="<?php echo $title ;?>"><?php echo $tmpTitle ;?></a>
<?php
if( $cfg->get('com_byview') == '1' ) {
echo _CAL_LANG_BY . ' <i>'. $contactlink .'</i>';
}
?>
<?php
}
Questo spezzone di file mostra come ho cambiato la struttura dei links, infatti ora dall'elenco degli eventi passo direttamente alla mia sezione eventi, nel menu di id 46.
$eventlink = sefRelToAbs( 'index.php?option=com_content&task=view&id=' . $nuovaid . '&Itemid=46');
La stessa cosa accade alla linea 305 del file, dove ho
<tr align="left" valign="top">
<?php
global $database;
$query = "SELECT title from #__events WHERE id = '" . $agid . "';";
$database->setQuery( $query );
$text = trim( $database->loadResult());
$query = "SELECT id FROM #__content WHERE title = '" . $text . "';";
$database->setQuery( $query );
$nuovaid = trim( $database->loadResult());
$link = sefReltoAbs("index.php?option=com_content&task=view&id=" . $nuovaid . "&Itemid=46");
?>
<td colspan="4"><?php echo "<a href='".$link."'>Maggiori dettagli sull'evento</a>"; ?></td>
</tr>
In questo caso intervengo sull'approfondimento dell'evento. Infatti prima in questa sezione del file avevo un link per maggiori informazioni, che portava alla visualizzazione di JEvent. Ora cerco l'articolo che ha lo stesso titolo del mio evento JEvent e lo linko.
Una modifica simile è necessaria all'interno del modulo Latest Events, o "Prossimi eventi". In questo caso cliccando uno degli eventi voglio che si vada alla mia categoria, visualizzata da com_content e non com_events.
Quindi modifico in mod_events_latest.lib.php la funzione _htmlLinkCloaking():
function _htmlLinkCloaking($url='', $text='') {
global $database;
$query = "SELECT id FROM #__content WHERE title = '" . $text . "';";
$database->setQuery( $query );
$nuovaid = trim( $database->loadResult());
$link = sefReltoAbs("index.php?option=com_content&task=view&id=" . $nuovaid . "&Itemid=46");
if ($this->linkCloaking) {
//return mosHTML::Link("", $text, array('onclick'=>'"window.location.href=\''.josURL($url).'\';return false;"'));
return '<a href="#" onclick="window.location.href=\'' . $link . '\'; return false;">' . $text . '</a>';
} else {
//return mosHTML::Link(josURL($url), "$text");
return '<a href="' . $link .'">' . $text . '</a>';
}
}
- Post correlati:

September 18th, 2007 at 8:20 pm
[...] Integrare JEvents in Joomla Come integrare gli eventi in modo che siano parte integrante del sistema e non solo un add-on [...]
December 23rd, 2007 at 6:56 pm
ma come hai fatto a trasformarlo in italiano? l’ho appena installato ed è tutto in inglese. mi aiuti?
December 23rd, 2007 at 8:52 pm
Ciao, all’indirizzo http://download.joomla.it/component/option,com_docman/task,cat_view/gid,79/Itemid,2/
trovi tutte le traduzioni del componente.
January 10th, 2008 at 6:03 pm
Ciao a tutti voi che usate jevents,
ho installato il modulo mod_events_latest ma non capisco come fare a farlo parlare in italiano, pur avendo il componente jevents 1.4.2 già in italiano
C’è qualche mago che sa aiutarmi?
grazie
February 5th, 2008 at 5:34 pm
Qualcuno sa dirmi come fare ad evitare che cliccando su qualsiasi elemento dell’agenda, essa mi appaia sulla pagina corrente in fondo al suo contenuto. Uso la versione di joomla 1.5. Vorrei che venisse visualizzata su una pagina tutta sua, come accade per altri componenti analoghi a pagamento.
Grazie anticipate
Alex
June 17th, 2008 at 9:10 am
ciao, ho un problema che mi sta facendo impazzire. Jevents funziona bene in explorer e safari;
in mozilla firefox non riesce ad aprire gli eventi.
mi dice Bad Request Il tuo browser ha inviato una richiesta che questo server non e’ in grado di interpretare.
in pratica non riesce a leggere http://www.milanoperibambini.it/component/option,com_events/catids,50%7C49%7C56%7C57/task,view_month/year,2008/month,06/day,17/Itemid,84/
è come se non riconoscesse il comando catids… o qualcosa del genere.SAi come risolvere? ciao! il tuo sito è utilissimo
June 17th, 2008 at 10:38 am
Ciao Marcella, purtroppo non saprei dirti quale potrebbe essere il problema. Prova a chiedere sul forum di JEvents http://www.jevents.net/forum oppure su Joomla.it, qualcuno potrebbe aver avuto il tuo stesso problema.
July 17th, 2008 at 5:10 pm
ho visto questa modifica, ma presumo che sia per una vecchia versione di Jevents, che ne diresti di aggiornarla ed adattarla alla nuova versione 1.5?
Ovviamente mi offro per contriuire anche io
November 9th, 2008 at 12:21 am
Ho installato Jevent su joomla 1.015 ma ricevo un errore quando in front back cerco di accedere a gestione categorie. Lerrore è il seguente:
Warning: require_once(includes/pageNavigation.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/vhosts/ediprint.it/httpdocs/administrator/components/com_events/admin.events.categories.php on line 365
Fatal error: require_once() [function.require]: Failed opening required ‘includes/pageNavigation.php’ (include_path=’/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:/usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin:/usr/local/psa/admin/htdocs/domains/databases/phpPgAdmin’) in /var/www/vhosts/ediprint.it/httpdocs/administrator/components/com_events/admin.events.categories.php on line 365
Sono 3 giorni consecutivi che cerco di venirne a capo. Forse il problema è in php.ini relativo a questa sezione?
; UNIX: “/path1:/path2″
;include_path = “.:/php/includes”
include_path = “/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:/usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin:/usr/local/psa/admin/htdocs/domains/databases/phpPgAdmin”
Avrei proprio bisogno di un aiuto.
Grazie
mauro