Bonjour,
@stephprox, merci pour ton retour.
@RomainDeschamps, j’avoue ne pas très bien connaître le fonctionnement de GitHub concernant les pull requests, il faut que je me documente dessus.
Dans un premier temps, je vais partager mon code ici pour ceux qui souhaitent le tester.
Procédure pour ajouter les numéros de semaines dans l’agenda, pour l’affichage « Vue mois »
Cette procédure est vérifiée et testée pour la version 12.0.1, sous WIndows 10 version 2004 (installation manuelle, pas par DoliWamp), sur FireFox et Chrome à jour.
Après comparaison, le fichier concerné par les modifications étant identique pour les versions 12.0.1 et 12.0.2, il est tout à fait probable que cette procédure fonctionne également pour la version 12.0.2 (à vous de vérifier pour les versions antérieures).
N’oubliez pas qu’en modifiant les fichiers sources de Dolibarr, vous êtes seul responsable des résultats occasionnés, prenez donc vos précautions en sauvegardant vos données avant, et soyez sûr d’avoir les moyens d’annuler complètement vos modifications.
1/ Dans le dossier de Dolibarr, faire une copie du fichier « …\comm\action\index.php ».
2/ Éditer le fichier « …\comm\action\index.php » (numéros de ligne valables pour la version d’origine jamais modifiée).
3/ Ligne 1163, ajouter la ligne suivante (entre la ligne 1162 print ' <tr class="liste_titre">';
, et la ligne 1163 $i = 0;
) :
// Ajout du titre de la colonne des numéros de semaines, colonne à gauche du tableau
echo ' <td align="center">#</td>';
4/ Ligne 1187, ajouter les lignes suivantes (entre la ligne 1186 echo " <tr>\n";
et la ligne 1187 for ($iter_day = 0; $iter_day < 7; $iter_day++)
) :
// Création de la date du jour en cours au format 'yyyy-mm-dd'
if ($tmpday <= 0) // Si le jour en cours appartient au mois précédent
{
// Création de la date du jour en cours (arguments repris depuis la fonction 'show_day_events' de la boucle FOR ci-dessous, pour la même condition IF)
$currdate0 = sprintf("%04d", $prev_year).sprintf("%02d", $prev_month).sprintf("%02d", $max_day_in_prev_month + $tmpday);
}
elseif ($tmpday <= $max_day_in_month) // Si le jour en cours appartient au mois en cours
{
// Création de la date du jour en cours (arguments repris depuis la fonction 'show_day_events' de la boucle FOR ci-dessous, pour la même condition IF)
$currdate0 = sprintf("%04d", $year).sprintf("%02d", $month).sprintf("%02d", $tmpday);
}
else // Si le jour en cours appartient au mois suivant
{
// Création de la date du jour en cours (arguments repris depuis la fonction 'show_day_events' de la boucle FOR ci-dessous, pour la même condition IF)
$currdate0 = sprintf("%04d", $next_year).sprintf("%02d", $next_month).sprintf("%02d", $tmpday - $max_day_in_month);
}
// Récupération du numéro de la semaine correspondant à la date spécifiée '$currdate0'
$numweek0 = date("W", strtotime(date($currdate0)));
// Écriture dans le code HTML du numéro de la semaine, avec largeur de la colonne
echo ' <td align="center" width="2.0%">'.$numweek0.'</td>';
5/ Les deux variables currdate0
et numweek0
sont créées seulement pour cette procédure, donc leur nom est personnalisable. Les autres ne doivent pas être modifiées.
6/ Le titre de la colonne des numéros de semaines est modifiable dans la ligne ajoutée à l’étape 2/ (ici, le titre définit est « # », entre les caractères >
et <
).
7/ La largeur de la colonne des numéros de semaines est modifiable, en pourcentage, dans la dernière ligne ajoutée à l’étape 3/ (ici, la largeur est définit à « 2.0% »)
La largeur du tableau utilisée pour afficher l’agenda étant définit en pourcentage, il se peut que l’ajout de la colonne modifie la taille des colonnes des jours de la semaines, et notamment la colonne de droite en la réduisant (mais en théorie les colonnes des jours ne devraient pas se déformer).
En cas de besoin, la largeur des colonnes des jours de la semaine et relativement facile à ajuster, dans le code contenu dans la boucle FOR citée à l’étape 3/ (ligne 1187 avant l’ajout du code supplémentaire),
il y a 3 lignes de codes commençant par echo ' <td class="'
, et contenant la propriété width
, définit par défaut avec la valeur 14%
. Ajuster cette valeur en fonction de celle attribuée à la colonne des numéros de semaines (de base, 14*7=98, donc les 2% de largeur affecté à la colonne ajoutée sont en fait déjà disponibles).
Les valeurs décimales sous forme 14.0%
sont apparemment prise en compte, pour une meilleure finesse d’ajustement.
Attention, il faut modifier les valeurs de ces 3 lignes en même temps, pas seulement une ou deux.
8/ Enregistrer le fichier.
9/ Actualiser la page.
Voici le resultat escompté en image :
Je prèfère essayer d’expliquer au mieux les modifications à effectuer, qui sont ici relativement faciles, plutôt que de simplement donner un fichier à télécharger. Cela permet aux néophites de la programmation de se rendre compte qu’un code inconnu peut vite être complexe et qu’il faut toujours faire attention quand on décide de le modifier, en restant bien conscient de ce que l’on fait.
Je ne suis pas dév en PHP, alors j’espère avoir respecté au mieux les « règles de codage » de ce langage.
N’hésitez pas à apporter vos remarques.