diff --git a/trunk/css/default/LSformElement_mailQuota.css b/trunk/css/default/LSformElement_mailQuota.css new file mode 100644 index 00000000..aeffd40f --- /dev/null +++ b/trunk/css/default/LSformElement_mailQuota.css @@ -0,0 +1,14 @@ +input.LSformElement_mailQuota { + width: 3em !important; + text-align: right; +} + +select.LSformElement_mailQuota { + width: 3em; +} + +span.LSformElement_mailQuota_unknown { + color: #f59a67; +} + + diff --git a/trunk/includes/class/class.LSattr_html_mailQuota.php b/trunk/includes/class/class.LSattr_html_mailQuota.php new file mode 100644 index 00000000..c8423564 --- /dev/null +++ b/trunk/includes/class/class.LSattr_html_mailQuota.php @@ -0,0 +1,34 @@ + + */ +class LSattr_html_mailQuota extends LSattr_html { + + var $LSformElement_type = 'mailQuota'; + +} + +?> diff --git a/trunk/includes/class/class.LSformElement_mailQuota.php b/trunk/includes/class/class.LSformElement_mailQuota.php new file mode 100644 index 00000000..5c19dd12 --- /dev/null +++ b/trunk/includes/class/class.LSformElement_mailQuota.php @@ -0,0 +1,151 @@ + + */ + +class LSformElement_mailQuota extends LSformElement { + + var $fieldTemplate = 'LSformElement_mailQuota_field.tpl'; + + var $sizeFacts = array( + 1 => 'o', + 1000 => 'Ko', + 1000000 => 'Mo', + 1000000000 => 'Go' + ); + + /** + * Retourne les infos d'affichage de l'élément + * + * Cette méthode retourne les informations d'affichage de l'élement + * + * @retval array + */ + function getDisplay(){ + $return = $this -> getLabelInfos(); + + $quotas=array(); + + foreach ($this -> values as $value) { + if (ereg('([0-9]*)S',$value,$regs)) { + $infos = array( + 'size' => $regs[1] + ); + if ($infos['size'] >= 1000000000) { + $infos['valueSizeFact']=1000000000; + } + else if ($infos['size'] >= 1000000) { + $infos['valueSizeFact']=1000000; + } + else if ($infos['size'] >= 1000) { + $infos['valueSizeFact']=1000; + } + else { + $infos['valueSizeFact']=1; + } + $infos['valueSize'] = $infos['size'] / $infos['valueSizeFact']; + $infos['valueTxt'] = $infos['valueSize'].$this ->sizeFacts[$infos['valueSizeFact']]; + + $quotas[$value] = $infos; + } + else { + $quotas[$value] = array( + 'unknown' => _('Valeur incorrect') + ); + } + } + + $GLOBALS['LSsession'] -> addCssFile('LSformElement_mailQuota.css'); + + $return['html'] = $this -> fetchTemplate( + NULL, + array( + 'quotas' => $quotas, + 'sizeFacts' => $this -> sizeFacts + ) + ); + return $return; + } + + /** + * Retourne le code HTML d'un champ vide + * + * @retval string Code HTML d'un champ vide. + */ + function getEmptyField() { + return $this -> fetchTemplate( + $this -> fieldTemplate, + array( + 'sizeFacts' => $this -> sizeFacts + ) + ); + } + + /** + * Recupère la valeur de l'élement passée en POST + * + * Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère + * pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément + * + * @param[] array Pointeur sur le tableau qui recupèrera la valeur. + * + * @retval boolean true si la valeur est présente en POST, false sinon + */ + function getPostData(&$return) { + if($this -> isFreeze()) { + return true; + } + if (isset($_POST[$this -> name.'_size'])) { + $return[$this -> name]=array(); + if(!is_array($_POST[$this -> name.'_size'])) { + $_POST[$this -> name.'_size'] = array($_POST[$this -> name.'_size']); + } + if(isset($_POST[$this -> name.'_sizeFact']) && !is_array($_POST[$this -> name.'_sizeFact'])) { + $_POST[$this -> name.'_sizeFact'] = array($_POST[$this -> name.'_sizeFact']); + } + foreach($_POST[$this -> name.'_size'] as $key => $val) { + if (!empty($val)) { + $f = 1; + if (isset($_POST[$this -> name.'_sizeFact'][$key]) && ($_POST[$this -> name.'_sizeFact'][$key]!=1)) { + $f = $_POST[$this -> name.'_sizeFact'][$key]; + } + $return[$this -> name][$key] = ($val*$f).'S'; + } + } + return true; + } + else { + $return[$this -> name] = array(); + return true; + } + } +} + +?> diff --git a/trunk/templates/default/LSformElement_mailQuota_field.tpl b/trunk/templates/default/LSformElement_mailQuota_field.tpl new file mode 100644 index 00000000..edae538e --- /dev/null +++ b/trunk/templates/default/LSformElement_mailQuota_field.tpl @@ -0,0 +1,19 @@ +{if $freeze} + {if $value} + {if $quotas[$value].unknown} + Valeur incorrecte + {else} + {$quotas[$value].valueTxt} + {/if} + {else} + {$noValueTxt} + {/if} +{else} + + + {if $quotas[$value].unknown} + Valeur incorrecte + {/if} +{/if}