diff --git a/public_html/lib/plugins/folded/action.php b/public_html/lib/plugins/folded/action.php index 3c3b097a..5333f375 100644 --- a/public_html/lib/plugins/folded/action.php +++ b/public_html/lib/plugins/folded/action.php @@ -18,6 +18,7 @@ class action_plugin_folded extends DokuWiki_Action_Plugin { */ function register(Doku_Event_Handler $controller) { $controller->register_hook('DOKUWIKI_STARTED', 'AFTER', $this, 'addhidereveal'); + $controller->register_hook('TEMPLATE_PAGETOOLS_DISPLAY', 'BEFORE', $this, 'add_button', array()); } /** @@ -37,4 +38,30 @@ class action_plugin_folded extends DokuWiki_Action_Plugin { 'reveal' => $reveal ); } + + /** + * Add 'fold/unfold all'-button to pagetools + * + * @param Doku_Event $event + * @param mixed $param not defined + */ + public function add_button(&$event, $param) { + global $ID, $REV; + + if($this->getConf('show_fold_unfold_all_button') && $event->data['view'] == 'main') { + $params = array('do' => 'fold_unfold_all'); + if($REV) $params['rev'] = $REV; + + // insert button at position before last (up to top) + $event->data['items'] = array_slice($event->data['items'], 0, -1, true) + + array('fold_unfold_all' => + '
  • ' + .'' + .''.$this->getLang('fold_unfold_all_button').'' + .'' + .'
  • ' + ) + + array_slice($event->data['items'], -1 , 1, true); + } + } } diff --git a/public_html/lib/plugins/folded/conf/default.php b/public_html/lib/plugins/folded/conf/default.php index d129325f..4dd5801d 100644 --- a/public_html/lib/plugins/folded/conf/default.php +++ b/public_html/lib/plugins/folded/conf/default.php @@ -5,4 +5,6 @@ * @author Christopher Smith */ $conf['hide'] = ''; // hide tooltip, if empty will use localised string -$conf['reveal'] = ''; // reveal tooltip, if empty will use localised string \ No newline at end of file +$conf['reveal'] = ''; // reveal tooltip, if empty will use localised string +$conf['unfold_default'] = 0; // unfold all text per default +$conf['show_fold_unfold_all_button'] = 1; // show a button in the pagetool-area that folds/unfolds all texts of the current page diff --git a/public_html/lib/plugins/folded/conf/metadata.php b/public_html/lib/plugins/folded/conf/metadata.php index 797bea31..758ce243 100644 --- a/public_html/lib/plugins/folded/conf/metadata.php +++ b/public_html/lib/plugins/folded/conf/metadata.php @@ -6,3 +6,5 @@ */ $meta['hide'] = array('string'); $meta['reveal'] = array('string'); +$meta['unfold_default'] = array('onoff'); +$meta['show_fold_unfold_all_button'] = array('onoff'); diff --git a/public_html/lib/plugins/folded/lang/cs/lang.php b/public_html/lib/plugins/folded/lang/cs/lang.php index 01bea12d..1e351374 100644 --- a/public_html/lib/plugins/folded/lang/cs/lang.php +++ b/public_html/lib/plugins/folded/lang/cs/lang.php @@ -1,16 +1,11 @@ + * + * @author Esther Brunner */ - -// custom language strings for the plugin -$lang['reveal'] = 'zobrazit'; -$lang['reveallong'] = 'zobrazit skrytý obsah'; - -$lang['hide'] = 'skrýt'; -$lang['hidelong'] = 'skrýt obsah'; - -//Setup VIM: ex: et ts=2 enc=utf-8 : \ No newline at end of file +$lang['reveal'] = 'zobrazit'; +$lang['reveallong'] = 'zobrazit skrytý obsah'; +$lang['hide'] = 'skrýt'; +$lang['hidelong'] = 'skrýt obsah'; diff --git a/public_html/lib/plugins/folded/lang/cs/settings.php b/public_html/lib/plugins/folded/lang/cs/settings.php new file mode 100644 index 00000000..4aa36083 --- /dev/null +++ b/public_html/lib/plugins/folded/lang/cs/settings.php @@ -0,0 +1,9 @@ + + */ +$lang['hide'] = 'Zasunout skrývací nabídku
    (nechat prázdné pro použití přeložených textů)'; +$lang['reveal'] = 'Vysunout skrývací nabídku
    (nechat prázdné pro použití přeložených textů)'; diff --git a/public_html/lib/plugins/folded/lang/de/lang.php b/public_html/lib/plugins/folded/lang/de/lang.php index a0dbe0cf..28006287 100644 --- a/public_html/lib/plugins/folded/lang/de/lang.php +++ b/public_html/lib/plugins/folded/lang/de/lang.php @@ -13,4 +13,6 @@ $lang['reveallong'] = 'zeige den eingeklappten Inhalt'; $lang['hide'] = 'zuklappen'; $lang['hidelong'] = 'verberge den Inhalt'; -//Setup VIM: ex: et ts=2 enc=utf-8 : \ No newline at end of file +$lang['fold_unfold_all_button'] = 'Alles aus-/einklappen'; + +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/public_html/lib/plugins/folded/lang/de/settings.php b/public_html/lib/plugins/folded/lang/de/settings.php index 21601fcd..ac39b5a2 100644 --- a/public_html/lib/plugins/folded/lang/de/settings.php +++ b/public_html/lib/plugins/folded/lang/de/settings.php @@ -9,3 +9,5 @@ // for the configuration manager $lang['hide'] = 'Tooltip zum Zuklappen
    (Feld leer lassen um den Standardwert zu nutzen)'; $lang['reveal'] = 'Tooltip zum Aufklappen
    (Feld leer lassen um den Standardwert zu nutzen)'; +$lang['unfold_default'] = 'Standardmäßig alles aufklappen'; +$lang['show_fold_unfold_all_button'] = 'Button zum Zuklappen/Aufklappen aller Text der aktuellen Seite anzeigen'; diff --git a/public_html/lib/plugins/folded/lang/en/lang.php b/public_html/lib/plugins/folded/lang/en/lang.php index 68f230b6..c87a86a7 100644 --- a/public_html/lib/plugins/folded/lang/en/lang.php +++ b/public_html/lib/plugins/folded/lang/en/lang.php @@ -13,4 +13,6 @@ $lang['reveallong'] = 'reveal hidden content'; $lang['hide'] = 'hide'; $lang['hidelong'] = 'hide content'; -//Setup VIM: ex: et ts=2 enc=utf-8 : \ No newline at end of file +$lang['fold_unfold_all_button'] = 'Fold/unfold all'; + +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/public_html/lib/plugins/folded/lang/en/settings.php b/public_html/lib/plugins/folded/lang/en/settings.php index c537eced..25f64cb4 100644 --- a/public_html/lib/plugins/folded/lang/en/settings.php +++ b/public_html/lib/plugins/folded/lang/en/settings.php @@ -9,3 +9,5 @@ // for the configuration manager $lang['hide'] = 'Folding tooltip to hide
    (leave empty to use localised string)'; $lang['reveal'] = 'Folding tooltip to reveal
    (leave empty to use localised string)'; +$lang['unfold_default'] = 'Unfold everything by default'; +$lang['show_fold_unfold_all_button'] = 'Show a button in the pagetool-area that folds/unfolds all texts of the current page'; diff --git a/public_html/lib/plugins/folded/lang/fa/lang.php b/public_html/lib/plugins/folded/lang/fa/lang.php new file mode 100644 index 00000000..267fd019 --- /dev/null +++ b/public_html/lib/plugins/folded/lang/fa/lang.php @@ -0,0 +1,11 @@ + + */ +$lang['reveal'] = 'آشکارسازی'; +$lang['reveallong'] = 'آشکارسازی محتوای پنهان'; +$lang['hide'] = 'مخفی‌سازی'; +$lang['hidelong'] = 'مخفی‌سازی محتوا'; diff --git a/public_html/lib/plugins/folded/lang/fa/settings.php b/public_html/lib/plugins/folded/lang/fa/settings.php new file mode 100644 index 00000000..c2e86e49 --- /dev/null +++ b/public_html/lib/plugins/folded/lang/fa/settings.php @@ -0,0 +1,9 @@ + + */ +$lang['hide'] = 'جاسازی راهنمای ابزار برای مخفی کردن
    (خالی گذاشتن برای استفاده از رشته محلی)'; +$lang['reveal'] = 'جاسازی راهنمای ابزار برای آشکار کردن
    (خالی گذاشتن برای استفاده از رشته محلی)'; diff --git a/public_html/lib/plugins/folded/lang/fr/lang.php b/public_html/lib/plugins/folded/lang/fr/lang.php index c9bd8c6a..1ebd3659 100644 --- a/public_html/lib/plugins/folded/lang/fr/lang.php +++ b/public_html/lib/plugins/folded/lang/fr/lang.php @@ -2,11 +2,13 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Esther Brunner * @author Fabrice Dejaigher + * @author Schplurtz le Déboulonné */ $lang['reveal'] = 'révéler'; $lang['reveallong'] = 'révéler le contenu masqué'; $lang['hide'] = 'masquer'; $lang['hidelong'] = 'masquer le contenu'; +$lang['fold_unfold_all_button'] = 'Tout plier/déplier'; diff --git a/public_html/lib/plugins/folded/lang/fr/settings.php b/public_html/lib/plugins/folded/lang/fr/settings.php index f9e9011f..e1a4be7f 100644 --- a/public_html/lib/plugins/folded/lang/fr/settings.php +++ b/public_html/lib/plugins/folded/lang/fr/settings.php @@ -2,8 +2,11 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Fabrice Dejaigher + * @author Schplurtz le Déboulonné */ $lang['hide'] = 'Contenu de l\'infobulle de l\'élément à masquer.
    (laissez vide pour utiliser la chaîne localisée)'; $lang['reveal'] = 'Contenu de l\'infobulle de l\'élément à révéler.
    (laissez vide pour utiliser la chaîne localisée)'; +$lang['unfold_default'] = 'Tout déplier par défaut'; +$lang['show_fold_unfold_all_button'] = 'Ajouter un bouton dans la zone des outils de page pour plier et déplier tous les textes de la page courante'; diff --git a/public_html/lib/plugins/folded/lang/no/lang.php b/public_html/lib/plugins/folded/lang/no/lang.php index 0101f689..f1871b56 100644 --- a/public_html/lib/plugins/folded/lang/no/lang.php +++ b/public_html/lib/plugins/folded/lang/no/lang.php @@ -1,16 +1,11 @@ + * + * @author Matthias Schulte */ - -// custom language strings for the plugin -$lang['reveal'] = 'vis'; -$lang['reveallong'] = 'vis skjult innhold '; - -$lang['hide'] = 'skjul'; -$lang['hidelong'] = 'skjul innhold'; - -//Setup VIM: ex: et ts=2 : \ No newline at end of file +$lang['reveal'] = 'vis'; +$lang['reveallong'] = 'vis skjult innhold '; +$lang['hide'] = 'skjul'; +$lang['hidelong'] = 'skjul innhold'; diff --git a/public_html/lib/plugins/folded/lang/no/settings.php b/public_html/lib/plugins/folded/lang/no/settings.php new file mode 100644 index 00000000..f51fb679 --- /dev/null +++ b/public_html/lib/plugins/folded/lang/no/settings.php @@ -0,0 +1,9 @@ + + */ +$lang['hide'] = 'Infoboble for å skjule
    (la stå tom for å bruke oversatt tekst)'; +$lang['reveal'] = 'Infoboble for å vise
    (la stå tom for å bruke oversatt tekst)'; diff --git a/public_html/lib/plugins/folded/lang/tr/lang.php b/public_html/lib/plugins/folded/lang/tr/lang.php index 6605f55c..1974263f 100644 --- a/public_html/lib/plugins/folded/lang/tr/lang.php +++ b/public_html/lib/plugins/folded/lang/tr/lang.php @@ -1,16 +1,13 @@ + * + * @author Chris Smith + * @author Mustafa Icer */ - -// custom language strings for the plugin -$lang['reveal'] = 'göster'; -$lang['reveallong'] = 'gizlenen içeri?i göster'; - -$lang['hide'] = 'gizle'; -$lang['hidelong'] = 'içeri?i gizle'; - -//Setup VIM: ex: et ts=2 enc=utf-8 : \ No newline at end of file +$lang['reveal'] = 'göster'; +$lang['reveallong'] = 'gizlenen içeriği göster'; +$lang['hide'] = 'gizle'; +$lang['hidelong'] = 'içeriği gizle'; +$lang['fold_unfold_all_button'] = 'katla/tüm katlamalari aç'; diff --git a/public_html/lib/plugins/folded/lang/tr/settings.php b/public_html/lib/plugins/folded/lang/tr/settings.php new file mode 100644 index 00000000..1b199157 --- /dev/null +++ b/public_html/lib/plugins/folded/lang/tr/settings.php @@ -0,0 +1,10 @@ + + */ +$lang['unfold_default'] = 'standart olarak tüm katlamalari aç'; +$lang['show_fold_unfold_all_button'] = 'tüm sayfanin yazılarını katlamak/katlamalari açmak icin, +pagetool sayfasında buton göster'; diff --git a/public_html/lib/plugins/folded/pagetools-close-open-sprite.png b/public_html/lib/plugins/folded/pagetools-close-open-sprite.png new file mode 100644 index 00000000..ceb85b4f Binary files /dev/null and b/public_html/lib/plugins/folded/pagetools-close-open-sprite.png differ diff --git a/public_html/lib/plugins/folded/plugin.info.txt b/public_html/lib/plugins/folded/plugin.info.txt index 1527cd9e..1f5238a7 100644 --- a/public_html/lib/plugins/folded/plugin.info.txt +++ b/public_html/lib/plugins/folded/plugin.info.txt @@ -1,7 +1,7 @@ base folded author Michael Hamann, Fabian van-de-l_Isle, Christopher Smith, Esther Brunner email michael@content-space.de -date 2014-07-21 +date 2017-05-30 name folded plugin desc Foldable page sections url http://dokuwiki.org/plugin:folded diff --git a/public_html/lib/plugins/folded/script.js b/public_html/lib/plugins/folded/script.js index 39303631..c17bd724 100644 --- a/public_html/lib/plugins/folded/script.js +++ b/public_html/lib/plugins/folded/script.js @@ -14,6 +14,7 @@ jQuery(function() { // containers for localised reveal/hide strings, // populated from the content set by the action plugin + if(!JSINFO || !JSINFO['plugin_folded']) return; var folded_reveal = JSINFO['plugin_folded']['reveal']; var folded_hide = JSINFO['plugin_folded']['hide']; @@ -23,7 +24,7 @@ jQuery(function() { * toggle the folded element via className change also adjust the classname and * title tooltip on the folding link */ - jQuery('.folder').click(function folded_toggle(evt) { + jQuery('.dokuwiki .folder').click(function folded_toggle(evt) { var id = this.href.match(/(#.*)$/)[1]; var $id = jQuery(id); @@ -44,6 +45,46 @@ jQuery(function() { }); }); +function fold_unfold_all() { + var hide = -1; + var cpt = 1; + + var folders = document.getElementsByClassName("folder"); + var i; + for (i = 0; i < folders.length; i++) { + // initially, find out whether we want to hide or unhide + if (hide == -1) { + if (folders[i].className.search("open") == -1) { + hide = 0; + } else { + hide = 1; + } + } + + if (hide == 1) { + folders[i].className = folders[i].className.replace(/open/g, ""); + } else { + folders[i].className = folders[i].className + " open"; + } + + } + + // get first folded_ object + var obj = document.getElementById("folded_" + cpt++); + while ( obj != null ) { + if (hide == 1) { + obj.className = obj.className.replace(/open/g, ""); + obj.className = obj.className + " hidden"; + } else { + obj.className = obj.className.replace(/hidden/g, ""); + obj.className = obj.className + " open"; + } + + // get next folded_ object + obj = document.getElementById("folded_" + cpt++); + } +} + // support graceful js degradation, this hides the folded blocks from view // before they are shown, // whilst still allowing non-js user to see any folded content. diff --git a/public_html/lib/plugins/folded/style.css b/public_html/lib/plugins/folded/style.css index e9533473..9c153134 100644 --- a/public_html/lib/plugins/folded/style.css +++ b/public_html/lib/plugins/folded/style.css @@ -21,6 +21,28 @@ span.indicator { visibility: hidden; } +/* fold/unfold all button in pagetools area */ +#dokuwiki__pagetools ul li a.fold_unfold_all { + background-position: right 0; +} + +#dokuwiki__pagetools ul li a.fold_unfold_all:before { + content: url(pagetools-close-open-sprite.png); + margin-top: 0; +} + +#dokuwiki__pagetools:hover ul li a.fold_unfold_all, +#dokuwiki__pagetools ul li a.fold_unfold_all:focus, +#dokuwiki__pagetools ul li a.fold_unfold_all:active { + background-image: url(pagetools-close-open-sprite.png); +} + +#dokuwiki__pagetools ul li a.fold_unfold_all:hover, +#dokuwiki__pagetools ul li a.fold_unfold_all:active, +#dokuwiki__pagetools ul li a.fold_unfold_all:focus { + background-position: right -45px; +} + /* below style rules are created by javascript .folded.hidden { display: none; } .folder span.indicator { visibility: visible; } diff --git a/public_html/lib/plugins/folded/syntax/div.php b/public_html/lib/plugins/folded/syntax/div.php index ae783227..b33b1f92 100644 --- a/public_html/lib/plugins/folded/syntax/div.php +++ b/public_html/lib/plugins/folded/syntax/div.php @@ -8,9 +8,8 @@ * @author Esther Brunner */ -if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_PLUGIN.'syntax.php'); +// must be run within DokuWiki +if(!defined('DOKU_INC')) die(); // maintain a global count of the number of folded elements in the page, // this allows each to be uniquely identified @@ -61,12 +60,20 @@ class syntax_plugin_folded_div extends DokuWiki_Syntax_Plugin { switch ($state){ case DOKU_LEXER_ENTER: $plugin_folded_count++; - $renderer->doc .= '

    '; + if ($this->getConf('unfold_default')) { + $renderer->doc .= '

    '; + } else { + $renderer->doc .= '

    '; + } if ($cdata) $renderer->doc .= ' '.$renderer->cdata($cdata); - $renderer->doc .= '