diff options
author | Yves Fischer <yvesf-git@xapek.org> | 2011-10-22 00:17:10 +0200 |
---|---|---|
committer | Yves Fischer <yvesf-git@xapek.org> | 2011-10-22 00:17:10 +0200 |
commit | eccaa6b2507b4217809b2cd955c0014bd043fe59 (patch) | |
tree | 5075f9d3d9749e8e63a8e5e626307c8146e146a0 | |
parent | ca0645e63d39c8cb67423ef76f0415fc09d2aca4 (diff) | |
download | dokuwiki-plugin-treenav-eccaa6b2507b4217809b2cd955c0014bd043fe59.tar.gz dokuwiki-plugin-treenav-eccaa6b2507b4217809b2cd955c0014bd043fe59.zip |
caching, fix setting of metadata in syntax plugin
-rw-r--r-- | action.php | 84 | ||||
-rw-r--r-- | images/copyright.images | 362 | ||||
-rw-r--r-- | images/go-next-symbolic.png | bin | 0 -> 442 bytes | |||
-rw-r--r-- | images/go-next-symbolic.svg | 126 | ||||
-rw-r--r-- | images/zoom-in-symbolic.png | bin | 0 -> 321 bytes | |||
-rw-r--r-- | images/zoom-in-symbolic.svg | 29 | ||||
-rw-r--r-- | syntax.php | 17 |
7 files changed, 587 insertions, 31 deletions
@@ -7,12 +7,20 @@ if(!defined('DOKU_INC')) die(); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once DOKU_PLUGIN.'action.php'; +/** + * search_namespaces1 + * + * like search_namespaces but with limited depth to 1 + */ function search_namespaces1(&$data,$base,$file,$type,$lvl,$opts){ $opts['listdirs'] = true; $opts['depth'] = 1; return search_universal($data,$base,$file,$type,$lvl,$opts); } +/** + * Helper class to list Pages and Namespaces + */ class NamespaceNode { public $name; public $level; @@ -41,44 +49,63 @@ class NamespaceNode { } +/** + * DokuWiki Action Plugin. Inserts Tree Navigation in div "page" and wraps + * actual page in div "inner__page" + */ class action_plugin_treenav extends DokuWiki_Action_Plugin { function register(&$controller) { $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, - '_before_page'); + 'hook_beforePage'); $controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, - '_after_page'); - + 'hook_afterPage'); } - function _after_page(&$event, $param) { - echo '</div>' . DOKU_LF; - } - function _before_page(&$event, $param) { + function hook_beforePage(&$event, $param) { global $ID; - $root = new NamespaceNode('',0); - $renderer =& p_get_renderer('xhtml'); - $renderer->listu_open(); - $this->_print($root, $renderer); - $renderer->listu_close(); + $deps = p_get_metadata($id, 'treenav_deps', true); + $cache = new cache(cleanID($ID), 'plugin_treenav'); + + if (count($deps)>0 && $cache->useCache($deps)) { + $doc = $cache->retrieveCache(false); + } else { + $deps = array('files' => array()); + $root = new NamespaceNode('',0); + + $renderer =& p_get_renderer('xhtml'); + $renderer->listu_open(); + $this->_print($root, $renderer, $deps); + $renderer->listu_close(); + $doc = $renderer->doc; + + $cache->storeCache($doc); + p_set_metadata($id, array('treenav_deps' => $deps)); + } - echo '<div class="treenav">' . DOKU_LF . $renderer->doc . DOKU_LF . '</div>'; + echo '<div class="treenav">' . DOKU_LF . $doc . DOKU_LF . '</div>'; echo '<div class="page__inner">' . DOKU_LF; + + tpl_flush(); } - function _print($node, &$renderer) { + function hook_afterPage(&$event, $param) { + echo '</div>' . DOKU_LF; + } + + function _print($node, &$renderer, &$deps) { global $ID; foreach ($node->getChildren() as $child) { foreach ($child->getPages() as $page) { if (noNS($page['id']) === 'start') { $renderer->listitem_open(); - $renderer->cdata('>'); + $deps['files'][] = wikiFN($page['id']); // Add page file to dependencies $this->_renderPagelink($page['id'], $renderer); if (strpos(getNS($ID), $child->name) === 0) { // Recursive Call with Sub-Namespace that contains // current Page ($ID) $renderer->listu_open(); - $this->_print($child, $renderer); + $this->_print($child, $renderer, $deps); $renderer->listu_close(); } $renderer->listitem_close(); @@ -90,21 +117,34 @@ class action_plugin_treenav extends DokuWiki_Action_Plugin { if (noNS($page['id']) == 'start' && getNS($page['id']) != '') continue; $renderer->listitem_open(); + $deps['files'][] = wikiFN($page['id']); // Add page file to dependencies $this->_renderPagelink($page['id'], $renderer); $renderer->listitem_close(); } } function _renderPagelink($id, &$renderer) { + global $conf; + $id = ':' . cleanID($id); - $options = p_get_metadata($id, 'treenav', true); - if ($options['icon']) { - $iconID = $options['icon']; + $options = p_get_metadata($id, 'treenav'); + + // Icon + $iconID = $options['icon']; + if ($iconID) { resolve_mediaid(getNS($id), $iconID, $exists); - if ($exists) { - $renderer->doc .= $renderer->_media($iconID, NULL, NULL, 16, 16); + } + if ($iconID && $exists) { + $link = ml($iconID, array('h'=>16, 'cache'=>NULL)); + } else { + if (noNS($id) === $conf['start'] && getNS($id) !== '') { + $link = DOKU_REL . 'lib/plugins/treenav/images/zoom-in-symbolic.png'; + } else { + $link = DOKU_REL . 'lib/plugins/treenav/images/go-next-symbolic.png'; } } + $renderer->doc .= '<img height="16" src="'.$link.'" class="media" />' . DOKU_LF; + if ($options['title']) { $title = $options['title']; } else { @@ -121,4 +161,4 @@ class action_plugin_treenav extends DokuWiki_Action_Plugin { /* tab-width: 4 */ /* indent-tabs-mode: nil */ /* c-basic-offset: 4 */ -/* End: */
\ No newline at end of file +/* End: */ diff --git a/images/copyright.images b/images/copyright.images new file mode 100644 index 0000000..dfd7549 --- /dev/null +++ b/images/copyright.images @@ -0,0 +1,362 @@ +This package was debianized by Sebastian Dröge <slomo@debian.org> on +Thu, 29 Apr 2010 13:22:21 +0200. + +It was downloaded from <http://download.gnome.org/sources/gnome-icon-theme-symbolic/> + +Copyright: + + Copyright (C) Claire Alexander <claire.alexander@intel.com> + Copyright (C) Hylke Bons <hylke.bons@intel.com> + Copyright (C) Darren Wilson <darren.wilson@intel.com> + Copyright (C) Jakub Steiner <jimmac@novell.com> + Copyright (C) Lapo Calamandrei <calamandrei@gmail.com> + +License: + + This work is licenced under the Creative Commons Attribution-Share Alike 3.0 + United States License. To view a copy of this licence, visit + http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative + Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. + + When attributing the artwork, using "GNOME Project" is enough. + Please link to http://www.gnome.org where available. + +The following is the text of the version 3.0 of the Creative Commons +Attribution Share-Alike license. It was retrieved from +<http://creativecommons.org/licenses/by-sa/3.0/legalcode> at +2007-10-26 09:53:15+00:00. + + License + + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS + CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS + PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK + OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS + PROHIBITED. + + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND + AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS + LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE + RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS + AND CONDITIONS. + + 1. Definitions + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may + be recast, transformed, or adapted including in any form + recognizably derived from the original, except that a work that + constitutes a Collection will not be considered an Adaptation for + the purpose of this License. For the avoidance of doubt, where the + Work is a musical work, performance or phonogram, the + synchronization of the Work in timed-relation with a moving image + ("synching") will be considered an Adaptation for the purpose of + this License. + b. "Collection" means a collection of literary or artistic works, such + as encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works + listed in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, + in which the Work is included in its entirety in unmodified form + along with one or more other contributions, each constituting + separate and independent works in themselves, which together are + assembled into a collective whole. A work that constitutes a + Collection will not be considered an Adaptation (as defined below) + for the purposes of this License. + c. "Creative Commons Compatible License" means a license that is + listed at http://creativecommons.org/compatiblelicenses that has + been approved by Creative Commons as being essentially equivalent + to this License, including, at a minimum, because that license: (i) + contains terms that have the same purpose, meaning and effect as + the License Elements of this License; and, (ii) explicitly permits + the relicensing of adaptations of works made available under that + license under this License or a Creative Commons jurisdiction + license with the same License Elements as this License. + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + e. "License Elements" means the following high-level license + attributes as selected by Licensor and indicated in the title of + this License: Attribution, ShareAlike. + f. "Licensor" means the individual, individuals, entity or entities + that offer(s) the Work under the terms of this License. + g. "Original Author" means, in the case of a literary or artistic + work, the individual, individuals, entity or entities who created + the Work or if no individual or entity can be identified, the + publisher; and in addition (i) in the case of a performance the + actors, singers, musicians, dancers, and other persons who act, + sing, deliver, declaim, play in, interpret or otherwise perform + literary or artistic works or expressions of folklore; (ii) in the + case of a phonogram the producer being the person or legal entity + who first fixes the sounds of a performance or other sounds; and, + (iii) in the case of broadcasts, the organization that transmits + the broadcast. + h. "Work" means the literary and/or artistic work offered under the + terms of this License including without limitation any production + in the literary, scientific and artistic domain, whatever may be + the mode or form of its expression including digital form, such as + a book, pamphlet and other writing; a lecture, address, sermon or + other work of the same nature; a dramatic or dramatico-musical + work; a choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which + are assimilated works expressed by a process analogous to + cinematography; a work of drawing, painting, architecture, + sculpture, engraving or lithography; a photographic work to which + are assimilated works expressed by a process analogous to + photography; a work of applied art; an illustration, map, plan, + sketch or three-dimensional work relative to geography, topography, + architecture or science; a performance; a broadcast; a phonogram; a + compilation of data to the extent it is protected as a + copyrightable work; or a work performed by a variety or circus + performer to the extent it is not otherwise considered a literary + or artistic work. + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License + with respect to the Work, or who has received express permission + from the Licensor to exercise rights under this License despite a + previous violation. + j. "Publicly Perform" means to perform public recitations of the Work + and to communicate to the public those public recitations, by any + means or process, including by wire or wireless means or public + digital performances; to make available to the public Works in such + a way that members of the public may access these Works from a + place and at a place individually chosen by them; to perform the + Work to the public by any means or process and the communication to + the public of the performances of the Work, including by public + digital performance; to broadcast and rebroadcast the Work by any + means including signs, sounds or images. + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage + of a protected performance or phonogram in digital form or other + electronic medium. + + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, + limit, or restrict any uses free from copyright or rights arising from + limitations or exceptions that are provided for in connection with the + copyright protection under copyright law or other applicable laws. + + 3. License Grant. Subject to the terms and conditions of this License, + Licensor hereby grants You a worldwide, royalty-free, non-exclusive, + perpetual (for the duration of the applicable copyright) license to + exercise the rights in the Work as stated below: + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such + Adaptation, including any translation in any medium, takes + reasonable steps to clearly label, demarcate or otherwise identify + that changes were made to the original Work. For example, a + translation could be marked "The original work was translated from + English to Spanish," or a modification could indicate "The original + work has been modified."; + c. to Distribute and Publicly Perform the Work including as + incorporated in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + i. Non-waivable Compulsory License Schemes. In those + jurisdictions in which the right to collect royalties through + any statutory or compulsory licensing scheme cannot be waived, + the Licensor reserves the exclusive right to collect such + royalties for any exercise by You of the rights granted under + this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives + the exclusive right to collect such royalties for any exercise + by You of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that + the Licensor is a member of a collecting society that + administers voluntary licensing schemes, via that society, + from any exercise by You of the rights granted under this + License. + + The above rights may be exercised in all media and formats whether now + known or hereafter devised. The above rights include the right to make + such modifications as are technically necessary to exercise the rights + in other media and formats. Subject to Section 8(f), all rights not + expressly granted by Licensor are hereby reserved. + + 4. Restrictions. The license granted in Section 3 above is expressly + made subject to and limited by the following restrictions: + a. You may Distribute or Publicly Perform the Work only under the + terms of this License. You must include a copy of, or the Uniform + Resource Identifier (URI) for, this License with every copy of the + Work You Distribute or Publicly Perform. You may not offer or + impose any terms on the Work that restrict the terms of this + License or the ability of the recipient of the Work to exercise the + rights granted to that recipient under the terms of the License. + You may not sublicense the Work. You must keep intact all notices + that refer to this License and to the disclaimer of warranties with + every copy of the Work You Distribute or Publicly Perform. When You + Distribute or Publicly Perform the Work, You may not impose any + effective technological measures on the Work that restrict the + ability of a recipient of the Work from You to exercise the rights + granted to that recipient under the terms of the License. This + Section 4(a) applies to the Work as incorporated in a Collection, + but this does not require the Collection apart from the Work itself + to be made subject to the terms of this License. If You create a + Collection, upon notice from any Licensor You must, to the extent + practicable, remove from the Collection any credit as required by + Section 4(c), as requested. If You create an Adaptation, upon + notice from any Licensor You must, to the extent practicable, + remove from the Adaptation any credit as required by Section 4(c), + as requested. + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License + with the same License Elements as this License; (iii) a Creative + Commons jurisdiction license (either this or a later license + version) that contains the same License Elements as this License + (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons + Compatible License. If you license the Adaptation under one of the + licenses mentioned in (iv), you must comply with the terms of that + license. If you license the Adaptation under the terms of any of + the licenses mentioned in (i), (ii) or (iii) (the "Applicable + License"), you must comply with the terms of the Applicable License + generally and the following provisions: (I) You must include a copy + of, or the URI for, the Applicable License with every copy of each + Adaptation You Distribute or Publicly Perform; (II) You may not + offer or impose any terms on the Adaptation that restrict the terms + of the Applicable License or the ability of the recipient of the + Adaptation to exercise the rights granted to that recipient under + the terms of the Applicable License; (III) You must keep intact all + notices that refer to the Applicable License and to the disclaimer + of warranties with every copy of the Work as included in the + Adaptation You Distribute or Publicly Perform; (IV) when You + Distribute or Publicly Perform the Adaptation, You may not impose + any effective technological measures on the Adaptation that + restrict the ability of a recipient of the Adaptation from You to + exercise the rights granted to that recipient under the terms of + the Applicable License. This Section 4(b) applies to the Adaptation + as incorporated in a Collection, but this does not require the + Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + c. If You Distribute, or Publicly Perform the Work or any Adaptations + or Collections, You must, unless a request has been made pursuant + to Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) + the name of the Original Author (or pseudonym, if applicable) if + supplied, and/or if the Original Author and/or Licensor designate + another party or parties (e.g., a sponsor institute, publishing + entity, journal) for attribution ("Attribution Parties") in + Licensor's copyright notice, terms of service or by other + reasonable means, the name of such party or parties; (ii) the title + of the Work if supplied; (iii) to the extent reasonably + practicable, the URI, if any, that Licensor specifies to be + associated with the Work, unless such URI does not refer to the + copyright notice or licensing information for the Work; and (iv) , + consistent with Ssection 3(b), in the case of an Adaptation, a + credit identifying the use of the Work in the Adaptation (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). The credit required by + this Section 4(c) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, + at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then + as part of these credits and in a manner at least as prominent as + the credits for the other contributing authors. For the avoidance + of doubt, You may only use the credit required by this Section for + the purpose of attribution in the manner set out above and, by + exercising Your rights under this License, You may not implicitly + or explicitly assert or imply any connection with, sponsorship or + endorsement by the Original Author, Licensor and/or Attribution + Parties, as appropriate, of You or Your use of the Work, without + the separate, express prior written permission of the Original + Author, Licensor and/or Attribution Parties. + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute + or Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify + or take other derogatory action in relation to the Work which would + be prejudicial to the Original Author's honor or reputation. + Licensor agrees that in those jurisdictions (e.g. Japan), in which + any exercise of the right granted in Section 3(b) of this License + (the right to make Adaptations) would be deemed to be a distortion, + mutilation, modification or other derogatory action prejudicial to + the Original Author's honor and reputation, the Licensor will waive + or not assert, as appropriate, this Section, to the fullest extent + permitted by the applicable national law, to enable You to + reasonably exercise Your right under Section 3(b) of this License + (right to make Adaptations) but not otherwise. + + 5. Representations, Warranties and Disclaimer + + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR + OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY + KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, + INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, + FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF + LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF + ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW + THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO + YOU. + + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE + LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR + ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES + ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR + HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 7. Termination + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or + Collections from You under this License, however, will not have + their licenses terminated provided such individuals or entities + remain in full compliance with those licenses. Sections 1, 2, 5, 6, + 7, and 8 will survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here + is perpetual (for the duration of the applicable copyright in the + Work). Notwithstanding the above, Licensor reserves the right to + release the Work under different license terms or to stop + distributing the Work at any time; provided, however that any such + election will not serve to withdraw this License (or any other + license that has been, or is required to be, granted under the + terms of this License), and this License will continue in full + force and effect unless terminated as stated above. + + 8. Miscellaneous + a. Each time You Distribute or Publicly Perform the Work or a + Collection, the Licensor offers to the recipient a license to the + Work on the same terms and conditions as the license granted to You + under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, + Licensor offers to the recipient a license to the original Work on + the same terms and conditions as the license granted to You under + this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability + of the remainder of the terms of this License, and without further + action by the parties to this agreement, such provision shall be + reformed to the minimum extent necessary to make such provision + valid and enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in + writing and signed by the party to be charged with such waiver or + consent. + e. This License constitutes the entire agreement between the parties + with respect to the Work licensed here. There are no + understandings, agreements or representations with respect to the + Work not specified here. Licensor shall not be bound by any + additional provisions that may appear in any communication from + You. This License may not be modified without the mutual written + agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in + this License were drafted utilizing the terminology of the Berne + Convention for the Protection of Literary and Artistic Works (as + amended on September 28, 1979), the Rome Convention of 1961, the + WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms + Treaty of 1996 and the Universal Copyright Convention (as revised + on July 24, 1971). These rights and subject matter take effect in + the relevant jurisdiction in which the License terms are sought to + be enforced according to the corresponding provisions of the + implementation of those treaty provisions in the applicable + national law. If the standard suite of rights granted under + applicable copyright law includes additional rights not granted + under this License, such additional rights are deemed to be + included in the License; this License is not intended to restrict + the license of any rights under applicable law. + diff --git a/images/go-next-symbolic.png b/images/go-next-symbolic.png Binary files differnew file mode 100644 index 0000000..b325da0 --- /dev/null +++ b/images/go-next-symbolic.png diff --git a/images/go-next-symbolic.svg b/images/go-next-symbolic.svg new file mode 100644 index 0000000..c204d68 --- /dev/null +++ b/images/go-next-symbolic.svg @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg7384" + sodipodi:docname="go-next-symbolic.svg" + version="1.1" + inkscape:version="0.48.1 r9760" + height="16" + width="16"> + <metadata + id="metadata90"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:cy="-3.83035" + pagecolor="#555753" + borderopacity="0" + showborder="false" + inkscape:bbox-paths="false" + guidetolerance="10" + inkscape:object-paths="true" + inkscape:window-width="1436" + showguides="true" + inkscape:object-nodes="true" + inkscape:snap-bbox="true" + inkscape:pageshadow="2" + inkscape:guide-bbox="true" + inkscape:snap-nodes="false" + bordercolor="#666666" + objecttolerance="10" + id="namedview88" + showgrid="false" + inkscape:window-maximized="0" + inkscape:window-x="0" + inkscape:snap-global="true" + inkscape:window-y="18" + gridtolerance="10" + inkscape:window-height="862" + inkscape:snap-to-guides="true" + inkscape:current-layer="layer12" + inkscape:snap-bbox-midpoints="false" + inkscape:zoom="1" + inkscape:cx="53.0489" + inkscape:snap-grids="true" + inkscape:pageopacity="0"> + <inkscape:grid + spacingx="1px" + spacingy="1px" + id="grid4866" + empspacing="2" + enabled="true" + type="xygrid" + snapvisiblegridlinesonly="true" + visible="true" /> + </sodipodi:namedview> + <title + id="title9167">Gnome Symbolic Icon Theme</title> + <defs + id="defs7386" /> + <g + inkscape:label="status" + transform="translate(-120,-626)" + inkscape:groupmode="layer" + id="layer9" + style="display:inline" /> + <g + inkscape:label="devices" + transform="translate(-120,-626)" + inkscape:groupmode="layer" + id="layer10" /> + <g + inkscape:label="apps" + transform="translate(-120,-626)" + inkscape:groupmode="layer" + id="layer11" /> + <g + inkscape:label="actions" + transform="translate(-120,-626)" + inkscape:groupmode="layer" + id="layer12"> + <path + inkscape:connector-curvature="0" + d="m 125.03125,628 1,0 c 0.0104,-1.2e-4 0.0208,-4.6e-4 0.0313,0 0.25495,0.0112 0.50987,0.12858 0.6875,0.3125 l 5.28125,5.21875 -5.28125,5.1875 C 126.56184,638.90694 126.29654,639 126.03125,639 l -1,0 0,-1 c 0,-0.26529 0.0931,-0.53058 0.28125,-0.71875 l 3.8125,-3.75 -3.8125,-3.78125 c -0.21074,-0.19463 -0.30316,-0.46925 -0.28125,-0.75 l 0,-1 z" + id="path10839-9-9" + sodipodi:nodetypes="ccsccccccccccc" + style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#bebebe;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Andale Mono;-inkscape-font-specification:Andale Mono" /> + </g> + <g + inkscape:label="places" + transform="translate(-120,-626)" + inkscape:groupmode="layer" + id="layer13" /> + <g + inkscape:label="mimetypes" + transform="translate(-120,-626)" + inkscape:groupmode="layer" + id="layer14" /> + <g + inkscape:label="emblems" + transform="translate(-120,-626)" + inkscape:groupmode="layer" + id="layer15" + style="display:inline" /> + <g + inkscape:label="categories" + transform="translate(-120,-626)" + inkscape:groupmode="layer" + id="g4953" + style="display:inline" /> +</svg> diff --git a/images/zoom-in-symbolic.png b/images/zoom-in-symbolic.png Binary files differnew file mode 100644 index 0000000..bf3f58a --- /dev/null +++ b/images/zoom-in-symbolic.png diff --git a/images/zoom-in-symbolic.svg b/images/zoom-in-symbolic.svg new file mode 100644 index 0000000..3d22083 --- /dev/null +++ b/images/zoom-in-symbolic.svg @@ -0,0 +1,29 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:svg='http://www.w3.org/2000/svg' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' sodipodi:docname='zoom-in-symbolic.svg' version='1.1' inkscape:version='0.48.0 r9654' height='16' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='15.981825'> + <metadata id='metadata90'> + <rdf:RDF> + <cc:Work rdf:about=''> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview inkscape:cy='-5.32726' pagecolor='#555753' borderopacity='1' showborder='false' inkscape:bbox-paths='false' guidetolerance='10' inkscape:window-width='1310' showguides='true' inkscape:object-nodes='true' inkscape:snap-bbox='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:snap-nodes='true' bordercolor='#666666' objecttolerance='10' id='namedview88' showgrid='false' inkscape:window-maximized='0' inkscape:window-x='52' inkscape:snap-global='true' inkscape:window-y='24' gridtolerance='10' inkscape:window-height='690' inkscape:snap-to-guides='true' inkscape:current-layer='layer12' inkscape:zoom='1' inkscape:cx='-14.43454' inkscape:snap-grids='true' inkscape:pageopacity='1'> + <inkscape:grid spacingx='1px' spacingy='1px' id='grid4866' empspacing='2' enabled='true' type='xygrid' snapvisiblegridlinesonly='true' visible='true'/> + </sodipodi:namedview> + <title id='title9167'>Gnome Symbolic Icon Theme</title> + <defs id='defs7386'/> + <g inkscape:label='status' transform='translate(-180,-668)' inkscape:groupmode='layer' id='layer9' style='display:inline'/> + <g inkscape:label='devices' transform='translate(-180,-668)' inkscape:groupmode='layer' id='layer10'/> + <g inkscape:label='apps' transform='translate(-180,-668)' inkscape:groupmode='layer' id='layer11'/> + <g inkscape:label='actions' transform='translate(-180,-668)' inkscape:groupmode='layer' id='layer12'> + <path inkscape:connector-curvature='0' d='M 183.1875,670 C 182.5248,670 182,670.54899 182,671.21875 l 0,9.5625 c 0,0.66976 0.5248,1.21875 1.1875,1.21875 l 9.625,0 c 0.6627,0 1.1875,-0.54899 1.1875,-1.21875 l 0,-9.5625 C 194,670.54899 193.4752,670 192.8125,670 l -9.625,0 z m 3.8125,3 2,0 0,2 2,0 0,2 -2,0 0,2 -2,0 0,-2 -2,0 0,-2 2,0 0,-2 z' id='rect11749-5-0-1-8' style='color:#bebebe;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible'/> + <rect x='180' y='668' id='rect3620-5-4' rx='0' ry='0' height='16' width='15.981825' style='fill:none;stroke:none'/> + </g> + <g inkscape:label='places' transform='translate(-180,-668)' inkscape:groupmode='layer' id='layer13'/> + <g inkscape:label='mimetypes' transform='translate(-180,-668)' inkscape:groupmode='layer' id='layer14'/> + <g inkscape:label='emblems' transform='translate(-180,-668)' inkscape:groupmode='layer' id='layer15' style='display:inline'/> +</svg> @@ -8,11 +8,11 @@ if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once DOKU_PLUGIN.'syntax.php'; class syntax_plugin_treenav extends DokuWiki_Syntax_Plugin { - private $keys = array("icon", "title"); + private $keys = array('icon', 'title'); function getType() { return 'baseonly'; } function getSort() { return 32; } - + function connectTo($mode) { foreach ($this->keys as $key) { $this->Lexer->addSpecialPattern('~~'.$key.':.*?~~',$mode,'plugin_treenav'); @@ -25,17 +25,16 @@ class syntax_plugin_treenav extends DokuWiki_Syntax_Plugin { $match = substr($match, 2, -2); @list($key, $value) = explode(':', $match, 2); if (in_array($key, $this->keys)) { - $this->setMetadata($key, $value); + return array($key, $value); } } } - - function setMetadata($key, $value) { - global $ID; - $data = p_get_metadata($ID, "treenav", false) or array(); - $data[$key] = $value; - return p_set_metadata($ID, array("treenav" => $data)); + function render($mode, &$renderer, $data) { + if ($mode === 'metadata') { + $renderer->meta['treenav'][$data[0]] = $data[1]; + } } + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |