From f3c365cdcdbc63cf0e033f36eaff3514bd013738 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Tue, 16 Mar 2010 13:25:18 +0000 Subject: [PATCH] --- inc/ws/Controlleur/class.ws.flash.php | 17 ++++++ inc/ws/Metier/class.ws.book.parametres.php | 2 + inc/ws/Metier/class.ws.parametres.php | 19 ++++++- inc/ws/Metier/class.ws.theme.parametres.php | 61 +++++++++++++++------ 4 files changed, 82 insertions(+), 17 deletions(-) diff --git a/inc/ws/Controlleur/class.ws.flash.php b/inc/ws/Controlleur/class.ws.flash.php index 561bdde60..cb7a8a5bd 100644 --- a/inc/ws/Controlleur/class.ws.flash.php +++ b/inc/ws/Controlleur/class.ws.flash.php @@ -150,6 +150,23 @@ class wsFlash extends cubeFlashGateway { } } } + + public function getForms() + { + global $core; + $dao = new wsDAOTheme($core->con); + $theme = $dao->getThemeOfBook($this->args['book_id']); + foreach($theme->parametres->getForms() as $name) { + $f = $this->xml->addChild('form', json_encode($theme->parametres->getForm($name))); + $f->addAttribute('name', $name); + } + $dao = new wsDAOBook($core->con); + $book = $dao->selectById($this->args['book_id']); + foreach($book->parametres->getForms() as $name) { + $f = $this->xml->addChild('form', json_encode($book->parametres->getForm($name))); + $f->addAttribute('name', $name); + } + } } ?> \ No newline at end of file diff --git a/inc/ws/Metier/class.ws.book.parametres.php b/inc/ws/Metier/class.ws.book.parametres.php index 1883ac28e..14ee0753a 100644 --- a/inc/ws/Metier/class.ws.book.parametres.php +++ b/inc/ws/Metier/class.ws.book.parametres.php @@ -77,6 +77,8 @@ class wsBookParametres extends wsParametres { // . $this->fields['fonctions_diverses'] = __('Fonctions diverses'); $this->fields['immediateResize'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Redimensionner immédiatement la fenêtre"), 'extra' => true, 'grade' => 4); + + $this->forms['fluidbook'] = array('label' => __('Paramètres du fluidbook'), 'fieldsnames' => array_keys($this->fields)); } } diff --git a/inc/ws/Metier/class.ws.parametres.php b/inc/ws/Metier/class.ws.parametres.php index ad0186c18..4d5caf530 100644 --- a/inc/ws/Metier/class.ws.parametres.php +++ b/inc/ws/Metier/class.ws.parametres.php @@ -2,6 +2,7 @@ class wsParametres extends cubeMetier implements Iterator { protected $datas; protected $fields; + protected $forms; // Magic functions public function __construct() { @@ -67,6 +68,7 @@ class wsParametres extends cubeMetier implements Iterator { protected function initFields() { $this->fields = array(); + $this->forms = array(); } protected function set($varname, $value) @@ -110,7 +112,7 @@ class wsParametres extends cubeMetier implements Iterator { protected function get($varname) { - if(is_null($varname)){ + if (is_null($varname)) { return false; } if (!$this->_isset($varname)) { @@ -122,6 +124,21 @@ class wsParametres extends cubeMetier implements Iterator { return $this->datas[$varname]; } + public function getForm($name) + { + $f = $this->forms[$name]; + $f['fields'] = array(); + foreach($f['fieldsnames'] as $n) { + $f['fields'][$n] = $this->fields[$n]; + $f['fields'][$n]['value'] = $this->get($n); + } + return $f; + } + + public function getForms(){ + return array_keys($this->forms); + } + public function fromRecord($r) { $c = array_flip($r->columns()); diff --git a/inc/ws/Metier/class.ws.theme.parametres.php b/inc/ws/Metier/class.ws.theme.parametres.php index 0ca3827bb..dedff4669 100644 --- a/inc/ws/Metier/class.ws.theme.parametres.php +++ b/inc/ws/Metier/class.ws.theme.parametres.php @@ -8,24 +8,53 @@ class wsThemeParametres extends wsParametres { public function initFields() { parent::initFields(); - $this->fields['couleurA'] = array('type' => 'couleur', 'default' => '', 'editable' => true, 'label' => __("Couleur principale (boutons, liens)"), 'extra' => false, 'grade' => 3); - $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' => 'transparent', 'editable' => true, 'label' => __("Couleur des icônes"), 'extra' => false, 'grade' => 3); - $this->fields['backgroundColor'] = array('type' => 'couleur', 'default' => 'ffffff', 'editable' => true, 'label' => __("Couleur du fond"), 'extra' => false, 'grade' => 3); + $this->fields['couleurA'] = array('type' => 'couleur', 'default' => '', 'editable' => true, + 'label' => __("Couleur principale (boutons, liens)"), 'extra' => false, 'grade' => 3); + $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' => 'transparent', 'editable' => true, + 'label' => __("Couleur des icônes"), 'extra' => false, 'grade' => 3); + $this->fields['backgroundColor'] = array('type' => 'couleur', 'default' => 'ffffff', 'editable' => true, + 'label' => __("Couleur du fond"), 'extra' => false, 'grade' => 3); $this->fields['repeat'] = array('type' => 'combo', - 'datas' => array(__('Etirer') => 0, __('Etirer le fond') => 2, __("Répéter") => 1, __('Ne pas répéter ni étirer') => 3), + 'datas' => array(__('Etirer') => wsTheme::STRETCH, + __('Etirer le fond en conservant les proportions') => wsTheme::RATIO, + __("Répéter") => wsTheme::REPEAT, + __('Ne pas répéter ni étirer') => wsTheme::NONE), '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); - $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); + $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); + + $this->forms['background'] = array('label' => __('Personnalisation du fond'), 'fieldsnames' => array('backgroundColor', 'repeat')); + $this->forms['bouton'] = array('label' => __('Personnalisation des boutons'), 'fieldsnames' => array('couleurA', 'arrowsColor')); + $this->forms['icones'] = array('label' => __('Personnalisation des icônes'), 'fieldsnames' => array('couleurI')); + $this->forms['pagebar'] = array('label' => __('Personnalisation de la barre des pages'), + 'fieldsnames' => array('pagesBar', 'sections', 'pagesBarTxtColor')); + $this->forms['book'] = array('label' => __('Personnalisation du fluidbook'), + 'fieldsnames' => array('displayPageNumber', 'shadeAlpha', 'usePageEdges')); + $this->forms['menubar'] = array('label' => __('Personnalisation de la barre de menu'), 'fieldsnames' => array('shadeOnMenu')); + $this->forms['menu'] = array('label' => __('Personnalisation des menus'), 'fieldsnames' => array('couleurB', 'couleurS')); + $this->forms['loader'] = array('label' => __('Personnalisation du loader'), 'fieldsnames' => array('couleurL')); } } -- 2.39.5