Integrare JEvents in Joomla
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>';
}
}
-
Feeds
Segui il feed RSS e Twitter per restare sempre aggiornato!
-
-
Ultimi commenti
- Marco: Scusate ma non riesco a far funzionare l’utilissimo metodo indicato. Ho creato modulo html...
- Syd: you’re awesome. …..
- anna: alla prima installazione ho avuto qualche problema con la memoria, poi ho sistmeato. Ottimo !!
- Antonio: Ciao volevo chiederti alcune info. Io devo creare un socialnetwork con funzioni simili a Facebook però...
- massimo: sono capitato qui da un link postato da mau_develop in risposta ad un mio quesito sul forum di joomla.it:...
-
Ultimi post
