diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 92bda5e164f..3d5dad5f201 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -63,8 +63,8 @@ jobs: phpstan-cache-${{ matrix.php-version }}-${{ github.base_ref }}- phpstan-cache-${{ matrix.php-version }}- - - name: Show debug into - run: cd ./.github/tmp && ls -al + - name: Show debug info + run: ls -al ./.github/tmp || echo "Cache directory not found (first run)" # Another method to get the list of changed files # It sets the variable steps.changed-php.outputs.all_changed_files for other steps @@ -103,17 +103,17 @@ jobs: # shellcheck disable=2086 if [ "${{ github.ref_name }}" == "develop" ] || [[ "${{ github.ref_name }}" == *.0 ]]|| [[ "${{ github.head_ref }}" == *"phpstan_full"* ]] ; then # Run phpstan on all files in integration branch - phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php | tee _stan.xml | cs2pr --graceful-warnings + phpstan analyse --no-progress --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php | tee _stan.xml | cs2pr --graceful-warnings else PHP_FILES=$(echo "$ALL_CHANGED_FILES" | tr ' ' '\n' | grep -E '\.php$' || true) echo "PHP_FILES=$PHP_FILES" if [ -z "$PHP_FILES" ]; then - echo "No PHP files to analyse. Skipping Phan." + echo "No PHP files to analyse. Skipping PHPStan." exit 0 fi - echo phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php ${ALL_CHANGED_FILES} | tee _stan.xml | cs2pr --graceful-warnings - phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php ${ALL_CHANGED_FILES} | tee _stan.xml | cs2pr --graceful-warnings + echo phpstan analyse --no-progress --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php ${ALL_CHANGED_FILES} + phpstan analyse --no-progress --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php ${ALL_CHANGED_FILES} | tee _stan.xml | cs2pr --graceful-warnings fi # continue-on-error: true diff --git a/dev/setup/codesniffer/Sniffs/Dolibarr/LanguageOfCommentsSniff.php b/dev/setup/codesniffer/Sniffs/Dolibarr/LanguageOfCommentsSniff.php index 1a80a8d9ad6..642b2dda25c 100644 --- a/dev/setup/codesniffer/Sniffs/Dolibarr/LanguageOfCommentsSniff.php +++ b/dev/setup/codesniffer/Sniffs/Dolibarr/LanguageOfCommentsSniff.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2025-2026 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -46,6 +46,8 @@ class LanguageOfCommentsSniff implements Sniff ' entier ', // ' facture ', // avoid french name of dolibarr object ' factures ', + ' fonction ', + ' formulaire ', ' ligne ', ' lignes ', ' modèle ', @@ -96,6 +98,12 @@ class LanguageOfCommentsSniff implements Sniff { $tokens = $phpcsFile->getTokens(); $content = $tokens[$stackPtr]['content']; + if (strpos($content, 'Copyright') === false && preg_match('/[àâäéèêëîïôùûüçœÀÂÄÉÈÊËÎÏÔÙÛÜÇŒ]/', $content)) { + $error = "The comment appears to be in French (accent detected in: '%s'). Please write in English."; + $data = [trim($content)]; + $phpcsFile->addWarning($error, $stackPtr, 'FrenchDetected', $data); + return; // We stop at the first occurrence. + } // Basic cleanup (lowercase for comparison) $contentLower = strtolower($content); diff --git a/htdocs/adherents/admin/member_emails.php b/htdocs/adherents/admin/member_emails.php index 7636fdc7f00..4d05ac5edd3 100644 --- a/htdocs/adherents/admin/member_emails.php +++ b/htdocs/adherents/admin/member_emails.php @@ -9,7 +9,7 @@ * Copyright (C) 2012 J. Fernando Lagrange * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2024 Alexandre Spangaro - * Copyright (C) 2024 Frédéric France + * Copyright (C) 2024-2026 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -277,7 +277,7 @@ foreach ($tableau as $key => $const) { // Loop on each param print ''.img_picto('', 'add').''; } elseif (preg_match('/MAIL_FROM$/i', $const)) { print img_picto('', 'email', 'class="pictofixedwidth"').''; - } else { // type = 'string' ou 'chaine' + } else { // type = 'string' or 'chaine' print ''; } print ''; diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index c6f43c1f642..05d534a6b14 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -7,7 +7,7 @@ * Copyright (C) 2009-2017 Regis Houssin * Copyright (C) 2014-2018 Alexandre Spangaro * Copyright (C) 2015 Marcos García - * Copyright (C) 2015-2025 Frédéric France + * Copyright (C) 2015-2026 Frédéric France * Copyright (C) 2015 Raphaël Doursenaud * Copyright (C) 2016 Juanjo Menent * Copyright (C) 2018-2019 Thibault FOUCART @@ -433,7 +433,7 @@ class Adherent extends CommonObject $this->public = 0; $this->ismultientitymanaged = 1; $this->isextrafieldmanaged = 1; - // les champs optionnels sont vides + // Optional fields are empty $this->array_options = array(); $this->fields['ref_ext']['visible'] = getDolGlobalInt('MAIN_LIST_SHOW_REF_EXT'); diff --git a/htdocs/adherents/stats/geo.php b/htdocs/adherents/stats/geo.php index da8e9cbe670..09013e52203 100644 --- a/htdocs/adherents/stats/geo.php +++ b/htdocs/adherents/stats/geo.php @@ -129,10 +129,10 @@ if ($mode == 'memberbycountry') { //print $sql; } elseif ($mode == 'memberbyregion') { $label = $langs->trans("Country"); - $label2 = $langs->trans("Region"); //département - $tab = 'statsregion'; //onglet + $label2 = $langs->trans("Region"); // department + $tab = 'statsregion'; // tab - $data = array(); //tableau de donnée + $data = array(); // data array $sql = "SELECT COUNT(DISTINCT d.rowid) as nb, COUNT(s.rowid) as nbsubscriptions, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, co.code, co.label, r.nom as label2"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as c on d.state_id = c.rowid"; diff --git a/htdocs/adherents/vcard.php b/htdocs/adherents/vcard.php index 98c61b08db9..def24ab1990 100644 --- a/htdocs/adherents/vcard.php +++ b/htdocs/adherents/vcard.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2010 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2020 Tobias Sekan - * Copyright (C) 2020-2024 Frédéric France + * Copyright (C) 2020-2026 Frédéric France * Copyright (C) 2024-2025 MDW * * This program is free software; you can redistribute it and/or modify @@ -151,7 +151,7 @@ if ($company->id) { } } - // Si adherent lie a un tiers non de type "particulier" + // If the member is linked to a third party not of type "individual" if ($company->typent_code != 'TE_PRIVATE') { $v->setOrg($company->name); } diff --git a/htdocs/core/actions_builddoc.inc.php b/htdocs/core/actions_builddoc.inc.php index 8c67e828895..1e90281d07f 100644 --- a/htdocs/core/actions_builddoc.inc.php +++ b/htdocs/core/actions_builddoc.inc.php @@ -50,6 +50,8 @@ * @var ?array $moreparams */ ' +@phan-var-force int $id +@phan-var-force int $permissiontoadd @phan-var-force ?array $moreparams @phan-var-force CommonObject|Societe $object @phan-var-force int $id diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 06235a2714a..9bc6a1ad301 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -5,7 +5,7 @@ * Copyright (C) 2017 Ferran Marcet * Copyright (C) 2018-2024 Charlene Benke * Copyright (C) 2024-2026 MDW - * Copyright (C) 2024 Frédéric France + * Copyright (C) 2024-2026 Frédéric France * Copyright (C) 2026 Joachim Küter * * This program is free software; you can redistribute it and/or modify @@ -438,8 +438,8 @@ function dol_stringtotime($string, $gm = 1) // Convert date with format DD/MM/YYY HH:MM:SS. This part of code should not be used. if (preg_match('/^([0-9]+)\/([0-9]+)\/([0-9]+)\s?([0-9]+)?:?([0-9]+)?:?([0-9]+)?/i', $string, $reg)) { dol_syslog("dol_stringtotime call to function with deprecated parameter format", LOG_WARNING); - // Date est au format 'DD/MM/YY' ou 'DD/MM/YY HH:MM:SS' - // Date est au format 'DD/MM/YYYY' ou 'DD/MM/YYYY HH:MM:SS' + // Date is in format 'DD/MM/YY' or 'DD/MM/YY HH:MM:SS' + // Date is in format 'DD/MM/YYYY' or 'DD/MM/YYYY HH:MM:SS' $sday = (int) $reg[1]; $smonth = (int) $reg[2]; $syear = (int) $reg[3]; @@ -632,7 +632,7 @@ function dol_get_last_day($year, $month = 12, $gm = false) $month += 1; } - // On se deplace au debut du mois suivant, et on retire un jour + // Move to the start of the next month, then subtract one day $datelim = dol_mktime(23, 59, 59, $month, 1, $year, $gm); $datelim -= (3600 * 24); @@ -909,7 +909,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countryCodeOrId = ' } if (in_array('ascension', $specialdayrule)) { - // Calcul du jour de l'ascension (39 days after easter day) + // Calculation of Ascension day (39 days after easter day) $date_paques = getGMTEasterDatetime($annee); $date_ascension = $date_paques + (3600 * 24 * 39); $jour_ascension = gmdate("d", $date_ascension); @@ -1200,7 +1200,7 @@ function listPublicHoliday($timestampStart, $timestampEnd, $countryCodeOrId = '' } if (in_array('ascension', $specialdayrule)) { - // Calcul du jour de l'ascension (39 days after easter day) + // Calculation of Ascension day (39 days after easter day) $date_paques = getGMTEasterDatetime($annee); $date_ascension = $date_paques + (3600 * 24 * 39); $jour_ascension = gmdate("d", $date_ascension); @@ -1496,7 +1496,7 @@ function getFirstDayOfEachWeek($TWeek, $year) $TFirstDayOfWeek = array(); foreach ($TWeek as $weekNb) { if (in_array('01', $TWeek) && in_array('52', $TWeek) && $weekNb == '01') { - $year++; //Si on a la 1re semaine et la semaine 52 c'est qu'on change d'année + $year++; // If we have both week 1 and week 52, it means we are changing year } $TFirstDayOfWeek[$weekNb] = date('d', strtotime($year.'W'.$weekNb)); } diff --git a/htdocs/opensurvey/exportcsv.php b/htdocs/opensurvey/exportcsv.php index fd1d59c6e0c..2acf185c13c 100644 --- a/htdocs/opensurvey/exportcsv.php +++ b/htdocs/opensurvey/exportcsv.php @@ -107,11 +107,11 @@ if ($resql) { while ($i < $num) { $obj = $db->fetch_object($resql); - // Le name de l'utilisateur + // The name of the user $nombase = str_replace("°", "'", $obj->name); $input .= $nombase.';'; - //affichage des resultats + // Display results $ensemblereponses = $obj->reponses; for ($k = 0; $k < $nbcolonnes; $k++) { if (empty($somme[$k])) { diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php index 72ee8213f35..0dbaf6794fe 100644 --- a/htdocs/opensurvey/results.php +++ b/htdocs/opensurvey/results.php @@ -1,7 +1,7 @@ * Copyright (C) 2014 Marcos García - * Copyright (C) 2018-2025 Frédéric France + * Copyright (C) 2018-2026 Frédéric France * Copyright (C) 2024-2026 MDW * * This program is free software; you can redistribute it and/or modify @@ -83,7 +83,7 @@ if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x")) { // bo $nouveauchoix .= "1"; } elseif (GETPOSTISSET("choix$i") && GETPOST("choix$i") == '2') { $nouveauchoix .= "2"; - } else { // else it's zéro + } else { // else it's zero $nouveauchoix .= "0"; } } @@ -740,7 +740,7 @@ if ($object->format == "D") { // Displaying the months $colspan = 1; for ($i = 0; $i < $nbofsujet; $i++) { - $cur = intval($toutsujet[$i]); // intval() est utilisé pour supprimer le suffixe @* qui déplaît logiquement à strftime() + $cur = intval($toutsujet[$i]); // intval() is used to strip the @* suffix which naturally confuses strftime() if (!isset($toutsujet[$i + 1])) { $next = false; @@ -1123,7 +1123,7 @@ if ($nbofcheckbox >= 2) { print ''."\n"; } -// S'il a oublié de remplir un nom +// If they forgot to fill in a name if (GETPOSTISSET("boutonp") && GETPOST("nom") == "") { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Name")), null, 'errors'); } @@ -1136,7 +1136,7 @@ if (isset($erreur_ajout_date) && $erreur_ajout_date) { setEventMessages($langs->trans("ErrorWrongDate"), null, 'errors'); } -//fin du tableau +// End of table print ''."\n"; print ''."\n"; diff --git a/htdocs/opensurvey/wizard/choix_autre.php b/htdocs/opensurvey/wizard/choix_autre.php index 98d54b76355..0d1a4ee129d 100644 --- a/htdocs/opensurvey/wizard/choix_autre.php +++ b/htdocs/opensurvey/wizard/choix_autre.php @@ -2,7 +2,7 @@ /* Copyright (C) 2013-2015 Laurent Destailleur * Copyright (C) 2014 Marcos García * Copyright (C) 2024-2026 MDW - * Copyright (C) 2024 Frédéric France + * Copyright (C) 2024-2026 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -87,7 +87,7 @@ if (GETPOSTISSET("confirmecreation")) { $toutchoix = substr($toutchoix, 1); $_SESSION["toutchoix"] = $toutchoix; - //test de remplissage des cases + // Check that all fields are filled in $testremplissage = ''; for ($i = 0; $i < $_SESSION["nbrecases"]; $i++) { if (isset($arrayofchoices[$i])) { @@ -124,8 +124,8 @@ if (empty($_SESSION['title'])) { } -//partie creation du sondage dans la base SQL -//On prépare les données pour les inserer dans la base +// Poll creation section in the SQL database +// Prepare the data to insert into the database print '
'."\n"; print ''; @@ -139,7 +139,7 @@ print '
'."\n"; print ''."\n"; -//affichage des cases texte de formulaire +// Display form text fields for ($i = 0; $i < $_SESSION["nbrecases"]; $i++) { $j = $i + 1; if (!isset($_SESSION["choix$i"])) { @@ -154,7 +154,7 @@ for ($i = 0; $i < $_SESSION["nbrecases"]; $i++) { print '
'."\n"; -//ajout de cases supplementaires +// Add extra fields print ''."\n"; print ''."\n"; for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) { @@ -548,16 +548,16 @@ for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) { } } -//fin du tableau +// End of table print ''."\n"; print '
'.$langs->trans("5MoreChoices").'... '; if ($conf->use_javascript_ajax) { diff --git a/htdocs/opensurvey/wizard/choix_date.php b/htdocs/opensurvey/wizard/choix_date.php index 4bae05abb1a..d0ab982fd83 100644 --- a/htdocs/opensurvey/wizard/choix_date.php +++ b/htdocs/opensurvey/wizard/choix_date.php @@ -116,7 +116,7 @@ if (GETPOST('confirmation')) { $errheure[$i][$j] = true; $erreur = true; } - } elseif (preg_match(";^(\d{1,2})h(\d{0,2})$;i", $tmphorairesi[$j], $heures)) { //si c'est une heure encore plus simple type 8h + } elseif (preg_match(";^(\d{1,2})h(\d{0,2})$;i", $tmphorairesi[$j], $heures)) { // if it is an even simpler time format like 8h // If the values are ok, add the data in the session variables if ($heures[1] < 24 && $heures[2] < 60) { $_SESSION["horaires$i"][$j] = $heures[0]; @@ -231,11 +231,11 @@ if (!isset($_SESSION["nbrecaseshoraires"])) { $_SESSION["nbrecaseshoraires"] = 5; } elseif ((GETPOST('ajoutcases') || GETPOST("ajoutcases_y")) && $_SESSION["nbrecaseshoraires"] == 5) { $_SESSION["nbrecaseshoraires"] = 10; - //On sauvegarde les heures deja entrées + // Save the already entered hours if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) { $nbofchoice = count($_SESSION["totalchoixjour"]); for ($i = 0; $i < $nbofchoice; $i++) { - //affichage des 5 cases horaires + // Display the 5 time slots for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { $horairesi = GETPOST("horaires".$i); $_SESSION["horaires$i"][$j] = $horairesi[$j]; @@ -277,11 +277,11 @@ if (issetAndNoEmpty('moisavant_x') || issetAndNoEmpty('moisavant')) { $_SESSION["mois"] -= 1; } - //On sauvegarde les heures deja entrées + // Save the already entered hours if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) { $nbofchoice = count($_SESSION["totalchoixjour"]); for ($i = 0; $i < $nbofchoice; $i++) { - //affichage des 5 cases horaires + // Display the 5 time slots for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { $horairesi = GETPOST("horaires".$i); $_SESSION["horaires$i"][$j] = $horairesi[$j]; @@ -299,11 +299,11 @@ if (issetAndNoEmpty('moisapres_x') || issetAndNoEmpty('moisapres')) { $_SESSION["mois"] += 1; } - // On sauvegarde les heures deja entrées + // Save the already entered hours if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) { $nbofchoice = count($_SESSION["totalchoixjour"]); for ($i = 0; $i < $nbofchoice; $i++) { - //affichage des 5 cases horaires + // Display the 5 time slots for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { $horairesi = GETPOST("horaires".$i); $_SESSION["horaires$i"][$j] = $horairesi[$j]; @@ -316,11 +316,11 @@ if (issetAndNoEmpty('moisapres_x') || issetAndNoEmpty('moisapres')) { if (issetAndNoEmpty('anneeavant_x') || issetAndNoEmpty('anneeavant')) { $_SESSION["annee"] -= 1; - //On sauvegarde les heures deja entrées + // Save the already entered hours if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) { $nbofchoice = count($_SESSION["totalchoixjour"]); for ($i = 0; $i < $nbofchoice; $i++) { - //affichage des 5 cases horaires + // Display the 5 time slots for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { $horairesi = GETPOST("horaires".$i); $_SESSION["horaires$i"][$j] = $horairesi[$j]; @@ -333,11 +333,11 @@ if (issetAndNoEmpty('anneeavant_x') || issetAndNoEmpty('anneeavant')) { if (issetAndNoEmpty('anneeapres_x') || issetAndNoEmpty('anneeapres')) { $_SESSION["annee"] += 1; - //On sauvegarde les heures deja entrées + // Save the already entered hours if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) { $nbofchoice = count($_SESSION["totalchoixjour"]); for ($i = 0; $i < $nbofchoice; $i++) { - //affichage des 5 cases horaires + // Display the 5 time slots for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { $horairesi = GETPOST("horaires".$i); $_SESSION["horaires$i"][$j] = $horairesi[$j]; @@ -421,7 +421,7 @@ if (issetAndNoEmpty('choixjourajout')) { $_SESSION["totalchoixjour"] = array(); } - // Test pour éviter les doublons dans la variable qui contient toutes les dates + // Check to avoid duplicates in the variable holding all dates $journeuf = true; if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('choixjourajout') === true) { $nbofchoice = count($_SESSION["totalchoixjour"]); @@ -440,7 +440,7 @@ if (issetAndNoEmpty('choixjourajout')) { sort($_SESSION["totalchoixjour"]); $cle = array_search(dol_mktime(0, 0, 0, $_SESSION["mois"], (int) $choixjourajout[0], $_SESSION["annee"]), $_SESSION["totalchoixjour"]); - //On sauvegarde les heures deja entrées + // Save the already entered hours for ($i = 0; $i < $cle; $i++) { $horairesi = GETPOST("horaires".$i); for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { @@ -465,12 +465,12 @@ if (issetAndNoEmpty('choixjourajout')) { } } -//retrait d'une entrée dans la variable de session qui contient toutes les dates +// Remove an entry from the session variable holding all dates if (issetAndNoEmpty('choixjourretrait')) { - //On sauvegarde les heures deja entrées + // Save the already entered hours $nbofchoice = count($_SESSION["totalchoixjour"]); for ($i = 0; $i < $nbofchoice; $i++) { - //affichage des 5 cases horaires + // Display the 5 time slots for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { $horairesi = GETPOST("horaires".$i); $_SESSION["horaires$i"][$j] = $horairesi[$j]; @@ -490,7 +490,7 @@ if (issetAndNoEmpty('choixjourretrait')) { } } -//report des horaires dans toutes les cases +// Copy hours to all time slots if (issetAndNoEmpty('reporterhoraires')) { $_SESSION["horaires0"] = GETPOST("horaires0"); $nbofchoice = count($_SESSION["totalchoixjour"]); @@ -500,7 +500,7 @@ if (issetAndNoEmpty('reporterhoraires')) { } } -//effacer les horaires dans toutes les cases +// Clear hours from all time slots if (issetAndNoEmpty('resethoraires')) { $nbofchoice = count($_SESSION["totalchoixjour"]); for ($i = 0; $i < $nbofchoice; $i++) { @@ -508,7 +508,7 @@ if (issetAndNoEmpty('resethoraires')) { } } -// affichage du calendrier +// Display the calendar print '
'."\n"; print '
'."\n"; print '
'."\n"; -// affichage de tous les jours choisis +// Display all selected days if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur) { - //affichage des jours + // Display the days print '
'."\n"; print '
'; print ''.$langs->trans("SelectedDays").':'."
\n"; @@ -609,7 +609,7 @@ if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur) { print ''."\n"; print ''.dol_print_date($_SESSION["totalchoixjour"][$i], 'daytext').' ('.dol_print_date($_SESSION["totalchoixjour"][$i], '%A').')'; - //affichage des cases d'horaires + // Display the time slot fields for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { if (isset($errheure[$i][$j]) /* && $errheure[$i][$j] */) { // When an error is found, the checkbox background is red @@ -638,9 +638,9 @@ if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur) { print ''."\n"; print ''."\n"; print ''."\n"; -//fin du formulaire et bandeau de pied +// End of form and footer print ''."\n"; -//bandeau de pied +// Footer bar print '



'."\n"; print '
'."\n"; diff --git a/htdocs/opensurvey/wizard/create_survey.php b/htdocs/opensurvey/wizard/create_survey.php index 36dc7b25967..93a39403754 100644 --- a/htdocs/opensurvey/wizard/create_survey.php +++ b/htdocs/opensurvey/wizard/create_survey.php @@ -2,7 +2,7 @@ /* Copyright (C) 2013-2014 Laurent Destailleur * Copyright (C) 2014 Marcos García * Copyright (C) 2015-2016 Alexandre Spangaro - * Copyright (C) 2018-2024 Frédéric France + * Copyright (C) 2018-2026 Frédéric France * Copyright (C) 2024-2025 MDW * * This program is free software; you can redistribute it and/or modify @@ -61,7 +61,7 @@ foreach ($session_var as $var) { } } -// On initialise également les autres variables +// Also initialise the other variables $cocheplus = ''; $cochemail = ''; $champdatefin = 0;