CINXE.COM

pageutils.php - OpenGrok cross reference for /dokuwiki/inc/pageutils.php

<!DOCTYPE html> <html lang="en" class="xref"> <head> <meta charset="UTF-8"> <meta name="robots" content="noindex,nofollow" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="generator" content="{OpenGrok 1.7.31 (6333fd74002ce5c6b4229b0c7460bd5acab9adec)" /> <meta name="theme-color" content="#ffffff"> <link rel="icon" href="/default/img/favicon.svg"> <link rel="mask-icon" href="/default/img/mask-icon.svg" color="#000000"> <link rel="apple-touch-icon" href="/default/img/apple-touch-icon.png"> <link rel="manifest" href="/manifest.json"> <link rel="preload" href="/default/font/SunSansRegular.woff2" as="font" type="font/woff2" crossorigin> <link rel="stylesheet" type="text/css" media="all" title="Default" href="/default/style-1.0.4.min.css" /> <link rel="alternate stylesheet" type="text/css" media="all" title="Paper White" href="/default/print-1.0.2.min.css" /> <link rel="stylesheet" type="text/css" href="/default/mandoc-1.0.0.min.css" media="all" /> <link rel="stylesheet" type="text/css" href="/default/print-1.0.2.min.css" media="print" /> <link rel="stylesheet" type="text/css" href="/default/jquery-ui-1.12.1-custom.min.css" /> <link rel="stylesheet" type="text/css" href="/default/jquery-ui-1.12.1-custom.structure.min.css" /> <link rel="stylesheet" type="text/css" href="/default/jquery-ui-1.12.1-custom.theme.min.css" /> <link rel="stylesheet" type="text/css" href="/default/jquery.tooltip.min.css" /> <link rel="stylesheet" type="text/css" href="/default/jquery.tablesorter.min.css" /> <link rel="stylesheet" type="text/css" href="/default/searchable-option-list-2.0.3.min.css" /> <link rel="search" href="/opensearch" type="application/opensearchdescription+xml" title="OpenGrok Search for current project(s)" /> <script type="text/javascript">/* <![CDATA[ */ window.contextPath = ''; document.xrefPath = '/xref'; document.pageReady = []; document.domReady = []; /* ]]> */ </script> <title>pageutils.php - OpenGrok cross reference for /dokuwiki/inc/pageutils.php</title></head><body> <script type="text/javascript">/* <![CDATA[ */ document.rev = function() { return getParameter("r"); }; document.annotate = false; document.domReady.push(function() { domReadyMast(); }); document.pageReady.push(function() { pageReadyMast(); }); /* ]]> */</script> <div id="page"> <header id="whole_header"> <div id="Masthead"> <a href="/xref/">xref</a>: /<a href="/xref/dokuwiki/">dokuwiki</a>/<a href="/xref/dokuwiki/inc/">inc</a>/<a href="/xref/dokuwiki/inc/pageutils.php">pageutils.php</a><span id="dtag"> </span> </div> <form action="/search"> <div id="bar"> <ul> <li><a href="/"><span id="home"></span>Home</a></li><li><span id="history"></span><span class="c">History</span></li><li><span class="c"><span class="annotate"></span>Annotate</span></li><li><a href="#" onclick="lntoggle();return false;" title="Show or hide line numbers (might be slower if file has more than 10 000 lines)."> <span id="line"></span>Line#</a></li> <li><a href="#" class="scopes-toggle" title="Show or hide scopes window."> <span id="scopes"></span>Scopes#</a></li> <li><a href="#" id="navigate" title="Show or hide symbol list."> <span id="defbox"></span>Navigate#</a></li><li><a href="/raw/dokuwiki/inc/pageutils.php"><span id="raw"></span>Raw</a></li> <li><a href="/download/dokuwiki/inc/pageutils.php"><span id="download"></span>Download</a></li> <li><input type="text" id="search" name="full" class="q" aria-label="Search"/></li> <li><input type="submit" value="Search" class="submit" /></li><li><label><input id="minisearch-path" type="checkbox" name="path" value='"/dokuwiki/inc/"' /> current directory</label></li> </ul><input id="minisearch-project" type="hidden" name="project" value="dokuwiki" /><input type="hidden" id="contextpath" value="" /> </div> </form> <script type="text/javascript">/* <![CDATA[ */ document.domReady.push(function() { domReadyMenu(true); }); /* ]]> */ </script> </header> <div id="content"> <script type="text/javascript">/* <![CDATA[ */ document.pageReady.push(function() { pageReadyList();}); /* ]]> */</script> <div id="src"> <pre><a class="l" name="1" href="#1">1</a><strong>&lt;?php</strong> <a class="l" name="2" href="#2">2</a> <a class="l" name="3" href="#3">3</a><span class="c">/**</span> <a class="l" name="4" href="#4">4</a><span class="c"> * Utilities for handling pagenames</span> <a class="l" name="5" href="#5">5</a><span class="c"> *</span> <a class="l" name="6" href="#6">6</a><span class="c"> * <strong>@license</strong> GPL 2 (<a href="http://www.gnu.org/licenses/gpl.html)">http://www.gnu.org/licenses/gpl.html)</a></span> <a class="l" name="7" href="#7">7</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="8" href="#8">8</a><span class="c"> * <strong>@todo</strong> Combine similar functions like {wiki,media,meta}FN()</span> <a class="l" name="9" href="#9">9</a><span class="c"> */</span> <a class="hl" name="10" href="#10">10</a> <a class="l" name="11" href="#11">11</a><b>use</b> <a href="/s?defs=dokuwiki&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dokuwiki</a>\<a href="/s?defs=Utf8&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Utf8</a>\<a href="/s?defs=PhpString&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">PhpString</a>; <a class="l" name="12" href="#12">12</a><b>use</b> <a href="/s?defs=dokuwiki&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dokuwiki</a>\<a href="/s?defs=Utf8&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Utf8</a>\<a href="/s?defs=Clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Clean</a>; <a class="l" name="13" href="#13">13</a><b>use</b> <a href="/s?defs=dokuwiki&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dokuwiki</a>\<a href="/s?defs=File&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">File</a>\<a href="/s?defs=Resolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Resolver</a>; <a class="l" name="14" href="#14">14</a><b>use</b> <a href="/s?defs=dokuwiki&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dokuwiki</a>\<a href="/s?defs=Extension&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Extension</a>\<a href="/s?defs=Event&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Event</a>; <a class="l" name="15" href="#15">15</a><b>use</b> <a href="/s?defs=dokuwiki&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dokuwiki</a>\<a href="/s?defs=ChangeLog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ChangeLog</a>\<a href="/s?defs=MediaChangeLog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">MediaChangeLog</a>; <a class="l" name="16" href="#16">16</a><b>use</b> <a href="/s?defs=dokuwiki&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dokuwiki</a>\<a href="/s?defs=ChangeLog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ChangeLog</a>\<a href="/s?defs=PageChangeLog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">PageChangeLog</a>; <a class="l" name="17" href="#17">17</a><b>use</b> <a href="/s?defs=dokuwiki&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dokuwiki</a>\<a href="/s?defs=File&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">File</a>\<a href="/s?defs=MediaResolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">MediaResolver</a>; <a class="l" name="18" href="#18">18</a><b>use</b> <a href="/s?defs=dokuwiki&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dokuwiki</a>\<a href="/s?defs=File&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">File</a>\<a href="/s?defs=PageResolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">PageResolver</a>; <a class="l" name="19" href="#19">19</a> <a class="hl" name="20" href="#20">20</a><span class="c">/**</span> <a class="l" name="21" href="#21">21</a><span class="c"> * Fetch the an ID from request</span> <a class="l" name="22" href="#22">22</a><span class="c"> *</span> <a class="l" name="23" href="#23">23</a><span class="c"> * Uses either standard $_REQUEST variable or extracts it from</span> <a class="l" name="24" href="#24">24</a><span class="c"> * the full request URI when userewrite is set to 2</span> <a class="l" name="25" href="#25">25</a><span class="c"> *</span> <a class="l" name="26" href="#26">26</a><span class="c"> * For $param=&apos;id&apos; $conf[&apos;start&apos;] is returned if no id was found.</span> <a class="l" name="27" href="#27">27</a><span class="c"> * If the second parameter is true (default) the ID is cleaned.</span> <a class="l" name="28" href="#28">28</a><span class="c"> *</span> <a class="l" name="29" href="#29">29</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="hl" name="30" href="#30">30</a><span class="c"> *</span> <a class="l" name="31" href="#31">31</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=param&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">param</a> the $_REQUEST variable name, default &apos;id&apos;</span> <a class="l" name="32" href="#32">32</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> if true, ID is cleaned</span> <a class="l" name="33" href="#33">33</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="l" name="34" href="#34">34</a><span class="c"> */</span> <a class="l" name="35" href="#35">35</a><b>function</b> <a href="/s?defs=getID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">getID</a>($<a href="/s?defs=param&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">param</a> = <span class="s">&apos;id&apos;</span>, $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>) <a class="l" name="36" href="#36">36</a>{ <a class="l" name="37" href="#37">37</a> <span class="c">/** <strong>@var</strong> <a href="/s?defs=Input&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Input</a> $INPUT */</span> <a class="l" name="38" href="#38">38</a> <b>global</b> $<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>; <a class="l" name="39" href="#39">39</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="hl" name="40" href="#40">40</a> <b>global</b> $<a href="/s?defs=ACT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ACT</a>; <a class="l" name="41" href="#41">41</a> <a class="l" name="42" href="#42">42</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = $<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>($<a href="/s?defs=param&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">param</a>); <a class="l" name="43" href="#43">43</a> <a class="l" name="44" href="#44">44</a> <span class="c">//construct page id from request URI</span> <a class="l" name="45" href="#45">45</a> <b>if</b> (<b>empty</b>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) &amp;&amp; $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;userewrite&apos;</span>] == <span class="n">2</span>) { <a class="l" name="46" href="#46">46</a> $<a href="/s?defs=request&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">request</a> = $<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;REQUEST_URI&apos;</span>); <a class="l" name="47" href="#47">47</a> $<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a> = <span class="s">&apos;&apos;</span>; <a class="l" name="48" href="#48">48</a> <a class="l" name="49" href="#49">49</a> <span class="c">//get the script URL</span> <a class="hl" name="50" href="#50">50</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;basedir&apos;</span>]) { <a class="l" name="51" href="#51">51</a> $<a href="/s?defs=relpath&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">relpath</a> = <span class="s">&apos;&apos;</span>; <a class="l" name="52" href="#52">52</a> <b>if</b> ($<a href="/s?defs=param&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">param</a> != <span class="s">&apos;id&apos;</span>) { <a class="l" name="53" href="#53">53</a> $<a href="/s?defs=relpath&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">relpath</a> = <span class="s">&apos;<a href="/s?path=lib/&amp;project=dokuwiki">lib</a>/<a href="/s?path=lib/exe&amp;project=dokuwiki">exe</a>/&apos;</span>; <a class="l" name="54" href="#54">54</a> } <a class="l" name="55" href="#55">55</a> $<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;basedir&apos;</span>] . $<a href="/s?defs=relpath&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">relpath</a> . <a class="l" name="56" href="#56">56</a> <a href="/s?defs=PhpString&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">PhpString</a>::<a href="/s?defs=basename&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">basename</a>($<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;SCRIPT_FILENAME&apos;</span>)); <a class="l" name="57" href="#57">57</a> } <b>elseif</b> ($<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;PATH_INFO&apos;</span>)) { <a class="l" name="58" href="#58">58</a> $<a href="/s?defs=request&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">request</a> = $<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;PATH_INFO&apos;</span>); <a class="l" name="59" href="#59">59</a> } <b>elseif</b> ($<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;SCRIPT_NAME&apos;</span>)) { <a class="hl" name="60" href="#60">60</a> $<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a> = $<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;SCRIPT_NAME&apos;</span>); <a class="l" name="61" href="#61">61</a> } <b>elseif</b> ($<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;DOCUMENT_ROOT&apos;</span>) &amp;&amp; $<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;SCRIPT_FILENAME&apos;</span>)) { <a class="l" name="62" href="#62">62</a> $<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>( <a class="l" name="63" href="#63">63</a> <span class="s">&apos;/^&apos;</span> . <a href="/s?defs=preg_quote&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_quote</a>($<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;DOCUMENT_ROOT&apos;</span>), <span class="s">&apos;/&apos;</span>) . <span class="s">&apos;/&apos;</span>, <a class="l" name="64" href="#64">64</a> <span class="s">&apos;&apos;</span>, <a class="l" name="65" href="#65">65</a> $<a href="/s?defs=INPUT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">INPUT</a>-&gt;<a href="/s?defs=server&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">server</a>-&gt;<a href="/s?defs=str&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str</a>(<span class="s">&apos;SCRIPT_FILENAME&apos;</span>) <a class="l" name="66" href="#66">66</a> ); <a class="l" name="67" href="#67">67</a> $<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a> = <span class="s">&apos;/&apos;</span> . $<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a>; <a class="l" name="68" href="#68">68</a> } <a class="l" name="69" href="#69">69</a> <a class="hl" name="70" href="#70">70</a> <span class="c">//clean script and request (fixes a windows problem)</span> <a class="l" name="71" href="#71">71</a> $<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;/\/\/+/&apos;</span>, <span class="s">&apos;/&apos;</span>, $<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a>); <a class="l" name="72" href="#72">72</a> $<a href="/s?defs=request&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">request</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;/\/\/+/&apos;</span>, <span class="s">&apos;/&apos;</span>, $<a href="/s?defs=request&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">request</a>); <a class="l" name="73" href="#73">73</a> <a class="l" name="74" href="#74">74</a> <span class="c">//remove script URL and Querystring to gain the id</span> <a class="l" name="75" href="#75">75</a> <b>if</b> (<a href="/s?defs=preg_match&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_match</a>(<span class="s">&apos;/^&apos;</span> . <a href="/s?defs=preg_quote&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_quote</a>($<a href="/s?defs=script&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">script</a>, <span class="s">&apos;/&apos;</span>) . <span class="s">&apos;(.*)/&apos;</span>, $<a href="/s?defs=request&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">request</a>, $<a href="/s?defs=match&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">match</a>)) { <a class="l" name="76" href="#76">76</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;/\?.*/&apos;</span>, <span class="s">&apos;&apos;</span>, $<a href="/s?defs=match&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">match</a>[<span class="n">1</span>]); <a class="l" name="77" href="#77">77</a> } <a class="l" name="78" href="#78">78</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=urldecode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urldecode</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="79" href="#79">79</a> <span class="c">//strip leading slashes</span> <a class="hl" name="80" href="#80">80</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;!^/+!&apos;</span>, <span class="s">&apos;&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="81" href="#81">81</a> } <a class="l" name="82" href="#82">82</a> <a class="l" name="83" href="#83">83</a> <span class="c">// Namespace autolinking from URL</span> <a class="l" name="84" href="#84">84</a> <b>if</b> (<a href="/s?defs=str_ends_with&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_ends_with</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;:&apos;</span>) || ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;useslash&apos;</span>] &amp;&amp; <a href="/s?defs=str_ends_with&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_ends_with</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;/&apos;</span>))) { <a class="l" name="85" href="#85">85</a> <b>if</b> (<a href="/s?defs=page_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page_exists</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> . $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;start&apos;</span>])) { <a class="l" name="86" href="#86">86</a> <span class="c">// start page inside namespace</span> <a class="l" name="87" href="#87">87</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> .= $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;start&apos;</span>]; <a class="l" name="88" href="#88">88</a> } <b>elseif</b> (<a href="/s?defs=page_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page_exists</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> . <a href="/s?defs=noNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">noNS</a>(<a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>)))) { <a class="l" name="89" href="#89">89</a> <span class="c">// page named like the NS inside the NS</span> <a class="hl" name="90" href="#90">90</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> .= <a href="/s?defs=noNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">noNS</a>(<a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>)); <a class="l" name="91" href="#91">91</a> } <b>elseif</b> (<a href="/s?defs=page_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page_exists</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>)) { <a class="l" name="92" href="#92">92</a> <span class="c">// page like namespace exists</span> <a class="l" name="93" href="#93">93</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=substr&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">substr</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="n">0</span>, <span class="n">-1</span>); <a class="l" name="94" href="#94">94</a> } <b>else</b> { <a class="l" name="95" href="#95">95</a> <span class="c">// fall back to default</span> <a class="l" name="96" href="#96">96</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> .= $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;start&apos;</span>]; <a class="l" name="97" href="#97">97</a> } <a class="l" name="98" href="#98">98</a> <b>if</b> (<b>isset</b>($<a href="/s?defs=ACT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ACT</a>) &amp;&amp; $<a href="/s?defs=ACT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ACT</a> === <span class="s">&apos;show&apos;</span>) { <a class="l" name="99" href="#99">99</a> $<a href="/s?defs=urlParameters&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urlParameters</a> = $<a href="/s?defs=_GET&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">_GET</a>; <a class="hl" name="100" href="#100">100</a> <b>if</b> (<b>isset</b>($<a href="/s?defs=urlParameters&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urlParameters</a>[<span class="s">&apos;id&apos;</span>])) { <a class="l" name="101" href="#101">101</a> <b>unset</b>($<a href="/s?defs=urlParameters&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urlParameters</a>[<span class="s">&apos;id&apos;</span>]); <a class="l" name="102" href="#102">102</a> } <a class="l" name="103" href="#103">103</a> <a href="/s?defs=send_redirect&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">send_redirect</a>(<a href="/s?defs=wl&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">wl</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=urlParameters&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urlParameters</a>, <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>, <span class="s">&apos;&amp;&apos;</span>)); <a class="l" name="104" href="#104">104</a> } <a class="l" name="105" href="#105">105</a> } <a class="l" name="106" href="#106">106</a> <b>if</b> ($<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a>) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="107" href="#107">107</a> <b>if</b> ($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> === <span class="s">&apos;&apos;</span> &amp;&amp; $<a href="/s?defs=param&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">param</a> == <span class="s">&apos;id&apos;</span>) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;start&apos;</span>]; <a class="l" name="108" href="#108">108</a> <a class="l" name="109" href="#109">109</a> <b>return</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>; <a class="hl" name="110" href="#110">110</a>} <a class="l" name="111" href="#111">111</a> <a class="l" name="112" href="#112">112</a><span class="c">/**</span> <a class="l" name="113" href="#113">113</a><span class="c"> * Remove unwanted chars from ID</span> <a class="l" name="114" href="#114">114</a><span class="c"> *</span> <a class="l" name="115" href="#115">115</a><span class="c"> * Cleans a given ID to only use allowed characters. Accented characters are</span> <a class="l" name="116" href="#116">116</a><span class="c"> * converted to unaccented ones</span> <a class="l" name="117" href="#117">117</a><span class="c"> *</span> <a class="l" name="118" href="#118">118</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="119" href="#119">119</a><span class="c"> *</span> <a class="hl" name="120" href="#120">120</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=raw_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">raw_id</a> The pageid to clean</span> <a class="l" name="121" href="#121">121</a><span class="c"> * <strong>@param</strong> <b>boolean</b> $<a href="/s?defs=ascii&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ascii</a> Force ASCII</span> <a class="l" name="122" href="#122">122</a><span class="c"> * <strong>@return</strong> <b>string</b> cleaned id</span> <a class="l" name="123" href="#123">123</a><span class="c"> */</span> <a class="l" name="124" href="#124">124</a><b>function</b> <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=raw_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">raw_id</a>, $<a href="/s?defs=ascii&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ascii</a> = <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) <a class="l" name="125" href="#125">125</a>{ <a class="l" name="126" href="#126">126</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="127" href="#127">127</a> <b>static</b> $<a href="/s?defs=sepcharpat&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepcharpat</a> = <a href="/s?defs=null&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">null</a>; <a class="l" name="128" href="#128">128</a> <a class="l" name="129" href="#129">129</a> <b>global</b> $<a href="/s?defs=cache_cleanid&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache_cleanid</a>; <a class="hl" name="130" href="#130">130</a> $<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a> = &amp; $<a href="/s?defs=cache_cleanid&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache_cleanid</a>; <a class="l" name="131" href="#131">131</a> <a class="l" name="132" href="#132">132</a> <span class="c">// check if it&apos;s already in the memory cache</span> <a class="l" name="133" href="#133">133</a> <b>if</b> (!$<a href="/s?defs=ascii&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ascii</a> &amp;&amp; <b>isset</b>($<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[(<em>string</em>)$<a href="/s?defs=raw_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">raw_id</a>])) { <a class="l" name="134" href="#134">134</a> <b>return</b> $<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[(<em>string</em>)$<a href="/s?defs=raw_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">raw_id</a>]; <a class="l" name="135" href="#135">135</a> } <a class="l" name="136" href="#136">136</a> <a class="l" name="137" href="#137">137</a> $<a href="/s?defs=sepchar&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepchar</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;sepchar&apos;</span>]; <a class="l" name="138" href="#138">138</a> <b>if</b> ($<a href="/s?defs=sepcharpat&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepcharpat</a> == <a href="/s?defs=null&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">null</a>) <span class="c">// build string only once to save clock cycles</span> <a class="l" name="139" href="#139">139</a> $<a href="/s?defs=sepcharpat&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepcharpat</a> = <span class="s">&apos;#<strong>\\</strong>&apos;</span> . $<a href="/s?defs=sepchar&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepchar</a> . <span class="s">&apos;+#&apos;</span>; <a class="hl" name="140" href="#140">140</a> <a class="l" name="141" href="#141">141</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=trim&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">trim</a>((<em>string</em>)$<a href="/s?defs=raw_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">raw_id</a>); <a class="l" name="142" href="#142">142</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=PhpString&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">PhpString</a>::<a href="/s?defs=strtolower&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">strtolower</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="143" href="#143">143</a> <a class="l" name="144" href="#144">144</a> <span class="c">//alternative namespace seperator</span> <a class="l" name="145" href="#145">145</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;useslash&apos;</span>]) { <a class="l" name="146" href="#146">146</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=strtr&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">strtr</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;;/&apos;</span>, <span class="s">&apos;::&apos;</span>); <a class="l" name="147" href="#147">147</a> } <b>else</b> { <a class="l" name="148" href="#148">148</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=strtr&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">strtr</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;;/&apos;</span>, <span class="s">&apos;:&apos;</span> . $<a href="/s?defs=sepchar&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepchar</a>); <a class="l" name="149" href="#149">149</a> } <a class="hl" name="150" href="#150">150</a> <a class="l" name="151" href="#151">151</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;deaccent&apos;</span>] == <span class="n">2</span> || $<a href="/s?defs=ascii&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ascii</a>) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=Clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Clean</a>::<a href="/s?defs=romanize&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">romanize</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="152" href="#152">152</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;deaccent&apos;</span>] || $<a href="/s?defs=ascii&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ascii</a>) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=Clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Clean</a>::<a href="/s?defs=deaccent&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">deaccent</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="n">-1</span>); <a class="l" name="153" href="#153">153</a> <a class="l" name="154" href="#154">154</a> <span class="c">//remove specials</span> <a class="l" name="155" href="#155">155</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=Clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Clean</a>::<a href="/s?defs=stripspecials&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">stripspecials</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=sepchar&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepchar</a>, <span class="s">&apos;\*&apos;</span>); <a class="l" name="156" href="#156">156</a> <a class="l" name="157" href="#157">157</a> <b>if</b> ($<a href="/s?defs=ascii&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ascii</a>) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=Clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Clean</a>::<a href="/s?defs=strip&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">strip</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="158" href="#158">158</a> <a class="l" name="159" href="#159">159</a> <span class="c">//clean up</span> <a class="hl" name="160" href="#160">160</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>($<a href="/s?defs=sepcharpat&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepcharpat</a>, $<a href="/s?defs=sepchar&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sepchar</a>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="161" href="#161">161</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;#:+#&apos;</span>, <span class="s">&apos;:&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="162" href="#162">162</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=trim&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">trim</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;:._-&apos;</span>); <a class="l" name="163" href="#163">163</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;#:[:\._\-]+#&apos;</span>, <span class="s">&apos;:&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="164" href="#164">164</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;#[:\._\-]+:#&apos;</span>, <span class="s">&apos;:&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="165" href="#165">165</a> <a class="l" name="166" href="#166">166</a> <b>if</b> (!$<a href="/s?defs=ascii&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ascii</a>) $<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[(<em>string</em>)$<a href="/s?defs=raw_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">raw_id</a>] = $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>; <a class="l" name="167" href="#167">167</a> <b>return</b>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="168" href="#168">168</a>} <a class="l" name="169" href="#169">169</a> <a class="hl" name="170" href="#170">170</a><span class="c">/**</span> <a class="l" name="171" href="#171">171</a><span class="c"> * Return namespacepart of a wiki ID</span> <a class="l" name="172" href="#172">172</a><span class="c"> *</span> <a class="l" name="173" href="#173">173</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="174" href="#174">174</a><span class="c"> *</span> <a class="l" name="175" href="#175">175</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a></span> <a class="l" name="176" href="#176">176</a><span class="c"> * <strong>@return</strong> <b>string</b>|<b>false</b> the namespace part or false if the given ID has no namespace (root)</span> <a class="l" name="177" href="#177">177</a><span class="c"> */</span> <a class="l" name="178" href="#178">178</a><b>function</b> <a href="/s?defs=getNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">getNS</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="179" href="#179">179</a>{ <a class="hl" name="180" href="#180">180</a> $<a href="/s?defs=pos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pos</a> = <a href="/s?defs=strrpos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">strrpos</a>((<em>string</em>)$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;:&apos;</span>); <a class="l" name="181" href="#181">181</a> <b>if</b> ($<a href="/s?defs=pos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pos</a> !== <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) { <a class="l" name="182" href="#182">182</a> <b>return</b> <a href="/s?defs=substr&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">substr</a>((<em>string</em>)$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="n">0</span>, $<a href="/s?defs=pos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pos</a>); <a class="l" name="183" href="#183">183</a> } <a class="l" name="184" href="#184">184</a> <b>return</b> <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>; <a class="l" name="185" href="#185">185</a>} <a class="l" name="186" href="#186">186</a> <a class="l" name="187" href="#187">187</a><span class="c">/**</span> <a class="l" name="188" href="#188">188</a><span class="c"> * Returns the ID without the namespace</span> <a class="l" name="189" href="#189">189</a><span class="c"> *</span> <a class="hl" name="190" href="#190">190</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="191" href="#191">191</a><span class="c"> *</span> <a class="l" name="192" href="#192">192</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a></span> <a class="l" name="193" href="#193">193</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="l" name="194" href="#194">194</a><span class="c"> */</span> <a class="l" name="195" href="#195">195</a><b>function</b> <a href="/s?defs=noNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">noNS</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="196" href="#196">196</a>{ <a class="l" name="197" href="#197">197</a> $<a href="/s?defs=pos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pos</a> = <a href="/s?defs=strrpos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">strrpos</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;:&apos;</span>); <a class="l" name="198" href="#198">198</a> <b>if</b> ($<a href="/s?defs=pos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pos</a> !== <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) { <a class="l" name="199" href="#199">199</a> <b>return</b> <a href="/s?defs=substr&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">substr</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=pos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pos</a> + <span class="n">1</span>); <a class="hl" name="200" href="#200">200</a> } <b>else</b> { <a class="l" name="201" href="#201">201</a> <b>return</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>; <a class="l" name="202" href="#202">202</a> } <a class="l" name="203" href="#203">203</a>} <a class="l" name="204" href="#204">204</a> <a class="l" name="205" href="#205">205</a><span class="c">/**</span> <a class="l" name="206" href="#206">206</a><span class="c"> * Returns the current namespace</span> <a class="l" name="207" href="#207">207</a><span class="c"> *</span> <a class="l" name="208" href="#208">208</a><span class="c"> * <strong>@author</strong> Nathan Fritz &lt;fritzn@crown.edu&gt;</span> <a class="l" name="209" href="#209">209</a><span class="c"> *</span> <a class="hl" name="210" href="#210">210</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a></span> <a class="l" name="211" href="#211">211</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="l" name="212" href="#212">212</a><span class="c"> */</span> <a class="l" name="213" href="#213">213</a><b>function</b> <a href="/s?defs=curNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">curNS</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="214" href="#214">214</a>{ <a class="l" name="215" href="#215">215</a> <b>return</b> <a href="/s?defs=noNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">noNS</a>(<a href="/s?defs=getNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">getNS</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>)); <a class="l" name="216" href="#216">216</a>} <a class="l" name="217" href="#217">217</a> <a class="l" name="218" href="#218">218</a><span class="c">/**</span> <a class="l" name="219" href="#219">219</a><span class="c"> * Returns the ID without the namespace or current namespace for &apos;start&apos; pages</span> <a class="hl" name="220" href="#220">220</a><span class="c"> *</span> <a class="l" name="221" href="#221">221</a><span class="c"> * <strong>@author</strong> Nathan Fritz &lt;fritzn@crown.edu&gt;</span> <a class="l" name="222" href="#222">222</a><span class="c"> *</span> <a class="l" name="223" href="#223">223</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a></span> <a class="l" name="224" href="#224">224</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="l" name="225" href="#225">225</a><span class="c"> */</span> <a class="l" name="226" href="#226">226</a><b>function</b> <a href="/s?defs=noNSorNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">noNSorNS</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="227" href="#227">227</a>{ <a class="l" name="228" href="#228">228</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="229" href="#229">229</a> <a class="hl" name="230" href="#230">230</a> $<a href="/s?defs=p&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">p</a> = <a href="/s?defs=noNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">noNS</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="231" href="#231">231</a> <b>if</b> ($<a href="/s?defs=p&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">p</a> === $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;start&apos;</span>] || $<a href="/s?defs=p&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">p</a> === <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a> || $<a href="/s?defs=p&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">p</a> === <span class="s">&apos;&apos;</span>) { <a class="l" name="232" href="#232">232</a> $<a href="/s?defs=p&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">p</a> = <a href="/s?defs=curNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">curNS</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="233" href="#233">233</a> <b>if</b> ($<a href="/s?defs=p&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">p</a> === <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a> || $<a href="/s?defs=p&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">p</a> === <span class="s">&apos;&apos;</span>) { <a class="l" name="234" href="#234">234</a> <b>return</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;start&apos;</span>]; <a class="l" name="235" href="#235">235</a> } <a class="l" name="236" href="#236">236</a> } <a class="l" name="237" href="#237">237</a> <b>return</b> $<a href="/s?defs=p&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">p</a>; <a class="l" name="238" href="#238">238</a>} <a class="l" name="239" href="#239">239</a> <a class="hl" name="240" href="#240">240</a><span class="c">/**</span> <a class="l" name="241" href="#241">241</a><span class="c"> * Creates a XHTML valid linkid from a given headline title</span> <a class="l" name="242" href="#242">242</a><span class="c"> *</span> <a class="l" name="243" href="#243">243</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a> The headline title</span> <a class="l" name="244" href="#244">244</a><span class="c"> * <strong>@param</strong> <b>array</b>|<b>bool</b> $<a href="/s?defs=check&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">check</a> Existing IDs</span> <a class="l" name="245" href="#245">245</a><span class="c"> * <strong>@return</strong> <b>string</b> the title</span> <a class="l" name="246" href="#246">246</a><span class="c"> *</span> <a class="l" name="247" href="#247">247</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="248" href="#248">248</a><span class="c"> */</span> <a class="l" name="249" href="#249">249</a><b>function</b> <a href="/s?defs=sectionID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">sectionID</a>($<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a>, &amp;$<a href="/s?defs=check&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">check</a>) <a class="hl" name="250" href="#250">250</a>{ <a class="l" name="251" href="#251">251</a> $<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a> = <a href="/s?defs=str_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_replace</a>([<span class="s">&apos;:&apos;</span>, <span class="s">&apos;.&apos;</span>], <span class="s">&apos;&apos;</span>, <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a>)); <a class="l" name="252" href="#252">252</a> $<a href="/s?defs=new&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">new</a> = <a href="/s?defs=ltrim&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ltrim</a>($<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a>, <span class="s">&apos;0123456789_-&apos;</span>); <a class="l" name="253" href="#253">253</a> <b>if</b> (<b>empty</b>($<a href="/s?defs=new&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">new</a>)) { <a class="l" name="254" href="#254">254</a> $<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a> = <span class="s">&apos;section&apos;</span> . <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;/[^0-9]+/&apos;</span>, <span class="s">&apos;&apos;</span>, $<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a>); <span class="c">//keep numbers from headline</span> <a class="l" name="255" href="#255">255</a> } <b>else</b> { <a class="l" name="256" href="#256">256</a> $<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a> = $<a href="/s?defs=new&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">new</a>; <a class="l" name="257" href="#257">257</a> } <a class="l" name="258" href="#258">258</a> <a class="l" name="259" href="#259">259</a> <b>if</b> (<a href="/s?defs=is_array&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">is_array</a>($<a href="/s?defs=check&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">check</a>)) { <a class="hl" name="260" href="#260">260</a> $<a href="/s?defs=suffix&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">suffix</a> = <span class="n">0</span>; <a class="l" name="261" href="#261">261</a> $<a href="/s?defs=candidateTitle&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">candidateTitle</a> = $<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a>; <a class="l" name="262" href="#262">262</a> <b>while</b> (<a href="/s?defs=in_array&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">in_array</a>($<a href="/s?defs=candidateTitle&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">candidateTitle</a>, $<a href="/s?defs=check&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">check</a>)) { <a class="l" name="263" href="#263">263</a> $<a href="/s?defs=candidateTitle&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">candidateTitle</a> = $<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a> . ++$<a href="/s?defs=suffix&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">suffix</a>; <a class="l" name="264" href="#264">264</a> } <a class="l" name="265" href="#265">265</a> $<a href="/s?defs=check&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">check</a> [] = $<a href="/s?defs=candidateTitle&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">candidateTitle</a>; <a class="l" name="266" href="#266">266</a> <b>return</b> $<a href="/s?defs=candidateTitle&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">candidateTitle</a>; <a class="l" name="267" href="#267">267</a> } <b>else</b> { <a class="l" name="268" href="#268">268</a> <b>return</b> $<a href="/s?defs=title&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">title</a>; <a class="l" name="269" href="#269">269</a> } <a class="hl" name="270" href="#270">270</a>} <a class="l" name="271" href="#271">271</a> <a class="l" name="272" href="#272">272</a><span class="c">/**</span> <a class="l" name="273" href="#273">273</a><span class="c"> * Wiki page existence check</span> <a class="l" name="274" href="#274">274</a><span class="c"> *</span> <a class="l" name="275" href="#275">275</a><span class="c"> * parameters as for wikiFN</span> <a class="l" name="276" href="#276">276</a><span class="c"> *</span> <a class="l" name="277" href="#277">277</a><span class="c"> * <strong>@author</strong> Chris Smith &lt;chris@jalakai.co.uk&gt;</span> <a class="l" name="278" href="#278">278</a><span class="c"> *</span> <a class="l" name="279" href="#279">279</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> page id</span> <a class="hl" name="280" href="#280">280</a><span class="c"> * <strong>@param</strong> <b>string</b>|<b>int</b> $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> empty or revision timestamp</span> <a class="l" name="281" href="#281">281</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> flag indicating that $id should be cleaned (see wikiFN as well)</span> <a class="l" name="282" href="#282">282</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a></span> <a class="l" name="283" href="#283">283</a><span class="c"> * <strong>@return</strong> <b>bool</b> exists?</span> <a class="l" name="284" href="#284">284</a><span class="c"> */</span> <a class="l" name="285" href="#285">285</a><b>function</b> <a href="/s?defs=page_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page_exists</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> = <span class="s">&apos;&apos;</span>, $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>, $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a> = <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) <a class="l" name="286" href="#286">286</a>{ <a class="l" name="287" href="#287">287</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = (<a href="/s?defs=explode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">explode</a>(<span class="s">&apos;#&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="n">2</span>))[<span class="n">0</span>]; <span class="c">// #3608</span> <a class="l" name="288" href="#288">288</a> <a class="l" name="289" href="#289">289</a> <b>if</b> ($<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> !== <span class="s">&apos;&apos;</span> &amp;&amp; $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a>) { <a class="hl" name="290" href="#290">290</a> $<a href="/s?defs=pagelog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pagelog</a> = <b>new</b> <a href="/s?defs=PageChangeLog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">PageChangeLog</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="291" href="#291">291</a> $<a href="/s?defs=pagelog_rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pagelog_rev</a> = $<a href="/s?defs=pagelog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pagelog</a>-&gt;<a href="/s?defs=getLastRevisionAt&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">getLastRevisionAt</a>($<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>); <a class="l" name="292" href="#292">292</a> <b>if</b> ($<a href="/s?defs=pagelog_rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pagelog_rev</a> !== <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) <a class="l" name="293" href="#293">293</a> $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> = $<a href="/s?defs=pagelog_rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pagelog_rev</a>; <a class="l" name="294" href="#294">294</a> } <a class="l" name="295" href="#295">295</a> <b>return</b> <a href="/s?defs=file_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file_exists</a>(<a href="/s?defs=wikiFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">wikiFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>, $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a>)); <a class="l" name="296" href="#296">296</a>} <a class="l" name="297" href="#297">297</a> <a class="l" name="298" href="#298">298</a><span class="c">/**</span> <a class="l" name="299" href="#299">299</a><span class="c"> * Media existence check</span> <a class="hl" name="300" href="#300">300</a><span class="c"> *</span> <a class="l" name="301" href="#301">301</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> page id</span> <a class="l" name="302" href="#302">302</a><span class="c"> * <strong>@param</strong> <b>string</b>|<b>int</b> $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> empty or revision timestamp</span> <a class="l" name="303" href="#303">303</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> flag indicating that $id should be cleaned (see mediaFN as well)</span> <a class="l" name="304" href="#304">304</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a></span> <a class="l" name="305" href="#305">305</a><span class="c"> * <strong>@return</strong> <b>bool</b> exists?</span> <a class="l" name="306" href="#306">306</a><span class="c"> */</span> <a class="l" name="307" href="#307">307</a><b>function</b> <a href="/s?defs=media_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">media_exists</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> = <span class="s">&apos;&apos;</span>, $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>, $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a> = <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) <a class="l" name="308" href="#308">308</a>{ <a class="l" name="309" href="#309">309</a> <b>if</b> ($<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> !== <span class="s">&apos;&apos;</span> &amp;&amp; $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a>) { <a class="hl" name="310" href="#310">310</a> $<a href="/s?defs=changeLog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">changeLog</a> = <b>new</b> <a href="/s?defs=MediaChangeLog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">MediaChangeLog</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="311" href="#311">311</a> $<a href="/s?defs=changelog_rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">changelog_rev</a> = $<a href="/s?defs=changeLog&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">changeLog</a>-&gt;<a href="/s?defs=getLastRevisionAt&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">getLastRevisionAt</a>($<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>); <a class="l" name="312" href="#312">312</a> <b>if</b> ($<a href="/s?defs=changelog_rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">changelog_rev</a> !== <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) { <a class="l" name="313" href="#313">313</a> $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> = $<a href="/s?defs=changelog_rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">changelog_rev</a>; <a class="l" name="314" href="#314">314</a> } <a class="l" name="315" href="#315">315</a> } <a class="l" name="316" href="#316">316</a> <b>return</b> <a href="/s?defs=file_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file_exists</a>(<a href="/s?defs=mediaFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">mediaFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>, $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a>)); <a class="l" name="317" href="#317">317</a>} <a class="l" name="318" href="#318">318</a> <a class="l" name="319" href="#319">319</a><span class="c">/**</span> <a class="hl" name="320" href="#320">320</a><span class="c"> * returns the full path to the datafile specified by ID and optional revision</span> <a class="l" name="321" href="#321">321</a><span class="c"> *</span> <a class="l" name="322" href="#322">322</a><span class="c"> * The filename is URL encoded to protect Unicode chars</span> <a class="l" name="323" href="#323">323</a><span class="c"> *</span> <a class="l" name="324" href="#324">324</a><span class="c"> * <strong>@param</strong> $raw_id string id of wikipage</span> <a class="l" name="325" href="#325">325</a><span class="c"> * <strong>@param</strong> $rev int|string page revision, empty string for current</span> <a class="l" name="326" href="#326">326</a><span class="c"> * <strong>@param</strong> $clean bool flag indicating that $raw_id should be cleaned. Only set to false</span> <a class="l" name="327" href="#327">327</a><span class="c"> * when $id is guaranteed to have been cleaned already.</span> <a class="l" name="328" href="#328">328</a><span class="c"> * <strong>@return</strong> <b>string</b> full path</span> <a class="l" name="329" href="#329">329</a><span class="c"> *</span> <a class="hl" name="330" href="#330">330</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="331" href="#331">331</a><span class="c"> */</span> <a class="l" name="332" href="#332">332</a><b>function</b> <a href="/s?defs=wikiFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">wikiFN</a>($<a href="/s?defs=raw_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">raw_id</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> = <span class="s">&apos;&apos;</span>, $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>) <a class="l" name="333" href="#333">333</a>{ <a class="l" name="334" href="#334">334</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="335" href="#335">335</a> <a class="l" name="336" href="#336">336</a> <b>global</b> $<a href="/s?defs=cache_wikifn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache_wikifn</a>; <a class="l" name="337" href="#337">337</a> $<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a> = &amp; $<a href="/s?defs=cache_wikifn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache_wikifn</a>; <a class="l" name="338" href="#338">338</a> <a class="l" name="339" href="#339">339</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = $<a href="/s?defs=raw_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">raw_id</a>; <a class="hl" name="340" href="#340">340</a> <a class="l" name="341" href="#341">341</a> <b>if</b> ($<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a>) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="342" href="#342">342</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=str_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_replace</a>(<span class="s">&apos;:&apos;</span>, <span class="s">&apos;/&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="343" href="#343">343</a> <a class="l" name="344" href="#344">344</a> <b>if</b> (<b>isset</b>($<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>]) &amp;&amp; <b>isset</b>($<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>][$<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>])) { <a class="l" name="345" href="#345">345</a> <b>return</b> $<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>][$<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>]; <a class="l" name="346" href="#346">346</a> } <a class="l" name="347" href="#347">347</a> <a class="l" name="348" href="#348">348</a> <b>if</b> (<b>empty</b>($<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>)) { <a class="l" name="349" href="#349">349</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;datadir&apos;</span>] . <span class="s">&apos;/&apos;</span> . <a href="/s?defs=utf8_encodeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">utf8_encodeFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) . <span class="s">&apos;.txt&apos;</span>; <a class="hl" name="350" href="#350">350</a> } <b>else</b> { <a class="l" name="351" href="#351">351</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;olddir&apos;</span>] . <span class="s">&apos;/&apos;</span> . <a href="/s?defs=utf8_encodeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">utf8_encodeFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) . <span class="s">&apos;.&apos;</span> . $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> . <span class="s">&apos;.txt&apos;</span>; <a class="l" name="352" href="#352">352</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;compression&apos;</span>]) { <a class="l" name="353" href="#353">353</a> <span class="c">//test for extensions here, we want to read both compressions</span> <a class="l" name="354" href="#354">354</a> <b>if</b> (<a href="/s?defs=file_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file_exists</a>($<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> . <span class="s">&apos;.gz&apos;</span>)) { <a class="l" name="355" href="#355">355</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> .= <span class="s">&apos;.gz&apos;</span>; <a class="l" name="356" href="#356">356</a> } <b>elseif</b> (<a href="/s?defs=file_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file_exists</a>($<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> . <span class="s">&apos;.bz2&apos;</span>)) { <a class="l" name="357" href="#357">357</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> .= <span class="s">&apos;.bz2&apos;</span>; <a class="l" name="358" href="#358">358</a> } <b>else</b> { <a class="l" name="359" href="#359">359</a> <span class="c">//file doesnt exist yet, so we take the configured extension</span> <a class="hl" name="360" href="#360">360</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> .= <span class="s">&apos;.&apos;</span> . $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;compression&apos;</span>]; <a class="l" name="361" href="#361">361</a> } <a class="l" name="362" href="#362">362</a> } <a class="l" name="363" href="#363">363</a> } <a class="l" name="364" href="#364">364</a> <a class="l" name="365" href="#365">365</a> <b>if</b> (!<b>isset</b>($<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>])) { <a class="l" name="366" href="#366">366</a> $<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>] = []; <a class="l" name="367" href="#367">367</a> } <a class="l" name="368" href="#368">368</a> $<a href="/s?defs=cache&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cache</a>[$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>][$<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>] = $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a>; <a class="l" name="369" href="#369">369</a> <b>return</b> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a>; <a class="hl" name="370" href="#370">370</a>} <a class="l" name="371" href="#371">371</a> <a class="l" name="372" href="#372">372</a><span class="c">/**</span> <a class="l" name="373" href="#373">373</a><span class="c"> * Returns the full path to the file for locking the page while editing.</span> <a class="l" name="374" href="#374">374</a><span class="c"> *</span> <a class="l" name="375" href="#375">375</a><span class="c"> * <strong>@author</strong> Ben Coburn &lt;btcoburn@silicodon.net&gt;</span> <a class="l" name="376" href="#376">376</a><span class="c"> *</span> <a class="l" name="377" href="#377">377</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> page id</span> <a class="l" name="378" href="#378">378</a><span class="c"> * <strong>@return</strong> <b>string</b> full path</span> <a class="l" name="379" href="#379">379</a><span class="c"> */</span> <a class="hl" name="380" href="#380">380</a><b>function</b> <a href="/s?defs=wikiLockFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">wikiLockFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="381" href="#381">381</a>{ <a class="l" name="382" href="#382">382</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="383" href="#383">383</a> <b>return</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;lockdir&apos;</span>] . <span class="s">&apos;/&apos;</span> . <a href="/s?defs=md5&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">md5</a>(<a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>)) . <span class="s">&apos;.lock&apos;</span>; <a class="l" name="384" href="#384">384</a>} <a class="l" name="385" href="#385">385</a> <a class="l" name="386" href="#386">386</a> <a class="l" name="387" href="#387">387</a><span class="c">/**</span> <a class="l" name="388" href="#388">388</a><span class="c"> * returns the full path to the meta file specified by ID and extension</span> <a class="l" name="389" href="#389">389</a><span class="c"> *</span> <a class="hl" name="390" href="#390">390</a><span class="c"> * <strong>@author</strong> Steven Danz &lt;steven-danz@kc.rr.com&gt;</span> <a class="l" name="391" href="#391">391</a><span class="c"> *</span> <a class="l" name="392" href="#392">392</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> page id</span> <a class="l" name="393" href="#393">393</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a> file extension</span> <a class="l" name="394" href="#394">394</a><span class="c"> * <strong>@return</strong> <b>string</b> full path</span> <a class="l" name="395" href="#395">395</a><span class="c"> */</span> <a class="l" name="396" href="#396">396</a><b>function</b> <a href="/s?defs=metaFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">metaFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>) <a class="l" name="397" href="#397">397</a>{ <a class="l" name="398" href="#398">398</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="399" href="#399">399</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="hl" name="400" href="#400">400</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=str_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_replace</a>(<span class="s">&apos;:&apos;</span>, <span class="s">&apos;/&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="401" href="#401">401</a> <a class="l" name="402" href="#402">402</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;metadir&apos;</span>] . <span class="s">&apos;/&apos;</span> . <a href="/s?defs=utf8_encodeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">utf8_encodeFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) . $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>; <a class="l" name="403" href="#403">403</a> <b>return</b> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a>; <a class="l" name="404" href="#404">404</a>} <a class="l" name="405" href="#405">405</a> <a class="l" name="406" href="#406">406</a><span class="c">/**</span> <a class="l" name="407" href="#407">407</a><span class="c"> * returns the full path to the media&apos;s meta file specified by ID and extension</span> <a class="l" name="408" href="#408">408</a><span class="c"> *</span> <a class="l" name="409" href="#409">409</a><span class="c"> * <strong>@author</strong> Kate Arzamastseva &lt;pshns@ukr.net&gt;</span> <a class="hl" name="410" href="#410">410</a><span class="c"> *</span> <a class="l" name="411" href="#411">411</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> media id</span> <a class="l" name="412" href="#412">412</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a> extension of media</span> <a class="l" name="413" href="#413">413</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="l" name="414" href="#414">414</a><span class="c"> */</span> <a class="l" name="415" href="#415">415</a><b>function</b> <a href="/s?defs=mediaMetaFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">mediaMetaFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>) <a class="l" name="416" href="#416">416</a>{ <a class="l" name="417" href="#417">417</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="418" href="#418">418</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="419" href="#419">419</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=str_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_replace</a>(<span class="s">&apos;:&apos;</span>, <span class="s">&apos;/&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="hl" name="420" href="#420">420</a> <a class="l" name="421" href="#421">421</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;mediametadir&apos;</span>] . <span class="s">&apos;/&apos;</span> . <a href="/s?defs=utf8_encodeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">utf8_encodeFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) . $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>; <a class="l" name="422" href="#422">422</a> <b>return</b> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a>; <a class="l" name="423" href="#423">423</a>} <a class="l" name="424" href="#424">424</a> <a class="l" name="425" href="#425">425</a><span class="c">/**</span> <a class="l" name="426" href="#426">426</a><span class="c"> * returns an array of full paths to all metafiles of a given ID</span> <a class="l" name="427" href="#427">427</a><span class="c"> *</span> <a class="l" name="428" href="#428">428</a><span class="c"> * <strong>@author</strong> Esther Brunner &lt;esther@kaffeehaus.ch&gt;</span> <a class="l" name="429" href="#429">429</a><span class="c"> * <strong>@author</strong> Michael Hamann &lt;michael@content-space.de&gt;</span> <a class="hl" name="430" href="#430">430</a><span class="c"> *</span> <a class="l" name="431" href="#431">431</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> page id</span> <a class="l" name="432" href="#432">432</a><span class="c"> * <strong>@return</strong> <b>array</b></span> <a class="l" name="433" href="#433">433</a><span class="c"> */</span> <a class="l" name="434" href="#434">434</a><b>function</b> <a href="/s?defs=metaFiles&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">metaFiles</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="435" href="#435">435</a>{ <a class="l" name="436" href="#436">436</a> $<a href="/s?defs=basename&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">basename</a> = <a href="/s?defs=metaFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">metaFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;&apos;</span>); <a class="l" name="437" href="#437">437</a> $<a href="/s?defs=files&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">files</a> = <a href="/s?defs=glob&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">glob</a>($<a href="/s?defs=basename&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">basename</a> . <span class="s">&apos;.*&apos;</span>, <a href="/s?defs=GLOB_MARK&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">GLOB_MARK</a>); <a class="l" name="438" href="#438">438</a> <span class="c">// filter files like foo.bar.meta when $id == &apos;foo&apos;</span> <a class="l" name="439" href="#439">439</a> <b>return</b> $<a href="/s?defs=files&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">files</a> ? <a href="/s?defs=preg_grep&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_grep</a>(<span class="s">&apos;/^&apos;</span> . <a href="/s?defs=preg_quote&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_quote</a>($<a href="/s?defs=basename&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">basename</a>, <span class="s">&apos;/&apos;</span>) . <span class="s">&apos;\.[^.\/]*$/u&apos;</span>, $<a href="/s?defs=files&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">files</a>) : []; <a class="hl" name="440" href="#440">440</a>} <a class="l" name="441" href="#441">441</a> <a class="l" name="442" href="#442">442</a><span class="c">/**</span> <a class="l" name="443" href="#443">443</a><span class="c"> * returns the full path to the mediafile specified by ID</span> <a class="l" name="444" href="#444">444</a><span class="c"> *</span> <a class="l" name="445" href="#445">445</a><span class="c"> * The filename is URL encoded to protect Unicode chars</span> <a class="l" name="446" href="#446">446</a><span class="c"> *</span> <a class="l" name="447" href="#447">447</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="448" href="#448">448</a><span class="c"> * <strong>@author</strong> Kate Arzamastseva &lt;pshns@ukr.net&gt;</span> <a class="l" name="449" href="#449">449</a><span class="c"> *</span> <a class="hl" name="450" href="#450">450</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> media id</span> <a class="l" name="451" href="#451">451</a><span class="c"> * <strong>@param</strong> <b>string</b>|<b>int</b> $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> empty string or revision timestamp</span> <a class="l" name="452" href="#452">452</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a></span> <a class="l" name="453" href="#453">453</a><span class="c"> *</span> <a class="l" name="454" href="#454">454</a><span class="c"> * <strong>@return</strong> <b>string</b> full path</span> <a class="l" name="455" href="#455">455</a><span class="c"> */</span> <a class="l" name="456" href="#456">456</a><b>function</b> <a href="/s?defs=mediaFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">mediaFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> = <span class="s">&apos;&apos;</span>, $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>) <a class="l" name="457" href="#457">457</a>{ <a class="l" name="458" href="#458">458</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="459" href="#459">459</a> <b>if</b> ($<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a>) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="hl" name="460" href="#460">460</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=str_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_replace</a>(<span class="s">&apos;:&apos;</span>, <span class="s">&apos;/&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="461" href="#461">461</a> <b>if</b> (<b>empty</b>($<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>)) { <a class="l" name="462" href="#462">462</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;mediadir&apos;</span>] . <span class="s">&apos;/&apos;</span> . <a href="/s?defs=utf8_encodeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">utf8_encodeFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="463" href="#463">463</a> } <b>else</b> { <a class="l" name="464" href="#464">464</a> $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a> = <a href="/s?defs=mimetype&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">mimetype</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="465" href="#465">465</a> $<a href="/s?defs=name&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">name</a> = <a href="/s?defs=substr&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">substr</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="n">0</span>, <span class="n">-1</span> * <a href="/s?defs=strlen&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">strlen</a>($<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>[<span class="n">0</span>]) - <span class="n">1</span>); <a class="l" name="466" href="#466">466</a> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;mediaolddir&apos;</span>] . <span class="s">&apos;/&apos;</span> . <a href="/s?defs=utf8_encodeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">utf8_encodeFN</a>($<a href="/s?defs=name&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">name</a> . <span class="s">&apos;.&apos;</span> . ( (<em>int</em>) $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> ) . <span class="s">&apos;.&apos;</span> . $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>[<span class="n">0</span>]); <a class="l" name="467" href="#467">467</a> } <a class="l" name="468" href="#468">468</a> <b>return</b> $<a href="/s?defs=fn&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">fn</a>; <a class="l" name="469" href="#469">469</a>} <a class="hl" name="470" href="#470">470</a> <a class="l" name="471" href="#471">471</a><span class="c">/**</span> <a class="l" name="472" href="#472">472</a><span class="c"> * Returns the full filepath to a localized file if local</span> <a class="l" name="473" href="#473">473</a><span class="c"> * version isn&apos;t found the english one is returned</span> <a class="l" name="474" href="#474">474</a><span class="c"> *</span> <a class="l" name="475" href="#475">475</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> The id of the local file</span> <a class="l" name="476" href="#476">476</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a> The file extension (usually txt)</span> <a class="l" name="477" href="#477">477</a><span class="c"> * <strong>@return</strong> <b>string</b> full filepath to localized file</span> <a class="l" name="478" href="#478">478</a><span class="c"> *</span> <a class="l" name="479" href="#479">479</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="hl" name="480" href="#480">480</a><span class="c"> */</span> <a class="l" name="481" href="#481">481</a><b>function</b> <a href="/s?defs=localeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">localeFN</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a> = <span class="s">&apos;txt&apos;</span>) <a class="l" name="482" href="#482">482</a>{ <a class="l" name="483" href="#483">483</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="484" href="#484">484</a> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a> = <a href="/s?defs=DOKU_CONF&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">DOKU_CONF</a> . <span class="s">&apos;lang/&apos;</span> . $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;lang&apos;</span>] . <span class="s">&apos;/&apos;</span> . $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> . <span class="s">&apos;.&apos;</span> . $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>; <a class="l" name="485" href="#485">485</a> <b>if</b> (!<a href="/s?defs=file_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file_exists</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>)) { <a class="l" name="486" href="#486">486</a> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a> = <a href="/s?defs=DOKU_INC&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">DOKU_INC</a> . <span class="s">&apos;<a href="/s?path=inc/&amp;project=dokuwiki">inc</a>/<a href="/s?path=inc/lang&amp;project=dokuwiki">lang</a>/&apos;</span> . $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;lang&apos;</span>] . <span class="s">&apos;/&apos;</span> . $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> . <span class="s">&apos;.&apos;</span> . $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>; <a class="l" name="487" href="#487">487</a> <b>if</b> (!<a href="/s?defs=file_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file_exists</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>)) { <a class="l" name="488" href="#488">488</a> <span class="c">//fall back to english</span> <a class="l" name="489" href="#489">489</a> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a> = <a href="/s?defs=DOKU_INC&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">DOKU_INC</a> . <span class="s">&apos;<a href="/s?path=inc/&amp;project=dokuwiki">inc</a>/<a href="/s?path=inc/lang/&amp;project=dokuwiki">lang</a>/<a href="/s?path=inc/lang/en&amp;project=dokuwiki">en</a>/&apos;</span> . $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> . <span class="s">&apos;.&apos;</span> . $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>; <a class="hl" name="490" href="#490">490</a> } <a class="l" name="491" href="#491">491</a> } <a class="l" name="492" href="#492">492</a> <b>return</b> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>; <a class="l" name="493" href="#493">493</a>} <a class="l" name="494" href="#494">494</a> <a class="l" name="495" href="#495">495</a><span class="c">/**</span> <a class="l" name="496" href="#496">496</a><span class="c"> * Resolve relative paths in IDs</span> <a class="l" name="497" href="#497">497</a><span class="c"> *</span> <a class="l" name="498" href="#498">498</a><span class="c"> * Do not call directly use resolve_mediaid or resolve_pageid</span> <a class="l" name="499" href="#499">499</a><span class="c"> * instead</span> <a class="hl" name="500" href="#500">500</a><span class="c"> *</span> <a class="l" name="501" href="#501">501</a><span class="c"> * Partyly based on a cleanPath function found at</span> <a class="l" name="502" href="#502">502</a><span class="c"> * <a href="http://php.net/manual/en/function.realpath.php#57016">http://php.net/manual/en/function.realpath.php#57016</a></span> <a class="l" name="503" href="#503">503</a><span class="c"> *</span> <a class="l" name="504" href="#504">504</a><span class="c"> * <strong>@deprecated</strong> 2020-09-30</span> <a class="l" name="505" href="#505">505</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> namespace which is context of id</span> <a class="l" name="506" href="#506">506</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> relative id</span> <a class="l" name="507" href="#507">507</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> flag indicating that id should be cleaned</span> <a class="l" name="508" href="#508">508</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="l" name="509" href="#509">509</a><span class="c"> */</span> <a class="hl" name="510" href="#510">510</a><b>function</b> <a href="/s?defs=resolve_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolve_id</a>($<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, $<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a> = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>) <a class="l" name="511" href="#511">511</a>{ <a class="l" name="512" href="#512">512</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="513" href="#513">513</a> <a href="/s?defs=dbg_deprecated&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dbg_deprecated</a>(<a href="/s?defs=Resolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Resolver</a>::<b>class</b> . <span class="s">&apos; and its children&apos;</span>); <a class="l" name="514" href="#514">514</a> <a class="l" name="515" href="#515">515</a> <span class="c">// some pre cleaning for useslash:</span> <a class="l" name="516" href="#516">516</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;useslash&apos;</span>]) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=str_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_replace</a>(<span class="s">&apos;/&apos;</span>, <span class="s">&apos;:&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="517" href="#517">517</a> <a class="l" name="518" href="#518">518</a> <span class="c">// if the id starts with a dot we need to handle the</span> <a class="l" name="519" href="#519">519</a> <span class="c">// relative stuff</span> <a class="hl" name="520" href="#520">520</a> <b>if</b> ($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> &amp;&amp; $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>[<span class="n">0</span>] == <span class="s">&apos;.&apos;</span>) { <a class="l" name="521" href="#521">521</a> <span class="c">// normalize initial dots without a colon</span> <a class="l" name="522" href="#522">522</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=preg_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_replace</a>(<span class="s">&apos;/^((\.+:)*)(\.+)(?=[^:\.])/&apos;</span>, <span class="s">&apos;\1\3:&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="523" href="#523">523</a> <span class="c">// prepend the current namespace</span> <a class="l" name="524" href="#524">524</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = $<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> . <span class="s">&apos;:&apos;</span> . $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>; <a class="l" name="525" href="#525">525</a> <a class="l" name="526" href="#526">526</a> <span class="c">// cleanup relatives</span> <a class="l" name="527" href="#527">527</a> $<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a> = []; <a class="l" name="528" href="#528">528</a> $<a href="/s?defs=pathA&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pathA</a> = <a href="/s?defs=explode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">explode</a>(<span class="s">&apos;:&apos;</span>, $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="529" href="#529">529</a> <b>if</b> (!$<a href="/s?defs=pathA&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pathA</a>[<span class="n">0</span>]) $<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a>[] = <span class="s">&apos;&apos;</span>; <a class="hl" name="530" href="#530">530</a> <b>foreach</b> ($<a href="/s?defs=pathA&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pathA</a> <b>as</b> $<a href="/s?defs=dir&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dir</a>) { <a class="l" name="531" href="#531">531</a> <b>if</b> ($<a href="/s?defs=dir&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dir</a> == <span class="s">&apos;..&apos;</span>) { <a class="l" name="532" href="#532">532</a> <b>if</b> (<a href="/s?defs=end&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">end</a>($<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a>) == <span class="s">&apos;..&apos;</span>) { <a class="l" name="533" href="#533">533</a> $<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a>[] = <span class="s">&apos;..&apos;</span>; <a class="l" name="534" href="#534">534</a> } <b>elseif</b> (!<a href="/s?defs=array_pop&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">array_pop</a>($<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a>)) { <a class="l" name="535" href="#535">535</a> $<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a>[] = <span class="s">&apos;..&apos;</span>; <a class="l" name="536" href="#536">536</a> } <a class="l" name="537" href="#537">537</a> } <b>elseif</b> ($<a href="/s?defs=dir&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dir</a> &amp;&amp; $<a href="/s?defs=dir&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dir</a> != <span class="s">&apos;.&apos;</span>) { <a class="l" name="538" href="#538">538</a> $<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a>[] = $<a href="/s?defs=dir&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dir</a>; <a class="l" name="539" href="#539">539</a> } <a class="hl" name="540" href="#540">540</a> } <a class="l" name="541" href="#541">541</a> <b>if</b> (!<a href="/s?defs=end&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">end</a>($<a href="/s?defs=pathA&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pathA</a>)) $<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a>[] = <span class="s">&apos;&apos;</span>; <a class="l" name="542" href="#542">542</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=implode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">implode</a>(<span class="s">&apos;:&apos;</span>, $<a href="/s?defs=result&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">result</a>); <a class="l" name="543" href="#543">543</a> } <b>elseif</b> ($<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> !== <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a> &amp;&amp; <a href="/s?defs=strpos&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">strpos</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;:&apos;</span>) === <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) { <a class="l" name="544" href="#544">544</a> <span class="c">//if link contains no namespace. add current namespace (if any)</span> <a class="l" name="545" href="#545">545</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = $<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> . <span class="s">&apos;:&apos;</span> . $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>; <a class="l" name="546" href="#546">546</a> } <a class="l" name="547" href="#547">547</a> <a class="l" name="548" href="#548">548</a> <b>if</b> ($<a href="/s?defs=clean&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">clean</a>) $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> = <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="549" href="#549">549</a> <b>return</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>; <a class="hl" name="550" href="#550">550</a>} <a class="l" name="551" href="#551">551</a> <a class="l" name="552" href="#552">552</a><span class="c">/**</span> <a class="l" name="553" href="#553">553</a><span class="c"> * Returns a full media id</span> <a class="l" name="554" href="#554">554</a><span class="c"> *</span> <a class="l" name="555" href="#555">555</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> namespace which is context of id</span> <a class="l" name="556" href="#556">556</a><span class="c"> * <strong>@param</strong> <b>string</b> &amp;$media (reference) relative media id, updated to resolved id</span> <a class="l" name="557" href="#557">557</a><span class="c"> * <strong>@param</strong> <b>bool</b> &amp;$exists (reference) updated with existance of media</span> <a class="l" name="558" href="#558">558</a><span class="c"> * <strong>@param</strong> <b>int</b>|<b>string</b> $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a></span> <a class="l" name="559" href="#559">559</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a></span> <a class="hl" name="560" href="#560">560</a><span class="c"> * <strong>@deprecated</strong> 2020-09-30</span> <a class="l" name="561" href="#561">561</a><span class="c"> */</span> <a class="l" name="562" href="#562">562</a><b>function</b> <a href="/s?defs=resolve_mediaid&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolve_mediaid</a>($<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a>, &amp;$<a href="/s?defs=media&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">media</a>, &amp;$<a href="/s?defs=exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">exists</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> = <span class="s">&apos;&apos;</span>, $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a> = <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) <a class="l" name="563" href="#563">563</a>{ <a class="l" name="564" href="#564">564</a> <a href="/s?defs=dbg_deprecated&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dbg_deprecated</a>(<a href="/s?defs=MediaResolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">MediaResolver</a>::<b>class</b>); <a class="l" name="565" href="#565">565</a> $<a href="/s?defs=resolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolver</a> = <b>new</b> <a href="/s?defs=MediaResolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">MediaResolver</a>(<span class="s">&quot;</span>$<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a><span class="s">:deprecated&quot;</span>); <a class="l" name="566" href="#566">566</a> $<a href="/s?defs=media&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">media</a> = $<a href="/s?defs=resolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolver</a>-&gt;<a href="/s?defs=resolveId&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolveId</a>($<a href="/s?defs=media&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">media</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>, $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a>); <a class="l" name="567" href="#567">567</a> $<a href="/s?defs=exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">exists</a> = <a href="/s?defs=media_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">media_exists</a>($<a href="/s?defs=media&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">media</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>, <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>, $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a>); <a class="l" name="568" href="#568">568</a>} <a class="l" name="569" href="#569">569</a> <a class="hl" name="570" href="#570">570</a><span class="c">/**</span> <a class="l" name="571" href="#571">571</a><span class="c"> * Returns a full page id</span> <a class="l" name="572" href="#572">572</a><span class="c"> *</span> <a class="l" name="573" href="#573">573</a><span class="c"> * <strong>@deprecated</strong> 2020-09-30</span> <a class="l" name="574" href="#574">574</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> namespace which is context of id</span> <a class="l" name="575" href="#575">575</a><span class="c"> * <strong>@param</strong> <b>string</b> &amp;$page (reference) relative page id, updated to resolved id</span> <a class="l" name="576" href="#576">576</a><span class="c"> * <strong>@param</strong> <b>bool</b> &amp;$exists (reference) updated with existance of media</span> <a class="l" name="577" href="#577">577</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a></span> <a class="l" name="578" href="#578">578</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a></span> <a class="l" name="579" href="#579">579</a><span class="c"> */</span> <a class="hl" name="580" href="#580">580</a><b>function</b> <a href="/s?defs=resolve_pageid&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolve_pageid</a>($<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a>, &amp;$<a href="/s?defs=page&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page</a>, &amp;$<a href="/s?defs=exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">exists</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a> = <span class="s">&apos;&apos;</span>, $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a> = <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>) <a class="l" name="581" href="#581">581</a>{ <a class="l" name="582" href="#582">582</a> <a href="/s?defs=dbg_deprecated&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">dbg_deprecated</a>(<a href="/s?defs=PageResolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">PageResolver</a>::<b>class</b>); <a class="l" name="583" href="#583">583</a> <a class="l" name="584" href="#584">584</a> <b>global</b> $<a href="/s?defs=ID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ID</a>; <a class="l" name="585" href="#585">585</a> <b>if</b> (<a href="/s?defs=getNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">getNS</a>($<a href="/s?defs=ID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ID</a>) == $<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a>) { <a class="l" name="586" href="#586">586</a> $<a href="/s?defs=context&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">context</a> = $<a href="/s?defs=ID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ID</a>; <span class="c">// this is usually the case</span> <a class="l" name="587" href="#587">587</a> } <b>else</b> { <a class="l" name="588" href="#588">588</a> $<a href="/s?defs=context&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">context</a> = <span class="s">&quot;</span>$<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a><span class="s">:deprecated&quot;</span>; <span class="c">// only used when a different context namespace was given</span> <a class="l" name="589" href="#589">589</a> } <a class="hl" name="590" href="#590">590</a> <a class="l" name="591" href="#591">591</a> $<a href="/s?defs=resolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolver</a> = <b>new</b> <a href="/s?defs=PageResolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">PageResolver</a>($<a href="/s?defs=context&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">context</a>); <a class="l" name="592" href="#592">592</a> $<a href="/s?defs=page&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page</a> = $<a href="/s?defs=resolver&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolver</a>-&gt;<a href="/s?defs=resolveId&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">resolveId</a>($<a href="/s?defs=page&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>, $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a>); <a class="l" name="593" href="#593">593</a> $<a href="/s?defs=exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">exists</a> = <a href="/s?defs=page_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page_exists</a>($<a href="/s?defs=page&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page</a>, $<a href="/s?defs=rev&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">rev</a>, <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>, $<a href="/s?defs=date_at&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">date_at</a>); <a class="l" name="594" href="#594">594</a>} <a class="l" name="595" href="#595">595</a> <a class="l" name="596" href="#596">596</a><span class="c">/**</span> <a class="l" name="597" href="#597">597</a><span class="c"> * Returns the name of a cachefile from given data</span> <a class="l" name="598" href="#598">598</a><span class="c"> *</span> <a class="l" name="599" href="#599">599</a><span class="c"> * The needed directory is created by this function!</span> <a class="hl" name="600" href="#600">600</a><span class="c"> *</span> <a class="l" name="601" href="#601">601</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="602" href="#602">602</a><span class="c"> *</span> <a class="l" name="603" href="#603">603</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a> This data is used to create a unique md5 name</span> <a class="l" name="604" href="#604">604</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a> This is appended to the filename if given</span> <a class="l" name="605" href="#605">605</a><span class="c"> * <strong>@return</strong> <b>string</b> The filename of the cachefile</span> <a class="l" name="606" href="#606">606</a><span class="c"> */</span> <a class="l" name="607" href="#607">607</a><b>function</b> <a href="/s?defs=getCacheName&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">getCacheName</a>($<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a>, $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a> = <span class="s">&apos;&apos;</span>) <a class="l" name="608" href="#608">608</a>{ <a class="l" name="609" href="#609">609</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="hl" name="610" href="#610">610</a> $<a href="/s?defs=md5&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">md5</a> = <a href="/s?defs=md5&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">md5</a>($<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a>); <a class="l" name="611" href="#611">611</a> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a> = $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;cachedir&apos;</span>] . <span class="s">&apos;/&apos;</span> . $<a href="/s?defs=md5&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">md5</a>[<span class="n">0</span>] . <span class="s">&apos;/&apos;</span> . $<a href="/s?defs=md5&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">md5</a> . $<a href="/s?defs=ext&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ext</a>; <a class="l" name="612" href="#612">612</a> <a href="/s?defs=io_makeFileDir&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">io_makeFileDir</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>); <a class="l" name="613" href="#613">613</a> <b>return</b> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>; <a class="l" name="614" href="#614">614</a>} <a class="l" name="615" href="#615">615</a> <a class="l" name="616" href="#616">616</a><span class="c">/**</span> <a class="l" name="617" href="#617">617</a><span class="c"> * Checks a pageid against $conf[&apos;hidepages&apos;]</span> <a class="l" name="618" href="#618">618</a><span class="c"> *</span> <a class="l" name="619" href="#619">619</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;gohr@cosmocode.de&gt;</span> <a class="hl" name="620" href="#620">620</a><span class="c"> *</span> <a class="l" name="621" href="#621">621</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> page id</span> <a class="l" name="622" href="#622">622</a><span class="c"> * <strong>@return</strong> <b>bool</b></span> <a class="l" name="623" href="#623">623</a><span class="c"> */</span> <a class="l" name="624" href="#624">624</a><b>function</b> <a href="/s?defs=isHiddenPage&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">isHiddenPage</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="625" href="#625">625</a>{ <a class="l" name="626" href="#626">626</a> $<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a> = [<span class="s">&apos;id&apos;</span> =&gt; $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;hidden&apos;</span> =&gt; <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>]; <a class="l" name="627" href="#627">627</a> <a href="/s?defs=Event&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Event</a>::<a href="/s?defs=createAndTrigger&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">createAndTrigger</a>(<span class="s">&apos;PAGEUTILS_ID_HIDEPAGE&apos;</span>, $<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a>, <span class="s">&apos;_isHiddenPage&apos;</span>); <a class="l" name="628" href="#628">628</a> <b>return</b> $<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a>[<span class="s">&apos;hidden&apos;</span>]; <a class="l" name="629" href="#629">629</a>} <a class="hl" name="630" href="#630">630</a> <a class="l" name="631" href="#631">631</a><span class="c">/**</span> <a class="l" name="632" href="#632">632</a><span class="c"> * callback checks if page is hidden</span> <a class="l" name="633" href="#633">633</a><span class="c"> *</span> <a class="l" name="634" href="#634">634</a><span class="c"> * <strong>@param</strong> <b>array</b> $<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a> event data - see isHiddenPage()</span> <a class="l" name="635" href="#635">635</a><span class="c"> */</span> <a class="l" name="636" href="#636">636</a><b>function</b> <a href="/s?defs=_isHiddenPage&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">_isHiddenPage</a>(&amp;$<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a>) <a class="l" name="637" href="#637">637</a>{ <a class="l" name="638" href="#638">638</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="639" href="#639">639</a> <b>global</b> $<a href="/s?defs=ACT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ACT</a>; <a class="hl" name="640" href="#640">640</a> <a class="l" name="641" href="#641">641</a> <b>if</b> ($<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a>[<span class="s">&apos;hidden&apos;</span>]) <b>return</b>; <a class="l" name="642" href="#642">642</a> <b>if</b> (<b>empty</b>($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;hidepages&apos;</span>])) <b>return</b>; <a class="l" name="643" href="#643">643</a> <b>if</b> ($<a href="/s?defs=ACT&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ACT</a> == <span class="s">&apos;admin&apos;</span>) <b>return</b>; <a class="l" name="644" href="#644">644</a> <a class="l" name="645" href="#645">645</a> <b>if</b> (<a href="/s?defs=preg_match&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_match</a>(<span class="s">&apos;/&apos;</span> . $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;hidepages&apos;</span>] . <span class="s">&apos;/ui&apos;</span>, <span class="s">&apos;:&apos;</span> . $<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a>[<span class="s">&apos;id&apos;</span>])) { <a class="l" name="646" href="#646">646</a> $<a href="/s?defs=data&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">data</a>[<span class="s">&apos;hidden&apos;</span>] = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>; <a class="l" name="647" href="#647">647</a> } <a class="l" name="648" href="#648">648</a>} <a class="l" name="649" href="#649">649</a> <a class="hl" name="650" href="#650">650</a><span class="c">/**</span> <a class="l" name="651" href="#651">651</a><span class="c"> * Reverse of isHiddenPage</span> <a class="l" name="652" href="#652">652</a><span class="c"> *</span> <a class="l" name="653" href="#653">653</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;gohr@cosmocode.de&gt;</span> <a class="l" name="654" href="#654">654</a><span class="c"> *</span> <a class="l" name="655" href="#655">655</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> page id</span> <a class="l" name="656" href="#656">656</a><span class="c"> * <strong>@return</strong> <b>bool</b></span> <a class="l" name="657" href="#657">657</a><span class="c"> */</span> <a class="l" name="658" href="#658">658</a><b>function</b> <a href="/s?defs=isVisiblePage&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">isVisiblePage</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="659" href="#659">659</a>{ <a class="hl" name="660" href="#660">660</a> <b>return</b> !<a href="/s?defs=isHiddenPage&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">isHiddenPage</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="661" href="#661">661</a>} <a class="l" name="662" href="#662">662</a> <a class="l" name="663" href="#663">663</a><span class="c">/**</span> <a class="l" name="664" href="#664">664</a><span class="c"> * Format an id for output to a user</span> <a class="l" name="665" href="#665">665</a><span class="c"> *</span> <a class="l" name="666" href="#666">666</a><span class="c"> * Namespaces are denoted by a trailing &#8220;:*&#8221;. The root namespace is</span> <a class="l" name="667" href="#667">667</a><span class="c"> * &#8220;*&#8221;. Output is escaped.</span> <a class="l" name="668" href="#668">668</a><span class="c"> *</span> <a class="l" name="669" href="#669">669</a><span class="c"> * <strong>@author</strong> Adrian Lang &lt;lang@cosmocode.de&gt;</span> <a class="hl" name="670" href="#670">670</a><span class="c"> *</span> <a class="l" name="671" href="#671">671</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> page id</span> <a class="l" name="672" href="#672">672</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="l" name="673" href="#673">673</a><span class="c"> */</span> <a class="l" name="674" href="#674">674</a><b>function</b> <a href="/s?defs=prettyprint_id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">prettyprint_id</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>) <a class="l" name="675" href="#675">675</a>{ <a class="l" name="676" href="#676">676</a> <b>if</b> (!$<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> || $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> === <span class="s">&apos;:&apos;</span>) { <a class="l" name="677" href="#677">677</a> <b>return</b> <span class="s">&apos;*&apos;</span>; <a class="l" name="678" href="#678">678</a> } <a class="l" name="679" href="#679">679</a> <b>if</b> (<a href="/s?defs=str_ends_with&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_ends_with</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>, <span class="s">&apos;:&apos;</span>)) { <a class="hl" name="680" href="#680">680</a> $<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a> .= <span class="s">&apos;*&apos;</span>; <a class="l" name="681" href="#681">681</a> } <a class="l" name="682" href="#682">682</a> <b>return</b> <a href="/s?defs=hsc&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">hsc</a>($<a href="/s?defs=id&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">id</a>); <a class="l" name="683" href="#683">683</a>} <a class="l" name="684" href="#684">684</a> <a class="l" name="685" href="#685">685</a><span class="c">/**</span> <a class="l" name="686" href="#686">686</a><span class="c"> * Encode a UTF-8 filename to use on any filesystem</span> <a class="l" name="687" href="#687">687</a><span class="c"> *</span> <a class="l" name="688" href="#688">688</a><span class="c"> * Uses the &apos;fnencode&apos; option to determine encoding</span> <a class="l" name="689" href="#689">689</a><span class="c"> *</span> <a class="hl" name="690" href="#690">690</a><span class="c"> * When the second parameter is true the string will</span> <a class="l" name="691" href="#691">691</a><span class="c"> * be encoded only if non ASCII characters are detected -</span> <a class="l" name="692" href="#692">692</a><span class="c"> * This makes it safe to run it multiple times on the</span> <a class="l" name="693" href="#693">693</a><span class="c"> * same string (default is true)</span> <a class="l" name="694" href="#694">694</a><span class="c"> *</span> <a class="l" name="695" href="#695">695</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="696" href="#696">696</a><span class="c"> * <strong>@see</strong> <a href="/s?defs=urlencode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urlencode</a></span> <a class="l" name="697" href="#697">697</a><span class="c"> *</span> <a class="l" name="698" href="#698">698</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a> file name</span> <a class="l" name="699" href="#699">699</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=safe&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">safe</a> if true, only encoded when non ASCII characters detected</span> <a class="hl" name="700" href="#700">700</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="l" name="701" href="#701">701</a><span class="c"> */</span> <a class="l" name="702" href="#702">702</a><b>function</b> <a href="/s?defs=utf8_encodeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">utf8_encodeFN</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>, $<a href="/s?defs=safe&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">safe</a> = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>) <a class="l" name="703" href="#703">703</a>{ <a class="l" name="704" href="#704">704</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="705" href="#705">705</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;fnencode&apos;</span>] == <span class="s">&apos;utf-8&apos;</span>) <b>return</b> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>; <a class="l" name="706" href="#706">706</a> <a class="l" name="707" href="#707">707</a> <b>if</b> ($<a href="/s?defs=safe&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">safe</a> &amp;&amp; <a href="/s?defs=preg_match&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">preg_match</a>(<span class="s">&apos;#^[a-zA-Z0-9/_\-\.%]+$#&apos;</span>, $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>)) { <a class="l" name="708" href="#708">708</a> <b>return</b> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>; <a class="l" name="709" href="#709">709</a> } <a class="hl" name="710" href="#710">710</a> <a class="l" name="711" href="#711">711</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;fnencode&apos;</span>] == <span class="s">&apos;safe&apos;</span>) { <a class="l" name="712" href="#712">712</a> <b>return</b> <a href="/s?defs=SafeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">SafeFN</a>::<a href="/s?defs=encode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">encode</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>); <a class="l" name="713" href="#713">713</a> } <a class="l" name="714" href="#714">714</a> <a class="l" name="715" href="#715">715</a> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a> = <a href="/s?defs=urlencode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urlencode</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>); <a class="l" name="716" href="#716">716</a> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a> = <a href="/s?defs=str_replace&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">str_replace</a>(<span class="s">&apos;%2F&apos;</span>, <span class="s">&apos;/&apos;</span>, $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>); <a class="l" name="717" href="#717">717</a> <b>return</b> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>; <a class="l" name="718" href="#718">718</a>} <a class="l" name="719" href="#719">719</a> <a class="hl" name="720" href="#720">720</a><span class="c">/**</span> <a class="l" name="721" href="#721">721</a><span class="c"> * Decode a filename back to UTF-8</span> <a class="l" name="722" href="#722">722</a><span class="c"> *</span> <a class="l" name="723" href="#723">723</a><span class="c"> * Uses the &apos;fnencode&apos; option to determine encoding</span> <a class="l" name="724" href="#724">724</a><span class="c"> *</span> <a class="l" name="725" href="#725">725</a><span class="c"> * <strong>@author</strong> Andreas Gohr &lt;andi@splitbrain.org&gt;</span> <a class="l" name="726" href="#726">726</a><span class="c"> * <strong>@see</strong> <a href="/s?defs=urldecode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urldecode</a></span> <a class="l" name="727" href="#727">727</a><span class="c"> *</span> <a class="l" name="728" href="#728">728</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a> file name</span> <a class="l" name="729" href="#729">729</a><span class="c"> * <strong>@return</strong> <b>string</b></span> <a class="hl" name="730" href="#730">730</a><span class="c"> */</span> <a class="l" name="731" href="#731">731</a><b>function</b> <a href="/s?defs=utf8_decodeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">utf8_decodeFN</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>) <a class="l" name="732" href="#732">732</a>{ <a class="l" name="733" href="#733">733</a> <b>global</b> $<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>; <a class="l" name="734" href="#734">734</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;fnencode&apos;</span>] == <span class="s">&apos;utf-8&apos;</span>) <b>return</b> $<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>; <a class="l" name="735" href="#735">735</a> <a class="l" name="736" href="#736">736</a> <b>if</b> ($<a href="/s?defs=conf&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">conf</a>[<span class="s">&apos;fnencode&apos;</span>] == <span class="s">&apos;safe&apos;</span>) { <a class="l" name="737" href="#737">737</a> <b>return</b> <a href="/s?defs=SafeFN&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">SafeFN</a>::<a href="/s?defs=decode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">decode</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>); <a class="l" name="738" href="#738">738</a> } <a class="l" name="739" href="#739">739</a> <a class="hl" name="740" href="#740">740</a> <b>return</b> <a href="/s?defs=urldecode&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">urldecode</a>($<a href="/s?defs=file&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">file</a>); <a class="l" name="741" href="#741">741</a>} <a class="l" name="742" href="#742">742</a> <a class="l" name="743" href="#743">743</a><span class="c">/**</span> <a class="l" name="744" href="#744">744</a><span class="c"> * Find a page in the current namespace (determined from $ID) or any</span> <a class="l" name="745" href="#745">745</a><span class="c"> * higher namespace that can be accessed by the current user,</span> <a class="l" name="746" href="#746">746</a><span class="c"> * this condition can be overriden by an optional parameter.</span> <a class="l" name="747" href="#747">747</a><span class="c"> *</span> <a class="l" name="748" href="#748">748</a><span class="c"> * Used for sidebars, but can be used other stuff as well</span> <a class="l" name="749" href="#749">749</a><span class="c"> *</span> <a class="hl" name="750" href="#750">750</a><span class="c"> * <strong>@todo</strong> add event hook</span> <a class="l" name="751" href="#751">751</a><span class="c"> *</span> <a class="l" name="752" href="#752">752</a><span class="c"> * <strong>@param</strong> <b>string</b> $<a href="/s?defs=page&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page</a> the pagename you&apos;re looking for</span> <a class="l" name="753" href="#753">753</a><span class="c"> * <strong>@param</strong> <b>bool</b> $<a href="/s?defs=useacl&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">useacl</a> only return pages readable by the current user, false to ignore ACLs</span> <a class="l" name="754" href="#754">754</a><span class="c"> * <strong>@return</strong> <b>false</b>|<b>string</b> the full page id of the found page, false if any</span> <a class="l" name="755" href="#755">755</a><span class="c"> */</span> <a class="l" name="756" href="#756">756</a><b>function</b> <a href="/s?defs=page_findnearest&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page_findnearest</a>($<a href="/s?defs=page&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page</a>, $<a href="/s?defs=useacl&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">useacl</a> = <a href="/s?defs=true&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">true</a>) <a class="l" name="757" href="#757">757</a>{ <a class="l" name="758" href="#758">758</a> <b>if</b> ((<em>string</em>) $<a href="/s?defs=page&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page</a> === <span class="s">&apos;&apos;</span>) <b>return</b> <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>; <a class="l" name="759" href="#759">759</a> <b>global</b> $<a href="/s?defs=ID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ID</a>; <a class="hl" name="760" href="#760">760</a> <a class="l" name="761" href="#761">761</a> $<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> = $<a href="/s?defs=ID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ID</a>; <a class="l" name="762" href="#762">762</a> <b>do</b> { <a class="l" name="763" href="#763">763</a> $<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> = <a href="/s?defs=getNS&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">getNS</a>($<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a>); <a class="l" name="764" href="#764">764</a> $<a href="/s?defs=pageid&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pageid</a> = <a href="/s?defs=cleanID&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">cleanID</a>(<span class="s">&quot;</span>$<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a><span class="s">:</span>$<a href="/s?defs=page&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page</a><span class="s">&quot;</span>); <a class="l" name="765" href="#765">765</a> <b>if</b> (<a href="/s?defs=page_exists&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">page_exists</a>($<a href="/s?defs=pageid&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pageid</a>) &amp;&amp; (!$<a href="/s?defs=useacl&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">useacl</a> || <a href="/s?defs=auth_quickaclcheck&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">auth_quickaclcheck</a>($<a href="/s?defs=pageid&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pageid</a>) &gt;= <a href="/s?defs=AUTH_READ&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">AUTH_READ</a>)) { <a class="l" name="766" href="#766">766</a> <b>return</b> $<a href="/s?defs=pageid&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">pageid</a>; <a class="l" name="767" href="#767">767</a> } <a class="l" name="768" href="#768">768</a> } <b>while</b> ($<a href="/s?defs=ns&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ns</a> !== <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>); <a class="l" name="769" href="#769">769</a> <a class="hl" name="770" href="#770">770</a> <b>return</b> <a href="/s?defs=false&amp;project=dokuwiki" class="intelliWindow-symbol" data-definition-place="undefined-in-file">false</a>; <a class="l" name="771" href="#771">771</a>} <a class="l" name="772" href="#772">772</a></pre> </div><footer id="footer"> <p><a href="https://oracle.github.io/opengrok/" class="link-no-decoration" title="Served by OpenGrok (1.7.31 - 6333fd7)"> <span id="served-by">served&nbsp;by&nbsp;</span><span class="logo logo-gray-color">{</span><span class="logo logo-blue-color">Open</span><span class="logo logo-gray-color">Grok</span> </a></p> <p>Last Index Update: Thu Jul 13 10:31:41 UTC 2023</p> <!-- Include for DokuWiki site wide top bar --> <style type="text/css"> @media screen { body { padding-top: 30px; } #global__header { position: absolute; top: 0; left: 0; text-align: left; vertical-align: middle; line-height: 1.5; background-color: #333; box-shadow: 0 0 8px rgba(0,0,0,0.5); width: 100%; margin: 0; padding: 5px 20px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; white-space: nowrap; overflow: hidden; } #global__header h2 { position: absolute; left: -99999em; top: 0; overflow: hidden; display: inline; } #global__header ul, #global__header li { margin: 0; padding: 0; list-style: none; display: inline; line-height: 1.5; } #global__header a { color: #bbb; text-decoration: none; margin-right: 20px; font-size: 14px; font-weight: normal; } #global__header a:hover, #global__header a:active, #global__header a:focus { color: #fff; text-decoration: underline; } #global__header form { float: right; margin: 0 0 0 20px; } #global__header input { background-color: #333; background-image: none; border: 1px solid #bbb; color: #fff; box-shadow: none; border-radius: 2px; margin: 0; line-height: normal; padding: 1px 0 1px 0; height: auto; } #global__header input.button { border: none; color: #bbb; } #global__header input.button:hover, #global__header input.button:active, #global__header input.button:focus { color: #fff; text-decoration: underline; } } /* /@media */ @media only screen and (min-width: 601px) { /* changes specific for www.dokuwiki.org */ #dokuwiki__header { padding-top: 3em; } #dokuwiki__usertools { top: 3em; } /* changes specific for bugs.dokuwiki.org */ div#container div#showtask { top: 40px; } } /* /@media */ @media only screen and (max-width: 600px) { body { padding-top: 0; } #global__header { position: static; white-space: normal; overflow: auto; } #global__header form { float: none; display: block; margin: 0 0 .4em; } } /* /@media */ @media print { #global__header { display: none; } } /* /@media */ </style> <div id="global__header"> <h2>Global DokuWiki Links</h2> <form method="get" action="https://search.dokuwiki.org/" target="_top"> <input type="text" name="q" title="Search all DokuWiki sites at once" class="input" /> <input type="submit" title="Search all DokuWiki sites at once" value="Search" class="button" /> </form> <ul> <li><a href="https://download.dokuwiki.org" title="Download the latest release" target="_top">Download</a></li> <li><a href="https://www.dokuwiki.org" title="Read the DokuWiki documentation" target="_top">Wiki</a></li> <li><a href="https://forum.dokuwiki.org" title="Ask questions in the DokuWiki forum" target="_top">Forum</a></li> <li><a href="https://irc.dokuwiki.org" title="Check IRC chat logs or join the chat" target="_top">IRC</a></li> <li><a href="https://github.com/splitbrain/dokuwiki/issues" title="Report and track bugs" target="_top">Bugs</a></li> <li><a href="https://translate.dokuwiki.org/" title="Help translating the DokuWiki interface" target="_top">Translate</a></li> <li><a href="https://github.com/splitbrain/dokuwiki" title="Access the most recent git commits" target="_top">Git</a></li> <li><a href="https://xref.dokuwiki.org/reference/dokuwiki/" title="Cross-Reference of the DokuWiki source code" target="_top">XRef</a></li> <li><a href="https://codesearch.dokuwiki.org/" title="Search through the sources of DokuWiki, plugins and templates" target="_top">Code Search</a></li> </ul> </div> <!-- end of DokuWiki top bar include --> </div></footer> </div> <script type="text/javascript" src="/webjars/jquery/3.6.0/jquery.min.js" data-priority="10"></script> <script type="text/javascript" src="/js/jquery-ui-1.12.1-custom.min.js" data-priority="11"></script> <script type="text/javascript" src="/webjars/tablesorter/2.31.3/dist/js/jquery.tablesorter.min.js" data-priority="12"></script> <script type="text/javascript" src="/js/tablesorter-parsers-0.0.3.min.js" data-priority="13"></script> <script type="text/javascript" src="/js/searchable-option-list-2.0.15.min.js" data-priority="14"></script> <script type="text/javascript" src="/js/utils-0.0.45.min.js" data-priority="15"></script> <script type="text/javascript" src="/js/jquery.caret-1.5.2.min.js" data-priority="25"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10