$db->books->compiledate('integer', 0, false);\r
$db->books->version('integer', 0, false, 2);\r
$db->books->composition_update('integer', 0, false);\r
+ $db->books->dir_references('varchar', 256, false);\r
+ $db->books->dir_hosting('varchar', 256, false);\r
// Clés\r
$db->books->primary('pk_books', 'book_id');\r
$db->books->index('index_books_nom', 'BTREE', 'nom');\r
$x->addRedirection($url);\r
}\r
\r
+ public static function instbook($args, &$x) {\r
+ global $core;\r
+ $book_id = $args[1];\r
+ $server = $args[2];\r
+\r
+ $dao = new wsDAOBook($core->con);\r
+ $book = $dao->selectById($book_id);\r
+\r
+ if (!in_array($book->proprietaire_id, explode(',', $core->user->ws_rights))) {\r
+ commonDroits::error();\r
+ }\r
+ if (!isset($_POST['dir'])) {\r
+ $popup = commonAjax::form('instbook/' . $book_id . '/' . $server, __('Installation du Fluidbook'), wsUrl::formInstall($book, $server), __('Installer'), 2, '', '', true);\r
+ $x->addOpenPopup($popup);\r
+ return;\r
+ }\r
+\r
+ $package = wsPackager::package($book_id, 'html', false);\r
+\r
+ if ($server == 'references') {\r
+ $root = '/home/fluidbook/dev/references';\r
+ $url = 'http://www.fluidbook.com/references/';\r
+ } else if ($server == 'hosting') {\r
+ $root = '/home/fluidbook/hosting';\r
+ $url = 'http://hosting.fluidbook.com/';\r
+ }\r
+\r
+ $e = explode('/', $_POST['dir']);\r
+ $f = array();\r
+ foreach ($e as $d) {\r
+ if ($d == '..' || $d == '') {\r
+ continue;\r
+ }\r
+ $f[] = cubeText::str2URL($d);\r
+ }\r
+ $dir = implode('/', $f);\r
+\r
+ $dao->setInstallDir($book_id, $dir, $server);\r
+\r
+ $finalDir = $root . '/' . $dir;\r
+ if (!file_exists($finalDir)) {\r
+ mkdir($finalDir, 0777, true);\r
+ }\r
+\r
+ $cp = new cubeCommandLine('cp');\r
+ $cp->setPath(CONVERTER_PATH);\r
+ $cp->setArg('r');\r
+ $cp->setArg(null, $package . '*');\r
+ $cp->setArg(null, $finalDir);\r
+ $cp->execute();\r
+\r
+ $x->addClosePopup();\r
+ $x->addTruePopup($url . $dir.'/');\r
+ }\r
+\r
public static function statusBook($args, &$x) {\r
global $core;\r
\r
if (!isset($_POST['detail'])) {\r
$_POST['detail'] = $_POST['details'];\r
}\r
- \r
- if(!isset($_POST['site'])){\r
- $_POST['site']=$_POST['site_internet'];\r
+\r
+ if (!isset($_POST['site'])) {\r
+ $_POST['site'] = $_POST['site_internet'];\r
}\r
file_put_contents(ROOT . '/cache/demandeDevis.txt', print_r($_POST, true));\r
// Validation des champs de formulaires\r
$mail->from = FROM_NAME . '<' . FROM_EMAIL . '>';\r
$mail->subject = '[' . EMAIL_SUBJECT . '] ' . __('Demande de devis');\r
\r
- $body = "\r\n---- " . __('Demande') . ' ----' . "\r\n";\r
- $fields = array('type' => __('Type'),\r
- 'pages' => __('Pages'),\r
- 'liens' => __('Liens'),\r
- 'langues' => __('Langues'),\r
- 'details' => __('Commentaires'));\r
- foreach ($fields as $p => $t) {\r
- if ($demande->$p != '') {\r
- $body .= ' * ' . $t . ' : ' . $demande->$p . "\r\n";\r
- }\r
- }\r
+ $demande->type = $core->demandes_type[$demande->type];\r
\r
- $body .= "\r\n" . '---- ' . __('Coordonnées') . ' ----' . "\r\n";\r
- $fields = array('prenom' => __('Prenom'),\r
- 'nom' => __('Nom'),\r
- 'rs' => __('Entreprise'),\r
- 'adresse' => __('Adresse'),\r
- 'code_postal' => __('Code postal'),\r
- 'ville' => __('Ville'),\r
- 'pays' => 'Pays');\r
- foreach ($fields as $p => $t) {\r
- if ($utilisateur->$p != '') {\r
- if ($p == 'pays') {\r
- $body .= ' * ' . $t . ' : ' . cubeCountry::getCountry($utilisateur->$p, $revendeur->lang) . "\r\n";\r
- } else {\r
- $body .= ' * ' . $t . ' : ' . $utilisateur->$p . "\r\n";\r
- }\r
- }\r
- }\r
+ $body = wsDemande::asMailBody($demande, $utilisateur);\r
\r
$body .= "\r\n";\r
$body .= __('Afin de nous confirmer que vous prenez en compte cette demande, veuillez cliquer sur le lien ci-dessous') . " : \r\n";\r
$body .= __("Si dans un délai de deux jours ouvrés, vous n'avez pas accepté cette demande, nous nous réservons le droit de la prendre en charge.") . "\r\n";\r
\r
$mail->body = $body;\r
- //$mail->to = 'tech@fluidbook.com';\r
- $mail->to = $r->email;\r
- $mail->bcc='tech@fluidbook.com';\r
+ $mail->to = $revendeur->email;\r
+ $mail->bcc = 'tech@fluidbook.com';\r
$mail->send();\r
}\r
\r
$dao->accepteDemande($demande_id, $revendeur_id);\r
}\r
\r
- $x->addAlert(__('Votre choix a bien été prise en compte.'));\r
if (!isset($args[4])) {\r
- $x->addRedirection(SITE_PATH);\r
+ if ($response == '0') {\r
+ $x->addRedirection(SITE_PATH);\r
+ } else {\r
+ $x->addReload();\r
+ }\r
} else {\r
$x->addContent('listeDemandes', wsUrl::listeDemandes());\r
}\r
\r
$res = '';\r
\r
- $res .= self::contextBookDownload($context_download_id);\r
+ $res .= self::contextBookDownload($context_download_id, $droits);\r
$res .= self::contextBookStatus($context_status_id);\r
$res .= self::contextBookView($context_view_id);\r
\r
$res .= '<table class="liste">';\r
$res .= '<tr><th>' . commonUrl::orderby('#', 'book_id', $settings, 'sort' . $change) . '</th>';\r
$res .= '<th>' . commonUrl::orderby(__('Titre de la publication'), 'nom', $settings, 'sort' . $change) . '</th>';\r
+ $res .= '<th>' . commonUrl::orderby(__('Date'), 'date', $settings, 'sort' . $change) . '</th>';\r
$res .= '<th>' . commonUrl::orderby(__(''), 'lang', $settings, 'sort' . $change) . '</th>';\r
$res .= '<th>' . __('Pages') . '</th>';\r
if ($droits->revendeur) {\r
$res .= '<tr' . $odd . '>';\r
$res .= '<td>' . $book->book_id . '</td>';\r
$res .= '<td>' . html::escapeHTML($book->nom) . '</td>';\r
+ $res .= '<td>' . date('Y-m-d', $book->date) . '</td>';\r
$res .= '<td>' . mb_strtoupper($book->lang) . '</td>';\r
$res .= '<td>' . $book->parametres->pages . '</td>';\r
\r
\r
if (!isset($settings['search']) || is_null($settings['search'])) {\r
$odd = cubeMath::isOdd($i) ? ' class="odd"' : '';\r
- $res .= '<tr' . $odd . '><td colspan="13">';\r
+ $res .= '<tr' . $odd . '><td colspan="14">';\r
$res .= commonPage::pager($settings['page'], $dao->count($core->user), $settings['par_page'], 'page' . $change . '/%d');\r
$res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('publications'), false);\r
$res .= '</td></tr>';\r
return $res;\r
}\r
\r
- public static function contextBookDownload($id) {\r
+ public static function contextBookDownload($id, $droits) {\r
global $core;\r
\r
$versions = array();\r
$versions['mac-exe'] = array('title' => __('Version offline') . ' - ' . __('Exécutable Mac OS X'), 'icon' => cubeMedia::image(IMG . '/macos.png'));\r
$versions['win-cd'] = array('title' => __('Version offline') . ' - ' . __('CD-ROM') . ' / ' . __('Clé USB'), 'icon' => cubeMedia::silk('cd.png'));\r
\r
+\r
$res = '<div class="contextMenu downbookContextMenu" id="' . $id . '">';\r
$res .= '<ul>';\r
$res .= '<li class="head">' . __("Sélectionnez une version") . '</li>';\r
foreach ($versions as $k => $v) {\r
$res .= '<li><a href="#" rel="downbook/$1/' . $k . '" class="ajax">' . $v['icon'] . $v['title'] . '</a></li>';\r
}\r
+ if ($droits->admin) {\r
+ $res .= '<li class="head">' . __("Installer sur ...") . '</li>';\r
+ $versions = array();\r
+ $versions['hosting'] = array('title' => __("Le serveur d'hébergement"), 'icon' => cubeMedia::silk('server_go.png'));\r
+ $versions['references'] = array('title' => __("L'espace références"), 'icon' => cubeMedia::silk('server_add.png'));\r
+\r
+ foreach ($versions as $k => $v) {\r
+ $res .= '<li><a href="#" rel="instbook/$1/' . $k . '" class="ajax">' . $v['icon'] . $v['title'] . '</a></li>';\r
+ }\r
+ }\r
$res .= '</ul></div>';\r
return $res;\r
}\r
exit;\r
}\r
\r
- public static function editComposition($book_id,$hash) {\r
+ public static function editComposition($book_id, $hash) {\r
\r
$fv = array(session_name() => session_id(),\r
'book_id' => $book_id,\r
public static function valideDownload() {\r
global $core;\r
\r
- $res .= '<tr><td>' . __("Le téléchargement du fluidbook implique qu'il a été testé et définitivement validé.") . '<br />' . __("Si vous le téléchargez, il vous sera facturé selon les conditions stipulées dans votre contrat.") . '</td></tr>';\r
+ $res = '<tr><td>' . __("Le téléchargement du fluidbook implique qu'il a été testé et définitivement validé.") . '<br />' . __("Si vous le téléchargez, il vous sera facturé selon les conditions stipulées dans votre contrat.") . '</td></tr>';\r
$res .= '<tr><td class="right"><label>' . __("Oui, ce fluidbook est validé, je souhaite le télécharger et il me sera facturé.") . ' ' . form::checkbox('valide', 1, false) . '</label></td></tr>';\r
\r
return $res;\r
}\r
\r
+ public static function formInstall($book, $server) {\r
+ if ($server == 'references') {\r
+ $s = __('Espace des références');\r
+ $dir = $book->dir_references;\r
+ } elseif ($server == 'hosting') {\r
+ $s = __("Serveur d'hébergement");\r
+ $dir = $book->dir_hosting;\r
+ }\r
+\r
+ if ($dir == '') {\r
+ $dir = cubeText::str2URL($book->parametres->title);\r
+ }\r
+\r
+ $res = '<tr><td>' . __("Dossier d'installation") . '</td><td><em>' . $s . '</em> / ' . form::field('dir', 50, 50, $dir) . '</td></tr>';\r
+ $res.='<tr><td colspan="2">' . __("A l'issue de l'installation, vous serez dirigé vers le serveur sur lequel la publication a été installée") . '</td></tr>';\r
+ return $res;\r
+ }\r
+\r
public static function testAS($args) {\r
global $core;\r
commonDroits::min(5);\r
$res .= '<h2>' . $core->typo->Titre(__('Prendre en charge une demande de devis')) . '</h2>';\r
$res .= '<br /><br />';\r
\r
- if ($demande->revendeur != $revendeur_id || $demande->revendeur != $core->user->utilisateur_id) {\r
+ if ($demande->revendeur != $revendeur_id || $demande->revendeur != $core->user->utilisateur_id || $demande->status == 0) {\r
$res.='<p class="center">' . __('Cette demande de devis ne vous est pas adressée.') . '</p>';\r
+ } else if ($demande->status == 2) {\r
+ $res.='<p class="center">' . __('Merci ! Nous avons bien pris en compte votre réponse.') . '<br /><br />';\r
+ $res.='<a href="' . $dao->getMailto($demande_id) . '">' . __("Ouvrir l'email de réponse") . '</a>';\r
+ $res.='</p>';\r
} else {\r
-\r
-\r
$res .= '<p>' . __('Si vous acceptez de traiter la demande suivante, veuillez cliquer sur le bouton "Accepter la demande" situé à droite de la description.');\r
$res .= ' ' . __('Vous avez également la possibilité de décliner la demande en cliquant sur le bouton "Décliner la demande"') . "</p>";\r
$res .= '<br /><br />';\r
$res .= '<tr><th class="left" colspan="2">' . __("Détails de la demande") . '</th><th class="left" style="width:40%">' . __('Votre action') . '</th></tr>';\r
$res .= '<tr><td>' . __('Numéro de demande') . '</td><td>' . $demande->demande_id . '</td>';\r
$res .= '<td>' . '<a href="#" class="ajax" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/1" >' . cubeMedia::cssRollover($core->typo->BookTelecharger(__('Accepter la demande'), '', false)) . '</a>' . '</td></tr>';\r
- $res .= '<tr><td>' . __('Date de la demande') . '</td><td>' . date(__('d/m/Y H:i'), $demande->date) . '</td>';\r
- $res .= '<td>' . '<a href="#" class="ajax" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/0">' . cubeMedia::cssRollover($core->typo->Supprimer(__('Décliner la demande'), '', false)) . '</a>' . '</td>';\r
+ $res .= '<tr><td>' . __('Date de la demande') . '</td><td>' . date(__('d/m/Y H:i'), $demande->date) . '</td></tr>';\r
$res .= '</tr>';\r
$res .= '<tr><td>' . __('Client') . ' / ' . __('Prospect') . '</td><td><a href="#" class="popup" rel="formClient/' . $demande->entreprise . '">' . $demande->utilisateur_nom . '</a></td></tr>';\r
- $res .= '<tr><td>' . __('Nombre de pages') . '</td><td>' . $demande->pages . '</td></tr>';\r
+ $res .= '<tr><td>' . __('Nombre de pages') . '</td><td>' . $demande->pages . '</td>';\r
+ $res .= '<td>' . '<a href="#" class="ajax" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/0">' . cubeMedia::cssRollover($core->typo->Supprimer(__('Décliner la demande'), '', false)) . '</a>' . '</td>';\r
+ $res .='</tr>';\r
$res .= '<tr><td>' . __('Nombre de liens') . '</td><td>' . $demande->liens . '</td></tr>';\r
$res .= '<tr><td>' . __('Nombre de langues') . '</td><td>' . $demande->langues . '</td></tr>';\r
$res .= '<tr><td>' . __('Détails') . '</td><td>' . $demande->details . '</td></tr>';\r
$book->projet = $r->projet;\r
$book->version = $r->version;\r
$book->composition_update = $r->composition_update;\r
+ $book->dir_references = $r->dir_references;\r
+ $book->dir_hosting = $r->dir_hosting;\r
\r
return $book;\r
}\r
return false;\r
}\r
\r
- $checks = array($r->changedate, cubeFiles::filemtimeRecursive(WS_COMPILE_ASSETS . '/_html5'), cubeFiles::filemtimeRecursive(ROOT.'/inc/ws/Util/html5'));\r
+ $checks = array($r->changedate, cubeFiles::filemtimeRecursive(WS_COMPILE_ASSETS . '/_html5'), cubeFiles::filemtimeRecursive(ROOT . '/inc/ws/Util/html5'));\r
$reffile = WS_BOOKS . '/html5/' . $book_id;\r
\r
if (!file_exists($reffile)) {\r
$c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
}\r
\r
+ public function setInstallDir($book_id, $dir, $server) {\r
+ $col = 'dir_' . $server;\r
+\r
+ $c = $this->con->openCursor('books');\r
+ $c->$col = $dir;\r
+ $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
+ }\r
+\r
public function makeTextsIndexes($book_id, &$index, &$textes) {\r
$pages = $this->getPagesOfBook($book_id);\r
$index = array();\r
<?php\r
+\r
class wsDAODemande extends commonDAO {\r
- protected function singleton($r)\r
- {\r
+\r
+ protected function singleton($r) {\r
+ global $core;\r
$demande = new wsDemande();\r
$demande->demande_id = $r->demande_id;\r
$demande->type = $r->type;\r
+ $demande->type_nom = $core->demandes_type[$r->type];\r
$demande->pages = $r->pages;\r
$demande->liens = $r->liens;\r
$demande->langues = $r->langues;\r
return $demande;\r
}\r
\r
- protected function getNextId()\r
- {\r
+ protected function getNextId() {\r
$r = $this->con->select('SELECT MAX(demande_id) AS demande_id FROM demandes');\r
return $r->demande_id + 1;\r
}\r
\r
- public function selectById($demande_id = null)\r
- {\r
+ public function selectById($demande_id = null) {\r
$r = $this->con->select('SELECT * FROM demandes_vue WHERE demande_id=\'' . $this->con->escape($demande_id) . '\' LIMIT 1');\r
return $this->singleton($r);\r
}\r
\r
- public function getListe($orderby = null, $sens = null, $limit = null)\r
- {\r
+ public function getListe($orderby = null, $sens = null, $limit = null) {\r
global $core;\r
if (!is_null($this->q)) {\r
$where = '';\r
$where = $this->makeWhereFromFiltres();\r
}\r
\r
- $orderby = is_null($orderby)?'demande_id':$orderby;\r
- $sens = is_null($sens)?'DESC':$sens;\r
- $limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]);\r
+ $orderby = is_null($orderby) ? 'demande_id' : $orderby;\r
+ $sens = is_null($sens) ? 'DESC' : $sens;\r
+ $limit = is_null($limit) ? '' : $this->con->limit($limit[0], $limit[1]);\r
\r
$sql = 'SELECT * FROM demandes_vue WHERE ' . $where . ' ORDER BY ' . $orderby . ' ' . $sens . ' ' . $limit;\r
$r = $this->con->select($sql);\r
return $this->factory($r);\r
}\r
\r
- public function sauve($data)\r
- {\r
+ public function sauve($data) {\r
global $core;\r
\r
$c = $this->con->openCursor('demandes');\r
return $this->selectById($demande_id);\r
}\r
\r
- public function setAdministrateur($demande_id, $administrateur)\r
- {\r
+ public function getMailto($demande_id) {\r
+\r
+ $demande = $this->selectById($demande_id);\r
+\r
+ $daoUtilisateur = new commonDAOClient($this->con);\r
+ $user = $daoUtilisateur->selectById($demande->utilisateur);\r
+\r
+ $res = 'mailto:';\r
+ $res .= rawurlencode($user->prenom . ' ' . $user->nom . '<' . $user->email . '>');\r
+ $res.='?subject=' . rawurlencode('Re: [Fluidbook] ' . __('Demande de devis'));\r
+ $res.='&body=' . rawurlencode(wsDemande::asMailBody($demande, $user));\r
+ return $res;\r
+ }\r
+\r
+ public function setAdministrateur($demande_id, $administrateur) {\r
$c = $this->con->openCursor('demandes');\r
$c->administrateur = $administrateur;\r
$c->update('WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');\r
}\r
\r
- public function reinitDemande($demande_id)\r
- {\r
+ public function reinitDemande($demande_id) {\r
$c = $this->con->openCursor('demandes');\r
$c->administrateur = 0;\r
$c->revendeur = 0;\r
$c->update('WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');\r
}\r
\r
- public function accepteDemande($demande_id, $revendeur)\r
- {\r
+ public function accepteDemande($demande_id, $revendeur) {\r
$c = $this->con->openCursor('demandes');\r
$c->status = 2;\r
$c->update('WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');\r
return $demande;\r
}\r
\r
- public function setRevendeur($demande_id, $revendeur)\r
- {\r
+ public function setRevendeur($demande_id, $revendeur) {\r
// Mets à jour l'entreprise\r
$c = $this->con->openCursor('demandes');\r
$c->revendeur = $revendeur;\r
return $demande;\r
}\r
\r
- public function count()\r
- {\r
+ public function count() {\r
$r = $this->con->select('SELECT COUNT(*) AS nb FROM demandes WHERE ' . $this->makeWhereFromFiltres());\r
return $r->nb;\r
}\r
\r
- public function supprime($demande_id)\r
- {\r
+ public function supprime($demande_id) {\r
$this->con->execute('DELETE FROM demandes WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');\r
}\r
\r
- protected function makeWhereFromFiltres()\r
- {\r
+ protected function makeWhereFromFiltres() {\r
global $core;\r
if (!is_null($this->filtres)) {\r
$w = array('1=1');\r
if (commonFiltre::test('demande_moi', $this->filtres)) {\r
$keys = array_keys($this->filtres['demande_moi']);\r
\r
- foreach($keys as $k) {\r
+ foreach ($keys as $k) {\r
if ($k == 'moi') {\r
$w[] = 'revendeur=' . $core->user->utilisateur_id;\r
} elseif ($k == 'autres') {\r
return '1=1';\r
}\r
}\r
+\r
}\r
\r
?>
\ No newline at end of file
protected $compiledate;\r
protected $composition_update;\r
protected $version;\r
- \r
+ protected $dir_references;\r
+ protected $dir_hosting;\r
\r
public function __get($varname) {\r
if (!property_exists($this, $varname)) {\r
throw new Exception($msg);\r
}\r
\r
- $classic = array('chapters', 'specialLinks','specialRulers', 'traductions');\r
- $assoc=array('specialLinks','specialRulers');\r
+ $classic = array('chapters', 'specialLinks', 'specialRulers', 'traductions');\r
+ $assoc = array('specialLinks', 'specialRulers');\r
\r
if (in_array($varname, $classic)) {\r
if (is_array($this->$varname) || is_object($this->$varname)) {\r
if ($this->$varname == '') {\r
$this->$varname = array();\r
} else {\r
- $this->$varname = json_decode($this->$varname,in_array($varname,$assoc));\r
+ $this->$varname = json_decode($this->$varname, in_array($varname, $assoc));\r
}\r
return $this->$varname;\r
}\r
<?php\r
+\r
class wsDemande extends cubeMetier {\r
+\r
protected $demande_id;\r
protected $type;\r
+ protected $type_nom;\r
protected $pages;\r
protected $liens;\r
protected $langues;\r
protected $details;\r
-\r
protected $date;\r
protected $status;\r
-\r
protected $revendeur;\r
protected $utilisateur;\r
protected $administrateur;\r
-\r
protected $utilisateur_nom;\r
protected $revendeur_nom;\r
protected $entreprise;\r
protected $administrateur_nom;\r
+\r
+ public static function asMailBody($demande, $utilisateur) {\r
+ $body = "\r\n---- " . __('Demande') . ' ----' . "\r\n";\r
+ $fields = array('type_nom' => __('Type'),\r
+ 'pages' => __('Pages'),\r
+ 'liens' => __('Liens'),\r
+ 'langues' => __('Langues'),\r
+ 'details' => __('Commentaires'));\r
+ foreach ($fields as $p => $t) {\r
+ if ($demande->$p != '') {\r
+ $body .= ' * ' . $t . ' : ' . $demande->$p . "\r\n";\r
+ }\r
+ }\r
+\r
+ $body .= "\r\n" . '---- ' . __('Coordonnées') . ' ----' . "\r\n";\r
+ $fields = array('email' => __('Email'),\r
+ 'prenom' => __('Prenom'),\r
+ 'nom' => __('Nom'),\r
+ 'rs' => __('Entreprise'),\r
+ 'adresse' => __('Adresse'),\r
+ 'code_postal' => __('Code postal'),\r
+ 'ville' => __('Ville'),\r
+ 'pays' => 'Pays');\r
+ foreach ($fields as $p => $t) {\r
+ if ($utilisateur->$p != '') {\r
+ $body .= ' * ' . $t . ' : ' . $utilisateur->$p . "\r\n";\r
+ }\r
+ }\r
+ return $body;\r
+ }\r
+\r
}\r
\r
?>
\ No newline at end of file
<?php\r
+\r
class wsPackagerHTML extends wsPackager {\r
+\r
protected $origHTML;\r
\r
- public function __construct($book_id)\r
- {\r
+ public function __construct($book_id) {\r
parent::__construct($book_id);\r
$this->version = 'html';\r
}\r
\r
- protected function preparePackage()\r
- {\r
+ protected function preparePackage() {\r
parent::preparePackage();\r
\r
if ($this->book->parametres->offlineExport) {\r
$versions = array('win-ins' => 'exe', 'mac-exe' => 'zip');\r
- foreach($versions as $v => $ext) {\r
+ foreach ($versions as $v => $ext) {\r
$a = wsPackager::package($this->book_id, $v);\r
rename(ROOT . $a, $this->vdir . '/data/document.' . $ext);\r
}\r
$nav = $this->makeHTMLNav(false);\r
$footer = $this->makeHTMLFooter();\r
\r
- foreach($this->pages as $page => $infos) {\r
+ foreach ($this->pages as $page => $infos) {\r
$pathToIndex = 'index.swf';\r
$pathToGetflash = 'getflash.gif';\r
$redirectScript = '';\r
}\r
$alt .= $footer;\r
\r
- $data = str_replace('$alt', $alt , $this->origHTML);\r
+ $data = str_replace('$alt', $alt, $this->origHTML);\r
$data = str_replace('$pathToIndex', $pathToIndex, $data);\r
$data = str_replace('$pathToGetflash', $pathToGetflash, $data);\r
$data = str_replace('$redirectScript', $redirectScript, $data);\r
}\r
}\r
\r
- public function makePackage()\r
- {\r
- parent::makePackage();\r
- return $this->zip();\r
+ public function makePackage($zip) {\r
+ parent::makePackage($zip);\r
+ if ($zip) {\r
+ return $this->zip();\r
+ }\r
+ return $this->vdir;\r
}\r
\r
- protected function makeHTMLNav($root)\r
- {\r
+ protected function makeHTMLNav($root) {\r
$res = '<ul id="nav">';\r
- foreach($this->pages as $page => $infos) {\r
+ foreach ($this->pages as $page => $infos) {\r
if ($page == 1) {\r
if ($root) {\r
$url = 'index.html';\r
return $res;\r
}\r
\r
- protected function escape($txt)\r
- {\r
+ protected function escape($txt) {\r
return htmlentities($txt, ENT_COMPAT, 'UTF-8');\r
}\r
\r
- protected function makeHTMLFooter()\r
- {\r
+ protected function makeHTMLFooter() {\r
$res = '<div class="footer">';\r
$res .= '<h2><a href="http://www.fluidbook.com">Fluidbook : Solution de catalogues interactifs et brochures en ligne</a></h2>';\r
$res .= '</div>';\r
return $res;\r
}\r
\r
- protected function replaceHTML($toReplace)\r
- {\r
+ protected function replaceHTML($toReplace) {\r
return $this->replaceContents($this->origHTML, $toReplace);\r
}\r
\r
- protected function mergeJavascript()\r
- {\r
+ protected function mergeJavascript() {\r
$dest = WS_COMPILE_ASSETS . '/fluidbook.js';\r
$orig = WS_COMPILE_ASSETS . '/_js/';\r
$files = array('swfobject.js' => false, 'swfaddress.js' => false, 'fluidbook.js' => true);\r
$refresh = false;\r
if (file_exists($dest)) {\r
$mtime = filemtime($dest);\r
- foreach($files as $file => $min) {\r
+ foreach ($files as $file => $min) {\r
if (filemtime($orig . $file) > $mtime) {\r
$refresh = true;\r
break;\r
}\r
\r
$minjs = "\n\n";\r
- foreach($files as $file => $min) {\r
+ foreach ($files as $file => $min) {\r
$c = file_get_contents($orig . $file);\r
if ($min) {\r
$c = JSMin::minify($c);\r
}\r
file_put_contents($dest, $minjs);\r
}\r
+\r
}\r
\r
?>
\ No newline at end of file
$this->copyOtherFiles(array('Fluidbook.app.zip'));\r
}\r
\r
- public function makePackage()\r
+ public function makePackage($zip)\r
{\r
parent::makePackage();\r
$res=$this->zip($this->vdir . 'Fluidbook.app.zip');\r
protected $book_id;\r
protected $themeRoot;\r
protected $daoBook;\r
+ protected $zip;\r
\r
- public static function package($book_id, $version) {\r
+ public static function package($book_id, $version,$zip=true) {\r
+ global $packager;\r
+ \r
cubePHP::neverStop();\r
if ($version == 'html') {\r
$packager = new wsPackagerHTML($book_id);\r
$packager = new wsPackagerMacEXE($book_id);\r
}\r
\r
- return $packager->makePackage();\r
+ return $packager->makePackage($zip);\r
}\r
\r
public function __construct($book_id) {\r
$this->initTempDir();\r
}\r
\r
- public function makePackage() {\r
+ public function makePackage($zip) {\r
$this->preparePackage();\r
}\r
\r
$this->copyOtherFiles(array('Fluidbook.exe' => $this->exeName));\r
}\r
\r
- public function makePackage() {\r
+ public function makePackage($zip) {\r
parent::makePackage();\r
$res = $this->zip();\r
$this->postPackage();\r
<?php\r
+\r
class wsPackagerWinINST extends wsPackagerWinEXE {\r
+\r
protected $nsi;\r
\r
- public function __construct($book_id)\r
- {\r
+ public function __construct($book_id) {\r
parent::__construct($book_id);\r
$this->version = 'win-ins';\r
}\r
\r
- protected function preparePackage()\r
- {\r
+ protected function preparePackage() {\r
parent::preparePackage();\r
\r
$this->copyFluidbookFiles();\r
$this->makeNSI();\r
}\r
\r
- protected function makeNSI()\r
- {\r
+ protected function makeNSI() {\r
global $core;\r
\r
$winvdir = trim($this->vdir, '/');\r
- $winvdir = str_replace('/', '\\' , $winvdir);\r
+ $winvdir = str_replace('/', '\\', $winvdir);\r
$winvdir = "\\" . $winvdir;\r
\r
$daoLang = new wsDAOLang($core->con);\r
\r
$this->nsi = $nsi;\r
}\r
- public function makePackage()\r
- {\r
+\r
+ public function makePackage($zip) {\r
$this->preparePackage();\r
- $url = 'http://installer.fluidbook.com/make.php?nsi=' . base64_encode($this->nsi) ;\r
- fb($url);\r
+ $url = 'http://installer.fluidbook.com/make.php?nsi=' . base64_encode($this->nsi);\r
\r
file_get_contents('http://installer.fluidbook.com/make.php?nsi=' . base64_encode($this->nsi) . '&junk=' . TIME);\r
return $this->getURLBase('exe');\r
}\r
\r
- public function __destruct()\r
- {\r
+ public function __destruct() {\r
+ \r
}\r
+\r
}\r
\r
?>
\ No newline at end of file