]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 7 Feb 2011 17:59:51 +0000 (17:59 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 7 Feb 2011 17:59:51 +0000 (17:59 +0000)
images/ws/macos.png [new file with mode: 0644]
inc/commons/class.common.ajax.php
inc/ws/Controlleur/_common.php
inc/ws/Controlleur/class.ws.ajax.php
inc/ws/Controlleur/class.ws.book.packager.php [new file with mode: 0644]
inc/ws/Controlleur/class.ws.url.php
inc/ws/DAO/class.ws.dao.book.php
style/ws/style.css

diff --git a/images/ws/macos.png b/images/ws/macos.png
new file mode 100644 (file)
index 0000000..a8577d7
Binary files /dev/null and b/images/ws/macos.png differ
index 5ba325ee746e7247e0095028880bb3e384bb3bee..5438da740a01165c37aa3ede78adac15877d02d9 100644 (file)
@@ -1,6 +1,6 @@
 <?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
@@ -20,8 +20,11 @@ class commonAjax {
                $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
index 898014015599f225e39ea4eb98dd9eeae70ba86c..99be5facb90f7e3dd98143eb80c8e324dbe8f076 100644 (file)
@@ -9,5 +9,6 @@ $__autoload['wsStats'] = dirname(__FILE__) . '/class.ws.stats.php';
 $__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
index 6d5d86d0535c66258bf2a2a9e234446c459614e4..3f2e25dd94dd1adfd45bcaeac85f326107b23f2e 100644 (file)
@@ -197,6 +197,39 @@ class wsAjax extends cubeAjax {
                $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
diff --git a/inc/ws/Controlleur/class.ws.book.packager.php b/inc/ws/Controlleur/class.ws.book.packager.php
new file mode 100644 (file)
index 0000000..c94960e
--- /dev/null
@@ -0,0 +1,12 @@
+<?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
index 248795827408c242d37d4a351ecff88fdee4f123..434499d13b72808987548ba286f2dc91f7341b78 100644 (file)
@@ -40,13 +40,17 @@ class wsUrl {
                $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
@@ -96,7 +100,7 @@ class wsUrl {
                        $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
@@ -114,20 +118,22 @@ class wsUrl {
                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
@@ -434,6 +440,16 @@ html{height:100%}' . "\n";
                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
index 2d5c923fa0407833e9657f46a5c2cc47dcdb2d5d..d303ba612f19679df384e0a2fd0ebbfc728fb903 100644 (file)
@@ -110,9 +110,9 @@ class wsDAOBook extends commonDAO {
        {\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
@@ -327,6 +327,14 @@ class wsDAOBook extends commonDAO {
                $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
index 50ebfd107737436472a93230bcfff390eac3f4f3..a776abb3cc84c24f84e55deca3260cced77d1bab 100644 (file)
@@ -499,3 +499,12 @@ th.stats_col{
        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