. */ /* */ /*************************************************************************************/ /** * Administration des devises depuis le back office * * Ce singleton permet de gérer la manipulation des devises depuis l'admin Thelia. * * @author Franck Allimant * @version $Id$ */ class ActionsAdminDevises extends ActionsDevises { private static $instance = false; private function __construct() { parent::__construct(); } /** * Cette classe est un singleton * @return ActionsAdminDevises une instance de ActionsAdminDevises */ public static function instance() { if (self::$instance === false) self::$instance = new ActionsAdminDevises(); return self::$instance; } /** * Modifier une devise existante * * @param int $id * @param string $nom * @param float $taux * @param string $symbole * @param string $code * @param int $defaut 0 ou 1 */ public function modifier($id, $nom, $taux, $symbole, $code, $defaut) { $devise = new Devise(); if ($devise->charger($id)) { $devise->nom = $nom; $devise->taux = $taux; $devise->symbole = $symbole; $devise->code = $code; $devise->defaut = $defaut; $devise->maj(); ActionsModules::instance()->appel_module("moddevise", $devise); } } /** * Ajouter une nouvelle devise * * @param string $nom * @param float $taux * @param string $symbole * @param string $code */ public function ajouter($nom, $taux, $symbole, $code) { $devise = new Devise(); $devise->nom = $nom; $devise->taux = $taux; $devise->symbole = $symbole; $devise->code = $code; $devise->add(); ActionsModules::instance()->appel_module("ajoutdevise", $devise); } /** * Supprimer une devise existante */ public function supprimer($id) { $devise = new Devise(); if ($devise->charger_id($id)) { $devise->delete(); ActionsModules::instance()->appel_module("suppdevise", $devise); } } /** * Mettre à jour les taux de conversions par rapport à l'Euro */ public function refresh(){ $file_contents = file_get_contents('http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml'); $devise = new Devise(); if ($file_contents && $sxe = new SimpleXMLElement($file_contents)) { foreach ($sxe->Cube[0]->Cube[0]->Cube as $last) { $devise->query("UPDATE $devise->table SET taux='".$devise->escape_string($last["rate"])."' WHERE code='".$devise->escape_string($last["currency"])."'"); } } } /** * Retourne une liste des devises */ public function lister() { $devise = new Devise(); return $devise->query_liste("select * from $devise->table", "Devise"); } } ?>