From a8267039175cba509b075533fb98d855b063064f Mon Sep 17 00:00:00 2001 From: Johan Cwiklinski Date: Tue, 12 Oct 2021 07:15:26 +0200 Subject: [PATCH] Few fixes, missing escaping Some changes required for PHP 8.1 --- .../Controllers/Crud/GroupsController.php | 3 +- .../DynamicTranslationsController.php | 2 +- galette/lib/Galette/Core/MailingHistory.php | 2 +- galette/lib/Galette/Core/Preferences.php | 34 ++++++++++++++++++- galette/lib/Galette/Entity/Adherent.php | 10 ++++-- .../lib/Galette/Entity/TranslatableTrait.php | 4 ++- .../templates/default/gestion_mailings.tpl | 2 +- .../templates/default/mailing_adherents.tpl | 4 +-- galette/templates/default/preferences.tpl | 12 +++---- .../templates/default/traduire_libelles.tpl | 8 ++--- galette/templates/default/voir_adherent.tpl | 8 ++++- .../Galette/Core/tests/units/CheckModules.php | 2 +- 12 files changed, 65 insertions(+), 26 deletions(-) diff --git a/galette/lib/Galette/Controllers/Crud/GroupsController.php b/galette/lib/Galette/Controllers/Crud/GroupsController.php index 4b178eede..96744c928 100644 --- a/galette/lib/Galette/Controllers/Crud/GroupsController.php +++ b/galette/lib/Galette/Controllers/Crud/GroupsController.php @@ -165,9 +165,8 @@ class GroupsController extends CrudController } if ($id === null && count($groups_root) > 0) { - reset($groups); $group = current($groups_root); - if (!$this->login->isGroupManager($group->getId())) { + if (!$this->login->isGroupManager($id)) { foreach ($groups_list as $g) { if ($this->login->isGroupManager($g->getId())) { $group = $g; diff --git a/galette/lib/Galette/Controllers/DynamicTranslationsController.php b/galette/lib/Galette/Controllers/DynamicTranslationsController.php index fce424407..b52ae4a64 100644 --- a/galette/lib/Galette/Controllers/DynamicTranslationsController.php +++ b/galette/lib/Galette/Controllers/DynamicTranslationsController.php @@ -104,7 +104,7 @@ class DynamicTranslationsController extends AbstractController $orig = array(); foreach ($all_texts as $idx => $row) { - $orig[] = $row->text_orig; + $orig[] = $row->text_orig ?? ''; } $exists = true; if ($text_orig == '') { diff --git a/galette/lib/Galette/Core/MailingHistory.php b/galette/lib/Galette/Core/MailingHistory.php index 3c40a0c88..d2d3dbafc 100644 --- a/galette/lib/Galette/Core/MailingHistory.php +++ b/galette/lib/Galette/Core/MailingHistory.php @@ -112,7 +112,7 @@ class MailingHistory extends History $select->order($this->buildOrderClause()); $this->buildLists($select); $this->proceedCount($select); - //add limits to retrieve only relavant rows + //add limits to retrieve only relevant rows $this->filters->setLimits($select); $results = $this->zdb->execute($select); diff --git a/galette/lib/Galette/Core/Preferences.php b/galette/lib/Galette/Core/Preferences.php index efd61f176..f85acfe3b 100644 --- a/galette/lib/Galette/Core/Preferences.php +++ b/galette/lib/Galette/Core/Preferences.php @@ -70,7 +70,7 @@ use Galette\Repository\Members; * @property string $pref_lang Default instance language * @property integer $pref_numrows Default number of rows in lists * @property integer $pref_log History, one of self::LOG_* - * @property interger $pref_statut Default status for new members + * @property integer $pref_statut Default status for new members * @property string $pref_email_nom * @property string $pref_email * @property string $pref_email_newadh @@ -1063,6 +1063,38 @@ class Preferences return $uri; } + /** + * Get last telemetry date + * + * @return string + */ + public function getTelemetryDate(): string + { + $rawdate = $this->prefs['pref_telemetry_date']; + if ($rawdate) { + $date = new \DateTime($rawdate); + return $date->format(_T('Y-m-d H:i:s')); + } else { + return _T('Never'); + } + } + + /** + * Get last telemetry date + * + * @return string|null + */ + public function getRegistrationDate() + { + $rawdate = $this->prefs['pref_registration_date']; + if ($rawdate) { + $date = new \DateTime($rawdate); + return $date->format(_T('Y-m-d H:i:s')); + } + + return null; + } + /** * Check member cards sizes * Always a A4/portrait diff --git a/galette/lib/Galette/Entity/Adherent.php b/galette/lib/Galette/Entity/Adherent.php index 5fdea7d05..55f0fd30c 100644 --- a/galette/lib/Galette/Entity/Adherent.php +++ b/galette/lib/Galette/Entity/Adherent.php @@ -657,7 +657,7 @@ class Adherent */ public function isCompany() { - return trim($this->_company_name) != ''; + return trim($this->_company_name ?? '') != ''; } /** @@ -876,8 +876,8 @@ class Adherent $str .= $title->tshort . ' '; } - $str .= mb_strtoupper($name, 'UTF-8') . ' ' . - ucwords(mb_strtolower($surname, 'UTF-8'), " \t\r\n\f\v-_|"); + $str .= mb_strtoupper($name ?? '', 'UTF-8') . ' ' . + ucwords(mb_strtolower($surname ?? '', 'UTF-8'), " \t\r\n\f\v-_|"); if ($id !== false || $nick !== false) { $str .= ' ('; @@ -1734,6 +1734,10 @@ class Adherent return null; } break; + case 'address': + case 'address_continuation': + return $this->$rname ?? ''; + break; case 'birthdate': case 'creation_date': case 'modification_date': diff --git a/galette/lib/Galette/Entity/TranslatableTrait.php b/galette/lib/Galette/Entity/TranslatableTrait.php index 3007a0539..ca342b4d7 100644 --- a/galette/lib/Galette/Entity/TranslatableTrait.php +++ b/galette/lib/Galette/Entity/TranslatableTrait.php @@ -65,7 +65,9 @@ trait TranslatableTrait */ public function getName($translated = true) { - if ($translated === true) { + if (empty($this->name)) { + return ''; + } elseif ($translated === true) { return _T(strip_tags($this->name)); } else { return strip_tags($this->name); diff --git a/galette/templates/default/gestion_mailings.tpl b/galette/templates/default/gestion_mailings.tpl index 157d2810e..74ac867ec 100644 --- a/galette/templates/default/gestion_mailings.tpl +++ b/galette/templates/default/gestion_mailings.tpl @@ -125,7 +125,7 @@ {_T string="Mailing entry %id" pattern="/%id/" replace=$log.mailing_id} - {$log.mailing_date|date_format:"%a %d/%m/%Y - %R"} + {$log.mailing_date|date_format:{_T string="Y-m-d H:i:s"}} {if $log.mailing_sender eq 0}{_T string="Superadmin"}{else}{$log.mailing_sender_name}{/if} {$log.mailing_recipients|unserialize|@count} {$log.mailing_subject} diff --git a/galette/templates/default/mailing_adherents.tpl b/galette/templates/default/mailing_adherents.tpl index 878117fc9..d787c9a72 100644 --- a/galette/templates/default/mailing_adherents.tpl +++ b/galette/templates/default/mailing_adherents.tpl @@ -86,7 +86,7 @@ {_T string="Activate HTML editor"} - +
@@ -140,7 +140,7 @@ - +

{/if} diff --git a/galette/templates/default/preferences.tpl b/galette/templates/default/preferences.tpl index 15bd33603..cc4f22054 100644 --- a/galette/templates/default/preferences.tpl +++ b/galette/templates/default/preferences.tpl @@ -89,12 +89,8 @@ {_T string="Telemetry date:"} {_T string="Last telemetry sent date."} - {if $pref.pref_telemetry_date} - {$pref.pref_telemetry_date|date_format:"%a %d/%m/%Y - %R"} - {else} - {_T string="Never"} - {/if} - - {_T string="send"} + {$preferences->getTelemetryDate()} + {_T string="send"}
@@ -103,12 +99,12 @@ {if $pref.pref_registration_date} {assign var="regtxt" value={_T string="Update your information"}} - {$pref.pref_registration_date|date_format:"%a %d/%m/%Y - %R"} + {$preferences->getRegistrationDate()} {else} {assign var="regtxt" value={_T string="Register"}} {_T string="Not registered"} {/if} - - {$regtxt} + {$regtxt}
diff --git a/galette/templates/default/traduire_libelles.tpl b/galette/templates/default/traduire_libelles.tpl index e170d0314..02833973e 100644 --- a/galette/templates/default/traduire_libelles.tpl +++ b/galette/templates/default/traduire_libelles.tpl @@ -18,17 +18,17 @@
{if not $exists}

- {_T string="Original text: '%s'" pattern='/%s/' replace=$text_orig} + {_T string="Original text: '%s'" pattern='/%s/' replace=$text_orig|escape}

{/if}
- {_T string="Translation of '%s' label" pattern="/%s/" replace=$text_orig} + {_T string="Translation of '%s' label" pattern="/%s/" replace=$text_orig|escape} {section name="lang" loop=$trans}

- - + +

{/section}
diff --git a/galette/templates/default/voir_adherent.tpl b/galette/templates/default/voir_adherent.tpl index 8aac22d23..415a90f99 100644 --- a/galette/templates/default/voir_adherent.tpl +++ b/galette/templates/default/voir_adherent.tpl @@ -140,7 +140,13 @@ We have to use a template file, so Smarty will do its work (like replacing varia {continue} {/if} {assign var="propname" value=$element->propname} - {assign var="value" value=$member->$propname|escape} + + {assign var="propvalue" value=$member->$propname} + {if $propvalue} + {assign var=value value=$propvalue|escape} + {else} + {assign var=value value=$propvalue} + {/if} {if $element->field_id eq 'nom_adh'} {assign var="value" value=$member->sfullname} diff --git a/tests/Galette/Core/tests/units/CheckModules.php b/tests/Galette/Core/tests/units/CheckModules.php index d2b2c4f57..57b606c48 100644 --- a/tests/Galette/Core/tests/units/CheckModules.php +++ b/tests/Galette/Core/tests/units/CheckModules.php @@ -68,7 +68,7 @@ class CheckModules extends atoum $this->array($checks->getMissings()) ->isEmpty(); $this->array($checks->getShoulds()) - ->isEmpty(2); + ->isEmpty(); $this->boolean($checks->isGood('mbstring')) ->isTrue(); } -- 2.39.2