From 3b89d971625ff21dc3ad805071b08545f4d97adb Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Thu, 24 Jun 2010 17:07:11 +0000 Subject: [PATCH] --- .../Controlleur/class.extranet.core.php | 5 +-- inc/ws/Controlleur/class.ws.flash.php | 27 +++++++++++++-- inc/ws/DAO/class.ws.dao.book.php | 33 +++++++++++++++++-- inc/ws/Metier/class.ws.book.php | 1 + inc/ws/Metier/class.ws.parametres.php | 21 ++++++++---- 5 files changed, 75 insertions(+), 12 deletions(-) diff --git a/inc/extranet/Controlleur/class.extranet.core.php b/inc/extranet/Controlleur/class.extranet.core.php index b69102b13..4ed8c29dc 100644 --- a/inc/extranet/Controlleur/class.extranet.core.php +++ b/inc/extranet/Controlleur/class.extranet.core.php @@ -342,7 +342,8 @@ class extranetCore extends cubeCore { $db->books->chapters('text', 0, false); $db->books->links('text', 0, false); $db->books->rulers('text', 0, false); - $db->books->extras('text',0,false); + $db->books->extras('text', 0, false); + $db->books->traductions('text', 0, false); $db->books->date('integer', 0, false); // Clés $db->books->primary('pk_books', 'book_id'); @@ -460,7 +461,7 @@ class extranetCore extends cubeCore { . 'FROM themes t ' . 'LEFT JOIN books b ON t.theme_id=b.theme ' . 'GROUP BY t.theme_id'); - //cubeDb::mysqlConvert($this->con); + // cubeDb::mysqlConvert($this->con); touch($cache); } diff --git a/inc/ws/Controlleur/class.ws.flash.php b/inc/ws/Controlleur/class.ws.flash.php index 4b44ce9c9..5ad56eb58 100644 --- a/inc/ws/Controlleur/class.ws.flash.php +++ b/inc/ws/Controlleur/class.ws.flash.php @@ -302,6 +302,13 @@ class wsFlash extends cubeFlashGateway { } } + public function saveSettings() + { + global $core; + $dao = new wsDAOBook($core->con); + $dao->setSettings($this->args['book_id'], $this->args['settings']); + } + public function setChapters() { global $core; @@ -413,13 +420,16 @@ class wsFlash extends cubeFlashGateway { $this->xml->addChild('infos', $res); } - public function getLangs($book_id = null) + public function getLangs() { global $core; if (isset($this->args['book_id'])) { $dao = new wsDAOBook($core->con); $book = $dao->selectById($this->args['book_id']); + if ($book->traductions != array()) { + $bookLang = $this->xml->addChild('book_lang', json_encode($book->traductions)); + } } $dao = new wsDAOLang($core->con); @@ -431,9 +441,22 @@ class wsFlash extends cubeFlashGateway { $l->addAttribute('nom', $lang->nom); $l->addAttribute('embeded', $lang->embeded); $l->addAttribute('public', $lang->public); - $l->addAttribute('selected', (isset($book) && $book->lang == $lang->lang_id)?'1':'0'); + if ((isset($book) && $book->lang == $lang->lang_id)) { + $l->addAttribute('selected', '1'); + $bookLang->addAttribute('id', $lang->lang_id); + $bookLang->addAttribute('nom', $lang->nom . ' (' . __('modifié') . ')'); + $bookLang->addAttribute('embeded', $lang->embeded); + $bookLang->addAttribute('public', $lang->public); + } } } + + public function saveLang() + { + global $core; + $dao = new wsDAOBook($core->con); + $dao->setLang($this->args['book_id'], $this->args['lang_id'], $this->args['traductions']); + } } ?> \ No newline at end of file diff --git a/inc/ws/DAO/class.ws.dao.book.php b/inc/ws/DAO/class.ws.dao.book.php index 78b8c987b..3225d6a55 100644 --- a/inc/ws/DAO/class.ws.dao.book.php +++ b/inc/ws/DAO/class.ws.dao.book.php @@ -37,6 +37,12 @@ class wsDAOBook extends extranetDAO { $book->rulers = json_decode($r->rulers, false); } + if ($r->traductions == '') { + $book->traductions = array(); + } else { + $book->traductions = json_decode($r->traductions); + } + $p = unserialize($r->parametres); if (!$p || $p->isEmpty()) { $p = new wsBookParametres($book); @@ -52,7 +58,7 @@ class wsDAOBook extends extranetDAO { $book = new wsBook(); $book->book_id = 'new'; $book->nom = ''; - $book->lang ='fr'; + $book->lang = 'fr'; $book->theme = 1; $book->proprietaire = ''; $book->proprietaire_id = 0; @@ -124,7 +130,7 @@ class wsDAOBook extends extranetDAO { return $this->selectById($book_id); } - public function creeEmpty($createur,$lang) + public function creeEmpty($createur, $lang) { $c = $this->con->openCursor('books'); $c->proprietaire = $createur; @@ -278,6 +284,29 @@ class wsDAOBook extends extranetDAO { $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\''); } + public function setLang($book_id, $base, $traductions) + { + $c = $this->con->openCursor('books'); + $c->lang = $base; + $c->traductions = json_encode(json_decode($traductions, false)); + $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\''); + } + + public function setSettings($book_id, $settings) + { + $book = $this->selectById($book_id); + $parametres = $book->parametres; + $new = json_decode($settings, false); + fb($new); + foreach($new as $k => $v) { + $parametres->$k = $v; + } + $c = $this->con->openCursor('books'); + $c->parametres = serialize($parametres); + $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\''); + fb($parametres); + } + public function getLinksFromCSV($book_id) { $booleans = array('video_loop', 'video_auto_start', 'video_controls', 'video_sound_on'); diff --git a/inc/ws/Metier/class.ws.book.php b/inc/ws/Metier/class.ws.book.php index de4b23248..45620231a 100644 --- a/inc/ws/Metier/class.ws.book.php +++ b/inc/ws/Metier/class.ws.book.php @@ -29,6 +29,7 @@ class wsBook extends cubeMetier { protected $links; protected $rulers; protected $extras; + protected $traductions; } ?> \ No newline at end of file diff --git a/inc/ws/Metier/class.ws.parametres.php b/inc/ws/Metier/class.ws.parametres.php index dfd93309b..eca957eb5 100644 --- a/inc/ws/Metier/class.ws.parametres.php +++ b/inc/ws/Metier/class.ws.parametres.php @@ -12,8 +12,9 @@ class wsParametres extends cubeMetier implements Iterator { $this->datas = array(); } - public function isEmpty(){ - return count($this->datas)==0; + public function isEmpty() + { + return count($this->datas) == 0; } public function setParent($parent) @@ -96,13 +97,19 @@ class wsParametres extends cubeMetier implements Iterator { switch ($this->fields[$varname]['type']) { case 'integer': - $value = intval($value); + if (!is_int($value)) { + $value = intval($value); + } break; case 'float': - $value = floatval($value); + if (!is_float($value)) { + $value = floatval($value); + } break; case 'boolean': - $value = ($value == '' || $value == '0' || $value == 'false')?false:true; + if (!is_bool($value)) { + $value = ($value == '' || $value == '0' || $value == 'false')?false:true; + } break; case 'color': case 'couleur': @@ -113,7 +120,9 @@ class wsParametres extends cubeMetier implements Iterator { $value = cubeMath::fill($value, 6); break; case 'date': - $value = intval($value); + if (!is_int($value)) { + $value = intval($value); + } break; default: $value = (string)$value; -- 2.39.5