<?php\r
class commonAjax {\r
- public static function form($action, $titre, $form, $bouton = null, $cols = 2, $class = '', $extra = '')\r
+ public static function form($action, $titre, $form, $bouton = null, $cols = 2, $class = '', $extra = '', $return = false)\r
{\r
global $core;\r
if ($class != '') {\r
$res .= $extra;\r
$res .= '</form>';\r
$res .= commonPage::bf();\r
- echo $res;\r
- exit;\r
+ if (!$return) {\r
+ echo $res;\r
+ exit;\r
+ }\r
+ return $res;\r
}\r
\r
public static function page($liste, $page)\r
$__autoload['wsServices'] = dirname(__FILE__) . '/class.ws.services.php';\r
$__autoload['wsUsersTree'] = dirname(__FILE__) . '/class.ws.users.tree.php';\r
$__autoload['wsSecureSWF'] = dirname(__FILE__) . '/class.ws.secure.swf.php';\r
+$__autoload['wsBookPackager'] = dirname(__FILE__) . '/class.ws.book.packager.php';\r
\r
?>
\ No newline at end of file
$x->addContent('listeBooks', wsUrl::listeBooks());\r
}\r
\r
+ public static function downbook($args, &$x)\r
+ {\r
+ global $core;\r
+ $book_id = $args[1];\r
+ $version = $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
+\r
+ if (isset($_POST['valide'])) {\r
+ $book = $dao->setStatus($book_id, 1);\r
+ }\r
+\r
+ if (!wsDroits::admin()) {\r
+ if ($book->status < 1) {\r
+ $popup = commonAjax::form('downbook/' . $book_id . '/' . $version,\r
+ __('Téléchargement du Fluidbook'),\r
+ wsUrl::valideDownload($book_id, $version),\r
+ __('Télécharger'),2,'','',true);\r
+\r
+ $x->addOpenPopup($popup);\r
+ return;\r
+ }\r
+ }\r
+\r
+ $packager = new wsBookPackager($book_id);\r
+ $x->addRedirection($packager->makePackage($version));\r
+ }\r
+\r
public static function changeLang($args, &$x)\r
{\r
$x->addContent('formLang', wsUrl::formLang($_POST['lang']));\r
--- /dev/null
+<?php\r
+class wsBookPackager {\r
+ public function __construct($book_id)\r
+ {\r
+ }\r
+\r
+ public function makePackage($version)\r
+ {\r
+ }\r
+}\r
+\r
+?>
\ No newline at end of file
$settings = is_null($settings)?$core->user->getSettings('books'):$settings;\r
$change = is_null($dashboard)?'Books':'Dashboard/' . $dashboard;\r
$dao = new wsDAOBook($core->con);\r
+ $context_id = is_null($dashboard)?'contextBook':'contextDashboard_' . $dashboard;\r
+\r
if (isset($settings['search']) && !is_null($settings['search'])) {\r
$dao->setSearch($settings['search']);\r
}\r
$dao->setFiltres($settings['filtres']);\r
$liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);\r
\r
- $res = '<table class="liste">';\r
+ $res = self::contextBookDownload($context_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(__(''), 'lang', $settings, 'sort' . $change) . '</th>';\r
$res .= '<td class="bouton"><a class="popupFS" rel="toolbar=yes" rev="viewer_' . $book->book_id . '" href="' . SITE_PATH . 'viewer/' . $book->book_id . '_' . $book->hash . '/">' . $btVoir . '</a></td>';\r
$res .= '<td class="bouton"><a class="popupFS" rel="toolbar=yes" rev="editor_' . $book->book_id . '" href="' . SITE_PATH . 'editor/' . $book->book_id . '">' . $btEdit . '</a></td>';\r
$res .= '<td class="bouton"><a href="' . SITE_PATH . 'stats/' . $book->book_id . '">' . $btStats . '</a></td>';\r
- $res .= '<td class="bouton"><a href="' . SITE_PATH . 'supprimebook/' . $book->book_id . '">' . $btDownload . '</a></td>';\r
+ $res .= '<td class="bouton"><a href="#" class="openContextMenu" rel="' . $context_id . '" rev="' . $book->book_id . '">' . $btDownload . '</a></td>';\r
if ($droits->creation) {\r
$res .= '<td class="bouton"><a href="#" rel="supprimeBook/' . $book->book_id . '" class="ajax" title="' . __('Êtes-vous certain de vouloir supprimer cette publication ?') . '">' . $btDel . '</a></td>';\r
}\r
return $res;\r
}\r
\r
- public static function contextBookDownload()\r
+ public static function contextBookDownload($id)\r
{\r
global $core;\r
- $res = '<div class="contextMenu" id="' . $id . '">';\r
+\r
+ $versions = array();\r
+ $versions['html'] = array('title' => __('Version online'), 'icon' => cubeMedia::silk('page_white_world.png'));\r
+ $versions['win-exe'] = array('title' => __('Version offline') . ' - ' . __('Executable Windows'), 'icon' => cubeMedia::silk('application_view_tile.png'));\r
+ $versions['win-ins'] = array('title' => __('Version offline') . ' - ' . __('Installeur Auto-executable Windows'), 'icon' => cubeMedia::silk('application_view_tile.png'));\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
+ $res = '<div class="contextMenu downbookContextMenu" id="' . $id . '">';\r
$res .= '<ul>';\r
$res .= '<li class="head">' . __("Sélectionnez une version") . '</li>';\r
- foreach($core->devis_status as $k => $v) {\r
- if ($k == 0) {\r
- continue;\r
- }\r
- $res .= '<li><a href="#" rel="changeDevisStatus/$1/' . $k . '" class="ajax">' . $v . '</a></li>';\r
- if ($k == 2) {\r
- $res .= '<li><a href="#" rel="changeDevisStatus/$1/' . $k . '/createProjet" class="ajax">' . __('Valider puis créer le projet correspondant') . '</a></li>';\r
- }\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
$res .= '</ul></div>';\r
return $res;\r
return $res;\r
}\r
\r
+ public static function valideDownload()\r
+ {\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 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 testAS($args)\r
{\r
global $core;\r
{\r
$r = $this->con->select('SELECT * FROM books_vue WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
\r
- $parametres=unserialize($r->parametres);\r
+ $parametres = unserialize($r->parametres);\r
$parametres->setParent($this);\r
- $parametres->title=$nom;\r
+ $parametres->title = $nom;\r
\r
$c = $this->con->openCursor('books');\r
$c->proprietaire = $createur;\r
$c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
}\r
\r
+ public function setStatus($book_id, $status)\r
+ {\r
+ $c = $this->con->openCursor('books');\r
+ $c->status = $status;\r
+ $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
+ return $this->selectById($book_id);\r
+ }\r
+\r
public function setChaptersFromOldFluidbook($book_id)\r
{\r
$xml = simplexml_load_file('http://ws.fluidbook.com/books/' . $book_id . '/data/links.xml');\r
float:left;\r
margin-left:0px;\r
}\r
+\r
+/* Download book contextMenu */\r
+.downbookContextMenu li{\r
+ height:auto;\r
+}\r
+\r
+.downbookContextMenu a{\r
+ text-decoration:none;\r
+}\r