Message édité 2 fois, dernière édition par Tranber, 06 Mars 2008, 11:19
06 Mars 2008, 11:17
06 Mars 2008, 11:17 Comme je ne suis pas fort pour faire des mods propres et que mon code peut certainement être amélioré, je propose la modification ici. Oui, j'ai déjà fait la mod, elle utilise en partie les informations affichée en bas du forum, à vous de dire ce que vous en pensez :
Ouvrez main/online.php
Après
Ajouter :
Ouvez tpl/WhiteSummer/files/header.html
Chercher :
Après ajouter :
Ouvrir lang/fr/common.php
Chercher :
Après ajouter :
Ouvrir tpl/WhiteSummer/calendar.css
A la fin ajouter :
Voilà, améliorer si vous voulez, c'est juste le code du forum repris et adapté pour avoir ce système. Si alors vous souhaitez désactivé les events de bas de page, commentez la zone concernée dans le fichier online.html.
Normalement ça donne ça : www.forum.lesdisciplesdebaal.com
PS : il y a un léger défaut d'affichage sous IE que je n'arrive pas à rélger, si quelqu'un à la réponse ...
Ouvrez main/online.php
Après
PHP (Sélectionner le code)
if ($row['c_approve'] || Fsb::$session->is_authorized('approve_event') || Fsb::$session->id() == $row['u_id']) { // On ajoute les évenements au tableau $event, avec en clef le mois et le jour, par exemple // pour la liste des évenements du 24 décembre 2006 : $events[12][24] $timestamp_begin = ($row['c_begin'] < $begin_timestamp) ? $begin_timestamp : $row['c_begin']; $timestamp_end = ($row['c_end'] > $end_timestamp) ? $end_timestamp : $row['c_end']; for ($timestamp = $timestamp_begin; $timestamp <= $timestamp_end; $timestamp += ONE_DAY) { $events[date('j', $timestamp)][] = array( 'type' => 'event', 'lang' => $row['c_title'], ); } } } Fsb::$db->free($result);
Ajouter :
PHP (Sélectionner le code)
// MOD : ajout du calendrier dans le header Fsb::$tpl->set_switch('index'); for ($i = $begin_timestamp; $i <= $end_timestamp; $i += ONE_DAY) { $jour = date('j', $i); $total_events = 0; if (isset($events[$jour])) { $total_events = count($events[$jour]); } Fsb::$tpl->set_blocks('day', array( 'NB' => date ('j', $i), 'JOUR' => Fsb::$session->lang('week_day_' . strtolower(date ('D', $i))), 'FILL' => TRUE, 'CURRENT' => ($jour == date('j', CURRENT_TIME)) ? TRUE : FALSE, 'HAVE_EVENT' => ($total_events) ? TRUE : FALSE, 'U_EVENT' => ($total_events) ? sid(ROOT . 'index.' . PHPEXT . '?p=calendar&mode=event&time=' . mktime(0, 0, 0, date('n', $i), $jour)) : '', //'EVENT' => ($event_exists > 0) ? (($event_exists > 1) ? sprintf(Fsb::$session->lang('calendar_total_events'), $event_exists) : htmlspecialchars($events[$month][$i][0]['lang'])) : '', )); if ($total_events) { if ($total_events <= 3) { foreach ($events[$jour] AS $data) { $realname = $name = $data['lang']; if ($total_events > 1 && strlen($name) > 20) { $name = substr($name, 0, 20) . '..'; } Fsb::$tpl->set_blocks('day.event', array( 'IS_BIRTHDAY' => ($data['type'] == 'birthday') ? TRUE : FALSE, 'NAME' => htmlspecialchars($name), 'TITLE' => htmlspecialchars($realname), )); } } else { $is_birthday = TRUE; foreach ($events[$jour] AS $data) { if ($data['type'] != 'birthday') { $is_birthday = FALSE; break; } } $name = sprintf(Fsb::$session->lang('calendar_total_events'), $total_events); Fsb::$tpl->set_blocks('day.event', array( 'IS_BIRTHDAY' => $is_birthday, 'NAME' => $name, 'TITLE' => $name, )); } } } // MOD : fin
Ouvez tpl/WhiteSummer/files/header.html
Chercher :
HTML (Sélectionner le code)
<switch name="ac_mods_calendar & have_auth_calendar_read">- <a href="{U_CALENDAR}" title="{LG_FORUM_MENU_CALENDAR_EXPLAIN}">{LG_FORUM_MENU_CALENDAR}</a> <b>»</b> </div>
Après ajouter :
HTML (Sélectionner le code)
<!-- Ajout d'un calendrier dans le header --> <switch name="ac_mods_calendar & have_auth_calendar_read & index"> <div class="round"> <div id="calendar_link"><a href="{U_CALENDAR}" title="{LG_FORUM_MENU_CALENDAR_EXPLAIN}">{LG_FORUM_MENU_CALENDAR}</a></div> <table class="index_calendar"> <tr> <block name="day"><th>{day.JOUR} {day.NB}</th></block> </tr> <tr> <block name="day"> <if content="$day.FILL"> <td <if content="$day.CURRENT">class="now"</if>> <ul class="event"> <block name="day.event"> <li><a href="{day.U_EVENT}" title="{day.event.TITLE}" class="<if content="$day.event.IS_BIRTHDAY">short_calendar_birthday<else>short_calendar_normal</if>">{day.event.NAME}</a></li> </block> </ul> </td> <else> <td class="empty"> </td> </if> </block> </tr> </table> </div> </switch>
Ouvrir lang/fr/common.php
Chercher :
PHP (Sélectionner le code)
'fopen_error' => 'Impossible d\'ouvrir ou de créer le fichier "%s", vérifiez les droits d\'écriture sur ce fichier ou sur le dossier.',
Après ajouter :
PHP (Sélectionner le code)
'week_day_mon' => 'Lundi', 'week_day_tue' => 'Mardi', 'week_day_wed' => 'Mercredi', 'week_day_thu' => 'Jeudi', 'week_day_fri' => 'Vendredi', 'week_day_sat' => 'Samedi', 'week_day_sun' => 'Dimanche',
Ouvrir tpl/WhiteSummer/calendar.css
A la fin ajouter :
CSS (Sélectionner le code)
/* Tableau du calendrier de l'index */ .index_calendar { width: 100%; border: 1px solid #AAAAAA; border-width: 1px 1px 0px 0px; margin-bottom: 6px; -moz-border-radius: 4px; -webkit-border-radius: 4px; background-color:#FFFFFF; } /* Nom des jours de la semaine dans le calendrier de l'index */ .index_calendar th { width: 14.3%; padding: 3px; border: 1px solid #AAAAAA; border-width: 0px 0px 1px 1px; font-weight: bold; background: #EEEEEE; } /* Case d'un jour du calendrier */ .index_calendar td { border: 1px solid #AAAAAA; border-width: 0px 0px 1px 1px; height: 50px; vertical-align: top; text-align: center; padding-bottom: 5px; } /* Effet de hover sur les jours selectionnés */ .index_calendar td:hover { background: #CCCCCC; } /* Jour actuel */ .now { background: #DDDDDD; } /* Gros lien menant vers le calendrier */ #calendar_link { text-align: center; font-size: large; margin-bottom: 3px; } /* Evènements calendrier de l'index*/ ul.event { margin: 0px; margin-left: 2px; padding: 0px; font-size: 10px; list-style-type: none; text-align: center; } /* Evènements de l'index normaux */ ul.event .short_calendar_normal { font-weight: bold; } /* Evènements de l'index anniversaires */ ul.event .short_calendar_birthday { color: #70A74F; font-weight: bold; }
Voilà, améliorer si vous voulez, c'est juste le code du forum repris et adapté pour avoir ce système. Si alors vous souhaitez désactivé les events de bas de page, commentez la zone concernée dans le fichier online.html.
Normalement ça donne ça : www.forum.lesdisciplesdebaal.com
PS : il y a un léger défaut d'affichage sous IE que je n'arrive pas à rélger, si quelqu'un à la réponse ...







