Astuces:Calendrier
Un article de Wiki CRM-France.
Toutes les astuces correspondants au module Calendrier
Sommaire |
FAQs
Q: SugarCRM m'alertera-t-il si je planifie plusieurs activités en même temps?
R: Non, on peut planifier autant d'activités que l'on veut dans les mêmes plages horaires.
Modification Des Plages Horaires
La modification d'une plage horaire de travail s'effectue sur la page modules/Calendar/Calendar.php :
- Concernant la plage de début : rechercher la function get_start_slice_idx()
- Modifier la valeur de la variable $start_at (valeur par défaut : 8)
- Concernant la plage de fin : rechercher la function get_start_slice_idx() concernant la plage de début
- Modifier la valeur de la variable $end_at (valeur par défaut : 18)
Toutefois, il est nécessaire d'apporter une autre modification à la fonction get_start_slice_idx().
function get_start_slice_idx()
{
if($this->view == 'day')
{
$start_at = 8;
for($i=0;$i < 8; $i++)
{
if(count($this->slice_hash[$this->slices_arr[$i]]->acts_arr) > 0)
{
$start_at = $i;
break;
}
}
return $start_at;
}
else
{
return 0;
}
}
Si vous modifiez la variable $start_at, modifier la boucle
for($i=0;$i < 8; $i++)
par
for($i=0;$i <$start_at; $i++)
Changer le début de la semaine à lundi
La modification s'effectuera sur 2 fichiers (fichier qui créé le calendrier + le template html)
- La première modification s'effectuera donc sur le fichier modules/Calendar/Calendar.php :
- Rechercher la fonction create_slices() (ligne 175)
function create_slices()
{
global $current_user;
if ( $this->view == 'month')
{
$days_in_month = $this->date_time->days_in_month;
$first_day_of_month = $this->date_time->get_day_by_index_this_month(0);
$num_of_prev_days = $first_day_of_month->day_of_week;
// do 42 slices (6x7 grid)
for($i=0;$i < 42;$i++)
{
$slice = new Slice('day',$this->date_time->get_day_by_index_this_month($i-$num_of_prev_days));
$this->slice_hash[$slice->start_time->get_mysql_date()] = $slice;
array_push($this->slices_arr, $slice->start_time->get_mysql_date());
}
}
............
............
............
Ajouter le code suivant if ($num_of_prev_days == 0) $num_of_prev_days = 7; avant la boucle for($i=0;$i<42;$i++) Modifier la boucle for($i=0;$i<42;$i++) par for($i=1;$i <43;$i++)
Ensuite, la deuxième modification s'effectuera sur le fichier modules/Calendar/templates/templates_calendar.php (couleur de la colonne week-end) :
- Rechercher le code suivant (ligne 684)
<td valign=top <?php if($j==0)echo "scope='row' ";?> class="<?php if($j==0 || $j==6) { ?>monthCalBody
<?php if (get_current_day($args) == true) {echo "Today"; } ?>WeekEnd
<?php } else { ?>monthCalBody<?php if (get_current_day($args) == true) {echo "Today"; } ?>WeekDay
<?php } ?>"><?php template_cal_day_slice($args); ?></td>
Modifier le test if($j==0 || $j==6) par if($j==5 || $j==6)

