]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 20 Dec 2012 13:30:42 +0000 (13:30 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 20 Dec 2012 13:30:42 +0000 (13:30 +0000)
inc/commons/class.common.tools.php
inc/config.inc.php
inc/ws/DAO/class.ws.dao.book.php
inc/ws/Metier/class.ws.book.parametres.php
inc/ws/Util/html5/class.ws.html5.compiler.php

index ea454eea0753b313a22523f79d4de59c7561a203..a9b9bb6277cb61ff66e61218b8c7bdefad052c28 100644 (file)
@@ -184,10 +184,12 @@ class commonTools {
                $res .= commonPage::bh();
                $res.='<form action="' . SITE_PATH . 'tools/makeFavicon" method="post" class="notajax" enctype="multipart/form-data">';
                $res.='<table class="liste">';
-               $res.='<tr><th><strong>' . __('Générer un favicon') . '</strong></th></tr>';
-               $res.='<tr><td>' . __('Veuillez charger une image carrée (dimensions optimales : 256x256 px)') . '</td></tr>';
-               $res.='<tr class="odd"><td><input type="file" name="file" /></td></tr>';
-               $res.='<tr><td class="right"><a href="#" class="submit">' . $core->typo->BoutonOK(__('Générer le favicon')) . '</a></td></td>';
+               $res.='<tr><th colspan="2"><strong>' . __('Générer un favicon') . '</strong></th></tr>';
+               $res.='<tr><td>' . __('Veuillez charger une image carrée (dimensions optimales : 256x256 px)') . '</td>';
+               $res.='<td><input type="file" name="file" /></td></tr>';
+               $res.='<tr class="odd"><td>' . __('Bord arrondi') . '</td>';
+               $res.='<td><input type="number" name="round" value="0" size="5" />%</td><td>Valeur</td></tr>';
+               $res.='<tr><td class="right" colspan="2"><a href="#" class="submit">' . $core->typo->BoutonOK(__('Générer le favicon')) . '</a></td></td>';
                $res.='</table>';
                $res.='</form>';
                $res .= '</div>';
@@ -291,38 +293,69 @@ class commonTools {
                $tmp = cubeFiles::tempdir();
                mkdir($tmp, 0777, true);
 
-               $upload = $_FILES['file']['tmp_name'];
+               $upload = $tmp . '/upload.png';
+               move_uploaded_file($_FILES['file']['tmp_name'], $upload);
+
+               if (!isset($_POST['round']) || $_POST['round'] == 0) {
+                       $round = $upload;
+               } else {
+                       $dim = getimagesize($upload);
+                       $w = $dim[0];
+                       $ra = round($w * ($_POST['round'] / 100));
+                       $round = $tmp . '/round.png';
+                       $im = new cubeCommandLine('convert');
+                       $im->setPath(CONVERTER_PATH);
+                       $im->setArg(null, $upload);
+                       $c = '\( +clone  -alpha extract ';
+                       $c.='-draw \'fill black polygon 0,0 0,' . $ra . ' ' . $ra . ',0 fill white circle ' . $ra . ',' . $ra . ' ' . $ra . ',0\' ';
+                       $c.='\( +clone -flip \) -compose Multiply -composite ';
+                       $c.='\( +clone -flop \) -compose Multiply -composite ';
+                       $c.='\) -alpha off -compose CopyOpacity -composite ';
+                       $im->setManualArg($c);
+                       $im->setArg(null, $round);
+                       $im->execute();
+               }
+
+               $png2icns = new cubeCommandLine('png2icns');
+               $png2icns->setArg(null, $tmp . '/favicon.icns');
 
                $icotool = new cubeCommandLine('icotool');
                $icotool->setArg('c');
                $icotool->setArg('o', $tmp . '/favicon.ico');
 
-               $sizes = array(16, 32, 57, 64, 72, 114, 128, 144, 256);
+               $sizes = array(16, 32, 57, 64, 72, 114, 128, 144, 256, 512);
                $apple = array(144, 114, 72, 57);
-
+               $icns = array(128, 256, 512);
 
                foreach ($sizes as $s) {
                        if (in_array($s, $apple)) {
                                $r = $tmp . '/favicon-ios-' . $s . '.png';
-                       } else {
-                               $r = $tmp . '/ico-' . $s . '.png';
+                               $it = new cubeImageTools();
+                               $it->loadImage($upload);
+                               $it->resize($s, $s, 'crop', true, 'C', 'M', 'transparent');
+                               $it->output('png', $r);
                        }
+                       $r = $tmp . '/ico-' . $s . '.png';
                        $it = new cubeImageTools();
-                       $it->loadImage($upload);
+                       $it->loadImage($round);
                        $it->resize($s, $s, 'crop', true, 'C', 'M', 'transparent');
                        $it->output('png', $r);
                        if (in_array($s, $apple)) {
                                continue;
                        }
                        $icotool->setArg(null, $r);
+                       if (in_array($s, $icns)) {
+                               $png2icns->setArg(null, $r);
+                       }
                }
 
                $icotool->execute();
+               $png2icns->execute();
 
                rename($tmp . '/ico-16.png', $tmp . '/favicon.png');
 
                foreach ($sizes as $s) {
-                       if ($s == 16 || in_array($s, $apple)) {
+                       if ($s == 16) {
                                continue;
                        }
                        unlink($tmp . '/ico-' . $s . '.png');
@@ -341,6 +374,11 @@ class commonTools {
                $zip->execute();
 
                cubeHTTP::downloadFile($tmpfile, 'favicon.zip');
+
+               // Clean !
+               unlink($tmpfile);
+               unlink($round);
+               `rm -rf $tmp`;
        }
 
        public static function getDefaultLanguage() {
index e1bb52ac60882279919bde39212644ac3a4cb9f9..920c82c89538c5e1f2426a70516cfd2e0dc3c86a 100644 (file)
@@ -10,7 +10,7 @@ define('SITE_PATH', WEBROOT . '/');
 define('FONT_PATH', ROOT . '/fluidbook/fonts/');\r
 define('FTPROOT', '/home/extranet/ftp/');\r
 define('WINDOWS', false);\r
-define('CONVERTER_PATH', '/bin:/usr/bin:/usr/local/bin:/home/extranet/www/fluidbook/tools:/usr/local/flex:/usr/local/secureSWF:/usr/local/scour:/home/extranet/node_modules/uglify-js/bin');\r
+define('CONVERTER_PATH', '/bin:/usr/bin:/usr/local/bin:/home/extranet/www/fluidbook/tools:/usr/local/flex:/usr/local/secureSWF:/usr/local/scour:/home/extranet/node_modules/uglify-js/bin:/usr/local/ImageMagick/bin');\r
 define('MXMLC_PATH', '/usr/local/flex/bin/mxmlc');\r
 define('MXMLC_PATH_3', '/usr/local/flex_sdk_3.6/bin/mxmlc');\r
 define('AS3_SOURCES', '/home/as/sources/as/as3');\r
index 84956a7435af50b254f81a12d55905996ef1b33e..0594a202b8aaef2374a2d1ed798c0046769ad8a2 100644 (file)
@@ -1167,13 +1167,17 @@ class wsDAOBook extends commonDAO {
                        $countryNames = array();\r
                        $iso = l10n::getISOcodes();\r
                        $chars = '()';\r
+                       $vuFlags = array();\r
                        foreach ($langs as $l) {\r
                                list($mlang, $flag, $url) = explode(',', trim($l), 3);\r
-                               $flex->addBitmap(cubeMedia::getFlagFile($flag), 'flag_' . $flag);\r
+                               if (!isset($vuFlags[$flag])) {\r
+                                       $flex->addBitmap(cubeMedia::getFlagFile($flag), 'flag_' . $flag);\r
+                                       $vuFlags[$flag] = true;\r
+                               }\r
                                $n = cubeText::ucfirst($iso[$mlang]);\r
                                $langNames[$mlang] = $n;\r
                                $cn = cubeCountry::getCountryName($flag, $mlang);\r
-                               $countryNames[$flag] = $cn;\r
+                               $countryNames[$mlang . '_' . $flag] = $cn;\r
                                $chars.=$n . $cn;\r
                        }\r
 \r
index 57249694e0d584e1a03558717fa0cfe1fab85ab2..43d5c8a011b2bf9b597757d5a0f3bb11433462c9 100644 (file)
@@ -267,10 +267,10 @@ class wsBookParametres extends wsParametres {
                $this->fields['mobilePlugins'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Plugin'), 'grade' => 5);\r
 \r
                $this->fields['mobileVideosPath'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Chemin vers les vidéos'), 'grade' => 5);\r
-\r
+               $this->fields['mobileExtraXSpace'] = array('type' => 'integer', 'default' => '0', 'editable' => true, 'label' => __('Marge supplémentaire horizontale'), 'grade' => 3);\r
 \r
                $this->forms['mobile'] = array('label' => __('Version mobile'),\r
-                       'fieldsnames' => array('mobileLVersion', 'mobileVersion', '|', 'mobileTransitions', 'mobileTransitionDuration', '|', 'mobileIconVector', 'mobileServerConfig', 'mobilePlugins', '|', 'mobileVideosPath'));\r
+                       'fieldsnames' => array('mobileLVersion', 'mobileVersion', '|', 'mobileTransitions', 'mobileTransitionDuration', '|', 'mobileIconVector', 'mobileServerConfig', 'mobilePlugins', '|', 'mobileVideosPath', '|', 'mobileExtraXSpace'));\r
 \r
                $this->fields['phonegapId'] = array('type' => 'text', 'default' => 'com.fluidbook.phonegap.$id', 'editable' => true, 'label' => __("Identifiant de l'identifiant"), 'grade' => 5, 'hint' => __('De la forme') . ' com.fluidbook.phonegap.xxxxx');\r
                $this->fields['phonegapVersion'] = array('type' => 'text', 'default' => '1.0.0', 'editable' => true, 'label' => __("Version de l'application"), 'grade' => 5, 'hint' => __('De la forme') . ' 1.2.3');\r
index 788fb01d94760aae6597f3b932be0cab259f47a3..2d47d3174bfa5acb5841bf0d341b68bc14288d95 100644 (file)
@@ -513,11 +513,12 @@ class wsHTML5Compiler {
        }
 
        protected function writePrint() {
-               $res = '<div id="printpages">';
+               $res='';
+               /*$res .= '<div id="printpages">';
                for ($i = 1; $i <= $this->book->parametres->pages; $i++) {
                        $res.='<div class="printpage"><img src="data/background/150/t' . $i . '.jpg" alt="" /></div>';
                }
-               $res.='</div>';
+               $res.='</div>';*/
                return $res;
        }