summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYves Fischer <yvesf-git@xapek.org>2011-10-22 00:17:10 +0200
committerYves Fischer <yvesf-git@xapek.org>2011-10-22 00:17:10 +0200
commiteccaa6b2507b4217809b2cd955c0014bd043fe59 (patch)
tree5075f9d3d9749e8e63a8e5e626307c8146e146a0
parentca0645e63d39c8cb67423ef76f0415fc09d2aca4 (diff)
downloaddokuwiki-plugin-treenav-eccaa6b2507b4217809b2cd955c0014bd043fe59.tar.gz
dokuwiki-plugin-treenav-eccaa6b2507b4217809b2cd955c0014bd043fe59.zip
caching, fix setting of metadata in syntax plugin
-rw-r--r--action.php84
-rw-r--r--images/copyright.images362
-rw-r--r--images/go-next-symbolic.pngbin0 -> 442 bytes
-rw-r--r--images/go-next-symbolic.svg126
-rw-r--r--images/zoom-in-symbolic.pngbin0 -> 321 bytes
-rw-r--r--images/zoom-in-symbolic.svg29
-rw-r--r--syntax.php17
7 files changed, 587 insertions, 31 deletions
diff --git a/action.php b/action.php
index d896aa7..da0fb22 100644
--- a/action.php
+++ b/action.php
@@ -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
new file mode 100644
index 0000000..b325da0
--- /dev/null
+++ b/images/go-next-symbolic.png
Binary files differ
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
new file mode 100644
index 0000000..bf3f58a
--- /dev/null
+++ b/images/zoom-in-symbolic.png
Binary files differ
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>
diff --git a/syntax.php b/syntax.php
index fc6f648..779b40d 100644
--- a/syntax.php
+++ b/syntax.php
@@ -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: */