From: vincent@cubedesigners.com Date: Tue, 17 May 2022 16:19:03 +0000 (+0000) Subject: wip #4211 @2 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=b5103a76930de9477a634419d9c043c7c5194d6d;p=cubeextranet.git wip #4211 @2 --- diff --git a/inc/ws/Controlleur/class.ws.maintenance.php b/inc/ws/Controlleur/class.ws.maintenance.php index 78c39b169..2abbd3cab 100644 --- a/inc/ws/Controlleur/class.ws.maintenance.php +++ b/inc/ws/Controlleur/class.ws.maintenance.php @@ -1507,7 +1507,7 @@ class wsMaintenance public static function bookParams() { $parent = new wsBook(); - $t = new wsBookParametres($parent); + $t = new wsBookParametres($parent,'export'); $t->generateV3Form(false); } @@ -1582,6 +1582,8 @@ class wsMaintenance shuffle($pages); + echo wsDocument::isFarmUser()?'farm':'not farm'."\n"; + foreach ($pages as $page) { foreach ($files as $file) { echo ($force ? '!' : '') . $page . "-" . implode(',' . $file) . "\n"; @@ -1605,7 +1607,7 @@ class wsMaintenance $count = $book->parametres->pages; $allPages = range(1, $count); - $coef=wsDocument::isFarmUser()?2:0.5; + $coef=wsDocument::isFarmUser()?2:0.25; $it = round($coef * max(4, min(12, ceil($count / 20)))); shuffle($allPages); @@ -1613,9 +1615,9 @@ class wsMaintenance $portions = array_chunk($allPages, ceil($count / $it)); foreach ($portions as $p) { - $url = 'https://workshop.fluidbook.com/maintenance/processPage/' . $book_id . '/' . implode(',', $p) . '/' . ($force ? '1' : '0'); + $url = 'https://workshop.fluidbook.com/maintenance/processPage/' . $book_id . '/' . implode(',', $p) . '/' . ($force ? '1' : '0').'?PHPSESSID=' . session_id(); echo $url . "\n"; - self::timeoutRequest($url . '?PHPSESSID=' . session_id(), 1); + self::timeoutRequest($url, 1); } } diff --git a/inc/ws/Metier/_class.ws.book.parametres.php b/inc/ws/Metier/_class.ws.book.parametres.php new file mode 100644 index 000000000..4c68b4e98 --- /dev/null +++ b/inc/ws/Metier/_class.ws.book.parametres.php @@ -0,0 +1,854 @@ + 'OpenSans', 'Montserrat' => 'Montserrat', 'Arial, Helvetica, sans-serif (police système)' => 'Arial', 'Police système sans-serif' => 'sans-serif']; + + /** + * wsBookParametres::initFields() + * + * @return + */ + protected function initFields() + { + parent::initFields(); + // if (is_null($this->parent)) { + // return; + // } + + // . + $swfFilter = ['name' => __('Animation SWF') . ' (*.swf)', 'extensions' => '*.swf']; + $multimediaFilter = ['name' => __('Archive ZIP') . ' (*.zip)', 'extensions' => '*.zip']; + $pdfFilter = ['name' => __('Document PDF') . ' (*.pdf)', 'extensions' => '*.pdf']; + + $basketFilter = ['name' => __('Liste de produits'), 'extensions' => ' (*.xml, *.xlsx)']; + $articlesFilter = ['name' => __('Liste d\'articles') . ' (*.xml)', 'extensions' => '*.xml']; + $htmlFilter = ['name' => __('Fichier HTML') . ' (*.html)', 'extensions' => '*.html']; + $imageFilter = ['name' => __('Images') . ' (*.jpg, *.png)', 'extensions' => '*.jpg;*.jpeg;*.png']; + $epsFilter = ['name' => __('Fichier vectoriel') . ' (*.ai, *.eps)', 'extensions' => '*.ai;*.eps']; + $svgFilter = ['name' => __('Fichier SVG') . ' (*.svg)', 'extensions' => '*.svg']; + $tabsFilter = ['name' => __('Fichier onglets') . ' (*.svg, *.zip)', 'extensions' => '*.svg;*.zip']; + $imageExtraFilter = ['name' => __('Images') . ' (*.svg, *.jpg, *.png, *.gif)', 'extensions' => '*.svg;*.jpg;*.png;*.gif']; + $soundFilter = ['name' => __('Fichier sonore') . ' (*.mp3, *.wav)', 'extensions' => '*.mp3;*.wav']; + $seoFilter = ['name' => __('Fichier Excel') . ' (.xlsx)', 'extensions' => '*.xlsx']; + $cssFilter = ['name' => __('Feuille de style') . ' (.css)', 'extensions' => '*.css']; + + + $target = [__("Dans la fenêtre courrante") => '_self', + __('Dans un nouvel onglet') => '_blank']; + + $branches = array('master : git (stable)' => 'stable', + 'master : local (dev)' => 'dev'); + $gitbranches = json_decode(file_get_contents(WS_CACHE . '/activebranches')); + foreach ($gitbranches as $b) { + if ($b == 'master') { + continue; + } + $branches[$b . ' : git'] = $b . '|git'; + $branches[$b . ' : local'] = $b . '|local'; + } + $extraVisibility = [ + __('Navigation horizontale') => 'horizontal', + __('Navigation burger') => 'burger', + __('Navigations horizontale et burger') => 'both']; + + $extraType = [ + __('Icône + Label') => 'icon', + __('Image') => 'image']; + + $pagesNumbers = array(__('Virtuelle') => 'virtual', + __('Physique') => 'physical'); + + $this->fields['mobileLVersion'] = array('type' => 'combo', 'default' => 'stable', 'editable' => true, + 'label' => __('Version logicielle'), 'grade' => 1, + 'datas' => $branches + ); + $this->fields['mobileVersion'] = array('type' => 'combo', 'default' => 'html5-desktop', 'editable' => true, 'label' => __('Version mobile'), 'grade' => 3, + 'datas' => array(__('Rediriger vers le PDF') => 'pdf', + __('Version HTML5 recommandée (vecteurs sur desktop)') => 'html5-desktop', + __('Version HTML5 vecteurs') => 'html5', + __("Version HTML5 en images") => 'html5-images') + ); + + // Deprecated + $this->fields['version'] = array('type' => 'combo', 'default' => '2', 'editable' => true, 'label' => __('Version'), 'datas' => array('1' => '1', '2' => '2'), 'grade' => 3); + $this->fields['email_editable'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __("Permettre au lecteur de modifier le corps de l'email")); + $this->fields['askAcknowledge'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __("Demander au destinataire un accusé de réception"), 'grade' => 3); + $this->fields['sendasfluidbook'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __("Envoyer le mail comme Fluidbook"), 'grade' => 3, 'hint' => __("L'expéditeur apparaîtra en reply-to")); + $this->fields['email_mailto'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __("Envoyer le mail via le client mail du visiteur (mailto:)"), 'grade' => 3); + $this->fields['googleplus'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Google +')); + $this->fields['viadeo'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Viadeo')); + $this->fields['customSharer'] = array('type' => 'text', 'default' => '', 'editable' => false, 'label' => __("Classe personnalisée de partage"), 'grade' => 5); + $this->fields['friendWidth'] = array('type' => 'integer', 'default' => 319, 'editable' => false, 'label' => __('Largeur du menu'), 'grade' => 5); + $this->fields['friendHeight'] = array('type' => 'integer', 'default' => 500, 'editable' => false, 'label' => __('Largeur du menu'), 'grade' => 5); + $this->fields['visualisationMode'] = array('type' => 'combo', 'default' => '3', 'editable' => false, 'label' => __("Mode de visualisation 3D"), + 'datas' => array(__('Mode 3D') => '0', + __('Mode 2D (caméra fixe et pages à plat)') => '1', + __("Laisser le choix à l'utilisateur (mode 3D par défaut)") => '2', + __("Laisser le choix à l'utilisateur (mode 2D par défaut)") => '3')); + $this->fields['antialiasReading'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __("Amélioration de la lisibilité en mode 2D")); + $this->fields['pagesBaseAngle'] = array('type' => 'integer', 'default' => 2, 'editable' => false, 'label' => __('Angle de base entre les pages'), 'grade' => 3, + 'hint' => __("0 : Publication à plat") . "\n" . __('2 : Valeur par défaut')); + $this->fields['preload'] = array('type' => 'integer', 'default' => 16, 'editable' => false, 'label' => __('Nombre de pages à précharger'), 'grade' => 3); + $this->fields['tooltipTimer'] = array('type' => 'float', 'default' => 3, "editable" => true, 'label' => __("Temps maximum d'apparition des infos-bulles (en secondes)")); + $this->fields['indexAutoScroll'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Activer le scroll automatique')); + $this->fields['printCoverWithMarks'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __("Imprimer les couvertures avec les pages marquées"), 'grade' => 3); + $this->fields['ambientSound'] = array('type' => 'freefile', 'default' => '', 'editable' => false, + 'label' => __('Ambiance sonore'), 'grade' => 3, 'fileFilter' => $soundFilter); + $this->fields['ambientSoundVolume'] = array('type' => 'integer', 'default' => 50, 'editable' => false, + 'label' => __("Volume de l'ambiance sonore"), + 'min' => 0, 'max' => 100); + $this->fields['offlineExport'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Téléchargement des versions offline'), "hint" => __('Valable si le téléchargement avancé est activé'), 'grade' => 3); + $this->fields['zoomMode'] = array('type' => 'combo', 'default' => '0', 'editable' => false, 'label' => __("Mode de zoom"), 'grade' => 3, + 'datas' => array(__('Normal') => '0', + __('Une page') => '1', + __('Zoom désactivé') => '2')); + $this->fields['displayChaptersLine'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __("Affiche une ligne entre le label et le numéro de page"), 'grade' => 5); + $this->fields['fullExternalChapters'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __("Sommaire totalement personnalisé"), 'grade' => 3, 'hint' => __('Supprime la flèche de fermeture, titre prédéfini et couleur de fond')); + $this->fields['externalChapters'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Sommaire personnalisé'), 'grade' => 3, 'fileFilter' => $swfFilter, 'hint' => __('Laisser vide pour utiliser le sommaire classique')); + $this->fields['chaptersPosition'] = array('type' => 'combo', 'default' => 'center', 'editable' => false, 'label' => __("Position du sommaire"), + 'datas' => array(__('Centré') => 'center', + __("Aligné sur l'icône") => 'chaptersIcon')); + $this->fields['permanentLinks'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Liens visibles en permanence'), 'grade' => 3); + $this->fields['linkTooltipManager'] = array('type' => 'text', 'default' => '', 'editable' => false, 'label' => __("Gestionnaire des info-bulles"), 'grade' => 5); + $this->fields['linkMultimediaPerformanceMode'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Mode perfomance pour les liens multimédia'), 'grade' => 5); + $this->fields['linkMultimediaQuality'] = array('type' => 'float', 'default' => 1.0, 'editable' => false, 'label' => __('Qualité de rendu des animations'), 'grade' => 5); + $this->fields['linkCornerSize'] = array('type' => 'integer', 'default' => 10, 'editable' => false, 'label' => __('Taille des liens de coins de page'), 'hint' => __("Pourcentage de la largeur de la page")); + $this->fields['videoReset'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Réinitialiser les vidéos après la lecture'), 'grade' => 3); + $this->fields['videoBigPlay'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __('Afficher le gros bouton Play'), 'grade' => 3); + $this->fields['alwaysHTML5'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __('Toujours utiliser la version HTML5'), 'grade' => 1); + $this->fields['html5priority'] = array('type' => 'combo', 'default' => 'true', 'editable' => false, 'label' => __("Rediriger vers la version HTML5"), 'grade' => 1, + 'datas' => array(__('Si l\'utilisateur a un appareil tactile') => 'false', + __('Si flash n\'est pas installé') => 'notinstalled', + __("Si flash n'est pas pas installé ou bloqué") => 'true')); + $this->fields['flashBlockedWait'] = array('type' => 'float', 'default' => 1.5, 'editable' => false, 'label' => __("Temps d'attente avant de considérer flash comme bloqué")); + $this->fields['widget'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Générer le widget'), 'grade' => 3); + $this->fields['widgetCover'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __('Afficher la couverture') . ')', 'grade' => 3); + $this->fields['widgetSize'] = array('type' => 'integer', 'default' => 200, 'editable' => false, 'label' => __('Optimiser pour une hauteur de (en pixels)'), 'grade' => 3); + $this->fields['widgetQuality'] = array('type' => 'integer', 'default' => 85, 'min' => 0, 'max' => 100, 'editable' => false, 'label' => __('Qualité JPEG'), 'grade' => 3); + $this->fields['widgetStart'] = array('type' => 'integer', 'default' => 1, 'editable' => false, 'label' => __('Page de début'), 'grade' => 3); + $this->fields['widgetEnd'] = array('type' => 'integer', 'default' => 8, 'editable' => false, 'label' => __('Page de fin'), 'grade' => 3); +// $this->forms['widget'] = array('label' => __('Widget') . ' (' . __('Mini Fluidbook') . ')', +// 'fieldsnames' => array('widget', 'widgetCover', 'widgetSize', 'widgetQuality', 'widgetStart', 'widgetEnd')); + $this->fields['extras'] = array('type' => 'textarea', 'default' => '', 'editable' => false, 'label' => __('Extras'), 'grade' => 3); + $this->fields['v1SWF'] = array('type' => 'freefile', 'default' => '', 'editable' => false, + 'label' => __('Index.swf spécifique'), 'grade' => 5, 'fileFilter' => $swfFilter); +// $this->forms['v1'] = array('label' => __('Options spécifiques au fluidbook version 1'), +// 'fieldsnames' => array('extras', 'v1SWF')); + $this->fields['ongletsXML'] = array('type' => 'textarea', 'default' => '', 'editable' => false, 'label' => __('XML de configuration des onglets'), 'grade' => 5); + $this->fields['ongletsSWF'] = array('type' => 'freefile', 'default' => '', 'editable' => false, + 'label' => __('SWF pour onglets personnalisés'), 'grade' => 3, 'fileFilter' => $swfFilter); + $this->fields['tabs2DSWF'] = array('type' => 'freefile', 'default' => '', 'editable' => false, + 'label' => __('SWF pour onglets 2D'), 'grade' => 3, 'fileFilter' => $swfFilter); + $this->fields['flatTabsAbsolute'] = array('type' => 'boolean', 'default' => false, "editable" => true, + 'label' => __("Positionnement relatif à l'interface"), 'grade' => 5); +// $this->forms['flashtabs'] = array('label' => __('Onglets Flash'), +// 'fieldsnames' => array('ongletsSWF', 'ongletsXML', '|', 'tabs2DSWF', 'flatTabsAbsolute')); + $this->fields['viewMode'] = array('type' => 'combo', 'default' => '0', 'editable' => false, 'label' => __("Mode de visualisation (beta)"), + 'datas' => array(__('Classique') => '0', + __("Diaporama") => '1', + ), + 'grade' => 5); + $this->fields['mobileServerConfig'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Inclure les fichiers de configuration serveur'), 'grade' => 3); + $this->fields['mobileIconVector'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __('Utiliser les icônes vectorielles')); +// $this->forms['mobile'] = array('label' => __('Version HTML5'), +// 'fieldsnames' => array('alwaysHTML5', 'html5priority', 'flashBlockedWait', 'mobileIconVector', 'mobileServerConfig')); + $this->fields['externalArchivesBack'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Image de fond'), 'grade' => 3, 'fileFilter' => $imageFilter); + $this->fields['archivesLink'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Lien'), 'grade' => 5); + $this->fields['printMode'] = array('type' => 'combo', 'default' => 'vector', 'editable' => true, 'label' => __("Mode d'impression"), + 'datas' => array(__('Bitmap') => 'bitmap', + __('Vectoriel') => 'vector', + __('PDF') => 'pdf')); + /** **/ + + + $this->fields['title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de la publication"), 'embed' => false); + $this->fields['url_link'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __("URL du lien de retour au site")); + $this->fields['signature'] = array('type' => 'combo', 'default' => '1', 'editable' => true, 'label' => __('Signature'), 'grade' => 3, 'datas' => wsDroits::getSignatures()); + $this->forms['important'] = array('label' => __('Description de la publication'), + 'fieldsnames' => array('mobileLVersion', 'mobileVersion', 'title', 'url_link', 'signature')); + // . + // . + + $this->fields['assetsDir'] = ['type' => 'text', 'label' => __('Utiliser le dossier d\'assets du fluidbook'), 'default' => '', 'editable' => true, 'grade' => 5]; + $this->fields['linksAssets'] = ['type' => 'freefile', 'label' => __('Charger ou remplacer des fichiers de liens'), 'default' => '', 'editable' => true, 'grade' => 3, 'multiple' => true]; + + $this->forms['assets'] = [ + 'label' => __('Assets'), + 'fieldsnames' => ['assetsDir', 'linksAssets'] + ]; + /** * */ + $this->fields['stats'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer les statistiques Fluidbook'), 'grade' => 3); + $this->fields['googleAnalytics'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Code Google Analytics'), 'size' => 10); + $this->fields['googleTagManager'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Code Google Tag Manager'), 'size' => 10); + $this->forms['basicStats'] = [ + 'label' => __('Statistiques'), + 'fieldsnames' => ['stats', 'googleAnalytics', 'googleTagManager'], + ]; + + $this->fields['email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'email") . ' "' . __('Envoyer à un ami') . '"', 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Corps de l'email") . ' "' . __('Envoyer à un ami') . '"', 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); + + $this->fields['facebook_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre du contenu partagé"), 'hint' => __('Titre proposé sur les fonction de partage (par défaut, titre de la publication)')); + $this->fields['facebook_description'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Description du contenu partagé"), 'grade' => 1, 'hint' => __('Description proposée sur les fonctions de partage (par défaut, vide)')); + $this->fields['twitter_description'] = array('type' => 'textarea', 'default' => '%title% : %short%', 'editable' => true, 'label' => __("Contenu Partage court"), 'hint' => __('Contenu du partagé sur les partages courts')); + $this->fields['facebook_image'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Miniature affichée'), 'fileFilter' => $imageFilter); + + $this->fields['share'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer les fonctions de partage')); + $this->fields['friend'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('E-mail')); + $this->fields['facebook'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Facebook')); + $this->fields['twitter'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Twitter')); + $this->fields['whatsapp'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('WhatsApp')); + $this->fields['linkedin'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('LinkedIn')); + $this->fields['pinterest'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Pinterest')); + + $this->forms['share'] = array('label' => __('Fonctions de partage'), + 'fieldsnames' => array('share', '|', 'email_title', 'email_body', 'email_editable', 'askAcknowledge', 'sendasfluidbook', 'email_mailto', '|', + 'facebook_title', 'facebook_description', 'facebook_image', 'twitter_description', '|', + 'friend', 'facebook', 'twitter', 'whatsapp', 'linkedin', 'pinterest', '|', 'googleplus', 'viadeo', '|', 'customSharer', '|', 'friendWidth', 'friendHeight')); +//. + $this->fields['seoVersion'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Générer une version pour les moteurs de recherche')); + $this->fields['seoRobots'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Autoriser le parcours par les moteurs de recherche')); + $this->fields['seoDescription'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Meta tag Description')); + $this->fields['seoKeywords'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Meta tag Keywords')); + $this->fields['seoAdvanced'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Données SEO par page'), 'grade' => 5, 'fileFilter' => $seoFilter]; + $this->fields['seoBaseURL'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('URL de base'), 'grade' => 5); + + $this->forms['seo'] = array('label' => __('Optimisation pour les moteurs de recherche'), + 'fieldsnames' => array('seoVersion', 'seoRobots', 'seoDescription', "seoKeywords", '|', 'seoBaseURL', 'seoAdvanced')); + + // . + $this->fields['pages'] = array('type' => 'integer', 'default' => 0, 'editable' => false, 'label' => __('Nombre de pages')); + $this->fields['width'] = array('type' => 'float', 'default' => 0, 'editable' => false, 'label' => __('Largeur')); + $this->fields['height'] = array('type' => 'float', 'default' => 0, 'editable' => false, 'label' => __('Hauteur')); + // . + + $this->fields['mobileTransitions'] = array('type' => 'combo', 'default' => 'flip3d', 'editable' => true, 'label' => __('Transitions entre les pages'), 'grade' => 3, + 'datas' => array(__('Aucune transition') => 'none', + __('Opacité') => 'fade', + __('Glisser') => 'slide', + __('Tourner (rigide)') => 'flip', + __('Tourner (souple)') => 'flip3d') + ); + $this->fields['mobileTransitionDuration'] = array('type' => 'float', 'default' => 0.5, 'editable' => true, 'label' => __('Durée de la transition')); + $this->fields['mobileTransitionDurationSlide'] = array('type' => 'float', 'default' => 0, 'editable' => true, 'label' => __('Durée de la transition (fade, slide)'), 'hint' => __('Laisser à zéro pour utiliser la valeur générale')); + $this->fields['mobileNavigationType'] = array('type' => 'combo', 'default' => 'book', 'editable' => true, 'label' => __('Mode de navigation'), 'grade' => 5, + 'datas' => array(__('Normal (automatique)') => 'book', + __('Normal (double page)') => 'landscape', + __('Normal (une page)') => 'portrait', + __('Mobile first') => 'mobilefirst', + __('Magazine tablette') => 'tab') + ); + $this->fields['forceWhiteBackground'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Ajouter un fond blanc aux pages')]; + $this->fields['rasterizePages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Ecraser les pages'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1); + + $this->fields['vectorPages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Conserver les pages en vecteur'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1); + $this->fields['extraXSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Marge supplémentaire horizontale'), 'grade' => 3); + $this->fields['mobileExtraXSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Marge supplémentaire horizontale'), 'grade' => 3); + $this->fields['extraYSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Marge supplémentaire verticale'), 'grade' => 3); + $this->fields['centerBook'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Centrer la publication sur les couvertures'), 'grade' => 2); + $this->fields['correctCenter'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Corriger les lignes blanches entre les pages'), 'grade' => 2); + $this->fields['maxResolution'] = array('type' => 'combo', 'default' => 300, 'editable' => true, 'datas' => array('300dpi' => 300, '150dpi' => 150, '125dpi' => 125, '100dpi' => 100), 'grade' => 2, 'label' => __('Résolution maximale des pages')); + $this->fields['JPEGQuality'] = array('type' => 'integer', 'default' => 85, 'editable' => true, 'grade' => 2, 'label' => __('Qualité JPEG')); + $this->fields['imageFormat'] = array('type' => 'combo', 'default' => 'jpg', 'editable' => true, 'datas' => array(/*__('Le plus léger') => 'best', */ + 'JPEG' => 'jpg', 'PNG' => 'png'), 'grade' => 2, 'label' => __('Format des images')); + $this->fields['svgToCanvas'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le rendu svgtocanvas')]; + $this->fields['svgToCanvasUpscale'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Upscale de la fonction svgtocanvas')]; + $this->fields['svgTextMethod'] = ['type' => 'combo', 'default' => 'pdftocairo', 'editable' => true, 'label' => __('Méthode d\'extraction des textes en SVG'), 'datas' => [__('Cairo') => 'pdf', __('Mu') => 'mu']]; + $this->fields['textsThickness'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Epaisseur des textes')]; + $this->fields['textsThicknessPages'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Appliquer l\'épaisseur des texte sur les pages')]; + $this->fields['dynamicBackgroundColor'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => 'Couleur de fond dynamique', 'grade' => 3]; + + + $this->forms['3d_mode'] = array('label' => __('Options de visualisation'), + 'fieldsnames' => array('mobileNavigationType', '|', 'mobileTransitions', 'mobileTransitionDuration', 'mobileTransitionDurationSlide', '|', 'forceWhiteBackground', 'rasterizePages', 'vectorPages', 'visualisationMode', 'antialiasReading', 'correctCenter', 'pagesBaseAngle', 'centerBook', '|', 'extraXSpace', 'mobileExtraXSpace', 'extraYSpace', '|', 'viewMode', '|', 'dynamicBackgroundColor', '|', 'svgToCanvas', 'svgToCanvasUpscale', 'svgTextMethod', 'textsThickness', 'textsThicknessPages', '|', 'imageFormat', 'maxResolution', 'JPEGQuality')); + + $this->fields['rasterizeOnSafari'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Ecraser les pages pour Safari (Mac OS)'), 'grade' => 1); + $this->fields['performance3DMode'] = array('type' => 'combo', 'datas' => [__('Tester la machine') => 'auto', + __('Haute') => 'highPerf', + __('Moyenne') => 'lowPerf', + __('Basse') => 'veryLowPerf'], 'default' => 'auto', 'editable' => true, 'label' => __('Performance de la 3D'), 'grade' => 1); + $this->forms['performances'] = ['label' => __('Performances'), + 'fieldsnames' => ['rasterizeOnSafari', 'performance3DMode']]; + + $this->fields['maxPages'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __("Nombre de pages maximal affiché à l'ouverture du fluidbook (pas de limite = 0)"), 'grade' => 3); + + $this->fields['mobilePlugins'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Plugin'), 'grade' => 5); + $this->forms['general'] = array('label' => __('Fonctionnalités générales'), + 'fieldsnames' => array('tooltipTimer', 'mobilePlugins', 'preload', 'maxPages', 'pages', 'width', 'height')); + //. + // + $this->fields['navOrder'] = array('type' => 'textarea', 'default' => 'index, chapters, search, print, friend, bookmark, pdf, notes, archives, basket, fullscreen, sound, 3d, extra, extra1, extra2, extra3, extra4, extra5, help, lang', 'editable' => true, 'label' => __('Ordre des icônes dans la nav'), 'grade' => 3); + $this->fields['navOrderH'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Ordre des icônes dans la nav') . ' (' . __('Si différente') . ')', 'grade' => 3); + $this->fields['menuBreakpoint'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Breakpoint burger menu'), 'hint' => 'Par défaut 1023px', 'grade' => 3); + $this->fields['mobileNavScale'] = array('type' => 'integer', 'default' => 100, 'editable' => true, 'label' => __('Taille du menu (en %)'), 'grade' => 3); + $this->forms['menu'] = array('label' => __('Menu'), 'fieldsnames' => ['navOrder', 'navOrderH', '|', 'mobileNavScale', 'menuBreakpoint', '|', 'afterSearchDisplayForHTML', '|']); + + $this->fields['afterSearchDisplayForHTML'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher l\'image après le moteur de recherche sur la version HTML5'), 'grade' => 1); + $extraNum = 5; + for ($i = 0; $i <= $extraNum; $i++) { + if ($i > 0) { + $j = $i; + $this->fields['navExtraIcon' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Icône supplémentaire') . ' ' . $j, 'fileFilter' => $imageExtraFilter); + $this->fields['navExtraType' . $j] = array('type' => 'combo', 'datas' => $extraType, 'default' => 'icon', 'editable' => true, 'label' => __('Type')); + $this->fields['navExtraLink' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("URL") . ' ' . $j); + $this->fields['navExtraVisibility' . $j] = array('type' => 'combo', 'datas' => $extraVisibility, 'default' => 'both', 'editable' => true, 'label' => __("Visible") . ' ' . $j); + $this->forms['menu']['fieldsnames'] = array_merge($this->forms['menu']['fieldsnames'], ['navExtraIcon' . $j, 'navExtraType' . $j, 'navExtraLink' . $j, 'navExtraVisibility' . $j, '|']); + } else { + $j = ''; + $this->fields['navExtraImage' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Image pour navigation'), 'fileFilter' => $imageExtraFilter); + $this->fields['navExtraImageMobile' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Image pour mobile'), 'fileFilter' => $imageExtraFilter); + $this->fields['navExtraLink' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("URL")); + $this->fields['navExtraTooltip' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Infobulle ou label")); + $this->forms['menu']['fieldsnames'] = array_merge($this->forms['menu']['fieldsnames'], ['navExtraImage' . $j, 'navExtraImageMobile' . $j, 'navExtraLink' . $j, 'navExtraTooltip' . $j, '|']); + } + } + $this->fields['mobileBottomNav'] = ['type' => 'text', 'default' => '', 'editable' => 'true', 'label' => __('Barre de boutons en bas'), 'hint' => __('Identifiants des boutons séparés par des virgules')]; + $this->forms['menu']['fieldsnames'][] = 'mobileBottomNav'; + + $this->fields['landingPage'] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Landing Page content'), 'grade' => 3); + $this->forms['landing'] = array('label' => __('Custom Landing Page'), 'fieldsnames' => array('landingPage')); + + $this->fields['fullscreen'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le mode plein-écran')); + $this->fields['fullscreenAuto'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Lancer la publication en mode plein écran (lorsque possible)')); + $this->forms['fs'] = array('label' => __('Plein écran'), + 'fieldsnames' => array('fullscreen', 'fullscreenAuto')); + + $this->fields['bookmark'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer les marques-pages')); + $this->fields['bookmarkView'] = array('type' => 'combo', 'datas' => [__('Réduit') => 'small', __('Complet') => 'large'], 'default' => 'small', 'editable' => true, 'label' => __('Menu des marques-pages')); + $this->fields['bookmarkEmpty'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Bouton pour effacer les marques-pages")); + $this->fields['bookmarkFunctionsMainMenu'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Fonctions vers menus généraux'), 'hint' => __('Les fonctions des marques pages (Télécharger, Imprimer, Envoyer) dirigent vers les menus généraux')); + $this->fields['bookmarkDisablePages'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Désactiver les marques-pages sur ces pages'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1]; + $this->fields['bookmarkSendEnable'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer l'envoi des marques-pages par e-mail")); + $this->fields['bookmarkPrint'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Activer l'impression des marques-pages")); + $this->fields['bookmark_email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'email") . ' "' . __('Envoyer à un ami') . '"', 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['bookmark_email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Corps de l'email") . ' "' . __('Envoyer à un ami') . '"', 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['bookmarkCornerSize'] = array('type' => 'integer', 'default' => 8, 'editable' => true, 'label' => __("Taille des marques-pages"), 'hint' => __('Taille relative à la largeur de la page')); + $this->fields['bookmarkOffset'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __("Décaler de x pixels vers l'intérieur")); + $this->fields['bookmarkBlinkOnPageChange'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Faire clignoter le marque page à l\'apparition de la page')); + $this->fields['bookmarkPermanentIcon'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Afficher l\'icône en permanance')]; + $this->fields['bookmarkUsePDF'] = array('type' => 'combo', 'default' => 'pages', 'editable' => true, 'label' => __('PDF à utiliser pour l\'envoi ou le téléchargement de pages marquées'), + 'datas' => [__('PDF des pages') => 'pages', + __('PDF de remplacement') => 'download', + __('PDF des miniatures') => 'thumbnails']); + $this->forms['bookmark'] = array('label' => __('Marques-pages'), + 'fieldsnames' => array('bookmark', 'bookmarkView', 'bookmarkFunctionsMainMenu', 'bookmarkEmpty', '|', 'bookmarkSendEnable', 'bookmark_email_title', 'bookmark_email_body', '|', 'bookmarkPrint', '|', 'bookmarkCornerSize', 'bookmarkOffset', 'bookmarkPermanentIcon', 'bookmarkBlinkOnPageChange', '|', 'bookmarkDisablePages', 'bookmarkUsePDF')); + + $this->fields['help'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer l'aide")); + $this->fields['helpBookmarks'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Améliorer l'aide des marques-pages")); + $this->fields['helpStartup'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Afficher l'aide au démarrage")); + $this->fields['helpStartupTime'] = array('type' => 'integer', 'default' => 15, 'editable' => true, 'label' => __("Temps d'affichage en secondes")); + $this->fields['helpArrowTooltip'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Bulle affichée au niveau de la flèche de droite'), 'grade' => 5); + $this->fields['landscapeWarning'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Avertissement affiché sur mobile au chargement de la publication'), 'grade' => 5, 'embed' => false]; + $this->forms['help'] = array('label' => __('Aide'), + 'fieldsnames' => array('help', '|', 'helpStartup', 'helpStartupTime', '|', 'helpBookmarks', '|', 'helpArrowTooltip', '|', 'landscapeWarning')); + // . + // + $this->fields['pdfThumbnails'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('PDF utilisé pour générer les miniatures'), 'grade' => 1, 'fileFilter' => $pdfFilter); + $this->fields['indexMessage'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Message en haut"), 'grade' => 1, 'hint' => __('Message en haut de la vue index')); + + $this->forms['index'] = array('label' => __('Vue d\'index (vignettes)'), 'fieldsnames' => array('indexAutoScroll', 'pdfThumbnails', 'indexMessage')); + + // . + // + $this->fields['print'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer l'impression")); + $this->fields['printFullBrochure'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Autoriser l'impression de la brochure complète")); + $this->fields['printPageRange'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Activer l'option pour imprimer une plage de pages")); + + $this->forms['print'] = array('label' => __('Impression'), + 'fieldsnames' => array('print', 'printFullBrochure', 'printPageRange')); + + + $this->fields['search'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le moteur de recherche')); + $this->fields['searchFullBurger'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Afficher le burger menu complet à l\'ouverture de la recheche')); + $this->fields['highlightResults'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Surligner les résultats')); + $this->fields['highlightAllOccurences'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Surligner toutes les occurences'), 'hint' => __('Même sur les pages non considérées comme un résultat')); + $this->fields['ignoreSearch'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Mots à ignorer'), + 'hint' => __('Liste des mots à ignorer séparés par des virgules'), 'grade' => 5); + $this->fields['ignoreSearchSeparators'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Caractères à ne pas considérer comme un séparateur de mot')); + $this->fields['ignoreWordLimit'] = ['type' => 'integer', 'default' => 3, 'editable' => true, 'label' => __('Ignorer les mots de moins de X caractères')]; + $this->fields['textExtraction'] = array('type' => 'combo', 'default' => 'pdfbox', 'editable' => true, 'label' => __("Méthode d'extraction des textes"), + 'datas' => array(__('PDFBox') => 'pdfbox', + __('Poppler') => 'poppler', + __('Fluidbook (expérimentation basée sur PDFBox)') => 'fluidbook')); + $this->fields['searchShowNoResultsPages'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Afficher les pages sans résultats")); + $this->fields['searchPageSelectionAlgorithm'] = array('type' => 'combo', 'editable' => true, 'default' => 'AND', + 'datas' => [__('les double-pages qui contiennent tous les mots recherchés (ET logique)') => 'AND', __('les double-page qui contiennent un des mots recherché (OU logique)') => 'OR'], 'label' => __('Algorithme de sélection des résultats')); + $this->fields['searchWordSelectionAlgorithm'] = array('type' => 'combo', 'editable' => true, 'default' => 'begins', + 'datas' => [__('mot commençant par la requête') => 'begins', __('mot correspondant exactement à la requête') => 'exact', __('mot contenant la requête') => 'contains', __('expression exacte') => 'expression'], + 'label' => __('Algorithme de sélection des occurences')); + + $this->forms['search'] = array('label' => __('Moteur de recherche'), + 'fieldsnames' => array('search', '|', 'searchFullBurger', '|', 'ignoreWordLimit', 'ignoreSearch', 'ignoreSearchSeparators', + '|', 'searchWordSelectionAlgorithm', 'searchPageSelectionAlgorithm', + '|', 'highlightResults', 'highlightAllOccurences', + '|', 'searchShowNoResultsPages', + '|', 'textExtraction')); + + $this->fields['soundTheme'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => __("Thème sonore"), + 'datas' => array(__('Pas de son') => '', + __('Classique') => 'classic', + __("Papier épais") => 'heavy', + __("Papier fin") => 'light', + __("Silencieux") => 'silent', + __('Woosh') => 'woosh')); + $this->fields['soundOn'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer les effets sonores à l'ouverture")); + $this->forms['sound'] = array('label' => __('Effets sonores'), + 'fieldsnames' => array('soundTheme', 'soundOn', '|', 'ambientSound', 'ambientSoundVolume')); + // . + $this->fields['pdf'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer les fonctions de téléchargement")); + $this->fields['pdfName'] = array('type' => 'text', 'default' => 'document.pdf', 'editable' => true, 'label' => __("Nom du fichier PDF")); + $this->fields['pdfComplex'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Téchargement de PDF avancé'), "hint" => __("Permet à l'utilisateur de sélectionner les pages qu'il souhaite télécharger"), 'grade' => 3); + $this->fields['pdfComplexShowCurrent'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher les pages courrantes'), 'grade' => 3); + $this->fields['pdfCompress'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Compression du fichier PDF')); + $this->fields['pdfReplace'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('PDF de remplacement'), 'grade' => 3, 'fileFilter' => $pdfFilter); + $this->forms['downloadpdf'] = array('label' => __('Fonction de téléchargement'), + 'fieldsnames' => array('pdf', 'pdfName', 'pdfReplace', 'pdfCompress', '|', 'pdfComplex', 'pdfComplexShowCurrent')); + // . + + $this->fields['zoom'] = array('type' => 'integer', 'default' => 200, 'editable' => true, 'label' => __('Zoom par défaut (atteint au clic)')); + $this->fields['zoomw'] = array('type' => 'integer', 'default' => 300, 'editable' => true, 'label' => __("Zoom maximal (atteint à l'aide de la molette)")); + $this->fields['hideHeaderOnZoom'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher le menu lors du zoom')]; + $this->fields['zoomMouseMoveMode'] = ['type' => 'combo', 'default' => 'move', 'editable' => true, 'label' => __('Mode de déplacement des pages zoomées (souris)'), + 'datas' => [__('Bouger la souris') => 'move', __('Drag & drop') => __('dragndrop')]]; + $this->fields['zoomWheel'] = ['type' => 'combo', 'default' => 'wheel', 'editable' => true, 'label' => __('Zoom molette'), 'datas' => [ + __('Désactivé') => 'disabled', + __('Molette') => 'wheel', + __('Ctrl+Molette') => 'ctrlwheel', + ]]; + $this->fields['zoomClick'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cliquer sur les pages pour zoomer')]; + $this->forms['zoom'] = array('label' => __('Zoom'), + 'fieldsnames' => array('zoomClick', 'zoomWheel', '|', 'zoom', 'zoomw', '|', 'zoomMouseMoveMode', 'hideHeaderOnZoom')); + // . + + $this->fields['sliderImage'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Image pour le slider'), 'grade' => 3, 'fileFilter' => $imageExtraFilter); + + $this->forms['slider'] = ['label' => __('Slider'), + 'fieldsnames' => ['sliderImage'], + ]; + + $this->fields['stats_score'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher les scores dans les rapports'), 'grade' => 5); + $this->fields['stats_exclude_ip'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Exclure les IP suivantes des statistiques'), 'grade' => 3, 'hint' => sprintf(__('Indiquer une adresse ip de la forme %s par ligne'), 'www.xxx.yyy.zzz')); + $this->fields['relay_url_params'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Relayer les paramètres d\'url dans les liens sortants'), 'grade' => 3]; + $this->fields['gtag_additional_code'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code additionnel Google Tag Manager')); + $this->fields['googleAnalyticsCustom'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code Stats personnalisé (placé avant fermeture de head)')); + $this->fields['statsCustom'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code Stats personnalisé (placé avant fermeture du body)')); + $this->fields['xiti'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code XiTi global')); + $this->fields['xiti_page'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Modèle code xiti (pour tags relatifs aux pages)')); + $this->fields['tagcommander_id'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => 'Tag commander ID', 'grade' => 3]; + $this->fields['tagcommander_scriptname'] = ['type' => 'text', 'default' => 'tc_Multisite_Head.js,tc_Multisite_Analytics.js,tc_Multisite_Medias.js', 'editable' => true, 'label' => 'Nom du script Tagcommander', 'grade' => 3]; + $this->fields['tagcommander_prod'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => 'Production', 'grade' => 3]; + $this->fields['tagcommander_plan'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => 'Plan de taggage "Tag commander"', 'grade' => 3]; + $this->fields['tagcommander_default_vars'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => 'Variables par défaut', 'grade' => 3]; + $this->fields['anchorsAliases'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Alias des ancres')]; + $this->forms['stats'] = array('label' => __('Statistiques avancées'), + 'fieldsnames' => array('tagcommander_id', 'tagcommander_scriptname', 'tagcommander_prod', 'tagcommander_plan', 'tagcommander_default_vars', 'anchorsAliases', '|', 'stats_score', 'stats_exclude_ip', '|', 'relay_url_params', '|', 'gtag_additional_code', '|', 'googleAnalyticsCustom', 'statsCustom', '|', 'xiti', 'xiti_page')); + + $this->fields['displayChaptersPopup'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Always display chapters in a popup'), 'grade' => 1); + $this->fields['displayChaptersIcon'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Affiche l'icône du sommaire"), 'grade' => 1); + $this->fields['chaptersCaptionDisplay'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher le titre "Sommaire" dans la popup'), 'grade' => 3]; + $this->fields['chaptersFontSize'] = ['type' => 'integer', 'default' => 100, 'min' => 50, 'max' => 120, 'editable' => true, 'label' => __('Taille du texte des élements du sommaire'), 'hint' => 'En % par rapport à la taille normale', 'grade' => 3]; + $this->fields['chaptersPage'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Faire pointer le sommaire sur la page'), 'grade' => 3, 'hint' => __('Laisser vide pour utiliser le sommaire classique'), 'size' => 5); + $this->fields['displayChaptersAtStart'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Afficher le sommaire au chargement de la publication"), 'grade' => 3); + $this->fields['chaptersColumns'] = array('type' => 'integer', 'default' => 1, 'editable' => true, 'label' => __('Afficher le sommaire sur x colonne(s)'), 'grade' => 3); + $this->fields['chaptersColMaxWidth'] = array('type' => 'integer', 'default' => 300, 'editable' => true, 'label' => __("Largeur max d'une colonne"), 'grade' => 3); + $this->fields['chaptersLevelLimit'] = array('type' => 'integer', 'default' => 5, 'editable' => true, 'label' => __('Limiter à x niveaux')); + $this->fields['chaptersIndent'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Indenter les éléments (pour les sommaires à plat)')]; + + $this->fields['externalChaptersHTML'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Sommaire personnalisé'), 'grade' => 3, 'fileFilter' => $multimediaFilter, 'hint' => __('Laisser vide pour utiliser le sommaire classique')); + $this->fields['mobileChaptersStyle'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => __('Style des chapitres') + , 'datas' => array(__('Classique') => 'classic', + __('INA') => 'ina')); + $this->fields['chaptersPagesNumber'] = array('type' => 'combo', 'default' => 'virtual', 'editable' => true, 'label' => __('Numérotation du sommaire'), 'datas' => $pagesNumbers); + $this->fields['chaptersCascade'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Sommaire en cascade"), 'grade' => 3); + + $this->forms['sommaire'] = array('label' => __('Sommaire'), + 'fieldsnames' => array('chaptersCaptionDisplay', 'chaptersFontSize', '|', 'displayChaptersIcon', 'displayChaptersPopup', 'displayChaptersAtStart', 'chaptersPage', 'chaptersPosition', 'chaptersLevelLimit', 'chaptersCascade', 'chaptersPagesNumber', '|', 'chaptersColMaxWidth', 'chaptersColumns', 'displayChaptersLine', 'chaptersIndent', '|', 'externalChaptersHTML', '|', 'mobileChaptersStyle')); + // . + $this->fields['tabsHTML5'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Fichier d\'onglets') . ' (SVG, ZIP)', 'grade' => 3, 'hint' => __('Charger un zip rendra les options ci-dessous inopérantes'), 'fileFilter' => $tabsFilter); + $this->fields['tabsSide'] = ['type' => 'combo', 'label' => __('Position des onglets'), 'editable' => true, 'default' => 'right', 'grade' => 5, + 'datas' => [ + __('Gauche') => 'left', + __('Droite') => 'right', + ] + ]; + $this->fields['tabsPriority'] = ['type' => 'integer', 'min' => 0, 'max' => 100, 'default' => 15, 'editable' => true, 'label' => 'Priorité des onglets sur les contenus (%)', 'hint' => 'La valeur indique la réduction permise de la taille de la publication.']; + $this->fields['tabsPages'] = ['type' => 'text', 'label' => __('Pages des onglets'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => __('Numéros de pages séparas par une virgule')]; + $this->fields['tabsSections'] = ['type' => 'text', 'label' => __('Sections des onglets'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => __('Numéros de pages séparés par une virgule')]; + $this->fields['tabsPagesNumbers'] = ['type' => 'combo', 'label' => __('Numérotation utilisée'), 'editable' => true, 'default' => 'virtual', 'grade' => 5, 'datas' => $pagesNumbers]; + $this->fields['tabsHideOnPages'] = ['type' => 'text', 'label' => __('Cacher les onglets sur les pages'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => '1-3,5 = 1,2,3,5']; + $this->fields['tabsDisabledOnPages'] = ['type' => 'text', 'label' => __('Onglets inactifs sur les pages'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => '1-3,5 = 1,2,3,5']; + $this->fields['tabsHideOnCover'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Cacher les onglets sur la couverture'), 'grade' => 5]; + $this->fields['tabsHideOnLastPage'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher les onglets sur la dernière page'), 'grade' => 5]; + $this->fields['tabsHideOnPortrait'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher les onglets lorsque le fluidbook est en mode portrait'), 'grade' => 5]; + $this->fields['tabsHideOnZoom'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher les onglets lorsque le fluidbook est zoomé'), 'grade' => 5]; + $this->fields['tabsHideWhenOverlapingArrows'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher les onglets lorsqu\'ils passent sous les flèches de navigation'), 'grade' => 5]; + $this->fields['tabsHideEdges'] = ['type' => 'combo', 'label' => __('Masquer les bordures du fluidbook'), 'editable' => true, 'default' => 'right', 'grade' => 5, + 'datas' => [ + __('Aucune') => 'none', + __('Gauche') => 'left', + __('Droite') => 'right', + __('Les deux') => 'both', + ] + ]; + $this->fields['tabsMargin'] = ['type' => 'float', 'label' => __('Marge des onglets'), 'editable' => true, 'default' => -10, 'grade' => 5, 'hint' => __('Une marge négative = les onglets passent sous la publication')]; + $this->fields['tabsLinkWidth'] = ['type' => 'float', 'label' => __('Largeur des onglets'), 'editable' => true, 'default' => 30, 'grade' => 5, 'hint' => __('Largeur réservée pour les onglets et largeur de la zone cliquable des liens')]; + $this->forms['tabs'] = ['label' => __('Onglets'), + 'fieldsnames' => ['tabsHTML5', 'tabsPages', 'tabsSections', 'tabsPagesNumbers', 'tabsDisabledOnPages', '|', 'tabsSide', 'tabsMargin', '|', 'tabsHideOnPages', 'tabsHideOnCover', 'tabsHideOnLastPage', 'tabsHideEdges', '|', 'tabsPriority', 'tabsLinkWidth', 'tabsHideWhenOverlapingArrows', 'tabsHideOnPortrait', 'tabsHideOnZoom']]; + + /*** **/ + + $this->fields['customLinkClass'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Classe pour les liens personnalisés'), 'grade' => 5); + $this->fields['ignoreLinksTypes'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Ignorer les liens de type'), 'hint' => __('Liste des numéros séparés par des virgules'), 'grade' => 5); + $this->fields['mobileLinksRevealAnim'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Animer les liens après un changement de page"), 'grade' => 3); + $this->fields['linkBlinkTime'] = array('type' => 'float', 'default' => 1.0, 'editable' => true, 'label' => __("Temps d'apparition du lien à l'ouverture de la page (en secondes)")); + $this->fields['linkBlinkRepetition'] = ['type' => 'integer', 'default' => 1, 'editable' => true, 'label' => __('Nombre de clignotement lors de l\'apparition des liens')]; + $this->fields['linkTracker'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Tracking des liens'), 'grade' => 5); + $this->fields['linkTrackerRegexp'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Tracking des liens applicables aux liens du domaine'), 'grade' => 5); + $this->fields['linkFilePrefix'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Préfixer les liens de téléchargement')); + $this->fields['linkTooltipMaxWidth'] = array('type' => 'integer', 'default' => 140, 'editable' => true, 'label' => __('Largeur max des infobulles des liens de type "infobulle"')); + $this->fields['openLinkAtStartup'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Déclencher un lien à l\'ouverture du fluidbook')]; + + $this->fields['mobileIgnoreBackgroundLinks'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Ignorer les liens de background')); + $this->forms['links'] = array('label' => __('Liens'), + 'fieldsnames' => array('permanentLinks', 'mobileLinksRevealAnim', 'linkBlinkTime', 'linkBlinkRepetition', '|', 'openLinkAtStartup', '|', 'customLinkClass', 'ignoreLinksTypes', 'mobileIgnoreBackgroundLinks', 'linkTooltipManager', 'linkCornerSize', 'linkTooltipMaxWidth', '|', 'linkTracker', 'linkTrackerRegexp', '|', 'linkFilePrefix')); + //. + + $this->fields['textPopupStylesheet'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Feuille de style des popups de texte'), 'fileFilter' => $cssFilter]; + $this->fields['textPopupWidth'] = ['type' => 'integer', 'default' => 600, 'editable' => true, 'label' => __('Largeur optimale des popups')]; + $this->fields['iframePopupMaxWidth'] = ['type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Largeur maximale des popups iframe')]; + $this->fields['OAMChromeFactor'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Facteur OAM Chrome')]; + $this->fields['OAMIEFactor'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Facteur OAM IE11')]; + + $this->forms['multimedia'] = ['label' => __('Multimedia'), + 'fieldsnames' => ['textPopupStylesheet', 'textPopupWidth', '|', 'iframePopupMaxWidth', '|', 'OAMChromeFactor', 'OAMIEFactor']]; + + $pdfRendererOptions = [__('Navigateur') => 'native', 'PDF.js' => 'pdfjs', 'PDF.js (legacy)' => 'pdfjs-legacy']; + $pdfRenderOptionsIframe = array_merge($pdfRendererOptions, [__('Ecraser en SVG') => 'svg']); + + $this->fields['PDFRenderer'] = ['type' => 'combo', 'datas' => $pdfRendererOptions, 'default' => 'native', 'editable' => true, 'label' => __('Rendu des PDF (téléchargement)')]; + $this->fields['PDFRendererIframe'] = ['type' => 'combo', 'datas' => $pdfRenderOptionsIframe, 'default' => 'native', 'editable' => true, 'label' => __('Rendu des PDF (iframes)')]; + $this->fields['PDFJSCSS'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => 'Styles PDF.js']; + + $this->forms['pdf'] = ['label' => 'PDF', + 'fieldsnames' => ['PDFRenderer', 'PDFRendererIframe', '|', 'PDFJSCSS']]; + + $slideshowPopupLibraries = [ + 'Splide (' . __('défaut') . ')' => 'splide', + 'Vacheron' => 'vacheron']; + + $slideshowInlineLibraries = [ + 'Simple (' . __('défaut') . ')' => 'dummy', + 'Vacheron' => 'vacheron']; + + $this->fields['slideshowCaptionSize'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Taille de police de la légende du diaporama'), 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['inlineSlideshowTransitionDuration'] = array('type' => 'float', 'default' => 0.75, 'editable' => true, 'label' => __('Durée de la transition des diaporamas intégrés aux pages(s)')); + $this->fields['inlineSlideshowDuration'] = array('type' => 'float', 'default' => 7, 'editable' => true, 'label' => __('Temps d\'attente des diaporamas intégrés aux pages (s)')); + $this->fields['inlineSlideshowLibrary'] = ['type' => 'combo', 'datas' => $slideshowInlineLibraries, 'default' => 'dummy', 'editable' => true, 'grade' => 3, 'label' => __('Librarie utilisée pour les slideshow intégrés aux pages')]; + $this->fields['popupSlideshowLibrary'] = ['type' => 'combo', 'datas' => $slideshowPopupLibraries, 'default' => 'splide', 'editable' => true, 'grade' => 3, 'label' => __('Librarie utilisée pour les slideshow popup')]; + + $this->forms['slideshow'] = ['label' => __('Slideshow'), + 'fieldsnames' => ['inlineSlideshowLibrary', 'popupSlideshowLibrary', '|', 'slideshowCaptionSize', '|', 'inlineSlideshowTransitionDuration', 'inlineSlideshowDuration']]; + + $this->fields['webvideoAsLocal'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Intégrer les webvidéos en local')]; + $this->fields['mobileVideosPath'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Chemin vers les vidéos'), 'grade' => 5); + $this->fields['brightcovePlayerId'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Brightcove Player Id'), 'grade' => 3); + $this->fields['brightcovePlayerSecret'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Brightcove Player Secret'), 'grade' => 3); + $this->fields['bigPlayImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Image pour le bouton "Big Play"'), 'grade' => 3, 'fileFilter' => $imageExtraFilter]; + $this->forms['videos'] = array('label' => __('Vidéos'), + 'fieldsnames' => array('webvideoAsLocal', '|', 'mobileVideosPath', '|', 'brightcovePlayerId', 'brightcovePlayerSecret', '|', 'bigPlayImage')); + //. + $this->fields['audioPlayerTheme'] = ['type' => 'combo', 'default' => 'native', 'editable' => true, 'label' => __('Apparence du lecteur audio'), 'datas' => [__('Apparence native du navigateur') => 'native', __('Zone cliquable invisible') => 'invisible', __('Circulaire') => 'redbull']]; + $this->forms['audio'] = ['label' => __('Lecteur audio'), + 'fieldsnames' => ['audioPlayerTheme']]; + //. + $this->fields['downloadPortionPDF'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => 'PDF utilisé pour le téléchargement des extraits']; + $this->fields['downloadPortionZoom'] = ['type' => 'integer', 'default' => 8, 'editable' => false, 'editable' => true, 'label' => __('Zoom des images extraites')]; + $this->forms['downloadportion'] = array('label' => __('Téléchargement d\'extraits'), + 'fieldsnames' => ['downloadPortionPDF', 'downloadPortionZoom']); + + + $this->fields['product_zoom_references'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Références produits'), 'grade' => 3, 'fileFilter' => $basketFilter, 'hint' => __('Fichier contenant les références produits'), 'dir' => 'commerce'); + $this->fields['product_zoom_buttons_order'] = ['type' => 'combo', 'datas' => [__('De la droite vers la gauche') => 'right', __('De la gauche vers la droite') => 'left'], 'editable' => true, 'grade' => 3, 'default' => 'right', 'label' => __('Order des boutons')]; + $icons = [ + __('Aucune') => 'none', + __('Partage') => 'nav-share', + __('Ecran') => 'icon-site', + __('Télécharger') => 'nav-download', + 'PDF' => 'icon-pdf', + 'Video' => 'icon-video', + __('Lien') => 'icon-link', + __('Code') => 'icon-code', + __('QR code') => 'icon-qr', + __('Article') => 'icon-article', + __('Panier (sac)') => 'nav-basket', + __('Panier (caddie)') => 'nav-cart-caddie', + __('Panier (wishlist)') => 'nav-cart-wishlist', + __('360°') => 'icon-360', + __('Photo') => 'icon-photo']; + $actions = [ + __('Désactiver') => 'disabled', + __('Ouvrir un lien') => 'link', + __('Ouvrir en iframe') => 'iframe', + __('Copier un contenu') => 'copy', + __('Web Vidéo') => 'video', + __('Vidéo') => 'videofile', + __('Vidéo (boucle, sans contrôle)') => 'videogif', + __('Voir une image') => 'image', + __('Ajouter au panier') => 'addtocart' + ]; + $f = []; + for ($i = 1; $i <= 3; $i++) { + $this->fields['product_zoom_label_' . $i] = ['type' => 'text', 'label' => __('Label du bouton') . ' ' . $i, 'default' => '', 'editable' => true, 'grade' => 3]; + $this->fields['product_zoom_tooltip_' . $i] = ['type' => 'text', 'label' => __('Label de l\'infobulle') . ' ' . $i, 'default' => '', 'editable' => true, 'grade' => 3]; + $this->fields['product_zoom_icon_' . $i] = ['type' => 'combo', 'datas' => $icons, 'label' => __('Icône du bouton') . ' ' . $i, 'default' => 'click', 'editable' => true, 'grade' => 3]; + $this->fields['product_zoom_action_' . $i] = ['type' => 'combo', 'datas' => $actions, 'label' => __('Action du bouton') . ' ' . $i, 'default' => 'disabled', 'editable' => true, 'grade' => 3]; + $f[] = '|'; + $f[] = 'product_zoom_label_' . $i; + $f[] = 'product_zoom_tooltip_' . $i; + $f[] = 'product_zoom_icon_' . $i; + $f[] = 'product_zoom_action_' . $i; + } + $this->fields['product_share_enabled'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'grade' => '3', 'label' => __('Activer le bouton de partage')]; + $this->fields['product_share_link'] = ['type' => 'combo', 'default' => 'product', 'editable' => true, 'label' => __('Lien de partage'), 'datas' => [__('Lien du produit') => 'product', __('Lien vers la page du fluidbook') => 'page']]; + $this->fields['product_email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'email") . ' "' . __('Envoyer à un ami') . '"'); + $this->fields['product_email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Corps de l'email") . ' "' . __('Envoyer à un ami') . '"'); + $this->fields['product_tweet'] = array('type' => 'textarea', 'default' => '%short%', 'editable' => true, 'label' => __("Contenu Partage court"), 'hint' => __('Contenu du partagé sur les partages courts')); + $this->forms['product_zoom'] = ['label' => __('Zooms produits'), 'fieldsnames' => array_merge(["product_zoom_references", '|', 'product_zoom_buttons_order'], $f, ['|', 'product_share_enabled', 'product_share_link', 'product_email_title', 'product_email_body', 'product_tweet'])]; + + $this->fields['audiodescriptionTexts'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Contenus textuels pour l\'audiodescription ou les lecteurs d\'écran'), 'fileFilter' => $seoFilter]; + $this->fields['audiodescriptionVoice'] = ['type' => 'combo', 'datas' => wsDroits::getTTSVoices(), 'editable' => true, 'default' => '', 'label' => __('Voix pour l\'audiodescription')]; + $this->forms['accessibility'] = ['label' => __('Accessibilité'), + 'fieldsnames' => ['audiodescriptionTexts', 'audiodescriptionVoice'] + ]; + + // Tooltip + + + // Splashscreen + + $this->fields['splashImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Image'), 'grade' => 3, 'fileFilter' => $imageFilter]; + $this->fields['splashURL'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('URL'), 'grade' => 3]; + $this->fields['splashTarget'] = ['type' => 'combo', 'datas' => $target, 'default' => '_self', 'editable' => true, 'label' => __('Ouvrir le lien'), 'grade' => 3]; + $this->fields['splashMinimalTime'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Temps minimal d\'affichage'), 'grade' => 3]; + + $this->forms['splash'] = ['label' => __('Ecran de chargement'), 'fieldsnames' => ['splashImage', 'splashURL', 'splashTarget', 'splashMinimalTime']]; + + // Notes + $this->fields['notes'] = ['type' => 'boolean', 'default' => false, 'editable' => true, + 'label' => 'Activer les notes', 'grade' => 3]; + $this->forms['notes'] = ['label' => __('Notes'), 'fieldsnames' => ['notes']]; + + // Articles + $this->fields['articlesFile'] = ['type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => 'Articles', 'grade' => 3, 'fileFilter' => $articlesFilter]; + $this->fields['articlesFormat'] = ['type' => 'combo', 'default' => 'fluidbook', 'editable' => true, 'label' => 'Format', 'grade' => 3, 'datas' => [__('Fluidbook') => 'fluidbook', 'Business Immo' => 'business-immo']]; + $this->fields['articlesFont'] = ['type' => 'combo', 'label' => __('Police des articles'), 'default' => 'OpenSans', 'datas' => self::$fonts, 'editable' => true, 'grade' => 3]; + $this->fields['articlesImages'] = ['type' => 'freefile', 'label' => __('Images des articles'), 'default' => '', 'hint' => __('Les noms des fichiers doivent être les même que ceux des balises du XML'), 'editable' => true, 'grade' => 3, 'dir' => 'articles', 'multiple' => true]; + $this->fields['articlesShare'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le partage'), 'grade' => 3]; + $this->fields['articlesPrint'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer l\'impression'), 'grade' => 3]; + $this->fields['articlesStyle'] = ['type' => 'combo', 'default' => true, 'editable' => true, 'label' => __('Style'), 'grade' => 3, 'datas' => ['Défaut' => 'default', 'Atlantic' => 'atlantic', 'Harmonie Mutuelle' => 'harmonie-mutuelle', 'Business Immo' => 'business-immo']]; + + $this->forms['articles'] = ['label' => __('Articles'), 'fieldsnames' => ['articlesFile', 'articlesImages', '|', 'articlesShare', 'articlesPrint', '|', 'articlesStyle', 'articlesFont']]; + + //. + $this->fields['externalArchives'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Archives'), 'grade' => 3, 'fileFilter' => $imageFilter); + $this->fields['archivesLabel'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Label'), 'grade' => 5); + $this->forms['archives'] = array('label' => __('Archives'), + 'fieldsnames' => array('externalArchives', 'archivesLabel')); + // . + $this->fields['form'] = array('type' => 'combo', 'default' => '', 'editable' => true, 'grade' => 5, 'label' => __('Formulaire'), 'datas' => + array(__('Aucun') => '', + 'Bulle Groupe' => 'bulle', + 'Bourbon / Suggestions' => 'bourbon', + 'Avery' => 'avery', + ), + ); + $this->forms['form'] = array('label' => __('Formulaire'), + 'fieldsnames' => array('form')); + + $this->fields['cookieConsent'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Message cookie')); + $this->fields['cookieConsentMessage'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Texte du consentement')); + $this->fields['cookieConsentAutoclose'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Masquer automatiquement après x secondes')); + $this->forms['privacy'] = array('label' => __('Respect de la vie privée'), + 'fieldsnames' => array('cookieConsent', 'cookieConsentMessage', 'cookieConsentAutoclose')); + + //. + $this->fields['basket'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Panier activé'), 'grade' => 5); + $this->fields['cartIcon'] = ['type' => 'combo', 'datas' => [__('Sac') => 'nav-basket', __('Caddie') => 'nav-cart-caddie', __('Wishlist') => 'nav-cart-wishlist'], 'default' => 'nav-basket', 'label' => __('Icône'), 'editable' => true, 'grade' => 5]; + $this->fields['basketManager'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => __("Manager de panier"), + 'datas' => array(__('Classic') => 'com.fluidbook.player.basket.BasketManager', + 'Grdf' => 'com.fluidbook.player.basket.custom.grdf.GrdfBasketManager', + 'Grdf 2013' => 'com.fluidbook.player.basket.custom.grdf.grdf2013.GrdfBasketManager2013', + 'Grdf 2015' => 'com.fluidbook.player.basket.custom.grdf.grdf2015.GrdfBasketManager2015', + 'Essilor' => 'com.fluidbook.player.basket.custom.essilor.EssilorBasketManager', + 'Essilor Recap' => 'com.fluidbook.player.basket.custom.essilorrecap.EssilorRecapBasketManager', + 'Wesco Ventes' => 'com.fluidbook.player.basket.custom.wesco.WescoBasketManager', + 'Atlantic Download' => 'com.fluidbook.player.basket.custom.atlantic.AtlanticDownloadBasketManager', + 'Remarkable' => 'Remarkable', + 'Mopec' => 'Mopec', + 'Puma' => 'Puma', + 'MIF' => 'MIF', + 'Flexipan' => 'Flexipan', + 'Zoom + lien produit (déprécié, utiliser la fonctionnalité "Zoom produits")' => 'ZoomProductLink', + 'Wishlist Jouéclub' => 'JoueclubWishlist', + 'GrandVision' => 'GrandVision', + 'Grand Pavois' => 'GrandPavois', + 'Wishlist Jouéclub Noël 2021' => 'JoueclubWishlist2021', + 'Thiriet' => 'Thiriet', + ), 'grade' => 5); + + $this->fields['cartLinkAppearance'] = ['type' => 'combo', 'default' => 'link', 'editable' => true, 'label' => __('Apparence des liens panier'), 'grade' => 3, 'datas' => [__('Lien') => 'link', __('Boutons + et - avec overlay') => 'overlay']]; + $this->fields['basketReferences'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Références produits'), 'grade' => 3, 'fileFilter' => $basketFilter, 'hint' => __('Fichier contenant les références produits'), 'dir' => 'commerce'); + $this->fields['basketImages'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Images des produits'), 'grade' => 3, + 'multiple' => true, 'dir' => 'commerce'); + $this->fields['basketPDFBackground'] = array('type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Fond du PDF (bon de commande)'), 'grade' => 5, 'fileFilter' => $epsFilter, 'hint' => __('Fond du bon de commande'), 'dir' => 'commerce'); + $this->fields['cartHeaderImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Header panier'), 'grade' => 3, 'fileFilter' => $imageFilter, 'dir' => 'commerce']; + $this->fields['cartHeaderMobileImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, + 'label' => __('Header panier (mobile)'), 'grade' => 3, 'fileFilter' => $imageFilter, 'dir' => 'commerce']; + $this->fields['cartExtraSettings'] = ['type' => 'textarea', 'default' => '', 'editable' => true, + 'label' => __('Paramètres panier'), 'grade' => 3]; + + + $this->forms['basket'] = array('label' => __('Panier'), + 'fieldsnames' => array('basket', 'basketManager', '|', 'cartIcon', 'cartLinkAppearance', '|', 'basketReferences', 'basketImages', '|', 'cartHeaderImage', 'cartHeaderMobileImage', 'cartExtraSettings')); + // . + $this->fields['offlineLink'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __("URL du Fluidbook"), 'hint' => __('URL du fluidbook utilisée pour la version Offline (CD-ROM, clé USB, Exécutables)')); + $this->fields['offlineTitle'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'application")); + $this->fields['offlineWindowsInstallPath'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Chemin d\'installation par défaut'), 'hint' => __('Par défaut') . ': %LOCALAPPDATA%/%title%']; + $this->fields['offlineWindowsProfilePath'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Répertoire de stockage du profile'), 'hint' => __('Par défaut') . ': %LOCALAPPDATA%/%title%']; + $this->fields['offlineEnableAdvancedPrinting'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le menu d\'impression avancée')]; + $this->fields['debugConsole'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer la console de débuggage')]; + $this->forms['offline'] = array('label' => __('Version offline'), + 'fieldsnames' => array('offlineTitle', 'offlineLink', '|', 'offlineWindowsInstallPath', 'offlineWindowsProfilePath', '|', 'offlineEnableAdvancedPrinting', '|', 'debugConsole')); + + $this->fields['mobilefirstFluidbookId'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => 'Identifiant du fluidbook "Mobile first"', 'grade' => 5]; + $this->fields['mobilefirstBreakpoint'] = ['type' => 'text', 'default' => '640', 'editable' => true, 'label' => 'Breakpoint du passage à la version "Mobile first" (en pixels)', 'grade' => 5]; + $this->forms['mobilefirst'] = ['label' => __('Mobile first'), + 'fieldsnames' => ['mobilefirstFluidbookId', 'mobilefirstBreakpoint']]; + + + $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'); + $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'); + $this->fields['phonegapPlugins'] = array('type' => 'textarea', 'default' => 'ChildBrowser', 'editable' => true, 'label' => __('Plugins Phonegap'), 'grade' => 5); + $defaultScreenshots = "P,0\nL,2\nL,index"; + $this->fields['appScreenshots'] = array('type' => 'textarea', 'default' => $defaultScreenshots, 'editable' => true, 'label' => 'Générer les screenshots', 'grade' => 5, 'hint' => __('Une ligne par vue à générer de la forme X,Y (X : P(ortrait) ou L(andscape), Y : numéro de page ou vue (1, index))')); + + $this->forms['phonegap'] = array('label' => __('Applications mobile'), + 'fieldsnames' => array('phonegapId', 'phonegapVersion', 'phonegapPlugins', 'appScreenshots')); + + $this->fields['secureURL'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __('URL de sécurisation'), 'grade' => 5, 'hint' => __('URL intérrogé pour vérifier si le visiteur à les droits pour consulter la publication')); + $this->fields['secureURLRedirect'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __('Redirection'), 'grade' => 5, 'hint' => __("Si l'authentification échoue, redirection vers cette adresse")); + $this->fields['secureClientSidePassword'] = ['type' => 'freefile', 'label' => 'Sécurisation par mot de passe côté client', 'editable' => true, 'default' => '', 'grade' => 3, 'fileFilter' => $htmlFilter]; + $this->fields['secureClientSidePasswordCredentials'] = ['type' => 'textarea', 'label' => 'Utilisateurs / mots de passe', 'editable' => true, 'default' => '', 'grade' => 3, 'hint' => 'Format user:password par ligne']; + $this->fields['preventRightClick'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Essayer d'empêcher le clic droit"), 'grade' => 1); + $this->fields['restrictPrint'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Restreindre l'impression"), 'grade' => 5); + $this->fields['restrictDownload'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Restreindre le téléchargement du pdf"), 'grade' => 5); + $this->fields['restrictSendBookmark'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Restreindre l'envoi de marques-pages"), 'grade' => 5); + $this->fields['restrictPrintDownload'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Paramètre de l\'url permettant de désactiver la restriction (non vide pour activer les restrictions)'), 'grade' => 5, 'hint' => __("Ne pas indiquer le ?")]; + $this->fields['recaptcha'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Activer reCATPCHA v3 (clé du site)')]; + $this->forms['secure'] = array('label' => __('Sécurisation'), + 'fieldsnames' => array('secureURL', 'secureURLRedirect', '|', 'secureClientSidePassword', 'secureClientSidePasswordCredentials', '|', 'preventRightClick', '|', 'restrictPrintDownload', 'restrictPrint', 'restrictDownload', 'restrictSendBookmark', '|', 'recaptcha')); + + $this->fields['home'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Accueil de l'interface multibrochure"), 'grade' => 5); + $this->fields['multilang'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Langues'), 'hint' => __('Code langue') . ',' . __('Code pays') . ',' . __('URL')); + $this->fields['country'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Pays de la brochure')); + $this->fields['multilangDisplay'] = array('type' => 'combo', 'default' => 'lang', 'editable' => true, 'label' => __('Affichage'), + 'datas' => array(__('Langue') => 'lang', + __('Langue') . ' (' . __('Pays') . ')' => 'lang_country', + __('Pays') . ' (' . __('Langue') . ')' => 'country_lang')); + $this->forms['multibrochure'] = array('label' => __('Multibrochure'), + 'fieldsnames' => array('home', 'country', 'multilangDisplay', 'multilang')); + + $this->fields['plv'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer le mode PLV'), 'grade' => 3); + $this->fields['plvTimer'] = array('type' => 'integer', 'min' => 1, 'max' => 60, 'default' => 5, 'editable' => true, 'label' => __('Temps'), 'grade' => 3); + $this->fields['plvMode'] = array('type' => 'combo', 'default' => 'first', 'editable' => true, 'label' => __('Arrivé à la dernière page'), 'grade' => 3, + 'datas' => array(__('Remonter vers la première page') => 'back', + __('Recommencer à la première page') => 'first')); + $this->forms['plv'] = array('label' => __('Mode PLV'), + 'fieldsnames' => array('plv', 'plvTimer', 'plvMode')); + + + $this->fields['themeEnableAfterSearch'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Afficher l'image supplémentaire à droite du moteur de recherche"), 'grade' => 3); + $this->forms['theme'] = array('label' => __('Options du thème'), + 'fieldsnames' => array('themeEnableAfterSearch')); + + $this->fields['forceCompileOnDownload'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Forcer la compilation lors du téléchargement'), 'grade' => 3); + $this->fields['embedAllLibraries'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Intégrer toutes les bibliothèques JS'), 'grade' => 3); + $this->fields['htmlExtension'] = array('type' => 'text', 'default' => 'html', 'editable' => true, 'label' => __('Extension des fichiers html'), 'grade' => 5, 'hint' => __('Ex : php, htm, html, phtml, asp, aspx'), 'grade' => 5); + $this->fields['actualHtmlExtension'] = array('type' => 'text', 'default' => 'html', 'editable' => false, 'label' => __('Extension des fichiers html réellement appliquée au fluidbook'), 'grade' => 5, 'hint' => __('Ex : php, htm, html, phtml, asp'), 'grade' => 5); + $this->fields['htmlPrepend'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code à insérer en tête des fichiers'), 'grade' => 5); + $this->fields['baseUrl'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Base de l\'url'), 'grade' => 5,); + + $this->forms['package'] = array('label' => __('Option d\'export'), + 'fieldsnames' => array('htmlExtension', "actualHtmlExtension", 'htmlPrepend', 'baseUrl', 'forceCompileOnDownload', 'embedAllLibraries')); + + $this->fields['disableDemo'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Désactiver le lien de démo'), 'grade' => 5); + $this->fields['redirectDemo'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Rediriger le lien de démo vers'), 'grade' => 5); + $this->forms['demo'] = array('label' => __('Lien de démo'), + 'fieldsnames' => array('disableDemo', 'redirectDemo')); + + + $this->fields['gamify_coins_pages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Attribuer des coins lors de la visite des pages')); + $this->forms['gamify'] = ['label' => __('Gamification'), + 'fieldsnames' => ['gamify_coins_pages']]; + + + $this->fields['scorm_enable'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer SCORM'), 'grade' => 5); + $this->fields['scorm_version'] = array('type' => 'combo', 'default' => '1.2', 'editable' => true, 'label' => __('Version du standard SCORM'), 'grade' => 5, + 'datas' => array( + __('SCORM 1.2') => '1.2', + __('SCORM 2004 3rd edition') => '2004.3', + __('SCORM 2004 4th edition') => '2004', + ) + ); + $this->fields['scorm_id'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Identifiant SCORM'), 'grade' => 5); + $this->fields['scorm_org'] = array('type' => 'text', 'default' => 'ACME-ORG-1350650111249', 'editable' => true, 'label' => __('Organisation SCORM'), 'grade' => 5); + $this->fields['scorm_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Titre SCORM'), 'grade' => 5, 'hint' => __('Laisser vide pour utiliser le titre de la publication')); + $this->fields['scorm_variables'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Variables SCORM'), 'grade' => 5, 'hint' => __('Laisser vide pour utiliser le titre de la publication')); + $this->fields['scorm_score'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer le support du score'), 'grade' => 5); + $this->fields['scorm_score_min'] = array('type' => 'integer', 'min' => 0, 'max' => 100, 'default' => 50, 'editable' => true, 'label' => __('Score minimal pour marquer le contenu comme réussi'), 'grade' => 5); + $this->fields['scorm_quiz_as_questionnaire'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Traiter les quiz comme des questionnaires (toutes les réponses sont considérées comme correctes)'), 'grade' => 5); + $this->fields['scorm_quizdata'] = array('type' => 'freefile', 'editable' => true, 'default' => '', 'label' => __('Données de quiz')); + $this->fields['scorm_complete_coins'] = ['type' => 'integer', 'default' => 0, 'label' => 'Marquer le cours comme "Complete" lorsque le visiteur accumule X coins', 'editable' => true]; + $this->fields['scorm_complete_on_exit'] = ['type' => 'boolean', 'default' => false, 'label' => 'Marquer le cours comme "Complete" à la fermeture de la fenêtre', 'editable' => true]; + $this->fields['scorm_complete_on_last_page'] = ['type' => 'boolean', 'default' => false, 'label' => 'Marquer le cours comme "Complete" lorsque le visiteur atteint la dernière page', 'editable' => true]; + $this->fields['scorm_force_attempts'] = ['type' => 'boolean', 'default' => false, 'label' => __('Forcer la création d\'un "attempt" à chaque ouverture'), 'editable' => true]; + $this->fields['scorm_pass_on_complete'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Marquer le cours comme Pass lorsqu'il est terminé") . ' (' . __('SCORM 2004 seulement') . ')']; + $this->fields['scorm_score100_on_complete'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Marquer le cours comme réussi à 100% lorsqu'il est terminé")]; + $this->fields['scorm_commit_immediately'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Envoyer les données immédiatement au LMS") . ' (' . __('Peut provoquer des ralentissement sur certains LMS') . ')']; + + $this->forms['scorm'] = array('label' => __('SCORM'), + 'fieldsnames' => array('scorm_enable', 'scorm_version', 'scorm_id', 'scorm_org', 'scorm_title', 'scorm_variables', '|', 'scorm_complete_on_exit', 'scorm_complete_on_last_page', 'scorm_complete_coins', '|', 'scorm_pass_on_complete', 'scorm_score100_on_complete', '|', 'scorm_quizdata', 'scorm_score', 'scorm_score_min', 'scorm_quiz_as_questionnaire', '|', 'scorm_force_attempts', 'scorm_commit_immediately')); + + $versions = wsUrl::getFluidbookVersions(false); + $ignore = ['v1', 'v2', 'phonegap']; + $fields = []; + foreach ($versions as $k => $version) { + if (in_array($k, $ignore)) { + continue; + } + $this->fields['download_' . $k] = ['type' => 'boolean', 'editable' => true, 'default' => false, 'label' => $version['title'], 'grade' => 3]; + $fields[] = 'download_' . $k; + } + $this->fields['download_online']['default'] = true; + + $this->forms['downloads'] = array('label' => __('Versions disponibles au téléchargement'), + 'fieldsnames' => $fields); + } +} diff --git a/inc/ws/Metier/class.ws.book.parametres.php b/inc/ws/Metier/class.ws.book.parametres.php index 413a07902..bb76de7df 100644 --- a/inc/ws/Metier/class.ws.book.parametres.php +++ b/inc/ws/Metier/class.ws.book.parametres.php @@ -18,65 +18,25 @@ class wsBookParametres extends wsParametres // } // . - $swfFilter = new stdClass(); - $swfFilter->name = __('Animation SWF') . ' (*.swf)'; - $swfFilter->extensions = '*.swf'; - - $multimediaFilter = new stdClass(); - $multimediaFilter->name = __('Archive ZIP') . ' (*.zip)'; - $multimediaFilter->extensions = '*.zip'; - - $pdfFilter = new stdClass(); - $pdfFilter->name = __('Document PDF') . ' (*.pdf)'; - $pdfFilter->extensions = '*.pdf'; - - $basketFilter = new stdClass(); - $basketFilter->name = __('Liste de produits') . ' (*.xml, *.xlsx)'; - $basketFilter->extensions = '*.xml;*.xlsx'; - - $articlesFilter = new stdClass(); - $articlesFilter->name = __('Liste d\'articles') . ' (*.xml)'; - $articlesFilter->extensions = '*.xml'; - - $htmlFilter = new stdClass(); - $htmlFilter->name = __('Fichier HTML') . ' (*.html)'; - $htmlFilter->extensions = '*.html'; - - $imageFilter = new stdClass(); - $imageFilter->name = __('Images') . ' (*.jpg, *.png)'; - $imageFilter->extensions = '*.jpg;*.jpeg;*.png'; - - $epsFilter = new stdClass(); - $epsFilter->name = __('Fichier vectoriel') . ' (*.ai, *.eps)'; - $epsFilter->extensions = '*.ai;*.eps'; - - $svgFilter = new stdClass(); - $svgFilter->name = __('Fichier SVG') . ' (*.svg)'; - $svgFilter->extensions = '*.svg'; - - $tabsFilter = new stdClass(); - $tabsFilter->name = __('Fichier onglets') . ' (*.svg, *.zip)'; - $tabsFilter->extensions = '*.svg;*.zip'; - - $imageExtraFilter = new stdClass(); - $imageExtraFilter->name = __('Images') . ' (*.svg, *.jpg, *.png, *.gif)'; - $imageExtraFilter->extensions = '*.svg;*.jpg;*.png;*.gif'; - - $soundFilter = new stdClass(); - $soundFilter->name = __('Fichier sonore') . ' (*.mp3, *.wav)'; - $soundFilter->extensions = '*.mp3;*.wav'; - - $seoFilter = new stdClass(); - $seoFilter->name = __('Fichier Excel') . ' (.xlsx)'; - $seoFilter->extensions = '*.xlsx'; - - $target = [__("Dans la fenêtre courrante") => '_self', - __('Dans un nouvel onglet') => '_blank']; - - $cssFilter = new stdClass(); - $cssFilter->name = __('Feuille de style') . ' (.css)'; - $cssFilter->extensions = '*.css'; - + $swfFilter = ['name' => $this->__('Animation SWF') . ' (*.swf)', 'extensions' => '*.swf']; + $multimediaFilter = ['name' => $this->__('Archive ZIP') . ' (*.zip)', 'extensions' => '*.zip']; + $pdfFilter = ['name' => $this->__('Document PDF') . ' (*.pdf)', 'extensions' => '*.pdf']; + + $basketFilter = ['name' => $this->__('Liste de produits'), 'extensions' => ' (*.xml, *.xlsx)']; + $articlesFilter = ['name' => $this->__('Liste d\'articles') . ' (*.xml)', 'extensions' => '*.xml']; + $htmlFilter = ['name' => $this->__('Fichier HTML') . ' (*.html)', 'extensions' => '*.html']; + $imageFilter = ['name' => $this->__('Images') . ' (*.jpg, *.png)', 'extensions' => '*.jpg;*.jpeg;*.png']; + $epsFilter = ['name' => $this->__('Fichier vectoriel') . ' (*.ai, *.eps)', 'extensions' => '*.ai;*.eps']; + $svgFilter = ['name' => $this->__('Fichier SVG') . ' (*.svg)', 'extensions' => '*.svg']; + $tabsFilter = ['name' => $this->__('Fichier onglets') . ' (*.svg, *.zip)', 'extensions' => '*.svg;*.zip']; + $imageExtraFilter = ['name' => $this->__('Images') . ' (*.svg, *.jpg, *.png, *.gif)', 'extensions' => '*.svg;*.jpg;*.png;*.gif']; + $soundFilter = ['name' => $this->__('Fichier sonore') . ' (*.mp3, *.wav)', 'extensions' => '*.mp3;*.wav']; + $seoFilter = ['name' => $this->__('Fichier Excel') . ' (.xlsx)', 'extensions' => '*.xlsx']; + $cssFilter = ['name' => $this->__('Feuille de style') . ' (.css)', 'extensions' => '*.css']; + + + $target = [$this->__("Dans la fenêtre courrante") => '_self', + $this->__('Dans un nouvel onglet') => '_blank']; $branches = array('master : git (stable)' => 'stable', 'master : local (dev)' => 'dev'); @@ -89,586 +49,586 @@ class wsBookParametres extends wsParametres $branches[$b . ' : local'] = $b . '|local'; } $extraVisibility = [ - __('Navigation horizontale') => 'horizontal', - __('Navigation burger') => 'burger', - __('Navigations horizontale et burger') => 'both']; + $this->__('Navigation horizontale') => 'horizontal', + $this->__('Navigation burger') => 'burger', + $this->__('Navigations horizontale et burger') => 'both']; $extraType = [ - __('Icône + Label') => 'icon', - __('Image') => 'image']; + $this->__('Icône + Label') => 'icon', + $this->__('Image') => 'image']; - $pagesNumbers = array(__('Virtuelle') => 'virtual', - __('Physique') => 'physical'); + $pagesNumbers = array($this->__('Virtuelle') => 'virtual', + $this->__('Physique') => 'physical'); $this->fields['mobileLVersion'] = array('type' => 'combo', 'default' => 'stable', 'editable' => true, - 'label' => __('Version logicielle'), 'grade' => 1, + 'label' => $this->__('Version logicielle'), 'grade' => 1, 'datas' => $branches ); - $this->fields['mobileVersion'] = array('type' => 'combo', 'default' => 'html5-desktop', 'editable' => true, 'label' => __('Version mobile'), 'grade' => 3, - 'datas' => array(__('Rediriger vers le PDF') => 'pdf', - __('Version HTML5 recommandée (vecteurs sur desktop)') => 'html5-desktop', - __('Version HTML5 vecteurs') => 'html5', - __("Version HTML5 en images") => 'html5-images') + $this->fields['mobileVersion'] = array('type' => 'combo', 'default' => 'html5-desktop', 'editable' => true, 'label' => $this->__('Version mobile'), 'grade' => 3, + 'datas' => array($this->__('Rediriger vers le PDF') => 'pdf', + $this->__('Version HTML5 recommandée (vecteurs sur desktop)') => 'html5-desktop', + $this->__('Version HTML5 vecteurs') => 'html5', + $this->__("Version HTML5 en images") => 'html5-images') ); // Deprecated - $this->fields['version'] = array('type' => 'combo', 'default' => '2', 'editable' => true, 'label' => __('Version'), 'datas' => array('1' => '1', '2' => '2'), 'grade' => 3); - $this->fields['email_editable'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __("Permettre au lecteur de modifier le corps de l'email")); - $this->fields['askAcknowledge'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __("Demander au destinataire un accusé de réception"), 'grade' => 3); - $this->fields['sendasfluidbook'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __("Envoyer le mail comme Fluidbook"), 'grade' => 3, 'hint' => __("L'expéditeur apparaîtra en reply-to")); - $this->fields['email_mailto'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __("Envoyer le mail via le client mail du visiteur (mailto:)"), 'grade' => 3); - $this->fields['googleplus'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Google +')); - $this->fields['viadeo'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Viadeo')); - $this->fields['customSharer'] = array('type' => 'text', 'default' => '', 'editable' => false, 'label' => __("Classe personnalisée de partage"), 'grade' => 5); - $this->fields['friendWidth'] = array('type' => 'integer', 'default' => 319, 'editable' => false, 'label' => __('Largeur du menu'), 'grade' => 5); - $this->fields['friendHeight'] = array('type' => 'integer', 'default' => 500, 'editable' => false, 'label' => __('Largeur du menu'), 'grade' => 5); - $this->fields['visualisationMode'] = array('type' => 'combo', 'default' => '3', 'editable' => false, 'label' => __("Mode de visualisation 3D"), - 'datas' => array(__('Mode 3D') => '0', - __('Mode 2D (caméra fixe et pages à plat)') => '1', - __("Laisser le choix à l'utilisateur (mode 3D par défaut)") => '2', - __("Laisser le choix à l'utilisateur (mode 2D par défaut)") => '3')); - $this->fields['antialiasReading'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __("Amélioration de la lisibilité en mode 2D")); - $this->fields['pagesBaseAngle'] = array('type' => 'integer', 'default' => 2, 'editable' => false, 'label' => __('Angle de base entre les pages'), 'grade' => 3, - 'hint' => __("0 : Publication à plat") . "\n" . __('2 : Valeur par défaut')); - $this->fields['preload'] = array('type' => 'integer', 'default' => 16, 'editable' => false, 'label' => __('Nombre de pages à précharger'), 'grade' => 3); - $this->fields['tooltipTimer'] = array('type' => 'float', 'default' => 3, "editable" => true, 'label' => __("Temps maximum d'apparition des infos-bulles (en secondes)")); - $this->fields['indexAutoScroll'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Activer le scroll automatique')); - $this->fields['printCoverWithMarks'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __("Imprimer les couvertures avec les pages marquées"), 'grade' => 3); + $this->fields['version'] = array('type' => 'combo', 'default' => '2', 'editable' => true, 'label' => $this->__('Version'), 'datas' => array('1' => '1', '2' => '2'), 'grade' => 3); + $this->fields['email_editable'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => $this->__("Permettre au lecteur de modifier le corps de l'email")); + $this->fields['askAcknowledge'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__("Demander au destinataire un accusé de réception"), 'grade' => 3); + $this->fields['sendasfluidbook'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__("Envoyer le mail comme Fluidbook"), 'grade' => 3, 'hint' => $this->__("L'expéditeur apparaîtra en reply-to")); + $this->fields['email_mailto'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__("Envoyer le mail via le client mail du visiteur (mailto:)"), 'grade' => 3); + $this->fields['googleplus'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Google +')); + $this->fields['viadeo'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Viadeo')); + $this->fields['customSharer'] = array('type' => 'text', 'default' => '', 'editable' => false, 'label' => $this->__("Classe personnalisée de partage"), 'grade' => 5); + $this->fields['friendWidth'] = array('type' => 'integer', 'default' => 319, 'editable' => false, 'label' => $this->__('Largeur du menu'), 'grade' => 5); + $this->fields['friendHeight'] = array('type' => 'integer', 'default' => 500, 'editable' => false, 'label' => $this->__('Largeur du menu'), 'grade' => 5); + $this->fields['visualisationMode'] = array('type' => 'combo', 'default' => '3', 'editable' => false, 'label' => $this->__("Mode de visualisation 3D"), + 'datas' => array($this->__('Mode 3D') => '0', + $this->__('Mode 2D (caméra fixe et pages à plat)') => '1', + $this->__("Laisser le choix à l'utilisateur (mode 3D par défaut)") => '2', + $this->__("Laisser le choix à l'utilisateur (mode 2D par défaut)") => '3')); + $this->fields['antialiasReading'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => $this->__("Amélioration de la lisibilité en mode 2D")); + $this->fields['pagesBaseAngle'] = array('type' => 'integer', 'default' => 2, 'editable' => false, 'label' => $this->__('Angle de base entre les pages'), 'grade' => 3, + 'hint' => $this->__("0 : Publication à plat") . "\n" . $this->__('2 : Valeur par défaut')); + $this->fields['preload'] = array('type' => 'integer', 'default' => 16, 'editable' => false, 'label' => $this->__('Nombre de pages à précharger'), 'grade' => 3); + $this->fields['tooltipTimer'] = array('type' => 'float', 'default' => 3, "editable" => true, 'label' => $this->__("Temps maximum d'apparition des infos-bulles (en secondes)")); + $this->fields['indexAutoScroll'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Activer le scroll automatique')); + $this->fields['printCoverWithMarks'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => $this->__("Imprimer les couvertures avec les pages marquées"), 'grade' => 3); $this->fields['ambientSound'] = array('type' => 'freefile', 'default' => '', 'editable' => false, - 'label' => __('Ambiance sonore'), 'grade' => 3, 'fileFilter' => $soundFilter); + 'label' => $this->__('Ambiance sonore'), 'grade' => 3, 'fileFilter' => $soundFilter); $this->fields['ambientSoundVolume'] = array('type' => 'integer', 'default' => 50, 'editable' => false, - 'label' => __("Volume de l'ambiance sonore"), + 'label' => $this->__("Volume de l'ambiance sonore"), 'min' => 0, 'max' => 100); - $this->fields['offlineExport'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Téléchargement des versions offline'), "hint" => __('Valable si le téléchargement avancé est activé'), 'grade' => 3); - $this->fields['zoomMode'] = array('type' => 'combo', 'default' => '0', 'editable' => false, 'label' => __("Mode de zoom"), 'grade' => 3, - 'datas' => array(__('Normal') => '0', - __('Une page') => '1', - __('Zoom désactivé') => '2')); - $this->fields['displayChaptersLine'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __("Affiche une ligne entre le label et le numéro de page"), 'grade' => 5); - $this->fields['fullExternalChapters'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __("Sommaire totalement personnalisé"), 'grade' => 3, 'hint' => __('Supprime la flèche de fermeture, titre prédéfini et couleur de fond')); + $this->fields['offlineExport'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Téléchargement des versions offline'), "hint" => $this->__('Valable si le téléchargement avancé est activé'), 'grade' => 3); + $this->fields['zoomMode'] = array('type' => 'combo', 'default' => '0', 'editable' => false, 'label' => $this->__("Mode de zoom"), 'grade' => 3, + 'datas' => array($this->__('Normal') => '0', + $this->__('Une page') => '1', + $this->__('Zoom désactivé') => '2')); + $this->fields['displayChaptersLine'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => $this->__("Affiche une ligne entre le label et le numéro de page"), 'grade' => 5); + $this->fields['fullExternalChapters'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__("Sommaire totalement personnalisé"), 'grade' => 3, 'hint' => $this->__('Supprime la flèche de fermeture, titre prédéfini et couleur de fond')); $this->fields['externalChapters'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Sommaire personnalisé'), 'grade' => 3, 'fileFilter' => $swfFilter, 'hint' => __('Laisser vide pour utiliser le sommaire classique')); - $this->fields['chaptersPosition'] = array('type' => 'combo', 'default' => 'center', 'editable' => false, 'label' => __("Position du sommaire"), - 'datas' => array(__('Centré') => 'center', - __("Aligné sur l'icône") => 'chaptersIcon')); - $this->fields['permanentLinks'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Liens visibles en permanence'), 'grade' => 3); - $this->fields['linkTooltipManager'] = array('type' => 'text', 'default' => '', 'editable' => false, 'label' => __("Gestionnaire des info-bulles"), 'grade' => 5); - $this->fields['linkMultimediaPerformanceMode'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Mode perfomance pour les liens multimédia'), 'grade' => 5); - $this->fields['linkMultimediaQuality'] = array('type' => 'float', 'default' => 1.0, 'editable' => false, 'label' => __('Qualité de rendu des animations'), 'grade' => 5); - $this->fields['linkCornerSize'] = array('type' => 'integer', 'default' => 10, 'editable' => false, 'label' => __('Taille des liens de coins de page'), 'hint' => __("Pourcentage de la largeur de la page")); - $this->fields['videoReset'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Réinitialiser les vidéos après la lecture'), 'grade' => 3); - $this->fields['videoBigPlay'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __('Afficher le gros bouton Play'), 'grade' => 3); - $this->fields['alwaysHTML5'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __('Toujours utiliser la version HTML5'), 'grade' => 1); - $this->fields['html5priority'] = array('type' => 'combo', 'default' => 'true', 'editable' => false, 'label' => __("Rediriger vers la version HTML5"), 'grade' => 1, - 'datas' => array(__('Si l\'utilisateur a un appareil tactile') => 'false', - __('Si flash n\'est pas installé') => 'notinstalled', - __("Si flash n'est pas pas installé ou bloqué") => 'true')); - $this->fields['flashBlockedWait'] = array('type' => 'float', 'default' => 1.5, 'editable' => false, 'label' => __("Temps d'attente avant de considérer flash comme bloqué")); - $this->fields['widget'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Générer le widget'), 'grade' => 3); - $this->fields['widgetCover'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __('Afficher la couverture') . ')', 'grade' => 3); - $this->fields['widgetSize'] = array('type' => 'integer', 'default' => 200, 'editable' => false, 'label' => __('Optimiser pour une hauteur de (en pixels)'), 'grade' => 3); - $this->fields['widgetQuality'] = array('type' => 'integer', 'default' => 85, 'min' => 0, 'max' => 100, 'editable' => false, 'label' => __('Qualité JPEG'), 'grade' => 3); - $this->fields['widgetStart'] = array('type' => 'integer', 'default' => 1, 'editable' => false, 'label' => __('Page de début'), 'grade' => 3); - $this->fields['widgetEnd'] = array('type' => 'integer', 'default' => 8, 'editable' => false, 'label' => __('Page de fin'), 'grade' => 3); -// $this->forms['widget'] = array('label' => __('Widget') . ' (' . __('Mini Fluidbook') . ')', + 'label' => $this->__('Sommaire personnalisé'), 'grade' => 3, 'fileFilter' => $swfFilter, 'hint' => $this->__('Laisser vide pour utiliser le sommaire classique')); + $this->fields['chaptersPosition'] = array('type' => 'combo', 'default' => 'center', 'editable' => false, 'label' => $this->__("Position du sommaire"), + 'datas' => array($this->__('Centré') => 'center', + $this->__("Aligné sur l'icône") => 'chaptersIcon')); + $this->fields['permanentLinks'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Liens visibles en permanence'), 'grade' => 3); + $this->fields['linkTooltipManager'] = array('type' => 'text', 'default' => '', 'editable' => false, 'label' => $this->__("Gestionnaire des info-bulles"), 'grade' => 5); + $this->fields['linkMultimediaPerformanceMode'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Mode perfomance pour les liens multimédia'), 'grade' => 5); + $this->fields['linkMultimediaQuality'] = array('type' => 'float', 'default' => 1.0, 'editable' => false, 'label' => $this->__('Qualité de rendu des animations'), 'grade' => 5); + $this->fields['linkCornerSize'] = array('type' => 'integer', 'default' => 10, 'editable' => false, 'label' => $this->__('Taille des liens de coins de page'), 'hint' => $this->__("Pourcentage de la largeur de la page")); + $this->fields['videoReset'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Réinitialiser les vidéos après la lecture'), 'grade' => 3); + $this->fields['videoBigPlay'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => $this->__('Afficher le gros bouton Play'), 'grade' => 3); + $this->fields['alwaysHTML5'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => $this->__('Toujours utiliser la version HTML5'), 'grade' => 1); + $this->fields['html5priority'] = array('type' => 'combo', 'default' => 'true', 'editable' => false, 'label' => $this->__("Rediriger vers la version HTML5"), 'grade' => 1, + 'datas' => array($this->__('Si l\'utilisateur a un appareil tactile') => 'false', + $this->__('Si flash n\'est pas installé') => 'notinstalled', + $this->__("Si flash n'est pas pas installé ou bloqué") => 'true')); + $this->fields['flashBlockedWait'] = array('type' => 'float', 'default' => 1.5, 'editable' => false, 'label' => $this->__("Temps d'attente avant de considérer flash comme bloqué")); + $this->fields['widget'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Générer le widget'), 'grade' => 3); + $this->fields['widgetCover'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => $this->__('Afficher la couverture') . ')', 'grade' => 3); + $this->fields['widgetSize'] = array('type' => 'integer', 'default' => 200, 'editable' => false, 'label' => $this->__('Optimiser pour une hauteur de (en pixels)'), 'grade' => 3); + $this->fields['widgetQuality'] = array('type' => 'integer', 'default' => 85, 'min' => 0, 'max' => 100, 'editable' => false, 'label' => $this->__('Qualité JPEG'), 'grade' => 3); + $this->fields['widgetStart'] = array('type' => 'integer', 'default' => 1, 'editable' => false, 'label' => $this->__('Page de début'), 'grade' => 3); + $this->fields['widgetEnd'] = array('type' => 'integer', 'default' => 8, 'editable' => false, 'label' => $this->__('Page de fin'), 'grade' => 3); +// $this->forms['widget'] = array('label' => $this->__('Widget') . ' (' . $this->__('Mini Fluidbook') . ')', // 'fieldsnames' => array('widget', 'widgetCover', 'widgetSize', 'widgetQuality', 'widgetStart', 'widgetEnd')); - $this->fields['extras'] = array('type' => 'textarea', 'default' => '', 'editable' => false, 'label' => __('Extras'), 'grade' => 3); + $this->fields['extras'] = array('type' => 'textarea', 'default' => '', 'editable' => false, 'label' => $this->__('Extras'), 'grade' => 3); $this->fields['v1SWF'] = array('type' => 'freefile', 'default' => '', 'editable' => false, - 'label' => __('Index.swf spécifique'), 'grade' => 5, 'fileFilter' => $swfFilter); -// $this->forms['v1'] = array('label' => __('Options spécifiques au fluidbook version 1'), + 'label' => $this->__('Index.swf spécifique'), 'grade' => 5, 'fileFilter' => $swfFilter); +// $this->forms['v1'] = array('label' => $this->__('Options spécifiques au fluidbook version 1'), // 'fieldsnames' => array('extras', 'v1SWF')); - $this->fields['ongletsXML'] = array('type' => 'textarea', 'default' => '', 'editable' => false, 'label' => __('XML de configuration des onglets'), 'grade' => 5); + $this->fields['ongletsXML'] = array('type' => 'textarea', 'default' => '', 'editable' => false, 'label' => $this->__('XML de configuration des onglets'), 'grade' => 5); $this->fields['ongletsSWF'] = array('type' => 'freefile', 'default' => '', 'editable' => false, - 'label' => __('SWF pour onglets personnalisés'), 'grade' => 3, 'fileFilter' => $swfFilter); + 'label' => $this->__('SWF pour onglets personnalisés'), 'grade' => 3, 'fileFilter' => $swfFilter); $this->fields['tabs2DSWF'] = array('type' => 'freefile', 'default' => '', 'editable' => false, - 'label' => __('SWF pour onglets 2D'), 'grade' => 3, 'fileFilter' => $swfFilter); + 'label' => $this->__('SWF pour onglets 2D'), 'grade' => 3, 'fileFilter' => $swfFilter); $this->fields['flatTabsAbsolute'] = array('type' => 'boolean', 'default' => false, "editable" => true, - 'label' => __("Positionnement relatif à l'interface"), 'grade' => 5); -// $this->forms['flashtabs'] = array('label' => __('Onglets Flash'), + 'label' => $this->__("Positionnement relatif à l'interface"), 'grade' => 5); +// $this->forms['flashtabs'] = array('label' => $this->__('Onglets Flash'), // 'fieldsnames' => array('ongletsSWF', 'ongletsXML', '|', 'tabs2DSWF', 'flatTabsAbsolute')); - $this->fields['viewMode'] = array('type' => 'combo', 'default' => '0', 'editable' => false, 'label' => __("Mode de visualisation (beta)"), - 'datas' => array(__('Classique') => '0', - __("Diaporama") => '1', + $this->fields['viewMode'] = array('type' => 'combo', 'default' => '0', 'editable' => false, 'label' => $this->__("Mode de visualisation (beta)"), + 'datas' => array($this->__('Classique') => '0', + $this->__("Diaporama") => '1', ), 'grade' => 5); - $this->fields['mobileServerConfig'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => __('Inclure les fichiers de configuration serveur'), 'grade' => 3); - $this->fields['mobileIconVector'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => __('Utiliser les icônes vectorielles')); -// $this->forms['mobile'] = array('label' => __('Version HTML5'), + $this->fields['mobileServerConfig'] = array('type' => 'boolean', 'default' => false, 'editable' => false, 'label' => $this->__('Inclure les fichiers de configuration serveur'), 'grade' => 3); + $this->fields['mobileIconVector'] = array('type' => 'boolean', 'default' => true, 'editable' => false, 'label' => $this->__('Utiliser les icônes vectorielles')); +// $this->forms['mobile'] = array('label' => $this->__('Version HTML5'), // 'fieldsnames' => array('alwaysHTML5', 'html5priority', 'flashBlockedWait', 'mobileIconVector', 'mobileServerConfig')); $this->fields['externalArchivesBack'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Image de fond'), 'grade' => 3, 'fileFilter' => $imageFilter); - $this->fields['archivesLink'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Lien'), 'grade' => 5); - $this->fields['printMode'] = array('type' => 'combo', 'default' => 'vector', 'editable' => true, 'label' => __("Mode d'impression"), - 'datas' => array(__('Bitmap') => 'bitmap', - __('Vectoriel') => 'vector', - __('PDF') => 'pdf')); + 'label' => $this->__('Image de fond'), 'grade' => 3, 'fileFilter' => $imageFilter); + $this->fields['archivesLink'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Lien'), 'grade' => 5); + $this->fields['printMode'] = array('type' => 'combo', 'default' => 'vector', 'editable' => true, 'label' => $this->__("Mode d'impression"), + 'datas' => array($this->__('Bitmap') => 'bitmap', + $this->__('Vectoriel') => 'vector', + $this->__('PDF') => 'pdf')); /** **/ - $this->fields['title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de la publication"), 'embed' => false); - $this->fields['url_link'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __("URL du lien de retour au site")); - $this->fields['signature'] = array('type' => 'combo', 'default' => '1', 'editable' => true, 'label' => __('Signature'), 'grade' => 3, 'datas' => wsDroits::getSignatures()); - $this->forms['important'] = array('label' => __('Description de la publication'), + $this->fields['title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("Titre de la publication"), 'embed' => false); + $this->fields['url_link'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => $this->__("URL du lien de retour au site")); + $this->fields['signature'] = array('type' => 'combo', 'default' => '1', 'editable' => true, 'label' => $this->__('Signature'), 'grade' => 3, 'datas' => wsDroits::getSignatures()); + $this->forms['important'] = array('label' => $this->__('Description de la publication'), 'fieldsnames' => array('mobileLVersion', 'mobileVersion', 'title', 'url_link', 'signature')); // . // . - $this->fields['assetsDir'] = ['type' => 'text', 'label' => __('Utiliser le dossier d\'assets du fluidbook'), 'default' => '', 'editable' => true, 'grade' => 5]; - $this->fields['linksAssets'] = ['type' => 'freefile', 'label' => __('Charger ou remplacer des fichiers de liens'), 'default' => '', 'editable' => true, 'grade' => 3, 'multiple' => true]; + $this->fields['assetsDir'] = ['type' => 'text', 'label' => $this->__('Utiliser le dossier d\'assets du fluidbook'), 'default' => '', 'editable' => true, 'grade' => 5]; + $this->fields['linksAssets'] = ['type' => 'freefile', 'label' => $this->__('Charger ou remplacer des fichiers de liens'), 'default' => '', 'editable' => true, 'grade' => 3, 'multiple' => true]; $this->forms['assets'] = [ - 'label' => __('Assets'), + 'label' => $this->__('Assets'), 'fieldsnames' => ['assetsDir', 'linksAssets'] ]; /** * */ - $this->fields['stats'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer les statistiques Fluidbook'), 'grade' => 3); - $this->fields['googleAnalytics'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Code Google Analytics'), 'size' => 10); - $this->fields['googleTagManager'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Code Google Tag Manager'), 'size' => 10); + $this->fields['stats'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer les statistiques Fluidbook'), 'grade' => 3); + $this->fields['googleAnalytics'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Code Google Analytics'), 'size' => 10); + $this->fields['googleTagManager'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Code Google Tag Manager'), 'size' => 10); $this->forms['basicStats'] = [ - 'label' => __('Statistiques'), + 'label' => $this->__('Statistiques'), 'fieldsnames' => ['stats', 'googleAnalytics', 'googleTagManager'], ]; - $this->fields['email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'email") . ' "' . __('Envoyer à un ami') . '"', 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); - $this->fields['email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Corps de l'email") . ' "' . __('Envoyer à un ami') . '"', 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("Titre de l'email") . ' "' . $this->__('Envoyer à un ami') . '"', 'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__("Corps de l'email") . ' "' . $this->__('Envoyer à un ami') . '"', 'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut')); - $this->fields['facebook_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre du contenu partagé"), 'hint' => __('Titre proposé sur les fonction de partage (par défaut, titre de la publication)')); - $this->fields['facebook_description'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Description du contenu partagé"), 'grade' => 1, 'hint' => __('Description proposée sur les fonctions de partage (par défaut, vide)')); - $this->fields['twitter_description'] = array('type' => 'textarea', 'default' => '%title% : %short%', 'editable' => true, 'label' => __("Contenu Partage court"), 'hint' => __('Contenu du partagé sur les partages courts')); + $this->fields['facebook_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("Titre du contenu partagé"), 'hint' => $this->__('Titre proposé sur les fonction de partage (par défaut, titre de la publication)')); + $this->fields['facebook_description'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__("Description du contenu partagé"), 'grade' => 1, 'hint' => $this->__('Description proposée sur les fonctions de partage (par défaut, vide)')); + $this->fields['twitter_description'] = array('type' => 'textarea', 'default' => '%title% : %short%', 'editable' => true, 'label' => $this->__("Contenu Partage court"), 'hint' => $this->__('Contenu du partagé sur les partages courts')); $this->fields['facebook_image'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Miniature affichée'), 'fileFilter' => $imageFilter); + 'label' => $this->__('Miniature affichée'), 'fileFilter' => $imageFilter); - $this->fields['share'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer les fonctions de partage')); - $this->fields['friend'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('E-mail')); - $this->fields['facebook'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Facebook')); - $this->fields['twitter'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Twitter')); - $this->fields['whatsapp'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('WhatsApp')); - $this->fields['linkedin'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('LinkedIn')); - $this->fields['pinterest'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Pinterest')); + $this->fields['share'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer les fonctions de partage')); + $this->fields['friend'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('E-mail')); + $this->fields['facebook'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Facebook')); + $this->fields['twitter'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Twitter')); + $this->fields['whatsapp'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('WhatsApp')); + $this->fields['linkedin'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('LinkedIn')); + $this->fields['pinterest'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Pinterest')); - $this->forms['share'] = array('label' => __('Fonctions de partage'), + $this->forms['share'] = array('label' => $this->__('Fonctions de partage'), 'fieldsnames' => array('share', '|', 'email_title', 'email_body', 'email_editable', 'askAcknowledge', 'sendasfluidbook', 'email_mailto', '|', 'facebook_title', 'facebook_description', 'facebook_image', 'twitter_description', '|', 'friend', 'facebook', 'twitter', 'whatsapp', 'linkedin', 'pinterest', '|', 'googleplus', 'viadeo', '|', 'customSharer', '|', 'friendWidth', 'friendHeight')); //. - $this->fields['seoVersion'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Générer une version pour les moteurs de recherche')); - $this->fields['seoRobots'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Autoriser le parcours par les moteurs de recherche')); - $this->fields['seoDescription'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Meta tag Description')); - $this->fields['seoKeywords'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Meta tag Keywords')); - $this->fields['seoAdvanced'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Données SEO par page'), 'grade' => 5, 'fileFilter' => $seoFilter]; - $this->fields['seoBaseURL'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('URL de base'), 'grade' => 5); - - $this->forms['seo'] = array('label' => __('Optimisation pour les moteurs de recherche'), + $this->fields['seoVersion'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Générer une version pour les moteurs de recherche')); + $this->fields['seoRobots'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Autoriser le parcours par les moteurs de recherche')); + $this->fields['seoDescription'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Meta tag Description')); + $this->fields['seoKeywords'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Meta tag Keywords')); + $this->fields['seoAdvanced'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Données SEO par page'), 'grade' => 5, 'fileFilter' => $seoFilter]; + $this->fields['seoBaseURL'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('URL de base'), 'grade' => 5); + + $this->forms['seo'] = array('label' => $this->__('Optimisation pour les moteurs de recherche'), 'fieldsnames' => array('seoVersion', 'seoRobots', 'seoDescription', "seoKeywords", '|', 'seoBaseURL', 'seoAdvanced')); // . - $this->fields['pages'] = array('type' => 'integer', 'default' => 0, 'editable' => false, 'label' => __('Nombre de pages')); - $this->fields['width'] = array('type' => 'float', 'default' => 0, 'editable' => false, 'label' => __('Largeur')); - $this->fields['height'] = array('type' => 'float', 'default' => 0, 'editable' => false, 'label' => __('Hauteur')); + $this->fields['pages'] = array('type' => 'integer', 'default' => 0, 'editable' => false, 'label' => $this->__('Nombre de pages')); + $this->fields['width'] = array('type' => 'float', 'default' => 0, 'editable' => false, 'label' => $this->__('Largeur')); + $this->fields['height'] = array('type' => 'float', 'default' => 0, 'editable' => false, 'label' => $this->__('Hauteur')); // . - $this->fields['mobileTransitions'] = array('type' => 'combo', 'default' => 'flip3d', 'editable' => true, 'label' => __('Transitions entre les pages'), 'grade' => 3, - 'datas' => array(__('Aucune transition') => 'none', - __('Opacité') => 'fade', - __('Glisser') => 'slide', - __('Tourner (rigide)') => 'flip', - __('Tourner (souple)') => 'flip3d') + $this->fields['mobileTransitions'] = array('type' => 'combo', 'default' => 'flip3d', 'editable' => true, 'label' => $this->__('Transitions entre les pages'), 'grade' => 3, + 'datas' => array($this->__('Aucune transition') => 'none', + $this->__('Opacité') => 'fade', + $this->__('Glisser') => 'slide', + $this->__('Tourner (rigide)') => 'flip', + $this->__('Tourner (souple)') => 'flip3d') ); - $this->fields['mobileTransitionDuration'] = array('type' => 'float', 'default' => 0.5, 'editable' => true, 'label' => __('Durée de la transition')); - $this->fields['mobileTransitionDurationSlide'] = array('type' => 'float', 'default' => 0, 'editable' => true, 'label' => __('Durée de la transition (fade, slide)'), 'hint' => __('Laisser à zéro pour utiliser la valeur générale')); - $this->fields['mobileNavigationType'] = array('type' => 'combo', 'default' => 'book', 'editable' => true, 'label' => __('Mode de navigation'), 'grade' => 5, - 'datas' => array(__('Normal (automatique)') => 'book', - __('Normal (double page)') => 'landscape', - __('Normal (une page)') => 'portrait', - __('Mobile first') => 'mobilefirst', - __('Magazine tablette') => 'tab') + $this->fields['mobileTransitionDuration'] = array('type' => 'float', 'default' => 0.5, 'editable' => true, 'label' => $this->__('Durée de la transition')); + $this->fields['mobileTransitionDurationSlide'] = array('type' => 'float', 'default' => 0, 'editable' => true, 'label' => $this->__('Durée de la transition (fade, slide)'), 'hint' => $this->__('Laisser à zéro pour utiliser la valeur générale')); + $this->fields['mobileNavigationType'] = array('type' => 'combo', 'default' => 'book', 'editable' => true, 'label' => $this->__('Mode de navigation'), 'grade' => 5, + 'datas' => array($this->__('Normal (automatique)') => 'book', + $this->__('Normal (double page)') => 'landscape', + $this->__('Normal (une page)') => 'portrait', + $this->__('Mobile first') => 'mobilefirst', + $this->__('Magazine tablette') => 'tab') ); - $this->fields['forceWhiteBackground'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Ajouter un fond blanc aux pages')]; - $this->fields['rasterizePages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Ecraser les pages'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1); - - $this->fields['vectorPages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Conserver les pages en vecteur'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1); - $this->fields['extraXSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Marge supplémentaire horizontale'), 'grade' => 3); - $this->fields['mobileExtraXSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Marge supplémentaire horizontale'), 'grade' => 3); - $this->fields['extraYSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Marge supplémentaire verticale'), 'grade' => 3); - $this->fields['centerBook'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Centrer la publication sur les couvertures'), 'grade' => 2); - $this->fields['correctCenter'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Corriger les lignes blanches entre les pages'), 'grade' => 2); - $this->fields['maxResolution'] = array('type' => 'combo', 'default' => 300, 'editable' => true, 'datas' => array('300dpi' => 300, '150dpi' => 150, '125dpi' => 125, '100dpi' => 100), 'grade' => 2, 'label' => __('Résolution maximale des pages')); - $this->fields['JPEGQuality'] = array('type' => 'integer', 'default' => 85, 'editable' => true, 'grade' => 2, 'label' => __('Qualité JPEG')); - $this->fields['imageFormat'] = array('type' => 'combo', 'default' => 'jpg', 'editable' => true, 'datas' => array(/*__('Le plus léger') => 'best', */ - 'JPEG' => 'jpg', 'PNG' => 'png'), 'grade' => 2, 'label' => __('Format des images')); - $this->fields['svgToCanvas'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le rendu svgtocanvas')]; - $this->fields['svgToCanvasUpscale'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Upscale de la fonction svgtocanvas')]; - $this->fields['svgTextMethod'] = ['type' => 'combo', 'default' => 'pdftocairo', 'editable' => true, 'label' => __('Méthode d\'extraction des textes en SVG'), 'datas' => [__('Cairo') => 'pdf', __('Mu') => 'mu']]; - $this->fields['textsThickness'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Epaisseur des textes')]; - $this->fields['textsThicknessPages'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Appliquer l\'épaisseur des texte sur les pages')]; + $this->fields['forceWhiteBackground'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Ajouter un fond blanc aux pages')]; + $this->fields['rasterizePages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Ecraser les pages'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1); + + $this->fields['vectorPages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Conserver les pages en vecteur'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1); + $this->fields['extraXSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => $this->__('Marge supplémentaire horizontale'), 'grade' => 3); + $this->fields['mobileExtraXSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => $this->__('Marge supplémentaire horizontale'), 'grade' => 3); + $this->fields['extraYSpace'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => $this->__('Marge supplémentaire verticale'), 'grade' => 3); + $this->fields['centerBook'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Centrer la publication sur les couvertures'), 'grade' => 2); + $this->fields['correctCenter'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Corriger les lignes blanches entre les pages'), 'grade' => 2); + $this->fields['maxResolution'] = array('type' => 'combo', 'default' => 300, 'editable' => true, 'datas' => array('300dpi' => 300, '150dpi' => 150, '125dpi' => 125, '100dpi' => 100), 'grade' => 2, 'label' => $this->__('Résolution maximale des pages')); + $this->fields['JPEGQuality'] = array('type' => 'integer', 'default' => 85, 'editable' => true, 'grade' => 2, 'label' => $this->__('Qualité JPEG')); + $this->fields['imageFormat'] = array('type' => 'combo', 'default' => 'jpg', 'editable' => true, 'datas' => array(/*$this->__('Le plus léger') => 'best', */ + 'JPEG' => 'jpg', 'PNG' => 'png'), 'grade' => 2, 'label' => $this->__('Format des images')); + $this->fields['svgToCanvas'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer le rendu svgtocanvas')]; + $this->fields['svgToCanvasUpscale'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => $this->__('Upscale de la fonction svgtocanvas')]; + $this->fields['svgTextMethod'] = ['type' => 'combo', 'default' => 'pdftocairo', 'editable' => true, 'label' => $this->__('Méthode d\'extraction des textes en SVG'), 'datas' => [$this->__('Cairo') => 'pdf', $this->__('Mu') => 'mu']]; + $this->fields['textsThickness'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => $this->__('Epaisseur des textes')]; + $this->fields['textsThicknessPages'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Appliquer l\'épaisseur des texte sur les pages')]; $this->fields['dynamicBackgroundColor'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => 'Couleur de fond dynamique', 'grade' => 3]; - $this->forms['3d_mode'] = array('label' => __('Options de visualisation'), + $this->forms['3d_mode'] = array('label' => $this->__('Options de visualisation'), 'fieldsnames' => array('mobileNavigationType', '|', 'mobileTransitions', 'mobileTransitionDuration', 'mobileTransitionDurationSlide', '|', 'forceWhiteBackground', 'rasterizePages', 'vectorPages', 'visualisationMode', 'antialiasReading', 'correctCenter', 'pagesBaseAngle', 'centerBook', '|', 'extraXSpace', 'mobileExtraXSpace', 'extraYSpace', '|', 'viewMode', '|', 'dynamicBackgroundColor', '|', 'svgToCanvas', 'svgToCanvasUpscale', 'svgTextMethod', 'textsThickness', 'textsThicknessPages', '|', 'imageFormat', 'maxResolution', 'JPEGQuality')); - $this->fields['rasterizeOnSafari'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Ecraser les pages pour Safari (Mac OS)'), 'grade' => 1); - $this->fields['performance3DMode'] = array('type' => 'combo', 'datas' => [__('Tester la machine') => 'auto', - __('Haute') => 'highPerf', - __('Moyenne') => 'lowPerf', - __('Basse') => 'veryLowPerf'], 'default' => 'auto', 'editable' => true, 'label' => __('Performance de la 3D'), 'grade' => 1); - $this->forms['performances'] = ['label' => __('Performances'), + $this->fields['rasterizeOnSafari'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Ecraser les pages pour Safari (Mac OS)'), 'grade' => 1); + $this->fields['performance3DMode'] = array('type' => 'combo', 'datas' => [$this->__('Tester la machine') => 'auto', + $this->__('Haute') => 'highPerf', + $this->__('Moyenne') => 'lowPerf', + $this->__('Basse') => 'veryLowPerf'], 'default' => 'auto', 'editable' => true, 'label' => $this->__('Performance de la 3D'), 'grade' => 1); + $this->forms['performances'] = ['label' => $this->__('Performances'), 'fieldsnames' => ['rasterizeOnSafari', 'performance3DMode']]; - $this->fields['maxPages'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __("Nombre de pages maximal affiché à l'ouverture du fluidbook (pas de limite = 0)"), 'grade' => 3); + $this->fields['maxPages'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => $this->__("Nombre de pages maximal affiché à l'ouverture du fluidbook (pas de limite = 0)"), 'grade' => 3); - $this->fields['mobilePlugins'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Plugin'), 'grade' => 5); - $this->forms['general'] = array('label' => __('Fonctionnalités générales'), + $this->fields['mobilePlugins'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Plugin'), 'grade' => 5); + $this->forms['general'] = array('label' => $this->__('Fonctionnalités générales'), 'fieldsnames' => array('tooltipTimer', 'mobilePlugins', 'preload', 'maxPages', 'pages', 'width', 'height')); //. // - $this->fields['navOrder'] = array('type' => 'textarea', 'default' => 'index, chapters, search, print, friend, bookmark, pdf, notes, archives, basket, fullscreen, sound, 3d, extra, extra1, extra2, extra3, extra4, extra5, help, lang', 'editable' => true, 'label' => __('Ordre des icônes dans la nav'), 'grade' => 3); - $this->fields['navOrderH'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Ordre des icônes dans la nav') . ' (' . __('Si différente') . ')', 'grade' => 3); - $this->fields['menuBreakpoint'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Breakpoint burger menu'), 'hint' => 'Par défaut 1023px', 'grade' => 3); - $this->fields['mobileNavScale'] = array('type' => 'integer', 'default' => 100, 'editable' => true, 'label' => __('Taille du menu (en %)'), 'grade' => 3); - $this->forms['menu'] = array('label' => __('Menu'), 'fieldsnames' => ['navOrder', 'navOrderH', '|', 'mobileNavScale', 'menuBreakpoint', '|', 'afterSearchDisplayForHTML', '|']); + $this->fields['navOrder'] = array('type' => 'textarea', 'default' => 'index, chapters, search, print, friend, bookmark, pdf, notes, archives, basket, fullscreen, sound, 3d, extra, extra1, extra2, extra3, extra4, extra5, help, lang', 'editable' => true, 'label' => $this->__('Ordre des icônes dans la nav'), 'grade' => 3); + $this->fields['navOrderH'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Ordre des icônes dans la nav') . ' (' . $this->__('Si différente') . ')', 'grade' => 3); + $this->fields['menuBreakpoint'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Breakpoint burger menu'), 'hint' => 'Par défaut 1023px', 'grade' => 3); + $this->fields['mobileNavScale'] = array('type' => 'integer', 'default' => 100, 'editable' => true, 'label' => $this->__('Taille du menu (en %)'), 'grade' => 3); + $this->forms['menu'] = array('label' => $this->__('Menu'), 'fieldsnames' => ['navOrder', 'navOrderH', '|', 'mobileNavScale', 'menuBreakpoint', '|', 'afterSearchDisplayForHTML', '|']); - $this->fields['afterSearchDisplayForHTML'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher l\'image après le moteur de recherche sur la version HTML5'), 'grade' => 1); + $this->fields['afterSearchDisplayForHTML'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Afficher l\'image après le moteur de recherche sur la version HTML5'), 'grade' => 1); $extraNum = 5; for ($i = 0; $i <= $extraNum; $i++) { if ($i > 0) { $j = $i; - $this->fields['navExtraIcon' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Icône supplémentaire') . ' ' . $j, 'fileFilter' => $imageExtraFilter); - $this->fields['navExtraType' . $j] = array('type' => 'combo', 'datas' => $extraType, 'default' => 'icon', 'editable' => true, 'label' => __('Type')); - $this->fields['navExtraLink' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("URL") . ' ' . $j); - $this->fields['navExtraVisibility' . $j] = array('type' => 'combo', 'datas' => $extraVisibility, 'default' => 'both', 'editable' => true, 'label' => __("Visible") . ' ' . $j); + $this->fields['navExtraIcon' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Icône supplémentaire') . ' ' . $j, 'fileFilter' => $imageExtraFilter); + $this->fields['navExtraType' . $j] = array('type' => 'combo', 'datas' => $extraType, 'default' => 'icon', 'editable' => true, 'label' => $this->__('Type')); + $this->fields['navExtraLink' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("URL") . ' ' . $j); + $this->fields['navExtraVisibility' . $j] = array('type' => 'combo', 'datas' => $extraVisibility, 'default' => 'both', 'editable' => true, 'label' => $this->__("Visible") . ' ' . $j); $this->forms['menu']['fieldsnames'] = array_merge($this->forms['menu']['fieldsnames'], ['navExtraIcon' . $j, 'navExtraType' . $j, 'navExtraLink' . $j, 'navExtraVisibility' . $j, '|']); } else { $j = ''; - $this->fields['navExtraImage' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Image pour navigation'), 'fileFilter' => $imageExtraFilter); - $this->fields['navExtraImageMobile' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Image pour mobile'), 'fileFilter' => $imageExtraFilter); - $this->fields['navExtraLink' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("URL")); - $this->fields['navExtraTooltip' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Infobulle ou label")); + $this->fields['navExtraImage' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Image pour navigation'), 'fileFilter' => $imageExtraFilter); + $this->fields['navExtraImageMobile' . $j] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Image pour mobile'), 'fileFilter' => $imageExtraFilter); + $this->fields['navExtraLink' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("URL")); + $this->fields['navExtraTooltip' . $j] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("Infobulle ou label")); $this->forms['menu']['fieldsnames'] = array_merge($this->forms['menu']['fieldsnames'], ['navExtraImage' . $j, 'navExtraImageMobile' . $j, 'navExtraLink' . $j, 'navExtraTooltip' . $j, '|']); } } - $this->fields['mobileBottomNav'] = ['type' => 'text', 'default' => '', 'editable' => 'true', 'label' => __('Barre de boutons en bas'), 'hint' => __('Identifiants des boutons séparés par des virgules')]; + $this->fields['mobileBottomNav'] = ['type' => 'text', 'default' => '', 'editable' => 'true', 'label' => $this->__('Barre de boutons en bas'), 'hint' => $this->__('Identifiants des boutons séparés par des virgules')]; $this->forms['menu']['fieldsnames'][] = 'mobileBottomNav'; - $this->fields['landingPage'] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Landing Page content'), 'grade' => 3); - $this->forms['landing'] = array('label' => __('Custom Landing Page'), 'fieldsnames' => array('landingPage')); + $this->fields['landingPage'] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Landing Page content'), 'grade' => 3); + $this->forms['landing'] = array('label' => $this->__('Custom Landing Page'), 'fieldsnames' => array('landingPage')); - $this->fields['fullscreen'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le mode plein-écran')); - $this->fields['fullscreenAuto'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Lancer la publication en mode plein écran (lorsque possible)')); - $this->forms['fs'] = array('label' => __('Plein écran'), + $this->fields['fullscreen'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer le mode plein-écran')); + $this->fields['fullscreenAuto'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Lancer la publication en mode plein écran (lorsque possible)')); + $this->forms['fs'] = array('label' => $this->__('Plein écran'), 'fieldsnames' => array('fullscreen', 'fullscreenAuto')); - $this->fields['bookmark'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer les marques-pages')); - $this->fields['bookmarkView'] = array('type' => 'combo', 'datas' => [__('Réduit') => 'small', __('Complet') => 'large'], 'default' => 'small', 'editable' => true, 'label' => __('Menu des marques-pages')); - $this->fields['bookmarkEmpty'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Bouton pour effacer les marques-pages")); - $this->fields['bookmarkFunctionsMainMenu'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Fonctions vers menus généraux'), 'hint' => __('Les fonctions des marques pages (Télécharger, Imprimer, Envoyer) dirigent vers les menus généraux')); - $this->fields['bookmarkDisablePages'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Désactiver les marques-pages sur ces pages'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1]; - $this->fields['bookmarkSendEnable'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer l'envoi des marques-pages par e-mail")); - $this->fields['bookmarkPrint'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Activer l'impression des marques-pages")); - $this->fields['bookmark_email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'email") . ' "' . __('Envoyer à un ami') . '"', 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); - $this->fields['bookmark_email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Corps de l'email") . ' "' . __('Envoyer à un ami') . '"', 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); - $this->fields['bookmarkCornerSize'] = array('type' => 'integer', 'default' => 8, 'editable' => true, 'label' => __("Taille des marques-pages"), 'hint' => __('Taille relative à la largeur de la page')); - $this->fields['bookmarkOffset'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __("Décaler de x pixels vers l'intérieur")); - $this->fields['bookmarkBlinkOnPageChange'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Faire clignoter le marque page à l\'apparition de la page')); - $this->fields['bookmarkPermanentIcon'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Afficher l\'icône en permanance')]; - $this->fields['bookmarkUsePDF'] = array('type' => 'combo', 'default' => 'pages', 'editable' => true, 'label' => __('PDF à utiliser pour l\'envoi ou le téléchargement de pages marquées'), - 'datas' => [__('PDF des pages') => 'pages', - __('PDF de remplacement') => 'download', - __('PDF des miniatures') => 'thumbnails']); - $this->forms['bookmark'] = array('label' => __('Marques-pages'), + $this->fields['bookmark'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer les marques-pages')); + $this->fields['bookmarkView'] = array('type' => 'combo', 'datas' => [$this->__('Réduit') => 'small', $this->__('Complet') => 'large'], 'default' => 'small', 'editable' => true, 'label' => $this->__('Menu des marques-pages')); + $this->fields['bookmarkEmpty'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Bouton pour effacer les marques-pages")); + $this->fields['bookmarkFunctionsMainMenu'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Fonctions vers menus généraux'), 'hint' => $this->__('Les fonctions des marques pages (Télécharger, Imprimer, Envoyer) dirigent vers les menus généraux')); + $this->fields['bookmarkDisablePages'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Désactiver les marques-pages sur ces pages'), 'hint' => '1-3,5 = 1,2,3,5', 'grade' => 1]; + $this->fields['bookmarkSendEnable'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Activer l'envoi des marques-pages par e-mail")); + $this->fields['bookmarkPrint'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Activer l'impression des marques-pages")); + $this->fields['bookmark_email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("Titre de l'email") . ' "' . $this->__('Envoyer à un ami') . '"', 'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['bookmark_email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__("Corps de l'email") . ' "' . $this->__('Envoyer à un ami') . '"', 'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['bookmarkCornerSize'] = array('type' => 'integer', 'default' => 8, 'editable' => true, 'label' => $this->__("Taille des marques-pages"), 'hint' => $this->__('Taille relative à la largeur de la page')); + $this->fields['bookmarkOffset'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => $this->__("Décaler de x pixels vers l'intérieur")); + $this->fields['bookmarkBlinkOnPageChange'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Faire clignoter le marque page à l\'apparition de la page')); + $this->fields['bookmarkPermanentIcon'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Afficher l\'icône en permanance')]; + $this->fields['bookmarkUsePDF'] = array('type' => 'combo', 'default' => 'pages', 'editable' => true, 'label' => $this->__('PDF à utiliser pour l\'envoi ou le téléchargement de pages marquées'), + 'datas' => [$this->__('PDF des pages') => 'pages', + $this->__('PDF de remplacement') => 'download', + $this->__('PDF des miniatures') => 'thumbnails']); + $this->forms['bookmark'] = array('label' => $this->__('Marques-pages'), 'fieldsnames' => array('bookmark', 'bookmarkView', 'bookmarkFunctionsMainMenu', 'bookmarkEmpty', '|', 'bookmarkSendEnable', 'bookmark_email_title', 'bookmark_email_body', '|', 'bookmarkPrint', '|', 'bookmarkCornerSize', 'bookmarkOffset', 'bookmarkPermanentIcon', 'bookmarkBlinkOnPageChange', '|', 'bookmarkDisablePages', 'bookmarkUsePDF')); - $this->fields['help'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer l'aide")); - $this->fields['helpBookmarks'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Améliorer l'aide des marques-pages")); - $this->fields['helpStartup'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Afficher l'aide au démarrage")); - $this->fields['helpStartupTime'] = array('type' => 'integer', 'default' => 15, 'editable' => true, 'label' => __("Temps d'affichage en secondes")); - $this->fields['helpArrowTooltip'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Bulle affichée au niveau de la flèche de droite'), 'grade' => 5); - $this->fields['landscapeWarning'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Avertissement affiché sur mobile au chargement de la publication'), 'grade' => 5, 'embed' => false]; - $this->forms['help'] = array('label' => __('Aide'), + $this->fields['help'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Activer l'aide")); + $this->fields['helpBookmarks'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Améliorer l'aide des marques-pages")); + $this->fields['helpStartup'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Afficher l'aide au démarrage")); + $this->fields['helpStartupTime'] = array('type' => 'integer', 'default' => 15, 'editable' => true, 'label' => $this->__("Temps d'affichage en secondes")); + $this->fields['helpArrowTooltip'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Bulle affichée au niveau de la flèche de droite'), 'grade' => 5); + $this->fields['landscapeWarning'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Avertissement affiché sur mobile au chargement de la publication'), 'grade' => 5, 'embed' => false]; + $this->forms['help'] = array('label' => $this->__('Aide'), 'fieldsnames' => array('help', '|', 'helpStartup', 'helpStartupTime', '|', 'helpBookmarks', '|', 'helpArrowTooltip', '|', 'landscapeWarning')); // . // $this->fields['pdfThumbnails'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('PDF utilisé pour générer les miniatures'), 'grade' => 1, 'fileFilter' => $pdfFilter); - $this->fields['indexMessage'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Message en haut"), 'grade' => 1, 'hint' => __('Message en haut de la vue index')); + 'label' => $this->__('PDF utilisé pour générer les miniatures'), 'grade' => 1, 'fileFilter' => $pdfFilter); + $this->fields['indexMessage'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__("Message en haut"), 'grade' => 1, 'hint' => $this->__('Message en haut de la vue index')); - $this->forms['index'] = array('label' => __('Vue d\'index (vignettes)'), 'fieldsnames' => array('indexAutoScroll', 'pdfThumbnails', 'indexMessage')); + $this->forms['index'] = array('label' => $this->__('Vue d\'index (vignettes)'), 'fieldsnames' => array('indexAutoScroll', 'pdfThumbnails', 'indexMessage')); // . // - $this->fields['print'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer l'impression")); - $this->fields['printFullBrochure'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Autoriser l'impression de la brochure complète")); - $this->fields['printPageRange'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Activer l'option pour imprimer une plage de pages")); + $this->fields['print'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Activer l'impression")); + $this->fields['printFullBrochure'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Autoriser l'impression de la brochure complète")); + $this->fields['printPageRange'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Activer l'option pour imprimer une plage de pages")); - $this->forms['print'] = array('label' => __('Impression'), + $this->forms['print'] = array('label' => $this->__('Impression'), 'fieldsnames' => array('print', 'printFullBrochure', 'printPageRange')); - $this->fields['search'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le moteur de recherche')); - $this->fields['searchFullBurger'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Afficher le burger menu complet à l\'ouverture de la recheche')); - $this->fields['highlightResults'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Surligner les résultats')); - $this->fields['highlightAllOccurences'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Surligner toutes les occurences'), 'hint' => __('Même sur les pages non considérées comme un résultat')); - $this->fields['ignoreSearch'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Mots à ignorer'), - 'hint' => __('Liste des mots à ignorer séparés par des virgules'), 'grade' => 5); - $this->fields['ignoreSearchSeparators'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Caractères à ne pas considérer comme un séparateur de mot')); - $this->fields['ignoreWordLimit'] = ['type' => 'integer', 'default' => 3, 'editable' => true, 'label' => __('Ignorer les mots de moins de X caractères')]; - $this->fields['textExtraction'] = array('type' => 'combo', 'default' => 'pdfbox', 'editable' => true, 'label' => __("Méthode d'extraction des textes"), - 'datas' => array(__('PDFBox') => 'pdfbox', - __('Poppler') => 'poppler', - __('Fluidbook (expérimentation basée sur PDFBox)') => 'fluidbook')); - $this->fields['searchShowNoResultsPages'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Afficher les pages sans résultats")); + $this->fields['search'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer le moteur de recherche')); + $this->fields['searchFullBurger'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Afficher le burger menu complet à l\'ouverture de la recheche')); + $this->fields['highlightResults'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Surligner les résultats')); + $this->fields['highlightAllOccurences'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Surligner toutes les occurences'), 'hint' => $this->__('Même sur les pages non considérées comme un résultat')); + $this->fields['ignoreSearch'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Mots à ignorer'), + 'hint' => $this->__('Liste des mots à ignorer séparés par des virgules'), 'grade' => 5); + $this->fields['ignoreSearchSeparators'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Caractères à ne pas considérer comme un séparateur de mot')); + $this->fields['ignoreWordLimit'] = ['type' => 'integer', 'default' => 3, 'editable' => true, 'label' => $this->__('Ignorer les mots de moins de X caractères')]; + $this->fields['textExtraction'] = array('type' => 'combo', 'default' => 'pdfbox', 'editable' => true, 'label' => $this->__("Méthode d'extraction des textes"), + 'datas' => array($this->__('PDFBox') => 'pdfbox', + $this->__('Poppler') => 'poppler', + $this->__('Fluidbook (expérimentation basée sur PDFBox)') => 'fluidbook')); + $this->fields['searchShowNoResultsPages'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Afficher les pages sans résultats")); $this->fields['searchPageSelectionAlgorithm'] = array('type' => 'combo', 'editable' => true, 'default' => 'AND', - 'datas' => [__('les double-pages qui contiennent tous les mots recherchés (ET logique)') => 'AND', __('les double-page qui contiennent un des mots recherché (OU logique)') => 'OR'], 'label' => __('Algorithme de sélection des résultats')); + 'datas' => [$this->__('les double-pages qui contiennent tous les mots recherchés (ET logique)') => 'AND', $this->__('les double-page qui contiennent un des mots recherché (OU logique)') => 'OR'], 'label' => $this->__('Algorithme de sélection des résultats')); $this->fields['searchWordSelectionAlgorithm'] = array('type' => 'combo', 'editable' => true, 'default' => 'begins', - 'datas' => [__('mot commençant par la requête') => 'begins', __('mot correspondant exactement à la requête') => 'exact', __('mot contenant la requête') => 'contains', __('expression exacte') => 'expression'], - 'label' => __('Algorithme de sélection des occurences')); + 'datas' => [$this->__('mot commençant par la requête') => 'begins', $this->__('mot correspondant exactement à la requête') => 'exact', $this->__('mot contenant la requête') => 'contains', $this->__('expression exacte') => 'expression'], + 'label' => $this->__('Algorithme de sélection des occurences')); - $this->forms['search'] = array('label' => __('Moteur de recherche'), + $this->forms['search'] = array('label' => $this->__('Moteur de recherche'), 'fieldsnames' => array('search', '|', 'searchFullBurger', '|', 'ignoreWordLimit', 'ignoreSearch', 'ignoreSearchSeparators', '|', 'searchWordSelectionAlgorithm', 'searchPageSelectionAlgorithm', '|', 'highlightResults', 'highlightAllOccurences', '|', 'searchShowNoResultsPages', '|', 'textExtraction')); - $this->fields['soundTheme'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => __("Thème sonore"), - 'datas' => array(__('Pas de son') => '', - __('Classique') => 'classic', - __("Papier épais") => 'heavy', - __("Papier fin") => 'light', - __("Silencieux") => 'silent', - __('Woosh') => 'woosh')); - $this->fields['soundOn'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer les effets sonores à l'ouverture")); - $this->forms['sound'] = array('label' => __('Effets sonores'), + $this->fields['soundTheme'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => $this->__("Thème sonore"), + 'datas' => array($this->__('Pas de son') => '', + $this->__('Classique') => 'classic', + $this->__("Papier épais") => 'heavy', + $this->__("Papier fin") => 'light', + $this->__("Silencieux") => 'silent', + $this->__('Woosh') => 'woosh')); + $this->fields['soundOn'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Activer les effets sonores à l'ouverture")); + $this->forms['sound'] = array('label' => $this->__('Effets sonores'), 'fieldsnames' => array('soundTheme', 'soundOn', '|', 'ambientSound', 'ambientSoundVolume')); // . - $this->fields['pdf'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Activer les fonctions de téléchargement")); - $this->fields['pdfName'] = array('type' => 'text', 'default' => 'document.pdf', 'editable' => true, 'label' => __("Nom du fichier PDF")); - $this->fields['pdfComplex'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Téchargement de PDF avancé'), "hint" => __("Permet à l'utilisateur de sélectionner les pages qu'il souhaite télécharger"), 'grade' => 3); - $this->fields['pdfComplexShowCurrent'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher les pages courrantes'), 'grade' => 3); - $this->fields['pdfCompress'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Compression du fichier PDF')); + $this->fields['pdf'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Activer les fonctions de téléchargement")); + $this->fields['pdfName'] = array('type' => 'text', 'default' => 'document.pdf', 'editable' => true, 'label' => $this->__("Nom du fichier PDF")); + $this->fields['pdfComplex'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Téchargement de PDF avancé'), "hint" => $this->__("Permet à l'utilisateur de sélectionner les pages qu'il souhaite télécharger"), 'grade' => 3); + $this->fields['pdfComplexShowCurrent'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Afficher les pages courrantes'), 'grade' => 3); + $this->fields['pdfCompress'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Compression du fichier PDF')); $this->fields['pdfReplace'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('PDF de remplacement'), 'grade' => 3, 'fileFilter' => $pdfFilter); - $this->forms['downloadpdf'] = array('label' => __('Fonction de téléchargement'), + 'label' => $this->__('PDF de remplacement'), 'grade' => 3, 'fileFilter' => $pdfFilter); + $this->forms['downloadpdf'] = array('label' => $this->__('Fonction de téléchargement'), 'fieldsnames' => array('pdf', 'pdfName', 'pdfReplace', 'pdfCompress', '|', 'pdfComplex', 'pdfComplexShowCurrent')); // . - $this->fields['zoom'] = array('type' => 'integer', 'default' => 200, 'editable' => true, 'label' => __('Zoom par défaut (atteint au clic)')); - $this->fields['zoomw'] = array('type' => 'integer', 'default' => 300, 'editable' => true, 'label' => __("Zoom maximal (atteint à l'aide de la molette)")); - $this->fields['hideHeaderOnZoom'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher le menu lors du zoom')]; - $this->fields['zoomMouseMoveMode'] = ['type' => 'combo', 'default' => 'move', 'editable' => true, 'label' => __('Mode de déplacement des pages zoomées (souris)'), - 'datas' => [__('Bouger la souris') => 'move', __('Drag & drop') => __('dragndrop')]]; - $this->fields['zoomWheel'] = ['type' => 'combo', 'default' => 'wheel', 'editable' => true, 'label' => __('Zoom molette'), 'datas' => [ - __('Désactivé') => 'disabled', - __('Molette') => 'wheel', - __('Ctrl+Molette') => 'ctrlwheel', + $this->fields['zoom'] = array('type' => 'integer', 'default' => 200, 'editable' => true, 'label' => $this->__('Zoom par défaut (atteint au clic)')); + $this->fields['zoomw'] = array('type' => 'integer', 'default' => 300, 'editable' => true, 'label' => $this->__("Zoom maximal (atteint à l'aide de la molette)")); + $this->fields['hideHeaderOnZoom'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Cacher le menu lors du zoom')]; + $this->fields['zoomMouseMoveMode'] = ['type' => 'combo', 'default' => 'move', 'editable' => true, 'label' => $this->__('Mode de déplacement des pages zoomées (souris)'), + 'datas' => [$this->__('Bouger la souris') => 'move', $this->__('Drag & drop') => $this->__('dragndrop')]]; + $this->fields['zoomWheel'] = ['type' => 'combo', 'default' => 'wheel', 'editable' => true, 'label' => $this->__('Zoom molette'), 'datas' => [ + $this->__('Désactivé') => 'disabled', + $this->__('Molette') => 'wheel', + $this->__('Ctrl+Molette') => 'ctrlwheel', ]]; - $this->fields['zoomClick'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cliquer sur les pages pour zoomer')]; - $this->forms['zoom'] = array('label' => __('Zoom'), + $this->fields['zoomClick'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Cliquer sur les pages pour zoomer')]; + $this->forms['zoom'] = array('label' => $this->__('Zoom'), 'fieldsnames' => array('zoomClick', 'zoomWheel', '|', 'zoom', 'zoomw', '|', 'zoomMouseMoveMode', 'hideHeaderOnZoom')); // . $this->fields['sliderImage'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Image pour le slider'), 'grade' => 3, 'fileFilter' => $imageExtraFilter); + 'label' => $this->__('Image pour le slider'), 'grade' => 3, 'fileFilter' => $imageExtraFilter); - $this->forms['slider'] = ['label' => __('Slider'), + $this->forms['slider'] = ['label' => $this->__('Slider'), 'fieldsnames' => ['sliderImage'], ]; - $this->fields['stats_score'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher les scores dans les rapports'), 'grade' => 5); - $this->fields['stats_exclude_ip'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Exclure les IP suivantes des statistiques'), 'grade' => 3, 'hint' => sprintf(__('Indiquer une adresse ip de la forme %s par ligne'), 'www.xxx.yyy.zzz')); - $this->fields['relay_url_params'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Relayer les paramètres d\'url dans les liens sortants'), 'grade' => 3]; - $this->fields['gtag_additional_code'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code additionnel Google Tag Manager')); - $this->fields['googleAnalyticsCustom'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code Stats personnalisé (placé avant fermeture de head)')); - $this->fields['statsCustom'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code Stats personnalisé (placé avant fermeture du body)')); - $this->fields['xiti'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code XiTi global')); - $this->fields['xiti_page'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Modèle code xiti (pour tags relatifs aux pages)')); + $this->fields['stats_score'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Afficher les scores dans les rapports'), 'grade' => 5); + $this->fields['stats_exclude_ip'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Exclure les IP suivantes des statistiques'), 'grade' => 3, 'hint' => sprintf($this->__('Indiquer une adresse ip de la forme %s par ligne'), 'www.xxx.yyy.zzz')); + $this->fields['relay_url_params'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Relayer les paramètres d\'url dans les liens sortants'), 'grade' => 3]; + $this->fields['gtag_additional_code'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Code additionnel Google Tag Manager')); + $this->fields['googleAnalyticsCustom'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Code Stats personnalisé (placé avant fermeture de head)')); + $this->fields['statsCustom'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Code Stats personnalisé (placé avant fermeture du body)')); + $this->fields['xiti'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Code XiTi global')); + $this->fields['xiti_page'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Modèle code xiti (pour tags relatifs aux pages)')); $this->fields['tagcommander_id'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => 'Tag commander ID', 'grade' => 3]; $this->fields['tagcommander_scriptname'] = ['type' => 'text', 'default' => 'tc_Multisite_Head.js,tc_Multisite_Analytics.js,tc_Multisite_Medias.js', 'editable' => true, 'label' => 'Nom du script Tagcommander', 'grade' => 3]; $this->fields['tagcommander_prod'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => 'Production', 'grade' => 3]; $this->fields['tagcommander_plan'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => 'Plan de taggage "Tag commander"', 'grade' => 3]; $this->fields['tagcommander_default_vars'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => 'Variables par défaut', 'grade' => 3]; - $this->fields['anchorsAliases'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Alias des ancres')]; - $this->forms['stats'] = array('label' => __('Statistiques avancées'), + $this->fields['anchorsAliases'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Alias des ancres')]; + $this->forms['stats'] = array('label' => $this->__('Statistiques avancées'), 'fieldsnames' => array('tagcommander_id', 'tagcommander_scriptname', 'tagcommander_prod', 'tagcommander_plan', 'tagcommander_default_vars', 'anchorsAliases', '|', 'stats_score', 'stats_exclude_ip', '|', 'relay_url_params', '|', 'gtag_additional_code', '|', 'googleAnalyticsCustom', 'statsCustom', '|', 'xiti', 'xiti_page')); - $this->fields['displayChaptersPopup'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Always display chapters in a popup'), 'grade' => 1); - $this->fields['displayChaptersIcon'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Affiche l'icône du sommaire"), 'grade' => 1); - $this->fields['chaptersCaptionDisplay'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Afficher le titre "Sommaire" dans la popup'), 'grade' => 3]; - $this->fields['chaptersFontSize'] = ['type' => 'integer', 'default' => 100, 'min' => 50, 'max' => 120, 'editable' => true, 'label' => __('Taille du texte des élements du sommaire'), 'hint' => 'En % par rapport à la taille normale', 'grade' => 3]; - $this->fields['chaptersPage'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Faire pointer le sommaire sur la page'), 'grade' => 3, 'hint' => __('Laisser vide pour utiliser le sommaire classique'), 'size' => 5); - $this->fields['displayChaptersAtStart'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Afficher le sommaire au chargement de la publication"), 'grade' => 3); - $this->fields['chaptersColumns'] = array('type' => 'integer', 'default' => 1, 'editable' => true, 'label' => __('Afficher le sommaire sur x colonne(s)'), 'grade' => 3); - $this->fields['chaptersColMaxWidth'] = array('type' => 'integer', 'default' => 300, 'editable' => true, 'label' => __("Largeur max d'une colonne"), 'grade' => 3); - $this->fields['chaptersLevelLimit'] = array('type' => 'integer', 'default' => 5, 'editable' => true, 'label' => __('Limiter à x niveaux')); - $this->fields['chaptersIndent'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Indenter les éléments (pour les sommaires à plat)')]; + $this->fields['displayChaptersPopup'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Always display chapters in a popup'), 'grade' => 1); + $this->fields['displayChaptersIcon'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Affiche l'icône du sommaire"), 'grade' => 1); + $this->fields['chaptersCaptionDisplay'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Afficher le titre "Sommaire" dans la popup'), 'grade' => 3]; + $this->fields['chaptersFontSize'] = ['type' => 'integer', 'default' => 100, 'min' => 50, 'max' => 120, 'editable' => true, 'label' => $this->__('Taille du texte des élements du sommaire'), 'hint' => 'En % par rapport à la taille normale', 'grade' => 3]; + $this->fields['chaptersPage'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Faire pointer le sommaire sur la page'), 'grade' => 3, 'hint' => $this->__('Laisser vide pour utiliser le sommaire classique'), 'size' => 5); + $this->fields['displayChaptersAtStart'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Afficher le sommaire au chargement de la publication"), 'grade' => 3); + $this->fields['chaptersColumns'] = array('type' => 'integer', 'default' => 1, 'editable' => true, 'label' => $this->__('Afficher le sommaire sur x colonne(s)'), 'grade' => 3); + $this->fields['chaptersColMaxWidth'] = array('type' => 'integer', 'default' => 300, 'editable' => true, 'label' => $this->__("Largeur max d'une colonne"), 'grade' => 3); + $this->fields['chaptersLevelLimit'] = array('type' => 'integer', 'default' => 5, 'editable' => true, 'label' => $this->__('Limiter à x niveaux')); + $this->fields['chaptersIndent'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Indenter les éléments (pour les sommaires à plat)')]; $this->fields['externalChaptersHTML'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Sommaire personnalisé'), 'grade' => 3, 'fileFilter' => $multimediaFilter, 'hint' => __('Laisser vide pour utiliser le sommaire classique')); - $this->fields['mobileChaptersStyle'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => __('Style des chapitres') - , 'datas' => array(__('Classique') => 'classic', - __('INA') => 'ina')); - $this->fields['chaptersPagesNumber'] = array('type' => 'combo', 'default' => 'virtual', 'editable' => true, 'label' => __('Numérotation du sommaire'), 'datas' => $pagesNumbers); - $this->fields['chaptersCascade'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Sommaire en cascade"), 'grade' => 3); - - $this->forms['sommaire'] = array('label' => __('Sommaire'), + 'label' => $this->__('Sommaire personnalisé'), 'grade' => 3, 'fileFilter' => $multimediaFilter, 'hint' => $this->__('Laisser vide pour utiliser le sommaire classique')); + $this->fields['mobileChaptersStyle'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => $this->__('Style des chapitres') + , 'datas' => array($this->__('Classique') => 'classic', + $this->__('INA') => 'ina')); + $this->fields['chaptersPagesNumber'] = array('type' => 'combo', 'default' => 'virtual', 'editable' => true, 'label' => $this->__('Numérotation du sommaire'), 'datas' => $pagesNumbers); + $this->fields['chaptersCascade'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Sommaire en cascade"), 'grade' => 3); + + $this->forms['sommaire'] = array('label' => $this->__('Sommaire'), 'fieldsnames' => array('chaptersCaptionDisplay', 'chaptersFontSize', '|', 'displayChaptersIcon', 'displayChaptersPopup', 'displayChaptersAtStart', 'chaptersPage', 'chaptersPosition', 'chaptersLevelLimit', 'chaptersCascade', 'chaptersPagesNumber', '|', 'chaptersColMaxWidth', 'chaptersColumns', 'displayChaptersLine', 'chaptersIndent', '|', 'externalChaptersHTML', '|', 'mobileChaptersStyle')); // . $this->fields['tabsHTML5'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Fichier d\'onglets') . ' (SVG, ZIP)', 'grade' => 3, 'hint' => __('Charger un zip rendra les options ci-dessous inopérantes'), 'fileFilter' => $tabsFilter); - $this->fields['tabsSide'] = ['type' => 'combo', 'label' => __('Position des onglets'), 'editable' => true, 'default' => 'right', 'grade' => 5, + 'label' => $this->__('Fichier d\'onglets') . ' (SVG, ZIP)', 'grade' => 3, 'hint' => $this->__('Charger un zip rendra les options ci-dessous inopérantes'), 'fileFilter' => $tabsFilter); + $this->fields['tabsSide'] = ['type' => 'combo', 'label' => $this->__('Position des onglets'), 'editable' => true, 'default' => 'right', 'grade' => 5, 'datas' => [ - __('Gauche') => 'left', - __('Droite') => 'right', + $this->__('Gauche') => 'left', + $this->__('Droite') => 'right', ] ]; $this->fields['tabsPriority'] = ['type' => 'integer', 'min' => 0, 'max' => 100, 'default' => 15, 'editable' => true, 'label' => 'Priorité des onglets sur les contenus (%)', 'hint' => 'La valeur indique la réduction permise de la taille de la publication.']; - $this->fields['tabsPages'] = ['type' => 'text', 'label' => __('Pages des onglets'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => __('Numéros de pages séparas par une virgule')]; - $this->fields['tabsSections'] = ['type' => 'text', 'label' => __('Sections des onglets'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => __('Numéros de pages séparés par une virgule')]; - $this->fields['tabsPagesNumbers'] = ['type' => 'combo', 'label' => __('Numérotation utilisée'), 'editable' => true, 'default' => 'virtual', 'grade' => 5, 'datas' => $pagesNumbers]; - $this->fields['tabsHideOnPages'] = ['type' => 'text', 'label' => __('Cacher les onglets sur les pages'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => '1-3,5 = 1,2,3,5']; - $this->fields['tabsDisabledOnPages'] = ['type' => 'text', 'label' => __('Onglets inactifs sur les pages'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => '1-3,5 = 1,2,3,5']; - $this->fields['tabsHideOnCover'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Cacher les onglets sur la couverture'), 'grade' => 5]; - $this->fields['tabsHideOnLastPage'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher les onglets sur la dernière page'), 'grade' => 5]; - $this->fields['tabsHideOnPortrait'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher les onglets lorsque le fluidbook est en mode portrait'), 'grade' => 5]; - $this->fields['tabsHideOnZoom'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher les onglets lorsque le fluidbook est zoomé'), 'grade' => 5]; - $this->fields['tabsHideWhenOverlapingArrows'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Cacher les onglets lorsqu\'ils passent sous les flèches de navigation'), 'grade' => 5]; - $this->fields['tabsHideEdges'] = ['type' => 'combo', 'label' => __('Masquer les bordures du fluidbook'), 'editable' => true, 'default' => 'right', 'grade' => 5, + $this->fields['tabsPages'] = ['type' => 'text', 'label' => $this->__('Pages des onglets'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => $this->__('Numéros de pages séparas par une virgule')]; + $this->fields['tabsSections'] = ['type' => 'text', 'label' => $this->__('Sections des onglets'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => $this->__('Numéros de pages séparés par une virgule')]; + $this->fields['tabsPagesNumbers'] = ['type' => 'combo', 'label' => $this->__('Numérotation utilisée'), 'editable' => true, 'default' => 'virtual', 'grade' => 5, 'datas' => $pagesNumbers]; + $this->fields['tabsHideOnPages'] = ['type' => 'text', 'label' => $this->__('Cacher les onglets sur les pages'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => '1-3,5 = 1,2,3,5']; + $this->fields['tabsDisabledOnPages'] = ['type' => 'text', 'label' => $this->__('Onglets inactifs sur les pages'), 'editable' => true, 'default' => '', 'grade' => 5, 'hint' => '1-3,5 = 1,2,3,5']; + $this->fields['tabsHideOnCover'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Cacher les onglets sur la couverture'), 'grade' => 5]; + $this->fields['tabsHideOnLastPage'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Cacher les onglets sur la dernière page'), 'grade' => 5]; + $this->fields['tabsHideOnPortrait'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Cacher les onglets lorsque le fluidbook est en mode portrait'), 'grade' => 5]; + $this->fields['tabsHideOnZoom'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Cacher les onglets lorsque le fluidbook est zoomé'), 'grade' => 5]; + $this->fields['tabsHideWhenOverlapingArrows'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Cacher les onglets lorsqu\'ils passent sous les flèches de navigation'), 'grade' => 5]; + $this->fields['tabsHideEdges'] = ['type' => 'combo', 'label' => $this->__('Masquer les bordures du fluidbook'), 'editable' => true, 'default' => 'right', 'grade' => 5, 'datas' => [ - __('Aucune') => 'none', - __('Gauche') => 'left', - __('Droite') => 'right', - __('Les deux') => 'both', + $this->__('Aucune') => 'none', + $this->__('Gauche') => 'left', + $this->__('Droite') => 'right', + $this->__('Les deux') => 'both', ] ]; - $this->fields['tabsMargin'] = ['type' => 'float', 'label' => __('Marge des onglets'), 'editable' => true, 'default' => -10, 'grade' => 5, 'hint' => __('Une marge négative = les onglets passent sous la publication')]; - $this->fields['tabsLinkWidth'] = ['type' => 'float', 'label' => __('Largeur des onglets'), 'editable' => true, 'default' => 30, 'grade' => 5, 'hint' => __('Largeur réservée pour les onglets et largeur de la zone cliquable des liens')]; - $this->forms['tabs'] = ['label' => __('Onglets'), + $this->fields['tabsMargin'] = ['type' => 'float', 'label' => $this->__('Marge des onglets'), 'editable' => true, 'default' => -10, 'grade' => 5, 'hint' => $this->__('Une marge négative = les onglets passent sous la publication')]; + $this->fields['tabsLinkWidth'] = ['type' => 'float', 'label' => $this->__('Largeur des onglets'), 'editable' => true, 'default' => 30, 'grade' => 5, 'hint' => $this->__('Largeur réservée pour les onglets et largeur de la zone cliquable des liens')]; + $this->forms['tabs'] = ['label' => $this->__('Onglets'), 'fieldsnames' => ['tabsHTML5', 'tabsPages', 'tabsSections', 'tabsPagesNumbers', 'tabsDisabledOnPages', '|', 'tabsSide', 'tabsMargin', '|', 'tabsHideOnPages', 'tabsHideOnCover', 'tabsHideOnLastPage', 'tabsHideEdges', '|', 'tabsPriority', 'tabsLinkWidth', 'tabsHideWhenOverlapingArrows', 'tabsHideOnPortrait', 'tabsHideOnZoom']]; /*** **/ - $this->fields['customLinkClass'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Classe pour les liens personnalisés'), 'grade' => 5); - $this->fields['ignoreLinksTypes'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Ignorer les liens de type'), 'hint' => __('Liste des numéros séparés par des virgules'), 'grade' => 5); - $this->fields['mobileLinksRevealAnim'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Animer les liens après un changement de page"), 'grade' => 3); - $this->fields['linkBlinkTime'] = array('type' => 'float', 'default' => 1.0, 'editable' => true, 'label' => __("Temps d'apparition du lien à l'ouverture de la page (en secondes)")); - $this->fields['linkBlinkRepetition'] = ['type' => 'integer', 'default' => 1, 'editable' => true, 'label' => __('Nombre de clignotement lors de l\'apparition des liens')]; - $this->fields['linkTracker'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Tracking des liens'), 'grade' => 5); - $this->fields['linkTrackerRegexp'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Tracking des liens applicables aux liens du domaine'), 'grade' => 5); - $this->fields['linkFilePrefix'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Préfixer les liens de téléchargement')); - $this->fields['linkTooltipMaxWidth'] = array('type' => 'integer', 'default' => 140, 'editable' => true, 'label' => __('Largeur max des infobulles des liens de type "infobulle"')); - $this->fields['openLinkAtStartup'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Déclencher un lien à l\'ouverture du fluidbook')]; - - $this->fields['mobileIgnoreBackgroundLinks'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Ignorer les liens de background')); - $this->forms['links'] = array('label' => __('Liens'), + $this->fields['customLinkClass'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Classe pour les liens personnalisés'), 'grade' => 5); + $this->fields['ignoreLinksTypes'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Ignorer les liens de type'), 'hint' => $this->__('Liste des numéros séparés par des virgules'), 'grade' => 5); + $this->fields['mobileLinksRevealAnim'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Animer les liens après un changement de page"), 'grade' => 3); + $this->fields['linkBlinkTime'] = array('type' => 'float', 'default' => 1.0, 'editable' => true, 'label' => $this->__("Temps d'apparition du lien à l'ouverture de la page (en secondes)")); + $this->fields['linkBlinkRepetition'] = ['type' => 'integer', 'default' => 1, 'editable' => true, 'label' => $this->__('Nombre de clignotement lors de l\'apparition des liens')]; + $this->fields['linkTracker'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Tracking des liens'), 'grade' => 5); + $this->fields['linkTrackerRegexp'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Tracking des liens applicables aux liens du domaine'), 'grade' => 5); + $this->fields['linkFilePrefix'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Préfixer les liens de téléchargement')); + $this->fields['linkTooltipMaxWidth'] = array('type' => 'integer', 'default' => 140, 'editable' => true, 'label' => $this->__('Largeur max des infobulles des liens de type "infobulle"')); + $this->fields['openLinkAtStartup'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Déclencher un lien à l\'ouverture du fluidbook')]; + + $this->fields['mobileIgnoreBackgroundLinks'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Ignorer les liens de background')); + $this->forms['links'] = array('label' => $this->__('Liens'), 'fieldsnames' => array('permanentLinks', 'mobileLinksRevealAnim', 'linkBlinkTime', 'linkBlinkRepetition', '|', 'openLinkAtStartup', '|', 'customLinkClass', 'ignoreLinksTypes', 'mobileIgnoreBackgroundLinks', 'linkTooltipManager', 'linkCornerSize', 'linkTooltipMaxWidth', '|', 'linkTracker', 'linkTrackerRegexp', '|', 'linkFilePrefix')); //. - $this->fields['textPopupStylesheet'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Feuille de style des popups de texte'), 'fileFilter' => $cssFilter]; - $this->fields['textPopupWidth'] = ['type' => 'integer', 'default' => 600, 'editable' => true, 'label' => __('Largeur optimale des popups')]; - $this->fields['iframePopupMaxWidth'] = ['type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Largeur maximale des popups iframe')]; - $this->fields['OAMChromeFactor'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Facteur OAM Chrome')]; - $this->fields['OAMIEFactor'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Facteur OAM IE11')]; + $this->fields['textPopupStylesheet'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Feuille de style des popups de texte'), 'fileFilter' => $cssFilter]; + $this->fields['textPopupWidth'] = ['type' => 'integer', 'default' => 600, 'editable' => true, 'label' => $this->__('Largeur optimale des popups')]; + $this->fields['iframePopupMaxWidth'] = ['type' => 'integer', 'default' => 0, 'editable' => true, 'label' => $this->__('Largeur maximale des popups iframe')]; + $this->fields['OAMChromeFactor'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => $this->__('Facteur OAM Chrome')]; + $this->fields['OAMIEFactor'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => $this->__('Facteur OAM IE11')]; - $this->forms['multimedia'] = ['label' => __('Multimedia'), + $this->forms['multimedia'] = ['label' => $this->__('Multimedia'), 'fieldsnames' => ['textPopupStylesheet', 'textPopupWidth', '|', 'iframePopupMaxWidth', '|', 'OAMChromeFactor', 'OAMIEFactor']]; - $pdfRendererOptions = [__('Navigateur') => 'native', 'PDF.js' => 'pdfjs', 'PDF.js (legacy)' => 'pdfjs-legacy']; - $pdfRenderOptionsIframe = array_merge($pdfRendererOptions, [__('Ecraser en SVG') => 'svg']); + $pdfRendererOptions = [$this->__('Navigateur') => 'native', 'PDF.js' => 'pdfjs', 'PDF.js (legacy)' => 'pdfjs-legacy']; + $pdfRenderOptionsIframe = array_merge($pdfRendererOptions, [$this->__('Ecraser en SVG') => 'svg']); - $this->fields['PDFRenderer'] = ['type' => 'combo', 'datas' => $pdfRendererOptions, 'default' => 'native', 'editable' => true, 'label' => __('Rendu des PDF (téléchargement)')]; - $this->fields['PDFRendererIframe'] = ['type' => 'combo', 'datas' => $pdfRenderOptionsIframe, 'default' => 'native', 'editable' => true, 'label' => __('Rendu des PDF (iframes)')]; + $this->fields['PDFRenderer'] = ['type' => 'combo', 'datas' => $pdfRendererOptions, 'default' => 'native', 'editable' => true, 'label' => $this->__('Rendu des PDF (téléchargement)')]; + $this->fields['PDFRendererIframe'] = ['type' => 'combo', 'datas' => $pdfRenderOptionsIframe, 'default' => 'native', 'editable' => true, 'label' => $this->__('Rendu des PDF (iframes)')]; $this->fields['PDFJSCSS'] = ['type' => 'textarea', 'default' => '', 'editable' => true, 'label' => 'Styles PDF.js']; $this->forms['pdf'] = ['label' => 'PDF', 'fieldsnames' => ['PDFRenderer', 'PDFRendererIframe', '|', 'PDFJSCSS']]; $slideshowPopupLibraries = [ - 'Splide (' . __('défaut') . ')' => 'splide', + 'Splide (' . $this->__('défaut') . ')' => 'splide', 'Vacheron' => 'vacheron']; $slideshowInlineLibraries = [ - 'Simple (' . __('défaut') . ')' => 'dummy', + 'Simple (' . $this->__('défaut') . ')' => 'dummy', 'Vacheron' => 'vacheron']; - $this->fields['slideshowCaptionSize'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Taille de police de la légende du diaporama'), 'hint' => __('Laisser vide pour utiliser la valeur par défaut')); - $this->fields['inlineSlideshowTransitionDuration'] = array('type' => 'float', 'default' => 0.75, 'editable' => true, 'label' => __('Durée de la transition des diaporamas intégrés aux pages(s)')); - $this->fields['inlineSlideshowDuration'] = array('type' => 'float', 'default' => 7, 'editable' => true, 'label' => __('Temps d\'attente des diaporamas intégrés aux pages (s)')); - $this->fields['inlineSlideshowLibrary'] = ['type' => 'combo', 'datas' => $slideshowInlineLibraries, 'default' => 'dummy', 'editable' => true, 'grade' => 3, 'label' => __('Librarie utilisée pour les slideshow intégrés aux pages')]; - $this->fields['popupSlideshowLibrary'] = ['type' => 'combo', 'datas' => $slideshowPopupLibraries, 'default' => 'splide', 'editable' => true, 'grade' => 3, 'label' => __('Librarie utilisée pour les slideshow popup')]; + $this->fields['slideshowCaptionSize'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Taille de police de la légende du diaporama'), 'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut')); + $this->fields['inlineSlideshowTransitionDuration'] = array('type' => 'float', 'default' => 0.75, 'editable' => true, 'label' => $this->__('Durée de la transition des diaporamas intégrés aux pages(s)')); + $this->fields['inlineSlideshowDuration'] = array('type' => 'float', 'default' => 7, 'editable' => true, 'label' => $this->__('Temps d\'attente des diaporamas intégrés aux pages (s)')); + $this->fields['inlineSlideshowLibrary'] = ['type' => 'combo', 'datas' => $slideshowInlineLibraries, 'default' => 'dummy', 'editable' => true, 'grade' => 3, 'label' => $this->__('Librarie utilisée pour les slideshow intégrés aux pages')]; + $this->fields['popupSlideshowLibrary'] = ['type' => 'combo', 'datas' => $slideshowPopupLibraries, 'default' => 'splide', 'editable' => true, 'grade' => 3, 'label' => $this->__('Librarie utilisée pour les slideshow popup')]; - $this->forms['slideshow'] = ['label' => __('Slideshow'), + $this->forms['slideshow'] = ['label' => $this->__('Slideshow'), 'fieldsnames' => ['inlineSlideshowLibrary', 'popupSlideshowLibrary', '|', 'slideshowCaptionSize', '|', 'inlineSlideshowTransitionDuration', 'inlineSlideshowDuration']]; - $this->fields['webvideoAsLocal'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Intégrer les webvidéos en local')]; - $this->fields['mobileVideosPath'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Chemin vers les vidéos'), 'grade' => 5); - $this->fields['brightcovePlayerId'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Brightcove Player Id'), 'grade' => 3); - $this->fields['brightcovePlayerSecret'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Brightcove Player Secret'), 'grade' => 3); - $this->fields['bigPlayImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Image pour le bouton "Big Play"'), 'grade' => 3, 'fileFilter' => $imageExtraFilter]; - $this->forms['videos'] = array('label' => __('Vidéos'), + $this->fields['webvideoAsLocal'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Intégrer les webvidéos en local')]; + $this->fields['mobileVideosPath'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Chemin vers les vidéos'), 'grade' => 5); + $this->fields['brightcovePlayerId'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Brightcove Player Id'), 'grade' => 3); + $this->fields['brightcovePlayerSecret'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Brightcove Player Secret'), 'grade' => 3); + $this->fields['bigPlayImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Image pour le bouton "Big Play"'), 'grade' => 3, 'fileFilter' => $imageExtraFilter]; + $this->forms['videos'] = array('label' => $this->__('Vidéos'), 'fieldsnames' => array('webvideoAsLocal', '|', 'mobileVideosPath', '|', 'brightcovePlayerId', 'brightcovePlayerSecret', '|', 'bigPlayImage')); //. - $this->fields['audioPlayerTheme'] = ['type' => 'combo', 'default' => 'native', 'editable' => true, 'label' => __('Apparence du lecteur audio'), 'datas' => [__('Apparence native du navigateur') => 'native', __('Zone cliquable invisible') => 'invisible', __('Circulaire') => 'redbull']]; - $this->forms['audio'] = ['label' => __('Lecteur audio'), + $this->fields['audioPlayerTheme'] = ['type' => 'combo', 'default' => 'native', 'editable' => true, 'label' => $this->__('Apparence du lecteur audio'), 'datas' => [$this->__('Apparence native du navigateur') => 'native', $this->__('Zone cliquable invisible') => 'invisible', $this->__('Circulaire') => 'redbull']]; + $this->forms['audio'] = ['label' => $this->__('Lecteur audio'), 'fieldsnames' => ['audioPlayerTheme']]; //. $this->fields['downloadPortionPDF'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => 'PDF utilisé pour le téléchargement des extraits']; - $this->fields['downloadPortionZoom'] = ['type' => 'integer', 'default' => 8, 'editable' => false, 'editable' => true, 'label' => __('Zoom des images extraites')]; - $this->forms['downloadportion'] = array('label' => __('Téléchargement d\'extraits'), + $this->fields['downloadPortionZoom'] = ['type' => 'integer', 'default' => 8, 'editable' => false, 'editable' => true, 'label' => $this->__('Zoom des images extraites')]; + $this->forms['downloadportion'] = array('label' => $this->__('Téléchargement d\'extraits'), 'fieldsnames' => ['downloadPortionPDF', 'downloadPortionZoom']); $this->fields['product_zoom_references'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Références produits'), 'grade' => 3, 'fileFilter' => $basketFilter, 'hint' => __('Fichier contenant les références produits'), 'dir' => 'commerce'); - $this->fields['product_zoom_buttons_order'] = ['type' => 'combo', 'datas' => [__('De la droite vers la gauche') => 'right', __('De la gauche vers la droite') => 'left'], 'editable' => true, 'grade' => 3, 'default' => 'right', 'label' => __('Order des boutons')]; + 'label' => $this->__('Références produits'), 'grade' => 3, 'fileFilter' => $basketFilter, 'hint' => $this->__('Fichier contenant les références produits'), 'dir' => 'commerce'); + $this->fields['product_zoom_buttons_order'] = ['type' => 'combo', 'datas' => [$this->__('De la droite vers la gauche') => 'right', $this->__('De la gauche vers la droite') => 'left'], 'editable' => true, 'grade' => 3, 'default' => 'right', 'label' => $this->__('Order des boutons')]; $icons = [ - __('Aucune') => 'none', - __('Partage') => 'nav-share', - __('Ecran') => 'icon-site', - __('Télécharger') => 'nav-download', + $this->__('Aucune') => 'none', + $this->__('Partage') => 'nav-share', + $this->__('Ecran') => 'icon-site', + $this->__('Télécharger') => 'nav-download', 'PDF' => 'icon-pdf', 'Video' => 'icon-video', - __('Lien') => 'icon-link', - __('Code') => 'icon-code', - __('QR code') => 'icon-qr', - __('Article') => 'icon-article', - __('Panier (sac)') => 'nav-basket', - __('Panier (caddie)') => 'nav-cart-caddie', - __('Panier (wishlist)') => 'nav-cart-wishlist', - __('360°') => 'icon-360', - __('Photo') => 'icon-photo']; + $this->__('Lien') => 'icon-link', + $this->__('Code') => 'icon-code', + $this->__('QR code') => 'icon-qr', + $this->__('Article') => 'icon-article', + $this->__('Panier (sac)') => 'nav-basket', + $this->__('Panier (caddie)') => 'nav-cart-caddie', + $this->__('Panier (wishlist)') => 'nav-cart-wishlist', + $this->__('360°') => 'icon-360', + $this->__('Photo') => 'icon-photo']; $actions = [ - __('Désactiver') => 'disabled', - __('Ouvrir un lien') => 'link', - __('Ouvrir en iframe') => 'iframe', - __('Copier un contenu') => 'copy', - __('Web Vidéo') => 'video', - __('Vidéo') => 'videofile', - __('Vidéo (boucle, sans contrôle)') => 'videogif', - __('Voir une image') => 'image', - __('Ajouter au panier') => 'addtocart' + $this->__('Désactiver') => 'disabled', + $this->__('Ouvrir un lien') => 'link', + $this->__('Ouvrir en iframe') => 'iframe', + $this->__('Copier un contenu') => 'copy', + $this->__('Web Vidéo') => 'video', + $this->__('Vidéo') => 'videofile', + $this->__('Vidéo (boucle, sans contrôle)') => 'videogif', + $this->__('Voir une image') => 'image', + $this->__('Ajouter au panier') => 'addtocart' ]; $f = []; for ($i = 1; $i <= 3; $i++) { - $this->fields['product_zoom_label_' . $i] = ['type' => 'text', 'label' => __('Label du bouton') . ' ' . $i, 'default' => '', 'editable' => true, 'grade' => 3]; - $this->fields['product_zoom_tooltip_' . $i] = ['type' => 'text', 'label' => __('Label de l\'infobulle') . ' ' . $i, 'default' => '', 'editable' => true, 'grade' => 3]; - $this->fields['product_zoom_icon_' . $i] = ['type' => 'combo', 'datas' => $icons, 'label' => __('Icône du bouton') . ' ' . $i, 'default' => 'click', 'editable' => true, 'grade' => 3]; - $this->fields['product_zoom_action_' . $i] = ['type' => 'combo', 'datas' => $actions, 'label' => __('Action du bouton') . ' ' . $i, 'default' => 'disabled', 'editable' => true, 'grade' => 3]; + $this->fields['product_zoom_label_' . $i] = ['type' => 'text', 'label' => $this->__('Label du bouton') . ' ' . $i, 'default' => '', 'editable' => true, 'grade' => 3]; + $this->fields['product_zoom_tooltip_' . $i] = ['type' => 'text', 'label' => $this->__('Label de l\'infobulle') . ' ' . $i, 'default' => '', 'editable' => true, 'grade' => 3]; + $this->fields['product_zoom_icon_' . $i] = ['type' => 'combo', 'datas' => $icons, 'label' => $this->__('Icône du bouton') . ' ' . $i, 'default' => 'click', 'editable' => true, 'grade' => 3]; + $this->fields['product_zoom_action_' . $i] = ['type' => 'combo', 'datas' => $actions, 'label' => $this->__('Action du bouton') . ' ' . $i, 'default' => 'disabled', 'editable' => true, 'grade' => 3]; $f[] = '|'; $f[] = 'product_zoom_label_' . $i; $f[] = 'product_zoom_tooltip_' . $i; $f[] = 'product_zoom_icon_' . $i; $f[] = 'product_zoom_action_' . $i; } - $this->fields['product_share_enabled'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'grade' => '3', 'label' => __('Activer le bouton de partage')]; - $this->fields['product_share_link'] = ['type' => 'combo', 'default' => 'product', 'editable' => true, 'label' => __('Lien de partage'), 'datas' => [__('Lien du produit') => 'product', __('Lien vers la page du fluidbook') => 'page']]; - $this->fields['product_email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'email") . ' "' . __('Envoyer à un ami') . '"'); - $this->fields['product_email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __("Corps de l'email") . ' "' . __('Envoyer à un ami') . '"'); - $this->fields['product_tweet'] = array('type' => 'textarea', 'default' => '%short%', 'editable' => true, 'label' => __("Contenu Partage court"), 'hint' => __('Contenu du partagé sur les partages courts')); - $this->forms['product_zoom'] = ['label' => __('Zooms produits'), 'fieldsnames' => array_merge(["product_zoom_references", '|', 'product_zoom_buttons_order'], $f, ['|', 'product_share_enabled', 'product_share_link', 'product_email_title', 'product_email_body', 'product_tweet'])]; - - $this->fields['audiodescriptionTexts'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Contenus textuels pour l\'audiodescription ou les lecteurs d\'écran'), 'fileFilter' => $seoFilter]; - $this->fields['audiodescriptionVoice'] = ['type' => 'combo', 'datas' => wsDroits::getTTSVoices(), 'editable' => true, 'default' => '', 'label' => __('Voix pour l\'audiodescription')]; - $this->forms['accessibility'] = ['label' => __('Accessibilité'), + $this->fields['product_share_enabled'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'grade' => '3', 'label' => $this->__('Activer le bouton de partage')]; + $this->fields['product_share_link'] = ['type' => 'combo', 'default' => 'product', 'editable' => true, 'label' => $this->__('Lien de partage'), 'datas' => [$this->__('Lien du produit') => 'product', $this->__('Lien vers la page du fluidbook') => 'page']]; + $this->fields['product_email_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("Titre de l'email") . ' "' . $this->__('Envoyer à un ami') . '"'); + $this->fields['product_email_body'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__("Corps de l'email") . ' "' . $this->__('Envoyer à un ami') . '"'); + $this->fields['product_tweet'] = array('type' => 'textarea', 'default' => '%short%', 'editable' => true, 'label' => $this->__("Contenu Partage court"), 'hint' => $this->__('Contenu du partagé sur les partages courts')); + $this->forms['product_zoom'] = ['label' => $this->__('Zooms produits'), 'fieldsnames' => array_merge(["product_zoom_references", '|', 'product_zoom_buttons_order'], $f, ['|', 'product_share_enabled', 'product_share_link', 'product_email_title', 'product_email_body', 'product_tweet'])]; + + $this->fields['audiodescriptionTexts'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Contenus textuels pour l\'audiodescription ou les lecteurs d\'écran'), 'fileFilter' => $seoFilter]; + $this->fields['audiodescriptionVoice'] = ['type' => 'combo', 'datas' => wsDroits::getTTSVoices(), 'editable' => true, 'default' => '', 'label' => $this->__('Voix pour l\'audiodescription')]; + $this->forms['accessibility'] = ['label' => $this->__('Accessibilité'), 'fieldsnames' => ['audiodescriptionTexts', 'audiodescriptionVoice'] ]; @@ -677,58 +637,58 @@ class wsBookParametres extends wsParametres // Splashscreen - $this->fields['splashImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Image'), 'grade' => 3, 'fileFilter' => $imageFilter]; - $this->fields['splashURL'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('URL'), 'grade' => 3]; - $this->fields['splashTarget'] = ['type' => 'combo', 'datas' => $target, 'default' => '_self', 'editable' => true, 'label' => __('Ouvrir le lien'), 'grade' => 3]; - $this->fields['splashMinimalTime'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => __('Temps minimal d\'affichage'), 'grade' => 3]; + $this->fields['splashImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => $this->__('Image'), 'grade' => 3, 'fileFilter' => $imageFilter]; + $this->fields['splashURL'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('URL'), 'grade' => 3]; + $this->fields['splashTarget'] = ['type' => 'combo', 'datas' => $target, 'default' => '_self', 'editable' => true, 'label' => $this->__('Ouvrir le lien'), 'grade' => 3]; + $this->fields['splashMinimalTime'] = ['type' => 'float', 'default' => 1, 'editable' => true, 'label' => $this->__('Temps minimal d\'affichage'), 'grade' => 3]; - $this->forms['splash'] = ['label' => __('Ecran de chargement'), 'fieldsnames' => ['splashImage', 'splashURL', 'splashTarget', 'splashMinimalTime']]; + $this->forms['splash'] = ['label' => $this->__('Ecran de chargement'), 'fieldsnames' => ['splashImage', 'splashURL', 'splashTarget', 'splashMinimalTime']]; // Notes $this->fields['notes'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => 'Activer les notes', 'grade' => 3]; - $this->forms['notes'] = ['label' => __('Notes'), 'fieldsnames' => ['notes']]; + $this->forms['notes'] = ['label' => $this->__('Notes'), 'fieldsnames' => ['notes']]; // Articles $this->fields['articlesFile'] = ['type' => 'freefile', 'default' => '', 'editable' => true, 'label' => 'Articles', 'grade' => 3, 'fileFilter' => $articlesFilter]; - $this->fields['articlesFormat'] = ['type' => 'combo', 'default' => 'fluidbook', 'editable' => true, 'label' => 'Format', 'grade' => 3, 'datas' => [__('Fluidbook') => 'fluidbook', 'Business Immo' => 'business-immo']]; - $this->fields['articlesFont'] = ['type' => 'combo', 'label' => __('Police des articles'), 'default' => 'OpenSans', 'datas' => self::$fonts, 'editable' => true, 'grade' => 3]; - $this->fields['articlesImages'] = ['type' => 'freefile', 'label' => __('Images des articles'), 'default' => '', 'hint' => __('Les noms des fichiers doivent être les même que ceux des balises du XML'), 'editable' => true, 'grade' => 3, 'dir' => 'articles', 'multiple' => true]; - $this->fields['articlesShare'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le partage'), 'grade' => 3]; - $this->fields['articlesPrint'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer l\'impression'), 'grade' => 3]; - $this->fields['articlesStyle'] = ['type' => 'combo', 'default' => true, 'editable' => true, 'label' => __('Style'), 'grade' => 3, 'datas' => ['Défaut' => 'default', 'Atlantic' => 'atlantic', 'Harmonie Mutuelle' => 'harmonie-mutuelle', 'Business Immo' => 'business-immo']]; + $this->fields['articlesFormat'] = ['type' => 'combo', 'default' => 'fluidbook', 'editable' => true, 'label' => 'Format', 'grade' => 3, 'datas' => [$this->__('Fluidbook') => 'fluidbook', 'Business Immo' => 'business-immo']]; + $this->fields['articlesFont'] = ['type' => 'combo', 'label' => $this->__('Police des articles'), 'default' => 'OpenSans', 'datas' => self::$fonts, 'editable' => true, 'grade' => 3]; + $this->fields['articlesImages'] = ['type' => 'freefile', 'label' => $this->__('Images des articles'), 'default' => '', 'hint' => $this->__('Les noms des fichiers doivent être les même que ceux des balises du XML'), 'editable' => true, 'grade' => 3, 'dir' => 'articles', 'multiple' => true]; + $this->fields['articlesShare'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer le partage'), 'grade' => 3]; + $this->fields['articlesPrint'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer l\'impression'), 'grade' => 3]; + $this->fields['articlesStyle'] = ['type' => 'combo', 'default' => true, 'editable' => true, 'label' => $this->__('Style'), 'grade' => 3, 'datas' => ['Défaut' => 'default', 'Atlantic' => 'atlantic', 'Harmonie Mutuelle' => 'harmonie-mutuelle', 'Business Immo' => 'business-immo']]; - $this->forms['articles'] = ['label' => __('Articles'), 'fieldsnames' => ['articlesFile', 'articlesImages', '|', 'articlesShare', 'articlesPrint', '|', 'articlesStyle', 'articlesFont']]; + $this->forms['articles'] = ['label' => $this->__('Articles'), 'fieldsnames' => ['articlesFile', 'articlesImages', '|', 'articlesShare', 'articlesPrint', '|', 'articlesStyle', 'articlesFont']]; //. $this->fields['externalArchives'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Archives'), 'grade' => 3, 'fileFilter' => $imageFilter); - $this->fields['archivesLabel'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Label'), 'grade' => 5); - $this->forms['archives'] = array('label' => __('Archives'), + 'label' => $this->__('Archives'), 'grade' => 3, 'fileFilter' => $imageFilter); + $this->fields['archivesLabel'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Label'), 'grade' => 5); + $this->forms['archives'] = array('label' => $this->__('Archives'), 'fieldsnames' => array('externalArchives', 'archivesLabel')); // . - $this->fields['form'] = array('type' => 'combo', 'default' => '', 'editable' => true, 'grade' => 5, 'label' => __('Formulaire'), 'datas' => - array(__('Aucun') => '', + $this->fields['form'] = array('type' => 'combo', 'default' => '', 'editable' => true, 'grade' => 5, 'label' => $this->__('Formulaire'), 'datas' => + array($this->__('Aucun') => '', 'Bulle Groupe' => 'bulle', 'Bourbon / Suggestions' => 'bourbon', 'Avery' => 'avery', ), ); - $this->forms['form'] = array('label' => __('Formulaire'), + $this->forms['form'] = array('label' => $this->__('Formulaire'), 'fieldsnames' => array('form')); - $this->fields['cookieConsent'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Message cookie')); - $this->fields['cookieConsentMessage'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Texte du consentement')); - $this->fields['cookieConsentAutoclose'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => __('Masquer automatiquement après x secondes')); - $this->forms['privacy'] = array('label' => __('Respect de la vie privée'), + $this->fields['cookieConsent'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Message cookie')); + $this->fields['cookieConsentMessage'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Texte du consentement')); + $this->fields['cookieConsentAutoclose'] = array('type' => 'integer', 'default' => 0, 'editable' => true, 'label' => $this->__('Masquer automatiquement après x secondes')); + $this->forms['privacy'] = array('label' => $this->__('Respect de la vie privée'), 'fieldsnames' => array('cookieConsent', 'cookieConsentMessage', 'cookieConsentAutoclose')); //. - $this->fields['basket'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Panier activé'), 'grade' => 5); - $this->fields['cartIcon'] = ['type' => 'combo', 'datas' => [__('Sac') => 'nav-basket', __('Caddie') => 'nav-cart-caddie', __('Wishlist') => 'nav-cart-wishlist'], 'default' => 'nav-basket', 'label' => __('Icône'), 'editable' => true, 'grade' => 5]; - $this->fields['basketManager'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => __("Manager de panier"), - 'datas' => array(__('Classic') => 'com.fluidbook.player.basket.BasketManager', + $this->fields['basket'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Panier activé'), 'grade' => 5); + $this->fields['cartIcon'] = ['type' => 'combo', 'datas' => [$this->__('Sac') => 'nav-basket', $this->__('Caddie') => 'nav-cart-caddie', $this->__('Wishlist') => 'nav-cart-wishlist'], 'default' => 'nav-basket', 'label' => $this->__('Icône'), 'editable' => true, 'grade' => 5]; + $this->fields['basketManager'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => $this->__("Manager de panier"), + 'datas' => array($this->__('Classic') => 'com.fluidbook.player.basket.BasketManager', 'Grdf' => 'com.fluidbook.player.basket.custom.grdf.GrdfBasketManager', 'Grdf 2013' => 'com.fluidbook.player.basket.custom.grdf.grdf2013.GrdfBasketManager2013', 'Grdf 2015' => 'com.fluidbook.player.basket.custom.grdf.grdf2015.GrdfBasketManager2015', @@ -749,131 +709,131 @@ class wsBookParametres extends wsParametres 'Thiriet' => 'Thiriet', ), 'grade' => 5); - $this->fields['cartLinkAppearance'] = ['type' => 'combo', 'default' => 'link', 'editable' => true, 'label' => __('Apparence des liens panier'), 'grade' => 3, 'datas' => [__('Lien') => 'link', __('Boutons + et - avec overlay') => 'overlay']]; + $this->fields['cartLinkAppearance'] = ['type' => 'combo', 'default' => 'link', 'editable' => true, 'label' => $this->__('Apparence des liens panier'), 'grade' => 3, 'datas' => [$this->__('Lien') => 'link', $this->__('Boutons + et - avec overlay') => 'overlay']]; $this->fields['basketReferences'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Références produits'), 'grade' => 3, 'fileFilter' => $basketFilter, 'hint' => __('Fichier contenant les références produits'), 'dir' => 'commerce'); + 'label' => $this->__('Références produits'), 'grade' => 3, 'fileFilter' => $basketFilter, 'hint' => $this->__('Fichier contenant les références produits'), 'dir' => 'commerce'); $this->fields['basketImages'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Images des produits'), 'grade' => 3, + 'label' => $this->__('Images des produits'), 'grade' => 3, 'multiple' => true, 'dir' => 'commerce'); $this->fields['basketPDFBackground'] = array('type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Fond du PDF (bon de commande)'), 'grade' => 5, 'fileFilter' => $epsFilter, 'hint' => __('Fond du bon de commande'), 'dir' => 'commerce'); + 'label' => $this->__('Fond du PDF (bon de commande)'), 'grade' => 5, 'fileFilter' => $epsFilter, 'hint' => $this->__('Fond du bon de commande'), 'dir' => 'commerce'); $this->fields['cartHeaderImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Header panier'), 'grade' => 3, 'fileFilter' => $imageFilter, 'dir' => 'commerce']; + 'label' => $this->__('Header panier'), 'grade' => 3, 'fileFilter' => $imageFilter, 'dir' => 'commerce']; $this->fields['cartHeaderMobileImage'] = ['type' => 'freefile', 'default' => '', 'editable' => true, - 'label' => __('Header panier (mobile)'), 'grade' => 3, 'fileFilter' => $imageFilter, 'dir' => 'commerce']; + 'label' => $this->__('Header panier (mobile)'), 'grade' => 3, 'fileFilter' => $imageFilter, 'dir' => 'commerce']; $this->fields['cartExtraSettings'] = ['type' => 'textarea', 'default' => '', 'editable' => true, - 'label' => __('Paramètres panier'), 'grade' => 3]; + 'label' => $this->__('Paramètres panier'), 'grade' => 3]; - $this->forms['basket'] = array('label' => __('Panier'), + $this->forms['basket'] = array('label' => $this->__('Panier'), 'fieldsnames' => array('basket', 'basketManager', '|', 'cartIcon', 'cartLinkAppearance', '|', 'basketReferences', 'basketImages', '|', 'cartHeaderImage', 'cartHeaderMobileImage', 'cartExtraSettings')); // . - $this->fields['offlineLink'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __("URL du Fluidbook"), 'hint' => __('URL du fluidbook utilisée pour la version Offline (CD-ROM, clé USB, Exécutables)')); - $this->fields['offlineTitle'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de l'application")); - $this->fields['offlineWindowsInstallPath'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Chemin d\'installation par défaut'), 'hint' => __('Par défaut') . ': %LOCALAPPDATA%/%title%']; - $this->fields['offlineWindowsProfilePath'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Répertoire de stockage du profile'), 'hint' => __('Par défaut') . ': %LOCALAPPDATA%/%title%']; - $this->fields['offlineEnableAdvancedPrinting'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le menu d\'impression avancée')]; - $this->fields['debugConsole'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer la console de débuggage')]; - $this->forms['offline'] = array('label' => __('Version offline'), + $this->fields['offlineLink'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => $this->__("URL du Fluidbook"), 'hint' => $this->__('URL du fluidbook utilisée pour la version Offline (CD-ROM, clé USB, Exécutables)')); + $this->fields['offlineTitle'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("Titre de l'application")); + $this->fields['offlineWindowsInstallPath'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Chemin d\'installation par défaut'), 'hint' => $this->__('Par défaut') . ': %LOCALAPPDATA%/%title%']; + $this->fields['offlineWindowsProfilePath'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Répertoire de stockage du profile'), 'hint' => $this->__('Par défaut') . ': %LOCALAPPDATA%/%title%']; + $this->fields['offlineEnableAdvancedPrinting'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__('Activer le menu d\'impression avancée')]; + $this->fields['debugConsole'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Activer la console de débuggage')]; + $this->forms['offline'] = array('label' => $this->__('Version offline'), 'fieldsnames' => array('offlineTitle', 'offlineLink', '|', 'offlineWindowsInstallPath', 'offlineWindowsProfilePath', '|', 'offlineEnableAdvancedPrinting', '|', 'debugConsole')); $this->fields['mobilefirstFluidbookId'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => 'Identifiant du fluidbook "Mobile first"', 'grade' => 5]; $this->fields['mobilefirstBreakpoint'] = ['type' => 'text', 'default' => '640', 'editable' => true, 'label' => 'Breakpoint du passage à la version "Mobile first" (en pixels)', 'grade' => 5]; - $this->forms['mobilefirst'] = ['label' => __('Mobile first'), + $this->forms['mobilefirst'] = ['label' => $this->__('Mobile first'), 'fieldsnames' => ['mobilefirstFluidbookId', 'mobilefirstBreakpoint']]; - $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'); - $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'); - $this->fields['phonegapPlugins'] = array('type' => 'textarea', 'default' => 'ChildBrowser', 'editable' => true, 'label' => __('Plugins Phonegap'), 'grade' => 5); + $this->fields['phonegapId'] = array('type' => 'text', 'default' => 'com.fluidbook.phonegap.$id', 'editable' => true, 'label' => $this->__("Identifiant de l'identifiant"), 'grade' => 5, 'hint' => $this->__('De la forme') . ' com.fluidbook.phonegap.xxxxx'); + $this->fields['phonegapVersion'] = array('type' => 'text', 'default' => '1.0.0', 'editable' => true, 'label' => $this->__("Version de l'application"), 'grade' => 5, 'hint' => $this->__('De la forme') . ' 1.2.3'); + $this->fields['phonegapPlugins'] = array('type' => 'textarea', 'default' => 'ChildBrowser', 'editable' => true, 'label' => $this->__('Plugins Phonegap'), 'grade' => 5); $defaultScreenshots = "P,0\nL,2\nL,index"; - $this->fields['appScreenshots'] = array('type' => 'textarea', 'default' => $defaultScreenshots, 'editable' => true, 'label' => 'Générer les screenshots', 'grade' => 5, 'hint' => __('Une ligne par vue à générer de la forme X,Y (X : P(ortrait) ou L(andscape), Y : numéro de page ou vue (1, index))')); + $this->fields['appScreenshots'] = array('type' => 'textarea', 'default' => $defaultScreenshots, 'editable' => true, 'label' => 'Générer les screenshots', 'grade' => 5, 'hint' => $this->__('Une ligne par vue à générer de la forme X,Y (X : P(ortrait) ou L(andscape), Y : numéro de page ou vue (1, index))')); - $this->forms['phonegap'] = array('label' => __('Applications mobile'), + $this->forms['phonegap'] = array('label' => $this->__('Applications mobile'), 'fieldsnames' => array('phonegapId', 'phonegapVersion', 'phonegapPlugins', 'appScreenshots')); - $this->fields['secureURL'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __('URL de sécurisation'), 'grade' => 5, 'hint' => __('URL intérrogé pour vérifier si le visiteur à les droits pour consulter la publication')); - $this->fields['secureURLRedirect'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __('Redirection'), 'grade' => 5, 'hint' => __("Si l'authentification échoue, redirection vers cette adresse")); + $this->fields['secureURL'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => $this->__('URL de sécurisation'), 'grade' => 5, 'hint' => $this->__('URL intérrogé pour vérifier si le visiteur à les droits pour consulter la publication')); + $this->fields['secureURLRedirect'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => $this->__('Redirection'), 'grade' => 5, 'hint' => $this->__("Si l'authentification échoue, redirection vers cette adresse")); $this->fields['secureClientSidePassword'] = ['type' => 'freefile', 'label' => 'Sécurisation par mot de passe côté client', 'editable' => true, 'default' => '', 'grade' => 3, 'fileFilter' => $htmlFilter]; $this->fields['secureClientSidePasswordCredentials'] = ['type' => 'textarea', 'label' => 'Utilisateurs / mots de passe', 'editable' => true, 'default' => '', 'grade' => 3, 'hint' => 'Format user:password par ligne']; - $this->fields['preventRightClick'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Essayer d'empêcher le clic droit"), 'grade' => 1); - $this->fields['restrictPrint'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Restreindre l'impression"), 'grade' => 5); - $this->fields['restrictDownload'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Restreindre le téléchargement du pdf"), 'grade' => 5); - $this->fields['restrictSendBookmark'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Restreindre l'envoi de marques-pages"), 'grade' => 5); - $this->fields['restrictPrintDownload'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Paramètre de l\'url permettant de désactiver la restriction (non vide pour activer les restrictions)'), 'grade' => 5, 'hint' => __("Ne pas indiquer le ?")]; - $this->fields['recaptcha'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Activer reCATPCHA v3 (clé du site)')]; - $this->forms['secure'] = array('label' => __('Sécurisation'), + $this->fields['preventRightClick'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Essayer d'empêcher le clic droit"), 'grade' => 1); + $this->fields['restrictPrint'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Restreindre l'impression"), 'grade' => 5); + $this->fields['restrictDownload'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Restreindre le téléchargement du pdf"), 'grade' => 5); + $this->fields['restrictSendBookmark'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Restreindre l'envoi de marques-pages"), 'grade' => 5); + $this->fields['restrictPrintDownload'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Paramètre de l\'url permettant de désactiver la restriction (non vide pour activer les restrictions)'), 'grade' => 5, 'hint' => $this->__("Ne pas indiquer le ?")]; + $this->fields['recaptcha'] = ['type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Activer reCATPCHA v3 (clé du site)')]; + $this->forms['secure'] = array('label' => $this->__('Sécurisation'), 'fieldsnames' => array('secureURL', 'secureURLRedirect', '|', 'secureClientSidePassword', 'secureClientSidePasswordCredentials', '|', 'preventRightClick', '|', 'restrictPrintDownload', 'restrictPrint', 'restrictDownload', 'restrictSendBookmark', '|', 'recaptcha')); - $this->fields['home'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Accueil de l'interface multibrochure"), 'grade' => 5); - $this->fields['multilang'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Langues'), 'hint' => __('Code langue') . ',' . __('Code pays') . ',' . __('URL')); - $this->fields['country'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Pays de la brochure')); - $this->fields['multilangDisplay'] = array('type' => 'combo', 'default' => 'lang', 'editable' => true, 'label' => __('Affichage'), - 'datas' => array(__('Langue') => 'lang', - __('Langue') . ' (' . __('Pays') . ')' => 'lang_country', - __('Pays') . ' (' . __('Langue') . ')' => 'country_lang')); - $this->forms['multibrochure'] = array('label' => __('Multibrochure'), + $this->fields['home'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__("Accueil de l'interface multibrochure"), 'grade' => 5); + $this->fields['multilang'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Langues'), 'hint' => $this->__('Code langue') . ',' . $this->__('Code pays') . ',' . $this->__('URL')); + $this->fields['country'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Pays de la brochure')); + $this->fields['multilangDisplay'] = array('type' => 'combo', 'default' => 'lang', 'editable' => true, 'label' => $this->__('Affichage'), + 'datas' => array($this->__('Langue') => 'lang', + $this->__('Langue') . ' (' . $this->__('Pays') . ')' => 'lang_country', + $this->__('Pays') . ' (' . $this->__('Langue') . ')' => 'country_lang')); + $this->forms['multibrochure'] = array('label' => $this->__('Multibrochure'), 'fieldsnames' => array('home', 'country', 'multilangDisplay', 'multilang')); - $this->fields['plv'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer le mode PLV'), 'grade' => 3); - $this->fields['plvTimer'] = array('type' => 'integer', 'min' => 1, 'max' => 60, 'default' => 5, 'editable' => true, 'label' => __('Temps'), 'grade' => 3); - $this->fields['plvMode'] = array('type' => 'combo', 'default' => 'first', 'editable' => true, 'label' => __('Arrivé à la dernière page'), 'grade' => 3, - 'datas' => array(__('Remonter vers la première page') => 'back', - __('Recommencer à la première page') => 'first')); - $this->forms['plv'] = array('label' => __('Mode PLV'), + $this->fields['plv'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Activer le mode PLV'), 'grade' => 3); + $this->fields['plvTimer'] = array('type' => 'integer', 'min' => 1, 'max' => 60, 'default' => 5, 'editable' => true, 'label' => $this->__('Temps'), 'grade' => 3); + $this->fields['plvMode'] = array('type' => 'combo', 'default' => 'first', 'editable' => true, 'label' => $this->__('Arrivé à la dernière page'), 'grade' => 3, + 'datas' => array($this->__('Remonter vers la première page') => 'back', + $this->__('Recommencer à la première page') => 'first')); + $this->forms['plv'] = array('label' => $this->__('Mode PLV'), 'fieldsnames' => array('plv', 'plvTimer', 'plvMode')); - $this->fields['themeEnableAfterSearch'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Afficher l'image supplémentaire à droite du moteur de recherche"), 'grade' => 3); - $this->forms['theme'] = array('label' => __('Options du thème'), + $this->fields['themeEnableAfterSearch'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Afficher l'image supplémentaire à droite du moteur de recherche"), 'grade' => 3); + $this->forms['theme'] = array('label' => $this->__('Options du thème'), 'fieldsnames' => array('themeEnableAfterSearch')); - $this->fields['forceCompileOnDownload'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Forcer la compilation lors du téléchargement'), 'grade' => 3); - $this->fields['embedAllLibraries'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Intégrer toutes les bibliothèques JS'), 'grade' => 3); - $this->fields['htmlExtension'] = array('type' => 'text', 'default' => 'html', 'editable' => true, 'label' => __('Extension des fichiers html'), 'grade' => 5, 'hint' => __('Ex : php, htm, html, phtml, asp, aspx'), 'grade' => 5); - $this->fields['actualHtmlExtension'] = array('type' => 'text', 'default' => 'html', 'editable' => false, 'label' => __('Extension des fichiers html réellement appliquée au fluidbook'), 'grade' => 5, 'hint' => __('Ex : php, htm, html, phtml, asp'), 'grade' => 5); - $this->fields['htmlPrepend'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Code à insérer en tête des fichiers'), 'grade' => 5); - $this->fields['baseUrl'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Base de l\'url'), 'grade' => 5,); + $this->fields['forceCompileOnDownload'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Forcer la compilation lors du téléchargement'), 'grade' => 3); + $this->fields['embedAllLibraries'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Intégrer toutes les bibliothèques JS'), 'grade' => 3); + $this->fields['htmlExtension'] = array('type' => 'text', 'default' => 'html', 'editable' => true, 'label' => $this->__('Extension des fichiers html'), 'grade' => 5, 'hint' => $this->__('Ex : php, htm, html, phtml, asp, aspx'), 'grade' => 5); + $this->fields['actualHtmlExtension'] = array('type' => 'text', 'default' => 'html', 'editable' => false, 'label' => $this->__('Extension des fichiers html réellement appliquée au fluidbook'), 'grade' => 5, 'hint' => $this->__('Ex : php, htm, html, phtml, asp'), 'grade' => 5); + $this->fields['htmlPrepend'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Code à insérer en tête des fichiers'), 'grade' => 5); + $this->fields['baseUrl'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Base de l\'url'), 'grade' => 5,); - $this->forms['package'] = array('label' => __('Option d\'export'), + $this->forms['package'] = array('label' => $this->__('Option d\'export'), 'fieldsnames' => array('htmlExtension', "actualHtmlExtension", 'htmlPrepend', 'baseUrl', 'forceCompileOnDownload', 'embedAllLibraries')); - $this->fields['disableDemo'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Désactiver le lien de démo'), 'grade' => 5); - $this->fields['redirectDemo'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Rediriger le lien de démo vers'), 'grade' => 5); - $this->forms['demo'] = array('label' => __('Lien de démo'), + $this->fields['disableDemo'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Désactiver le lien de démo'), 'grade' => 5); + $this->fields['redirectDemo'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Rediriger le lien de démo vers'), 'grade' => 5); + $this->forms['demo'] = array('label' => $this->__('Lien de démo'), 'fieldsnames' => array('disableDemo', 'redirectDemo')); - $this->fields['gamify_coins_pages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Attribuer des coins lors de la visite des pages')); - $this->forms['gamify'] = ['label' => __('Gamification'), + $this->fields['gamify_coins_pages'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Attribuer des coins lors de la visite des pages')); + $this->forms['gamify'] = ['label' => $this->__('Gamification'), 'fieldsnames' => ['gamify_coins_pages']]; - $this->fields['scorm_enable'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer SCORM'), 'grade' => 5); - $this->fields['scorm_version'] = array('type' => 'combo', 'default' => '1.2', 'editable' => true, 'label' => __('Version du standard SCORM'), 'grade' => 5, + $this->fields['scorm_enable'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Activer SCORM'), 'grade' => 5); + $this->fields['scorm_version'] = array('type' => 'combo', 'default' => '1.2', 'editable' => true, 'label' => $this->__('Version du standard SCORM'), 'grade' => 5, 'datas' => array( - __('SCORM 1.2') => '1.2', - __('SCORM 2004 3rd edition') => '2004.3', - __('SCORM 2004 4th edition') => '2004', + $this->__('SCORM 1.2') => '1.2', + $this->__('SCORM 2004 3rd edition') => '2004.3', + $this->__('SCORM 2004 4th edition') => '2004', ) ); - $this->fields['scorm_id'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Identifiant SCORM'), 'grade' => 5); - $this->fields['scorm_org'] = array('type' => 'text', 'default' => 'ACME-ORG-1350650111249', 'editable' => true, 'label' => __('Organisation SCORM'), 'grade' => 5); - $this->fields['scorm_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Titre SCORM'), 'grade' => 5, 'hint' => __('Laisser vide pour utiliser le titre de la publication')); - $this->fields['scorm_variables'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Variables SCORM'), 'grade' => 5, 'hint' => __('Laisser vide pour utiliser le titre de la publication')); - $this->fields['scorm_score'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Activer le support du score'), 'grade' => 5); - $this->fields['scorm_score_min'] = array('type' => 'integer', 'min' => 0, 'max' => 100, 'default' => 50, 'editable' => true, 'label' => __('Score minimal pour marquer le contenu comme réussi'), 'grade' => 5); - $this->fields['scorm_quiz_as_questionnaire'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Traiter les quiz comme des questionnaires (toutes les réponses sont considérées comme correctes)'), 'grade' => 5); - $this->fields['scorm_quizdata'] = array('type' => 'freefile', 'editable' => true, 'default' => '', 'label' => __('Données de quiz')); + $this->fields['scorm_id'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Identifiant SCORM'), 'grade' => 5); + $this->fields['scorm_org'] = array('type' => 'text', 'default' => 'ACME-ORG-1350650111249', 'editable' => true, 'label' => $this->__('Organisation SCORM'), 'grade' => 5); + $this->fields['scorm_title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => $this->__('Titre SCORM'), 'grade' => 5, 'hint' => $this->__('Laisser vide pour utiliser le titre de la publication')); + $this->fields['scorm_variables'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => $this->__('Variables SCORM'), 'grade' => 5, 'hint' => $this->__('Laisser vide pour utiliser le titre de la publication')); + $this->fields['scorm_score'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Activer le support du score'), 'grade' => 5); + $this->fields['scorm_score_min'] = array('type' => 'integer', 'min' => 0, 'max' => 100, 'default' => 50, 'editable' => true, 'label' => $this->__('Score minimal pour marquer le contenu comme réussi'), 'grade' => 5); + $this->fields['scorm_quiz_as_questionnaire'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__('Traiter les quiz comme des questionnaires (toutes les réponses sont considérées comme correctes)'), 'grade' => 5); + $this->fields['scorm_quizdata'] = array('type' => 'freefile', 'editable' => true, 'default' => '', 'label' => $this->__('Données de quiz')); $this->fields['scorm_complete_coins'] = ['type' => 'integer', 'default' => 0, 'label' => 'Marquer le cours comme "Complete" lorsque le visiteur accumule X coins', 'editable' => true]; $this->fields['scorm_complete_on_exit'] = ['type' => 'boolean', 'default' => false, 'label' => 'Marquer le cours comme "Complete" à la fermeture de la fenêtre', 'editable' => true]; $this->fields['scorm_complete_on_last_page'] = ['type' => 'boolean', 'default' => false, 'label' => 'Marquer le cours comme "Complete" lorsque le visiteur atteint la dernière page', 'editable' => true]; - $this->fields['scorm_force_attempts'] = ['type' => 'boolean', 'default' => false, 'label' => __('Forcer la création d\'un "attempt" à chaque ouverture'), 'editable' => true]; - $this->fields['scorm_pass_on_complete'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __("Marquer le cours comme Pass lorsqu'il est terminé") . ' (' . __('SCORM 2004 seulement') . ')']; - $this->fields['scorm_score100_on_complete'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Marquer le cours comme réussi à 100% lorsqu'il est terminé")]; - $this->fields['scorm_commit_immediately'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Envoyer les données immédiatement au LMS") . ' (' . __('Peut provoquer des ralentissement sur certains LMS') . ')']; + $this->fields['scorm_force_attempts'] = ['type' => 'boolean', 'default' => false, 'label' => $this->__('Forcer la création d\'un "attempt" à chaque ouverture'), 'editable' => true]; + $this->fields['scorm_pass_on_complete'] = ['type' => 'boolean', 'default' => true, 'editable' => true, 'label' => $this->__("Marquer le cours comme Pass lorsqu'il est terminé") . ' (' . $this->__('SCORM 2004 seulement') . ')']; + $this->fields['scorm_score100_on_complete'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Marquer le cours comme réussi à 100% lorsqu'il est terminé")]; + $this->fields['scorm_commit_immediately'] = ['type' => 'boolean', 'default' => false, 'editable' => true, 'label' => $this->__("Envoyer les données immédiatement au LMS") . ' (' . $this->__('Peut provoquer des ralentissement sur certains LMS') . ')']; - $this->forms['scorm'] = array('label' => __('SCORM'), + $this->forms['scorm'] = array('label' => $this->__('SCORM'), 'fieldsnames' => array('scorm_enable', 'scorm_version', 'scorm_id', 'scorm_org', 'scorm_title', 'scorm_variables', '|', 'scorm_complete_on_exit', 'scorm_complete_on_last_page', 'scorm_complete_coins', '|', 'scorm_pass_on_complete', 'scorm_score100_on_complete', '|', 'scorm_quizdata', 'scorm_score', 'scorm_score_min', 'scorm_quiz_as_questionnaire', '|', 'scorm_force_attempts', 'scorm_commit_immediately')); $versions = wsUrl::getFluidbookVersions(false); @@ -883,12 +843,12 @@ class wsBookParametres extends wsParametres if (in_array($k, $ignore)) { continue; } - $this->fields['download_' . $k] = ['type' => 'boolean', 'editable' => true, 'default' => false, 'label' => $version['title'], 'grade' => 3]; + $this->fields['download_' . $k] = ['type' => 'boolean', 'editable' => true, 'default' => false, 'label' => $this->__($version['title']), 'grade' => 3]; $fields[] = 'download_' . $k; } $this->fields['download_online']['default'] = true; - $this->forms['downloads'] = array('label' => __('Versions disponibles au téléchargement'), + $this->forms['downloads'] = array('label' => $this->__('Versions disponibles au téléchargement'), 'fieldsnames' => $fields); } } diff --git a/inc/ws/Metier/class.ws.document.php b/inc/ws/Metier/class.ws.document.php index 3d73abd9a..d66bc8272 100644 --- a/inc/ws/Metier/class.ws.document.php +++ b/inc/ws/Metier/class.ws.document.php @@ -508,7 +508,7 @@ class wsDocument extends cubeMetier public static function isFarmUser() { global $core; - $farmTesters = [2, 3, 5]; + $farmTesters = [1, 2, 3, 5]; return in_array($core->user->utilisateur_id, $farmTesters); } @@ -531,6 +531,8 @@ class wsDocument extends cubeMetier $version = ''; } + $isFarmUser = self::isFarmUser(); + $dir = rtrim($this->out . $version, '/') . '/'; $minsize = 1; if ($format === 'svg') { @@ -540,7 +542,11 @@ class wsDocument extends cubeMetier $file .= '-' . $resolution; } $file .= '.svg'; - $reffile = $this->makeSVGFile($page, $force); + if ($isFarmUser) { + $reffile = $this->out . '/html/fp' . $page . '.svg'; + } else { + $reffile = $this->makeSVGFile($page, $force); + } $minsize = 100; } else if ($format === 'png' || $format === 'jpg') { $prefix = $withText ? 't' : 'h'; @@ -558,7 +564,7 @@ class wsDocument extends cubeMetier $do = true; } else if (filesize($file) < $minsize) { $do = true; - } else if (isset($reffile) && filemtime($file) < filemtime($reffile)) { + } else if (isset($reffile) && (!file_exists($reffile) || filemtime($file) < filemtime($reffile))) { $do = true; } else if ($format === 'svg') { $t = filemtime($file); @@ -567,7 +573,7 @@ class wsDocument extends cubeMetier if ($do || $force) { - if (self::isFarmUser()) { + if ($isFarmUser) { return $this->_getFileFarm($page, $format, $resolution, $withText, $withGraphics, $version, $force); } else { $this->makeFile($file, $page, $format, $resolution, $withText, $withGraphics, $version); diff --git a/inc/ws/Metier/class.ws.parametres.php b/inc/ws/Metier/class.ws.parametres.php index 570cd8628..15fde3f48 100644 --- a/inc/ws/Metier/class.ws.parametres.php +++ b/inc/ws/Metier/class.ws.parametres.php @@ -7,17 +7,18 @@ class wsParametres extends cubeMetier implements Iterator protected $fields; protected $forms; protected $parent; + protected $context = ''; // Magic functions - public function __construct($parent) + public function __construct($parent, $context = '') { + $this->context = $context; $this->parent = $parent; $this->initFields(); $this->datas = array(); $this->setDefaultValues(); } - public function initFromWS3Data($r) { print_r($r->columns); @@ -318,6 +319,7 @@ class wsParametres extends cubeMetier implements Iterator public function generateV3Form($tab = false) { ob_end_clean(); + header('Content-type: text/plain'); @@ -326,7 +328,7 @@ class wsParametres extends cubeMetier implements Iterator '; foreach ($this->forms as $formname => $form) { if ($tab !== 'form') { - echo $this->generateV3Field(['name' => 'section_' . $formname, 'type' => 'FormSection', 'label' => '§!§' . $form['label'] . '!§!']); + echo $this->generateV3Field(['name' => 'section_' . $formname, 'type' => 'FormSection', 'label' => $form['label']]); $_tab = $tab; } else { $_tab = $form['label']; @@ -348,7 +350,7 @@ class wsParametres extends cubeMetier implements Iterator public function generateV3Field($attributes, $tab = false) { if ($tab && !isset($attributes['tab'])) { - $attributes['tab'] = '§!§' . $tab . '!§!'; + $attributes['tab'] = $tab; } $res = " "; $res .= '$this->addField(\'' . addcslashes($attributes['name'], "'") . '\', ' . $attributes['type'] . '::class'; @@ -367,8 +369,7 @@ class wsParametres extends cubeMetier implements Iterator $res = str_replace("'§!§", '__(\'', $res); $res = str_replace("!§!'", '\')', $res); - - $res = preg_replace_callback('/§!§(.*)!§!/u', function ($matches) { + $res = preg_replace_callback('/§!§(.*)!§!/uU', function ($matches) { return '__(\'' . addcslashes($matches[1], "'") . '\')'; }, $res); @@ -381,14 +382,16 @@ class wsParametres extends cubeMetier implements Iterator $copyAttrs = ['min' => 'min', 'max' => 'max', 'default' => 'default', 'allows_alpha' => 'allows_alpha']; $transAttrs = ['label' => 'label', 'hint' => 'hint']; + $orig = $f; if ($f['type'] === 'couleur') { $f['allows_alpha'] = false; } else if ($f['type'] === 'couleurAlpha') { - $f['allows_alpha'] = false; + $f['allows_alpha'] = true; } - $attrs = ['name' => $name, 'type' => isset($typeMap[$f['type']]) ? $typeMap[$f['type']] : $f['type']]; + + $attrs = ['name' => $name, 'type' => $typeMap[$f['type']] ?? $f['type'], 'v2' => json_encode($orig)]; if ($name == 'signature') { $attrs['type'] = 'FluidbookSignature'; @@ -410,7 +413,7 @@ class wsParametres extends cubeMetier implements Iterator foreach ($transAttrs as $former => $new) { if (isset($f[$former])) { - $attrs[$new] = '§!§' . $f[$former] . '!§!'; + $attrs[$new] = $f[$former]; } } foreach ($copyAttrs as $former => $new) { @@ -440,4 +443,17 @@ class wsParametres extends cubeMetier implements Iterator if ((bool)$return) return $export; else echo $export; } + /** + * @param $str + * @return string + */ + public function __($str) + { + if ($this->context === 'export') { + return '§!§' . $str . '!§!'; + } else { + return __($str); + } + } + } \ No newline at end of file