From 6a96980e614d640752829058cefb53831781a817 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Tue, 9 Mar 2010 11:53:05 +0000 Subject: [PATCH] --- inc/config.inc.php | 4 +- inc/ws/Controlleur/class.ws.flash.php | 45 ++++++++++++++++----- inc/ws/DAO/_common.php | 1 + inc/ws/DAO/class.ws.dao.theme.php | 34 ++++++++++++++++ inc/ws/Metier/_common.php | 1 + inc/ws/Metier/class.ws.parametres.php | 34 ++++++++++++++-- inc/ws/Metier/class.ws.theme.parametres.php | 3 +- inc/ws/Metier/class.ws.theme.php | 19 +++++++++ 8 files changed, 126 insertions(+), 15 deletions(-) create mode 100644 inc/ws/DAO/class.ws.dao.theme.php diff --git a/inc/config.inc.php b/inc/config.inc.php index c3e31c4df..2be73b447 100644 --- a/inc/config.inc.php +++ b/inc/config.inc.php @@ -35,7 +35,6 @@ if (in_array($_SERVER['HTTP_HOST'], array_merge($localrel, $localabs))) { define('FTPROOT', '/home/extranet/ftp/'); define('DEV', false); define('WINDOWS', false); - define('CONVERTER_PATH', '/bin:/usr/bin:/usr/local/bin'); } @@ -74,5 +73,8 @@ define('MAIL_BCC', 'contact@cubedesigners.com'); define('ZEND', dirname(__FILE__) . '/Zend'); // Timezone define('TIMEZONE', 'UTC'); +// Workshop +define('THEMES', WEBROOT . '/themes/'); +define('ICONS', WEBROOT . '/icones/'); ?> \ No newline at end of file diff --git a/inc/ws/Controlleur/class.ws.flash.php b/inc/ws/Controlleur/class.ws.flash.php index 8fbd3ef88..60e0eb692 100644 --- a/inc/ws/Controlleur/class.ws.flash.php +++ b/inc/ws/Controlleur/class.ws.flash.php @@ -110,16 +110,41 @@ class wsFlash extends cubeFlashGateway { $this->xml->addChild('totalDocPage', $p['totalDocPage']); } - public function getTheme(){ - $this->fields['shadeOnMenu'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Ombre portée sous la barre du menu'), 'extra' => true, 'grade' => 4); - $this->fields['pagesBar'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Afficher la barre d'accès rapide aux pages"), 'extra' => true, 'grade' => 4); - $this->fields['shadeAlpha'] = array('type' => 'integer', 'default' => 100, 'editable' => true, 'label' => __('Transparence des ombres sur les pages (100 : maximale - 0 : invisible)'), 'extra' => true, 'grade' => 4); - $this->fields['usePageEdges'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Afficher la bordure des pages"), 'extra' => true, 'grade' => 4); - $this->fields['arrowsColor'] = array('type' => 'color', 'default' => 'ffffff', 'editable' => true, 'label' => __('Couleur des flèches des boutons de navigation (page suivante, page précédente)'), 'extra' => true, 'grade' => 4); - $this->fields['pagesBarTxtColor'] = array('type' => 'color', 'default' => 'ffffff', 'editable' => true, 'label' => __("Couleur des numéros de page de la barre d'accès rapide aux pages"), 'extra' => true, 'grade' => 4); - $this->fields['sections'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Sections"), 'extra' => false, 'grade' => 4); - $this->fields['indexColors'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Couleurs des pages de l'index"), 'extra' => true, 'grade' => 4); - $this->fields['displayPageNumber'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher les numéros de page'), 'extra' => false, 'grade' => 1); + public function getTheme() + { + global $core; + $dao = new wsDAOTheme($core->con); + $theme = $dao->getThemeOfBook($this->args['book_id']); + + $this->_themeToXML($theme); + } + + public function getAllThemes() + { + global $core; + $dao = new wsDAOTheme($core->con); + $themes = $dao->getAllThemes(); + foreach($themes as $theme) { + $this->_themeToXML($theme); + } + } + + protected function _themeToXML($theme) + { + $t = $this->xml->addChild('theme'); + $t->addAttribute('theme_id', $theme->theme_id); + $t->addAttribute('icones_id', $theme->icones); + foreach($theme->parametres as $k => $v) { + $t->addChild($k, $v); + } + foreach(wsTheme::$files as $k => $v) { + $f = ROOT.THEMES . $theme->theme_id . '/' . $v; + if (file_exists($f)) { + $t->addChild($k, $f); + }else{ + fb($f); + } + } } } diff --git a/inc/ws/DAO/_common.php b/inc/ws/DAO/_common.php index 05a6d0d95..9f766edb7 100644 --- a/inc/ws/DAO/_common.php +++ b/inc/ws/DAO/_common.php @@ -1,5 +1,6 @@ \ No newline at end of file diff --git a/inc/ws/DAO/class.ws.dao.theme.php b/inc/ws/DAO/class.ws.dao.theme.php new file mode 100644 index 000000000..0c5936c28 --- /dev/null +++ b/inc/ws/DAO/class.ws.dao.theme.php @@ -0,0 +1,34 @@ +theme_id = $r->theme_id; + $theme->nom = $r->nom; + $theme->date = $r->date; + $theme->proprietaire = $r->proprietaire; + $theme->signature = $r->signature; + $theme->icones = $r->icones; + $p = unserialize($r->parametres); + if (!$p) { + $p = new wsThemeParametres(); + } + $theme->parametres = $p; + + return $theme; + } + + public function getThemeOfBook($book_id) + { + $r = $this->con->select('SELECT * FROM themes WHERE theme_id IN (SELECT theme FROM books WHERE book_id=\'' . $this->con->escape($book_id) . '\') LIMIT 1'); + return $this->singleton($r); + } + + public function getAllThemes() + { + $r = $this->con->select('SELECT * FROM themes'); + return $this->factory($r); + } +} + +?> \ No newline at end of file diff --git a/inc/ws/Metier/_common.php b/inc/ws/Metier/_common.php index d146463aa..9d097e2b6 100644 --- a/inc/ws/Metier/_common.php +++ b/inc/ws/Metier/_common.php @@ -2,6 +2,7 @@ $__autoload['wsBook'] = dirname(__FILE__) . '/class.ws.book.php'; $__autoload['wsParametres'] = dirname(__FILE__) . '/class.ws.parametres.php'; $__autoload['wsThemeParametres'] = dirname(__FILE__) . '/class.ws.theme.parametres.php'; +$__autoload['wsTheme'] = dirname(__FILE__) . '/class.ws.theme.php'; $__autoload['wsBookParametres'] = dirname(__FILE__) . '/class.ws.book.parametres.php'; $__autoload['wsLangueTextes'] = dirname(__FILE__) . '/class.ws.langue.textes.php'; $__autoload['wsDocument'] = dirname(__FILE__) . '/class.ws.document.php'; diff --git a/inc/ws/Metier/class.ws.parametres.php b/inc/ws/Metier/class.ws.parametres.php index 447ee61ff..ad0186c18 100644 --- a/inc/ws/Metier/class.ws.parametres.php +++ b/inc/ws/Metier/class.ws.parametres.php @@ -1,8 +1,8 @@ initFields(); @@ -38,6 +38,31 @@ class wsParametres extends cubeMetier { { $this->initFields(); } + // Iterator functions + public function rewind() + { + reset($this->fields); + } + + public function current() + { + return $this->get($this->key()); + } + + public function key() + { + return key($this->fields); + } + + public function next() + { + return next($this->fields); + } + + public function valid() + { + return $this->current() !== false; + } protected function initFields() { @@ -85,10 +110,13 @@ class wsParametres extends cubeMetier { protected function get($varname) { + if(is_null($varname)){ + return false; + } if (!$this->_isset($varname)) { throw new Exception('You are getting an attribute (' . get_class($this) . '::' . $varname . ') which not exists'); } - if (is_null($this->datas[$varname]) || !isset($this->datas[$varname])) { + if (!isset($this->datas[$varname]) || is_null($this->datas[$varname])) { return $this->fields[$varname]['default']; } return $this->datas[$varname]; diff --git a/inc/ws/Metier/class.ws.theme.parametres.php b/inc/ws/Metier/class.ws.theme.parametres.php index a9c39f8ee..843ef67ea 100644 --- a/inc/ws/Metier/class.ws.theme.parametres.php +++ b/inc/ws/Metier/class.ws.theme.parametres.php @@ -12,8 +12,9 @@ class wsThemeParametres extends wsParametres { $this->fields['couleurB'] = array('type' => 'couleur', 'default' => '', 'editable' => true, 'label' => __("Couleur des sous-menus"), 'extra' => false, 'grade' => 3); $this->fields['couleurS'] = array('type' => 'couleur', 'default' => '', 'editable' => true, 'label' => __("Couleur du texte du moteur de recherche"), 'extra' => false, 'grade' => 3); $this->fields['couleurL'] = array('type' => 'couleur', 'default' => '', 'editable' => true, 'label' => __("Couleur du fond du loader"), 'extra' => false, 'grade' => 3); + $this->fields['couleurI'] = array('type' => 'couleur', 'default' => 'ffffff', 'editable' => true, 'label' => __("Couleur des icônes"), 'extra' => false, 'grade' => 3); $this->fields['repeat'] = array('type' => 'combo', - 'datas' => array(__('Etirer') => '0', __('Etirer le fond') => '2', __("Répéter") => '1'), + 'datas' => array(__('Etirer') => 0, __('Etirer le fond') => '2', __("Répéter") => '1', __('Ne pas répéter ni étirer') => '3'), 'default' => '0', 'editable' => true, 'label' => __('Affichage du fond'), 'grade' => 3); $this->fields['shadeOnMenu'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Ombre portée sous la barre du menu'), 'extra' => true, 'grade' => 4); $this->fields['pagesBar'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Afficher la barre d'accès rapide aux pages"), 'extra' => true, 'grade' => 4); diff --git a/inc/ws/Metier/class.ws.theme.php b/inc/ws/Metier/class.ws.theme.php index e69de29bb..7e80b29d5 100644 --- a/inc/ws/Metier/class.ws.theme.php +++ b/inc/ws/Metier/class.ws.theme.php @@ -0,0 +1,19 @@ + 'backgroundImg.jpg', 'menu' => 'menu_back.png', 'logo' => 'menu_clientLogo.png'); + + protected $theme_id; + protected $icones; + protected $proprietaire; + protected $signature; + protected $nom; + protected $date; + protected $parametres; +} + +?> \ No newline at end of file -- 2.39.5