define('FTPROOT', '/home/extranet/ftp/');\r
define('DEV', false);\r
define('WINDOWS', false);\r
-\r
define('CONVERTER_PATH', '/bin:/usr/bin:/usr/local/bin');\r
}\r
\r
define('ZEND', dirname(__FILE__) . '/Zend');\r
// Timezone\r
define('TIMEZONE', 'UTC');\r
+// Workshop\r
+define('THEMES', WEBROOT . '/themes/');\r
+define('ICONS', WEBROOT . '/icones/');\r
\r
?>
\ No newline at end of file
$this->xml->addChild('totalDocPage', $p['totalDocPage']);\r
}\r
\r
- public function getTheme(){\r
- $this->fields['shadeOnMenu'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Ombre portée sous la barre du menu'), 'extra' => true, 'grade' => 4);\r
- $this->fields['pagesBar'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Afficher la barre d'accès rapide aux pages"), 'extra' => true, 'grade' => 4);\r
- $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);\r
- $this->fields['usePageEdges'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Afficher la bordure des pages"), 'extra' => true, 'grade' => 4);\r
- $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);\r
- $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);\r
- $this->fields['sections'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Sections"), 'extra' => false, 'grade' => 4);\r
- $this->fields['indexColors'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Couleurs des pages de l'index"), 'extra' => true, 'grade' => 4);\r
- $this->fields['displayPageNumber'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher les numéros de page'), 'extra' => false, 'grade' => 1);\r
+ public function getTheme()\r
+ {\r
+ global $core;\r
+ $dao = new wsDAOTheme($core->con);\r
+ $theme = $dao->getThemeOfBook($this->args['book_id']);\r
+\r
+ $this->_themeToXML($theme);\r
+ }\r
+\r
+ public function getAllThemes()\r
+ {\r
+ global $core;\r
+ $dao = new wsDAOTheme($core->con);\r
+ $themes = $dao->getAllThemes();\r
+ foreach($themes as $theme) {\r
+ $this->_themeToXML($theme);\r
+ }\r
+ }\r
+\r
+ protected function _themeToXML($theme)\r
+ {\r
+ $t = $this->xml->addChild('theme');\r
+ $t->addAttribute('theme_id', $theme->theme_id);\r
+ $t->addAttribute('icones_id', $theme->icones);\r
+ foreach($theme->parametres as $k => $v) {\r
+ $t->addChild($k, $v);\r
+ }\r
+ foreach(wsTheme::$files as $k => $v) {\r
+ $f = ROOT.THEMES . $theme->theme_id . '/' . $v;\r
+ if (file_exists($f)) {\r
+ $t->addChild($k, $f);\r
+ }else{\r
+ fb($f);\r
+ }\r
+ }\r
}\r
}\r
\r
<?php\r
$__autoload['wsDAOBook'] = dirname(__FILE__) . '/class.ws.dao.book.php';\r
$__autoload['wsDAODocument'] = dirname(__FILE__) . '/class.ws.dao.document.php';\r
+$__autoload['wsDAOTheme'] = dirname(__FILE__) . '/class.ws.dao.theme.php';\r
\r
?>
\ No newline at end of file
--- /dev/null
+<?php\r
+class wsDAOTheme extends extranetDAO {\r
+ protected function singleton($r)\r
+ {\r
+ $theme = new wsTheme();\r
+ $theme->theme_id = $r->theme_id;\r
+ $theme->nom = $r->nom;\r
+ $theme->date = $r->date;\r
+ $theme->proprietaire = $r->proprietaire;\r
+ $theme->signature = $r->signature;\r
+ $theme->icones = $r->icones;\r
+ $p = unserialize($r->parametres);\r
+ if (!$p) {\r
+ $p = new wsThemeParametres();\r
+ }\r
+ $theme->parametres = $p;\r
+\r
+ return $theme;\r
+ }\r
+\r
+ public function getThemeOfBook($book_id)\r
+ {\r
+ $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');\r
+ return $this->singleton($r);\r
+ }\r
+\r
+ public function getAllThemes()\r
+ {\r
+ $r = $this->con->select('SELECT * FROM themes');\r
+ return $this->factory($r);\r
+ }\r
+}\r
+\r
+?>
\ No newline at end of file
$__autoload['wsBook'] = dirname(__FILE__) . '/class.ws.book.php';\r
$__autoload['wsParametres'] = dirname(__FILE__) . '/class.ws.parametres.php';\r
$__autoload['wsThemeParametres'] = dirname(__FILE__) . '/class.ws.theme.parametres.php';\r
+$__autoload['wsTheme'] = dirname(__FILE__) . '/class.ws.theme.php';\r
$__autoload['wsBookParametres'] = dirname(__FILE__) . '/class.ws.book.parametres.php';\r
$__autoload['wsLangueTextes'] = dirname(__FILE__) . '/class.ws.langue.textes.php';\r
$__autoload['wsDocument'] = dirname(__FILE__) . '/class.ws.document.php';\r
<?php\r
-class wsParametres extends cubeMetier {\r
+class wsParametres extends cubeMetier implements Iterator {\r
protected $datas;\r
protected $fields;\r
-\r
+ // Magic functions\r
public function __construct()\r
{\r
$this->initFields();\r
{\r
$this->initFields();\r
}\r
+ // Iterator functions\r
+ public function rewind()\r
+ {\r
+ reset($this->fields);\r
+ }\r
+\r
+ public function current()\r
+ {\r
+ return $this->get($this->key());\r
+ }\r
+\r
+ public function key()\r
+ {\r
+ return key($this->fields);\r
+ }\r
+\r
+ public function next()\r
+ {\r
+ return next($this->fields);\r
+ }\r
+\r
+ public function valid()\r
+ {\r
+ return $this->current() !== false;\r
+ }\r
\r
protected function initFields()\r
{\r
\r
protected function get($varname)\r
{\r
+ if(is_null($varname)){\r
+ return false;\r
+ }\r
if (!$this->_isset($varname)) {\r
throw new Exception('You are getting an attribute (' . get_class($this) . '::' . $varname . ') which not exists');\r
}\r
- if (is_null($this->datas[$varname]) || !isset($this->datas[$varname])) {\r
+ if (!isset($this->datas[$varname]) || is_null($this->datas[$varname])) {\r
return $this->fields[$varname]['default'];\r
}\r
return $this->datas[$varname];\r
$this->fields['couleurB'] = array('type' => 'couleur', 'default' => '', 'editable' => true, 'label' => __("Couleur des sous-menus"), 'extra' => false, 'grade' => 3);\r
$this->fields['couleurS'] = array('type' => 'couleur', 'default' => '', 'editable' => true, 'label' => __("Couleur du texte du moteur de recherche"), 'extra' => false, 'grade' => 3);\r
$this->fields['couleurL'] = array('type' => 'couleur', 'default' => '', 'editable' => true, 'label' => __("Couleur du fond du loader"), 'extra' => false, 'grade' => 3);\r
+ $this->fields['couleurI'] = array('type' => 'couleur', 'default' => 'ffffff', 'editable' => true, 'label' => __("Couleur des icônes"), 'extra' => false, 'grade' => 3);\r
$this->fields['repeat'] = array('type' => 'combo',\r
- 'datas' => array(__('Etirer') => '0', __('Etirer le fond') => '2', __("Répéter") => '1'),\r
+ 'datas' => array(__('Etirer') => 0, __('Etirer le fond') => '2', __("Répéter") => '1', __('Ne pas répéter ni étirer') => '3'),\r
'default' => '0', 'editable' => true, 'label' => __('Affichage du fond'), 'grade' => 3);\r
$this->fields['shadeOnMenu'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Ombre portée sous la barre du menu'), 'extra' => true, 'grade' => 4);\r
$this->fields['pagesBar'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Afficher la barre d'accès rapide aux pages"), 'extra' => true, 'grade' => 4);\r
+<?php\r
+class wsTheme extends cubeMetier {\r
+ const NONE = 3;\r
+ const STRETCH = 0;\r
+ const RATIO = 2;\r
+ const REPEAT = 1;\r
+\r
+ public static $files = array('background' => 'backgroundImg.jpg', 'menu' => 'menu_back.png', 'logo' => 'menu_clientLogo.png');\r
+\r
+ protected $theme_id;\r
+ protected $icones;\r
+ protected $proprietaire;\r
+ protected $signature;\r
+ protected $nom;\r
+ protected $date;\r
+ protected $parametres;\r
+}\r
+\r
+?>
\ No newline at end of file