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>';
}
}

Tags: , , ,
Articoli correlati:

9 Commenti al post “Integrare JEvents in Joomla”

  1. I migliori post di questo blog da Aprile a Settembre Says:

    [...] Integrare JEvents in Joomla Come integrare gli eventi in modo che siano parte integrante del sistema e non solo un add-on [...]

  2. peter Says:

    ma come hai fatto a trasformarlo in italiano? l’ho appena installato ed è tutto in inglese. mi aiuti?

  3. Copes Flavio Says:

    Ciao, all’indirizzo http://download.joomla.it/component/option,com_docman/task,cat_view/gid,79/Itemid,2/
    trovi tutte le traduzioni del componente.

  4. massimo Says:

    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

  5. Alex Says:

    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

  6. marcella Says:

    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

  7. Copes Flavio Says:

    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.

  8. Gabriels Says:

    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

  9. Mauro Says:

    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

Lascia un commento

Nome (obbligatorio)

Mail (non sarà pubblicata) (obbligatoria)

Sito web

-->