This repository has been archived on 2023-12-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ae75/www/classes/actions/ActionsDevises.class.php
2020-11-02 15:46:52 +01:00

126 lines
3.2 KiB
PHP

<?php
/**
* Ce singleton permet de gérer la manipulation des client dans le front-office.
*
* @author Franck Allimant <franck@cqfdev.fr>
* @version $Id$
*/
require_once __DIR__ . "/../../fonctions/autoload.php";
class ActionsDevises extends ActionsBase {
private static $instance = false;
private $id_devise_defaut = false;
protected function __construct() {
}
/**
* Cette classe est un singleton
* @return ActionsAdminModules une instance de ActionsAdminModules
*/
public static function instance() {
if (self::$instance === false) self::$instance = new ActionsDevises();
return self::$instance;
}
/**
* Substitutions mail spécifiques aux devises
*
* @param string $texte
* @return string le texte avec les substitutions réalisées
*/
public function subsititutions_mail($devise, $texte) {
return $this->_substitutions($devise, $texte, '__', '__');
}
/**
* Substitutions simples spécifiques aux devises
*/
public function substitutions($devise, $texte) {
return $this->_substitutions($devise, $texte, '#', '');
}
/**
* Méthode générique de substitutions
*/
protected function _substitutions($devise, $texte, $prefixe, $suffixe) {
if (strstr($texte, "${prefixe}DEVISE")) {
$texte = str_replace("${prefixe}DEVISE_HTMLSYMBOLE${suffixe}", htmlentities($devise->symbole, ENT_COMPAT, 'UTF-8', false), $texte);
$texte = str_replace("${prefixe}DEVISE_SYMBOLE${suffixe}", $devise->symbole, $texte);
$texte = str_replace("${prefixe}DEVISE_DEFAUT${suffixe}", $devise->defaut, $texte);
$texte = str_replace("${prefixe}DEVISE_TAUX${suffixe}", $devise->taux, $texte);
$texte = str_replace("${prefixe}DEVISE_CODE${suffixe}", $devise->code, $texte);
$texte = str_replace("${prefixe}DEVISE_NOM${suffixe}", $devise->nom, $texte);
$texte = str_replace("${prefixe}DEVISE_ID${suffixe}", $devise->id, $texte);
$texte = str_replace("${prefixe}DEVISE${suffixe}", $devise->id, $texte);
}
return $texte;
}
/**
* Retourne l'ID de la devise par défaut. Pour améliorer les perfs, on cache cet ID
* dans une variable statique.
*/
public function get_id_devise_defaut() {
if ($this->id_devise_defaut === false) {
$devise = new Devise();
if ($devise->charger_defaut()) {
$this->id_devise_defaut = $devise->id;
}
else {
$this->id_devise_defaut = 1;
}
}
return $this->id_devise_defaut;
}
/**
* Retourne la devise courante.
*/
public function get_devise_courante() {
return new Devise($this->get_id_devise_courante());
}
/**
* Retourne l'ID de la devise courante.
*/
public function get_id_devise_courante() {
return $this->id_devise_courante_definie() ? $this->get_id_devise_session() : $this->get_id_devise_defaut();
}
/**
* Met à jour l'ID de la devise courante.
*/
public function set_id_devise_courante($id_devise) {
$_SESSION['navig']->devise = $id_devise;
}
/**
* Détermine si une devise est définie en session.
*/
public function id_devise_courante_definie() {
return (isset($_SESSION['navig']->devise) && $_SESSION['navig']->devise !== false);
}
/**
* Retourne la devise actuellement définie en session
*/
public function get_id_devise_session() {
return $_SESSION['navig']->devise;
}
}
?>