}
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;
$orig = array();
foreach ($all_texts as $idx => $row) {
- $orig[] = $row->text_orig;
+ $orig[] = $row->text_orig ?? '';
}
$exists = true;
if ($text_orig == '') {
$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);
* @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
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
*/
public function isCompany()
{
- return trim($this->_company_name) != '';
+ return trim($this->_company_name ?? '') != '';
}
/**
$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 .= ' (';
return null;
}
break;
+ case 'address':
+ case 'address_continuation':
+ return $this->$rname ?? '';
+ break;
case 'birthdate':
case 'creation_date':
case 'modification_date':
*/
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);
{_T string="Mailing entry %id" pattern="/%id/" replace=$log.mailing_id}
</span>
</td>
- <td class="nowrap" data-title="{_T string="Date"}">{$log.mailing_date|date_format:"%a %d/%m/%Y - %R"}</td>
+ <td class="nowrap" data-title="{_T string="Date"}">{$log.mailing_date|date_format:{_T string="Y-m-d H:i:s"}}</td>
<td data-title="{_T string="Sender"}">{if $log.mailing_sender eq 0}{_T string="Superadmin"}{else}{$log.mailing_sender_name}{/if}</td>
<td data-title="{_T string="Recipients"}">{$log.mailing_recipients|unserialize|@count}</td>
<td data-title="{_T string="Subject"}">{$log.mailing_subject}</td>
<a href="javascript:activateMailingEditor('mailing_corps');" id="activate_editor">{_T string="Activate HTML editor"}</a>
</span>
<label for="mailing_corps" class="bline">{_T string="Message:"}</label>
- <textarea name="mailing_corps" id="mailing_corps" cols="80" rows="15" required>{$mailing->message|escape}</textarea>
+ <textarea name="mailing_corps" id="mailing_corps" cols="80" rows="15" required>{if $mailing->message}{$mailing->message|escape}{/if}</textarea>
<input type="hidden" name="html_editor_active" id="html_editor_active" value="{if $html_editor_active}1{else}0{/if}"/>
</div>
<div class="center">
</button>
<input type="hidden" name="mailing_objet" value="{$mailing->subject}"/>
- <input type="hidden" name="mailing_corps" value="{$mailing->message|escape}"/>
+ <input type="hidden" name="mailing_corps" value="{if $mailing->message}{$mailing->message|escape}{/if}"/>
</p>
</div>
{/if}
<span class="bline tooltip">{_T string="Telemetry date:"}</span>
<span class="tip">{_T string="Last telemetry sent date."}</span>
<span>
- {if $pref.pref_telemetry_date}
- {$pref.pref_telemetry_date|date_format:"%a %d/%m/%Y - %R"}
- {else}
- {_T string="Never"}
- {/if}
- - <a href="#" id="telemetry" class="button"><i class="fas fa-chart-bar" aria-hidden="true"></i> {_T string="send"}</a>
+ {$preferences->getTelemetryDate()}
+ <a href="#" id="telemetry" class="button"><i class="fas fa-chart-bar" aria-hidden="true"></i> {_T string="send"}</a>
</span>
</div>
<div class="p">
<span>
{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}
- - <a href="{$smarty.const.GALETTE_TELEMETRY_URI}reference?showmodal&uuid={$pref.pref_registration_uuid}" id="register" target="_blank" class="button"><i class="fas fa-marker"></i>{$regtxt}</a>
+ <a href="{$smarty.const.GALETTE_TELEMETRY_URI}reference?showmodal&uuid={$pref.pref_registration_uuid}" id="register" target="_blank" class="button"><i class="fas fa-marker"></i>{$regtxt}</a>
</span>
</div>
<form action="{path_for name="editDynamicTranslation"}" method="post" enctype="multipart/form-data">
{if not $exists}
<p class="right">
- <span>{_T string="Original text: '%s'" pattern='/%s/' replace=$text_orig}</span>
+ <span>{_T string="Original text: '%s'" pattern='/%s/' replace=$text_orig|escape}</span>
<input type="hidden" name="new" value="true"/>
</p>
{/if}
<fieldset class="cssform">
- <legend class="ui-state-active ui-corner-top">{_T string="Translation of '%s' label" pattern="/%s/" replace=$text_orig}</legend>
+ <legend class="ui-state-active ui-corner-top">{_T string="Translation of '%s' label" pattern="/%s/" replace=$text_orig|escape}</legend>
{section name="lang" loop=$trans}
<p>
<label for="text_trans_{$trans[lang].key}" class="bline">{$trans[lang].name}</label>
- <input type="text" name="text_trans_{$trans[lang].key}" id="text_trans_{$trans[lang].key}" value="{$trans[lang].text|escape}"/>
- <input type=hidden name="text_orig" value="{$text_orig}"/>
+ <input type="text" name="text_trans_{$trans[lang].key}" id="text_trans_{$trans[lang].key}" value="{if $trans[lang].text}{$trans[lang].text|escape}{/if}"/>
+ <input type=hidden name="text_orig" value="{$text_orig|escape}"/>
</p>
{/section}
</fieldset>
{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}
$this->array($checks->getMissings())
->isEmpty();
$this->array($checks->getShoulds())
- ->isEmpty(2);
+ ->isEmpty();
$this->boolean($checks->isGood('mbstring'))
->isTrue();
}