\r
touch(ROOT . '/cache/DB_TODO');\r
$core->dbSync();\r
+ cubeDb::mysqlConvert($core->con);\r
\r
$grades = array(0 => 1, 0.4 => 1, '0.4' => 1, 0.5 => 1, '0.5' => 1, 1 => 1, 2 => 2, 3 => 3, 4 => 5);\r
\r
while ($r->fetch()) {\r
$c = $core->con->openCursor('documents');\r
$c->document_id = $r->did;\r
- $c->file = $r->file;\r
- $c->proprietaire = getWsUser($r->uid);\r
$c->pages = $r->pages;\r
- $c->trim = $r->trim;\r
- $c->date = $r->date;\r
$c->version = 1;\r
$c->insert();\r
// TODO Copie des fichiers\r
$c->lang = substr(getLangCode($r->lang), 0, 2);\r
$c->theme = $r->tid;\r
if (strlen($r->lang) > 2) {\r
- $c->traductions = json_encode($allTrads[$r->lang]);\r
+ $c->traductions = json_encode($allTrads[mb_strtolower($r->lang)]);\r
} else {\r
$c->traductions = '';\r
}\r
$c->compteur_visites = 20;\r
$c->date = $r->date;\r
$parametres = new wsBookParametres(new stdClass());\r
- $r->signature = $signatures[$r->tid];\r
$parametres->fromRecord($r);\r
\r
$xml = @simplexml_load_string('<extras>' . $r->extras . '</extras>');\r
} else {\r
fb('error on extras (Fluidbook # ' . $r->bid);\r
}\r
+\r
+ $n = array();\r
+ // Pages sans numéro\r
+ $offset = $r->first_page_nr-1;\r
+ for($i = 0;$i < $offset;$i++) {\r
+ $n[] = '';\r
+ }\r
+ // Pages avec numero\r
+ for($j = 1;$j + $offset <= $r->pages;$j++) {\r
+ $n[] = $j;\r
+ }\r
+ $c->numerotation = implode(',', $n);\r
+\r
+ $parametres->signature = $signatures[$r->tid];\r
+ $parametres->title = $r->titre;\r
+ $parametres->visualisationMode = '0';\r
$c->parametres = serialize($parametres);\r
$c->insert();\r
}\r
\r
public function setLang($book_id, $base, $traductions)\r
{\r
+ // Cleanup user translations\r
+ $traductions = json_decode($traductions, true);\r
+ foreach($traductions as $k => $v) {\r
+ $traductions[$k] = trim($v);\r
+ }\r
+\r
+ $daoLang = new wsDAOLang($this->con);\r
+ $lang = $daoLang->selectById($base);\r
+ // Cleanup base translations\r
+ $baseTraductions = $lang->traductions;\r
+ foreach($baseTraductions as $k => $v) {\r
+ $baseTraductions[$k] = trim($v);\r
+ }\r
+ // Then compare them. If there is no differences, we don't save translations in the book\r
+ if ($traductions == $baseTraductions) {\r
+ $t = '';\r
+ } else {\r
+ $t = json_encode($traductions);\r
+ }\r
+\r
$c = $this->con->openCursor('books');\r
$c->lang = $base;\r
- $c->traductions = json_encode(json_decode($traductions, true));\r
+ $c->traductions = $t;\r
$c->changedate = TIME;\r
$c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
}\r
$flexLight->addVariable('datas', $book->parametres->toStandardObject(), false, true, 'JSONObject');\r
$flexLight->addVariable('id', $book_id, false, true, 'uint');\r
\r
- $flex->addVariable('traductions', $book->traductions, false, true, 'JSONObject');\r
+ $traductions = (!count($book->traductions))?$lang->traductions:$book->traductions;\r
+\r
+ $flex->addVariable('traductions', $traductions, false, true, 'JSONObject');\r
$flex->addVariable('chapters', $book->chapters, false, true, 'JSONObject');\r
$flex->addVariable('extras', '<extras>' . $book->extras . '</extras>', false, true, 'XML');\r
$flex->addVariable('numerotation', $book->numerotation, false, true, 'String');\r
$this->fields['width'] = array('type' => 'float', 'default' => '', 'editable' => false, 'label' => __('Largeur'), 'extra' => false, 'grade' => 0);\r
$this->fields['height'] = array('type' => 'float', 'default' => '', 'editable' => false, 'label' => __('Hauteur'), 'extra' => false, 'grade' => 0);\r
// .\r
- $this->fields['visualisationMode'] = array('type' => 'combo', 'default' => '3', 'editable' => true, 'label' => __("Mode de visualisation"), 'extra' => false, 'grade' => 1,\r
+ $this->fields['visualisationMode'] = array('type' => 'combo', 'default' => '0', 'editable' => true, 'label' => __("Mode de visualisation"), 'extra' => false, 'grade' => 1,\r
'datas' => array(__('Mode 3D') => '0',\r
__('Mode 2D (caméra fixe et pages à plat)') => '1',\r
__("Laisser le choix à l'utilisateur (mode 3D par défaut)") => '2',\r
\r
public function makeMiniShot($page)\r
{\r
- $this->makeShotFixedWidth($page, 'p', 100, 90, 4, 'GS');\r
+ $this->makeShotFixedWidth($page, 'p', 100, 90, 4, 'PNM');\r
}\r
\r
public function makeRealShot($page)\r
// Device\r
$gs->setArg('-sDEVICE=jpeg');\r
// Dispotion & colors\r
- $gs->setArg('-dUseCIEColor');\r
+ // $gs->setArg('-dUseCIEColor');\r
$gs->setArg('-dAutoRotatePages=/None');\r
$gs->setArg('-dUseCropBox');\r
// Resolution & Quality\r
$pdftoppm->setArg('f', $page);\r
$pdftoppm->setArg('l', $page);\r
\r
+ $pdftoppm->setArg('-cropbox');\r
$pdftoppm->setArg('-freetype yes');\r
$pdftoppm->setArg('-aa ' . $antialiasing);\r
$pdftoppm->setArg('-aaVector ' . $antialiasing);\r
- if (!WINDOWS) {\r
- $pdftoppm->setArg('-t1lib yes');\r
- }\r
$pdftoppm->setArg('r', $resolution);\r
$pdftoppm->setArg(null, $in);\r
$pdftoppm->setArg(null, $this->out . 'ppm');\r