1
0
Fork 0
mirror of https://github.com/sbrl/Pepperminty-Wiki.git synced 2024-11-22 04:23:01 +00:00

Comment feature-search with phpDoc & update docs

This commit is contained in:
Starbeamrainbowlabs 2017-11-20 20:40:59 +00:00
parent c1686ae3d7
commit f9ad937a21
58 changed files with 2005 additions and 1216 deletions

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-384877966"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1153864255"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-384877966" class="accordion-body collapse in">
<div id="namespace-1153864255" class="accordion-body collapse in">
<div class="accordion-inner">
@ -365,7 +365,7 @@ with a URL encoded version of the page name.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-127662780"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-820328139"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-127662780" class="accordion-body collapse in">
<div id="namespace-820328139" class="accordion-body collapse in">
<div class="accordion-inner">
@ -414,7 +414,7 @@ Added image support</p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2024061740"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-167413318"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2024061740" class="accordion-body collapse in">
<div id="namespace-167413318" class="accordion-body collapse in">
<div class="accordion-inner">
@ -525,7 +525,7 @@ index.</p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-874059852"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1633737080"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-874059852" class="accordion-body collapse in">
<div id="namespace-1633737080" class="accordion-body collapse in">
<div class="accordion-inner">
@ -943,7 +943,7 @@ navigation bar.</p></td>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1930599762"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1506521234"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1930599762" class="accordion-body collapse in">
<div id="namespace-1506521234" class="accordion-body collapse in">
<div class="accordion-inner">
@ -167,7 +167,7 @@
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small>\</small>search</h1>
<p><em></em></p>
<p><em>Holds a collection to methods to manipulate various types of search index.</em></p>
@ -272,7 +272,7 @@
<article class="property">
<h3 class="public ">$stop_words</h3>
<pre class="signature">$stop_words : </pre>
<p><em></em></p>
<p><em>Words that we should exclude from the inverted index</em></p>
<h4>Type</h4>
@ -303,20 +303,24 @@
<article class="method">
<h3 class="public ">index()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">index( <span class="argument">$source</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">index(string <span class="argument">$source</span>) : array</pre>
<p><em>Converts a source string into an index of search terms that can be
merged into an inverted index.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$source </td>
<td></td>
<td><p>The source string to index.</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>An index represents the specified string.</p>
</article>
</div>
@ -338,20 +342,23 @@
<article class="method">
<h3 class="public ">tokenize()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">tokenize( <span class="argument">$source</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">tokenize(string <span class="argument">$source</span>) : array</pre>
<p><em>Converts a source string into a series of raw tokens.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$source </td>
<td></td>
<td><p>The source string to process.</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>An array of raw tokens extracted from the specified source string.</p>
</article>
</div>
@ -373,20 +380,23 @@
<article class="method">
<h3 class="public ">strip_markup()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">strip_markup( <span class="argument">$source</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">strip_markup(string <span class="argument">$source</span>) : string</pre>
<p><em>Removes (most) markdown markup from the specified string.</em></p>
<p>Stripped strings are not suitable for indexing!</p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$source </td>
<td></td>
<td><p>The source string to process.</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>The stripped string.</p>
</article>
</div>
@ -408,16 +418,16 @@
<article class="method">
<h3 class="public ">rebuild_invindex()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">rebuild_invindex( <span class="argument">$output = true</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">rebuild_invindex(boolean <span class="argument">$output = true</span>) </pre>
<p><em>Rebuilds the master inverted index and clears the page id index.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>boolean</td>
<td>$output </td>
<td></td>
<td><p>Whether to send progress information to the user's browser.</p></td>
</tr>
</table>
@ -443,16 +453,17 @@
<article class="method">
<h3 class="public ">sort_index()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">sort_index( <span class="argument">$index</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">sort_index(array <span class="argument">$index</span>) </pre>
<p><em>Sorts an index alphabetically. Will also sort an inverted index.</em></p>
<p>This allows us to do a binary search instead of a regular
sequential search.</p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>array</td>
<td>$index </td>
<td></td>
<td><p>The index to sort.</p></td>
</tr>
</table>
@ -478,31 +489,31 @@
<article class="method">
<h3 class="public ">compare_indexes()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">compare_indexes( <span class="argument">$oldindex</span>, <span class="argument">$newindex</span>, <span class="argument">$changed</span>, <span class="argument">$removed</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">compare_indexes(array <span class="argument">$oldindex</span>, array <span class="argument">$newindex</span>, array <span class="argument">$changed</span>, array <span class="argument">$removed</span>) </pre>
<p><em>Compares two *regular* indexes to find the differences between them.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>array</td>
<td>$oldindex </td>
<td></td>
<td><p>The old index.</p></td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$newindex </td>
<td></td>
<td><p>The new index.</p></td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$changed </td>
<td></td>
<td><p>An array to be filled with the nterms of all the changed entries.</p></td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$removed </td>
<td></td>
<td><p>An array to be filled with the nterms of all the removed entries.</p></td>
</tr>
</table>
@ -528,16 +539,16 @@
<article class="method">
<h3 class="public ">load_invindex()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">load_invindex( <span class="argument">$invindex_filename</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">load_invindex(string <span class="argument">$invindex_filename</span>) </pre>
<p><em>Reads in and parses an inverted index.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$invindex_filename </td>
<td></td>
<td><p>The path tp the inverted index to parse.</p></td>
</tr>
</table>
@ -552,7 +563,14 @@
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
<tr>
<th>
todo
</th>
<td>
<p>Remove this function and make everything streamable</p>
</td>
</tr>
</table>
</aside>
</div>
@ -563,16 +581,16 @@
<article class="method">
<h3 class="public ">measure_invindex_load_time()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">measure_invindex_load_time( <span class="argument">$invindex_filename</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">measure_invindex_load_time(string <span class="argument">$invindex_filename</span>) </pre>
<p><em>Reads in and parses an inverted index, measuring the time it takes to do so.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$invindex_filename </td>
<td></td>
<td><p>The path to the file inverted index to parse.</p></td>
</tr>
</table>
@ -598,31 +616,31 @@
<article class="method">
<h3 class="public ">merge_into_invindex()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">merge_into_invindex( <span class="argument">$invindex</span>, <span class="argument">$pageid</span>, <span class="argument">$index</span>, <span class="argument">$removals = array()</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">merge_into_invindex(array <span class="argument">$invindex</span>, integer <span class="argument">$pageid</span>, array <span class="argument">$index</span>, array <span class="argument">$removals = array()</span>) </pre>
<p><em>Merge an index into an inverted index.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>array</td>
<td>$invindex </td>
<td></td>
<td><p>The inverted index to merge into.</p></td>
</tr>
<tr>
<td></td>
<td>integer</td>
<td>$pageid </td>
<td></td>
<td><p>The id of the page to assign to the index that's being merged.</p></td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$index </td>
<td></td>
<td><p>The regular index to merge.</p></td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$removals </td>
<td></td>
<td><p>An array of index entries to remove from the inverted index. Useful for applying changes to an inverted index instead of deleting and remerging an entire page's index.</p></td>
</tr>
</table>
@ -688,21 +706,21 @@
<article class="method">
<h3 class="public ">save_invindex()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">save_invindex( <span class="argument">$filename</span>, <span class="argument">$invindex</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">save_invindex(string <span class="argument">$filename</span>, array <span class="argument">$invindex</span>) </pre>
<p><em>Saves the given inverted index back to disk.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$filename </td>
<td></td>
<td><p>The path to the file to save the inverted index to.</p></td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$invindex </td>
<td></td>
<td><p>The inverted index to save.</p></td>
</tr>
</table>
@ -728,25 +746,28 @@
<article class="method">
<h3 class="public ">query_invindex()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">query_invindex( <span class="argument">$query</span>, <span class="argument">$invindex</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">query_invindex(string <span class="argument">$query</span>, array <span class="argument">$invindex</span>) : array</pre>
<p><em>Searches the given inverted index for the specified search terms.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$query </td>
<td></td>
<td><p>The search query.</p></td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>$invindex </td>
<td></td>
<td><p>The inverted index to search.</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>An array of matching pages.</p>
</article>
</div>
@ -768,25 +789,29 @@
<article class="method">
<h3 class="public ">extract_context()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">extract_context( <span class="argument">$query</span>, <span class="argument">$source</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">extract_context(string <span class="argument">$query</span>, string <span class="argument">$source</span>) : string</pre>
<p><em>Extracts a context string (in HTML) given a search query that could be displayed
in a list of search results.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$query </td>
<td></td>
<td><p>The search queary to generate the context for.</p></td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$source </td>
<td></td>
<td><p>The page source to extract the context from.</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>The generated context string.</p>
</article>
</div>
@ -808,25 +833,28 @@
<article class="method">
<h3 class="public ">highlight_context()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">highlight_context( <span class="argument">$query</span>, <span class="argument">$context</span>) </pre>
<p><em></em></p>
<pre class="signature" style="margin-right: 54px;">highlight_context(string <span class="argument">$query</span>, string <span class="argument">$context</span>) : string</pre>
<p><em>Highlights the keywords of a context string.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>string</td>
<td>$query </td>
<td></td>
<td><p>The query to use when highlighting.</p></td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>$context </td>
<td></td>
<td><p>The context string to highlight.</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>The highlighted (HTML) string.</p>
</article>
</div>
@ -891,7 +919,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1166434112"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-221792160"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1166434112" class="accordion-body collapse in">
<div id="namespace-221792160" class="accordion-body collapse in">
<div class="accordion-inner">
@ -1915,6 +1915,55 @@ don&#039;t have it.</em></p>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_register_remote_file" name="method_register_remote_file" class="anchor"></a>
<article class="method">
<h3 class=" ">register_remote_file()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">register_remote_file(array <span class="argument">$remote_file_def</span>) </pre>
<p><em>Registers a request for a remote file to be downloaded before execution. Will block until all files are downloaded.</em></p>
<p>Example definition:
[ &quot;local_filename&quot; =&gt; &quot;file.ext&quot;, &quot;remote_url&quot;: &quot;<a href="https://example.com">https://example.com</a>&quot; ]</p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$remote_file_def </td>
<td><p>The remote file definition to register.</p></td>
</tr>
</table>
<h4>Throws</h4>
<dl>
<dt>\Exception</dt>
<dd><p>Exception Throws an exception if a definition for the requested local file already exists.</p></dd>
</dl>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper">core.php</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>Default</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_register_module" name="method_register_module" class="anchor"></a>
<article class="method">
<h3 class=" ">register_module()</h3>
@ -2438,7 +2487,7 @@ an edit is saved.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -1583,6 +1583,25 @@ if($settings->require_login_view === true && // If this site requires a login in
//////////////////////////////////////
//////////////////////////////////////
$remote_files = [];
/**
* Registers a request for a remote file to be downloaded before execution. Will block until all files are downloaded.
* Example definition:
* [ "local_filename" => "file.ext", "remote_url": "https://example.com" ]
* @param array $remote_file_def The remote file definition to register.
* @throws Exception Exception Throws an exception if a definition for the requested local file already exists.
*/
function register_remote_file($remote_file_def) {
global $remote_files;
foreach($remote_files as $ex_remote_file_def) {
if($ex_remote_file_def["local_filename"] == $remote_file_def["local_filename"])
throw new Exception("Error: A remote file with the local filename '{$remote_file_def["local_filename"]}' is already registered.");
}
$remote_files[] = $remote_file_def;
}
//////////////////////////
/// Module functions ///
//////////////////////////
@ -1591,7 +1610,7 @@ if($settings->require_login_view === true && // If this site requires a login in
// register themselves //
// or new pages. //
//////////////////////////
/** A list of all the currentlyloaded modules. Not guaranteed to be populated until an action is executed. */
/** A list of all the currently loaded modules. Not guaranteed to be populated until an action is executed. */
$modules = [];
/**
* Registers a module.
@ -1763,6 +1782,16 @@ if(!isset($actions->credits))
exit(page_renderer::render_main("Error - $settings->$sitename", "<p>No credits page detected. The credits page is a required module!</p>"));
}
// Download all the requested remote files
ini_set("user_agent", "$settings->sitename (Pepperminty-Wiki-Downloader; PHP/" . phpversion() . "; +https://github.com/sbrl/Pepperminty-Wiki/) Pepperminty-Wiki/$version");
foreach($remote_files as $remote_file_def) {
if(file_exists($remote_file_def["local_filename"]) && filesize($remote_file_def["local_filename"]) > 0)
continue;
error_log("[ Pepperminty-Wiki/$settings->sitename ] Downloading {$remote_file_def["local_filename"]} from {$remote_file_def["remote_url"]}");
file_put_contents($remote_file_def["local_filename"], fopen($remote_file_def["remote_url"], "rb"));
}
// Perform the appropriate action
$action_name = $env->action;
if(isset($actions->$action_name))

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1570989444"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-579197492"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1570989444" class="accordion-body collapse in">
<div id="namespace-579197492" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1332662049"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2096227298"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1332662049" class="accordion-body collapse in">
<div id="namespace-2096227298" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2122323479"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1139473875"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2122323479" class="accordion-body collapse in">
<div id="namespace-1139473875" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1010967540"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-330489182"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1010967540" class="accordion-body collapse in">
<div id="namespace-330489182" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1568650655"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1658446726"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1568650655" class="accordion-body collapse in">
<div id="namespace-1658446726" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-601692093"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1857578391"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-601692093" class="accordion-body collapse in">
<div id="namespace-1857578391" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-371666784"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2077238817"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-371666784" class="accordion-body collapse in">
<div id="namespace-2077238817" class="accordion-body collapse in">
<div class="accordion-inner">
@ -298,7 +298,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-556407950"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1350747476"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-556407950" class="accordion-body collapse in">
<div id="namespace-1350747476" class="accordion-body collapse in">
<div class="accordion-inner">
@ -338,6 +338,57 @@ false if it wasn't found.</p>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_delete_comment" name="method_delete_comment" class="anchor"></a>
<article class="method">
<h3 class=" ">delete_comment()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">delete_comment(array <span class="argument">$comment_data</span>, string <span class="argument">$target_id</span>) : boolean</pre>
<p><em>Deletes the first comment found with the specified id.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$comment_data </td>
<td><p>An array of threaded comments to delete the comment from.</p></td>
</tr>
<tr>
<td>string</td>
<td>$target_id </td>
<td><p>The id of the comment to delete.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>Whether the comment was found and deleted or not.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper">modules/feature-comments.php</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>Default</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_fetch_comment_thread" name="method_fetch_comment_thread" class="anchor"></a>
<article class="method">
<h3 class=" ">fetch_comment_thread()</h3>
@ -493,7 +544,7 @@ at which the comments are being rendered.</p></td>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-516423332"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1008324170"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-516423332" class="accordion-body collapse in">
<div id="namespace-1008324170" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-859896163"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-963937092"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-859896163" class="accordion-body collapse in">
<div id="namespace-963937092" class="accordion-body collapse in">
<div class="accordion-inner">
@ -304,7 +304,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1690154390"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-747065120"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1690154390" class="accordion-body collapse in">
<div id="namespace-747065120" class="accordion-body collapse in">
<div class="accordion-inner">
@ -384,7 +384,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1653152018"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1380378755"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1653152018" class="accordion-body collapse in">
<div id="namespace-1380378755" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2093436203"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1996376235"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2093436203" class="accordion-body collapse in">
<div id="namespace-1996376235" class="accordion-body collapse in">
<div class="accordion-inner">
@ -175,7 +175,7 @@
<table class="table table-hover">
<tr>
<td><a href="../classes/search.html">search</a></td>
<td><em></em></td>
<td><em>Holds a collection to methods to manipulate various types of search index.</em></td>
</tr>
</table>
</div>
@ -246,7 +246,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1853349231"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1838125378"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1853349231" class="accordion-body collapse in">
<div id="namespace-1838125378" class="accordion-body collapse in">
<div class="accordion-inner">
@ -381,7 +381,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1152885264"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-90756618"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1152885264" class="accordion-body collapse in">
<div id="namespace-90756618" class="accordion-body collapse in">
<div class="accordion-inner">
@ -503,7 +503,7 @@ the image.</p></td>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1019548437"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1672713533"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1019548437" class="accordion-body collapse in">
<div id="namespace-1672713533" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-216523704"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-974590774"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-216523704" class="accordion-body collapse in">
<div id="namespace-974590774" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1466271282"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1557987198"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1466271282" class="accordion-body collapse in">
<div id="namespace-1557987198" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1144789841"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1127439907"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1144789841" class="accordion-body collapse in">
<div id="namespace-1127439907" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-587228102"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-863606868"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-587228102" class="accordion-body collapse in">
<div id="namespace-863606868" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-111360011"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-711545980"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-111360011" class="accordion-body collapse in">
<div id="namespace-711545980" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1657690123"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1186667539"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1657690123" class="accordion-body collapse in">
<div id="namespace-1186667539" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1277730599"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1441772616"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1277730599" class="accordion-body collapse in">
<div id="namespace-1441772616" class="accordion-body collapse in">
<div class="accordion-inner">
@ -340,7 +340,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-177381216"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1195236639"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-177381216" class="accordion-body collapse in">
<div id="namespace-1195236639" class="accordion-body collapse in">
<div class="accordion-inner">
@ -295,7 +295,7 @@ enabled, or sha256 otherwise.</p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1184234307"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-594893006"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1184234307" class="accordion-body collapse in">
<div id="namespace-594893006" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-892302219"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-814820"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-892302219" class="accordion-body collapse in">
<div id="namespace-814820" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-360734490"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-375120104"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-360734490" class="accordion-body collapse in">
<div id="namespace-375120104" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-842179177"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-333273259"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-842179177" class="accordion-body collapse in">
<div id="namespace-333273259" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1907202469"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-802788267"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1907202469" class="accordion-body collapse in">
<div id="namespace-802788267" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-960081674"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-703438141"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-960081674" class="accordion-body collapse in">
<div id="namespace-703438141" class="accordion-body collapse in">
<div class="accordion-inner">
@ -246,7 +246,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1812577039"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-125842645"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1812577039" class="accordion-body collapse in">
<div id="namespace-125842645" class="accordion-body collapse in">
<div class="accordion-inner">
@ -246,7 +246,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -1,7 +1,7 @@
<?php
register_module([
"name" => "Random Page",
"version" => "0.1",
"version" => "0.2",
"author" => "Starbeamrainbowlabs",
"description" => "Adds an action called 'random' that redirects you to a random page.",
"id" => "action-random",
@ -18,6 +18,13 @@ register_module([
global $pageindex;
$pageNames = array_keys(get_object_vars($pageindex));
// Filter out pages we shouldn't send the user to
$pageNames = array_values(array_filter($pageNames, function($pagename) {
global $settings;
return preg_match($settings->random_page_exclude, $pagename) === 0 ? true : false;
}));
$randomPageName = $pageNames[array_rand($pageNames)];
http_response_code(307);

View file

@ -129,6 +129,70 @@ register_module([
exit(page_renderer::render_main("Comment posted successfully - $settings->sitename", "<p>Your comment on $env->page was posted successfully. If your browser doesn't redirect you automagically, please <a href='?action=view&page=" . rawurlencode($env->page) . "commentsuccess=yes#comment-$new_comment->id'>click here</a> to go to the comment you posted on the page you were viewing.</p>"));
});
/**
* @api {post} ?action=comment-delete&page={page_name}&delete_id={id_to_delete} Delete a comment
* @apiName CommentDelete
* @apiGroup Comment
* @apiPermission User
* @apiDescription Deletes a comment with the specified id. If you aren't the one who made the comment in the first place, then you must be a moderator or better to delete it.
*
* @apiUse PageParameter
* @apiParam {string} delete_id The id of the comment to delete.
*
* @apiError CommentNotFound The comment to delete was not found.
*/
/*
* ██████ ██████ ███ ███ ███ ███ ███████ ███ ██ ████████
* ██ ██ ██ ████ ████ ████ ████ ██ ████ ██ ██
* ██ ██ ██ ██ ████ ██ ██ ████ ██ █████ ██ ██ ██ ██ █████
* ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
* ██████ ██████ ██ ██ ██ ██ ███████ ██ ████ ██
* ██████ ███████ ██ ███████ ████████ ███████
* ██ ██ ██ ██ ██ ██ ██
* ██ ██ █████ ██ █████ ██ █████
* ██ ██ ██ ██ ██ ██ ██
* ██████ ███████ ███████ ███████ ██ ███████
*/
add_action("comment-delete", function () {
global $env, $settings;
if(!isset($_GET["delete_id"])) {
http_response_code(400);
exit(page_renderer::render_main("Error - Deleting Comment - $settings->sitename", "<p>You didn't specify the id of a comment to delete.</p>"));
}
// Make sure that the user is logged in before deleting a comment
if(!$env->is_logged_in) {
http_response_code(307);
header("location: ?action=login&returnto=" . rawurlencode("?action=comment-delete&page=" . rawurlencode($env->page) . "&id=" . rawurlencode($_GET["delete_id"])));
}
$comment_filename = get_comment_filename($env->page);
$comments = json_decode(file_get_contents($comment_filename));
$target_id = $_GET["delete_id"];
$comment_to_delete = find_comment($comments, $target_id);
if($comment_to_delete->username !== $env->user && !$env->is_admin) {
http_response_code(401);
exit(page_renderer::render_main("Error - Deleting Comment - $settings->sitename", "<p>You can't delete the comment with the id <code>" . htmlentities($target_id) . "</code> on the page <em>$env->page</em> because you're logged in as " . page_renderer::render_username($env->user) . ", and " . page_renderer::render_username($comment_to_delete->username) . " made that comment. Try <a href='?action=logout'>Logging out</a> and then logging in again as " . page_renderer::render_username($comment_to_delete->username) . ", or as a moderator or better."));
}
if(!delete_comment($comments, $_GET["delete_id"])) {
http_response_code(404);
exit(page_renderer::render_main("Comment not found - Deleting Comment - $settings->sitename", "<p>The comment with the id <code>" . htmlentities($_GET["delete_id"]) . "</code> on the page <em>$env->page</em> wasn't found. Perhaps it was already deleted?</p>"));
}
if(!file_put_contents($comment_filename, json_encode($comments))) {
http_response_code(503);
exit(page_renderer::render_main("Server Error - Deleting Comment - $settings->sitename", "<p>While $settings->sitename was able to delete the comment with the id <code>" . htmlentities($target_id) . "</code> on the page <em>$env->page</em>, it couldn't save the changes back to disk. Please contact <a href='mailto:" . hide_email($settings->admindetails_email) . "'>$settings->admindetails_name</a>, $settings->sitename's local friendly administrator about this issue.</p>"));
}
exit(page_renderer::render_main("Comment Deleted - $settings->sitename", "<p>The comment with the id <code>" . htmlentities($target_id) . "</code> on the page <em>$env->page</em> has been deleted successfully. <a href='?page=" . rawurlencode($env->page) . "&redirect=no'>Go back</a> to " . htmlentities($env->page) . ".</p>"));
});
if($env->action == "view") {
page_renderer::register_part_preprocessor(function(&$parts) {
global $env;
@ -261,6 +325,39 @@ function find_comment($comment_data, $comment_id)
return false;
}
/**
* Deletes the first comment found with the specified id.
* @param array $comment_data An array of threaded comments to delete the comment from.
* @param string $target_id The id of the comment to delete.
* @return bool Whether the comment was found and deleted or not.
*/
function delete_comment(&$comment_data, $target_id)
{
$comment_count = count($comment_data);
if($comment_count === 0) return false;
for($i = 0; $i < $comment_count; $i++) {
if($comment_data[$i]->id == $target_id) {
if(count($comment_data[$i]->replies) == 0) {
unset($comment_data[$i]);
// Reindex the comment list before returning
$comment_data = array_values($comment_data);
}
else {
unset($comment_data[$i]->username);
$comment_data[$i]->message = "_[Deleted]_";
}
return true;
}
if(count($comment_data[$i]->replies) > 0 &&
delete_comment($comment_data[$i]->replies, $target_id))
return true;
}
return false;
}
/**
* Fetches all the parent comments of the specified comment id, including the
* comment itself at the end.
@ -303,7 +400,7 @@ function fetch_comment_thread($comment_data, $comment_id)
*/
function render_comments($comments_data, $depth = 0)
{
global $settings;
global $settings, $env;
if(count($comments_data) == 0) {
if($depth == 0)
@ -319,13 +416,15 @@ function render_comments($comments_data, $depth = 0)
$comment = $comments_data[$i];
$result .= "\t<div class='comment' id='comment-$comment->id' data-comment-id='$comment->id'>\n";
$result .= "\t<p class='comment-header'><span class='name'>" . page_renderer::render_username($comment->username) . "</span> said:</p>";
$result .= "\t<p class='comment-header'><span class='name'>" . page_renderer::render_username($comment->username ?? "<em>Unknown</em>") . "</span> said:</p>";
$result .= "\t<div class='comment-body'>\n";
$result .= "\t\t" . parse_page_source($comment->message);
$result .= "\t</div>\n";
$result .= "\t<div class='reply-box-container'></div>\n";
$result .= "\t<p class='comment-footer'>";
$result .= "\t\t<span class='comment-footer-item'><button class='reply-button'>Reply</button></span>\n";
if($env->user == $comment->username || $env->is_admin)
$result .= "<span class='comment-footer-item'><a href='?action=comment-delete&page=" . rawurlencode($env->page) . "&delete_id=" . rawurlencode($comment->id) . "' class='delete-button' title='Permanently delete this comment'>Delete</a></span>\n";
$result .= "\t\t<span class='comment-footer-item'><a class='permalink-button' href='#comment-$comment->id' title='Permalink to this comment'>&#x1f517;</a></span>\n";
$result .= "\t\t<span class='comment-footer-item'><time datetime='" . date("c", strtotime($comment->timestamp)) . "' title='The time this comment was posted'>$settings->comment_time_icon " . date("l jS \of F Y \a\\t h:ia T", strtotime($comment->timestamp)) . "</time></span>\n";
$result .= "\t</p>\n";

View file

@ -431,9 +431,14 @@ window.addEventListener("load", function(event) {
}
]);
/**
* Holds a collection to methods to manipulate various types of search index.
*/
class search
{
// Words that we should exclude from the inverted index
/**
* Words that we should exclude from the inverted index
*/
public static $stop_words = [
"a", "about", "above", "above", "across", "after", "afterwards", "again",
"against", "all", "almost", "alone", "along", "already", "also",
@ -479,6 +484,12 @@ class search
"your", "yours", "yourself", "yourselves"
];
/**
* Converts a source string into an index of search terms that can be
* merged into an inverted index.
* @param string $source The source string to index.
* @return array An index represents the specified string.
*/
public static function index($source)
{
$source = html_entity_decode($source, ENT_QUOTES);
@ -509,6 +520,11 @@ class search
return $index;
}
/**
* Converts a source string into a series of raw tokens.
* @param string $source The source string to process.
* @return array An array of raw tokens extracted from the specified source string.
*/
public static function tokenize($source)
{
$source = strtolower($source);
@ -516,11 +532,21 @@ class search
return preg_split("/((^\p{P}+)|(\p{P}*\s+\p{P}*)|(\p{P}+$))|\|/u", $source, -1, PREG_SPLIT_NO_EMPTY);
}
/**
* Removes (most) markdown markup from the specified string.
* Stripped strings are not suitable for indexing!
* @param string $source The source string to process.
* @return string The stripped string.
*/
public static function strip_markup($source)
{
return str_replace([ "[", "]", "\"", "*", "_", " - ", "`" ], "", $source);
}
/**
* Rebuilds the master inverted index and clears the page id index.
* @param boolean $output Whether to send progress information to the user's browser.
*/
public static function rebuild_invindex($output = true)
{
global $pageindex, $env, $paths, $settings;
@ -569,25 +595,23 @@ class search
self::save_invindex($paths->searchindex, $invindex);
}
/*
* @summary Sorts an index alphabetically. Will also sort an inverted index.
* This allows us to do a binary search instead of a regular
* sequential search.
/**
* Sorts an index alphabetically. Will also sort an inverted index.
* This allows us to do a binary search instead of a regular
* sequential search.
* @param array $index The index to sort.
*/
public static function sort_index(&$index)
{
ksort($index, SORT_NATURAL);
}
/*
* @summary Compares two *regular* indexes to find the differences between them.
*
* @param {array} $indexa - The old index.
* @param {array} $indexb - The new index.
* @param {array} $changed - An array to be filled with the nterms of all
* the changed entries.
* @param {array} $removed - An array to be filled with the nterms of all
* the removed entries.
/**
* Compares two *regular* indexes to find the differences between them.
* @param array $oldindex The old index.
* @param array $newindex The new index.
* @param array $changed An array to be filled with the nterms of all the changed entries.
* @param array $removed An array to be filled with the nterms of all the removed entries.
*/
public static function compare_indexes($oldindex, $newindex, &$changed, &$removed)
{
@ -604,15 +628,19 @@ class search
}
}
/*
* @summary Reads in and parses an inverted index.
/**
* Reads in and parses an inverted index.
* @param string $invindex_filename The path tp the inverted index to parse.
* @todo Remove this function and make everything streamable
*/
// Todo remove this function and make everything streamable
public static function load_invindex($invindex_filename) {
$invindex = json_decode(file_get_contents($invindex_filename), true);
return $invindex;
}
/**
* Reads in and parses an inverted index, measuring the time it takes to do so.
* @param string $invindex_filename The path to the file inverted index to parse.
*/
public static function measure_invindex_load_time($invindex_filename) {
global $env;
@ -621,8 +649,12 @@ class search
$env->perfdata->searchindex_decode_time = round((microtime(true) - $searchindex_decode_start)*1000, 3);
}
/*
* @summary Merge an index into an inverted index.
/**
* Merge an index into an inverted index.
* @param array $invindex The inverted index to merge into.
* @param int $pageid The id of the page to assign to the index that's being merged.
* @param array $index The regular index to merge.
* @param array $removals An array of index entries to remove from the inverted index. Useful for applying changes to an inverted index instead of deleting and remerging an entire page's index.
*/
public static function merge_into_invindex(&$invindex, $pageid, &$index, &$removals = [])
{
@ -673,11 +705,22 @@ class search
}
}
/**
* Saves the given inverted index back to disk.
* @param string $filename The path to the file to save the inverted index to.
* @param array $invindex The inverted index to save.
*/
public static function save_invindex($filename, &$invindex)
{
file_put_contents($filename, json_encode($invindex));
}
/**
* Searches the given inverted index for the specified search terms.
* @param string $query The search query.
* @param array $invindex The inverted index to search.
* @return array An array of matching pages.
*/
public static function query_invindex($query, &$invindex)
{
global $settings, $pageindex;
@ -779,7 +822,7 @@ class search
// Sort the new list of clump distances
sort($clumpDistances);
// Calcualate a measureof how clumped the offsets are
// Calcualate a measure of how clumped the offsets are
$tightClumpLimit = floor((count($clumpDistances) - 1) / 0.25);
$tightClumpsMeasure = $clumpDistances[$tightClumpLimit] - $clumpDistances[0];
$clumpsRange = $clumpDistances[count($clumpDistances) - 1] - $clumpDistances[0];
@ -806,6 +849,13 @@ class search
return $matching_pages;
}
/**
* Extracts a context string (in HTML) given a search query that could be displayed
* in a list of search results.
* @param string $query The search queary to generate the context for.
* @param string $source The page source to extract the context from.
* @return string The generated context string.
*/
public static function extract_context($query, $source)
{
global $settings;
@ -890,6 +940,12 @@ class search
return implode(" ... ", $contexts);
}
/**
* Highlights the keywords of a context string.
* @param string $query The query to use when highlighting.
* @param string $context The context string to highlight.
* @return string The highlighted (HTML) string.
*/
public static function highlight_context($query, $context)
{
$qterms = self::tokenize($query);

View file

@ -9,6 +9,12 @@ register_module([
"code" => function() {
global $settings, $env;
// Download diff.min.js - which we use when displaying edit conflicts
register_remote_file([
"local_filename" => "diff.min.js",
"remote_url" => "https://cdnjs.cloudflare.com/ajax/libs/jsdiff/2.2.2/diff.min.js"
]);
/**
* @api {get} ?action=edit&page={pageName}[&newpage=yes] Get an editing page
* @apiDescription Gets an editing page for a given page. If you don't have permission to edit the page in question, a view source pagee is returned instead.
@ -358,8 +364,8 @@ window.addEventListener("load", function(event) {
destination.innerHTML = output;
});
DIFFSCRIPT;
$content .= "\n<script src='https://cdnjs.cloudflare.com/ajax/libs/jsdiff/2.2.2/diff.min.js'></script>
// diff.min.js is downloaded above
$content .= "\n<script src='diff.min.js'></script>
<script>$diffScript</script>\n";
exit(page_renderer::render_main("Edit Conflict - $env->page - $settings->sitename", $content));

View file

@ -124,6 +124,7 @@ $env->parsedown_paths->parsedown = "https://cdn.rawgit.com/erusev/parsedown/3ebb
$env->parsedown_paths->parsedown_extra = "https://cdn.rawgit.com/erusev/parsedown-extra/11a44e076d02ffcc4021713398a60cd73f78b6f5/ParsedownExtra.php";
// Download parsedown and parsedown extra if they don't already exist
// These must still use this old method, as the parser may be asked to render some HTML before Pepperminty Wiki has had a chance to run the downloads
if(!file_exists("./Parsedown.php") || filesize("./Parsedown.php") === 0)
file_put_contents("./Parsedown.php", fopen($env->parsedown_paths->parsedown, "r"));
if(!file_exists("./ParsedownExtra.php") || filesize("./ParsedownExtra.php") === 0)

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1447696764"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1116693068"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1447696764" class="accordion-body collapse in">
<div id="namespace-1116693068" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-826807675"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1925859721"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-826807675" class="accordion-body collapse in">
<div id="namespace-1925859721" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -21,6 +21,12 @@ GUICONFIG;
$settingsFilename = "peppermint.json";
if(file_exists("$settingsFilename.compromised")) {
http_response_code(500);
header("content-type: text/plain");
exit("Error: $settingsFilename.compromised exists on disk, so it's likely you need to block access to 'peppermint.json' from the internet. If you've done this already, please delete $settingsFilename.compromised and reload this page.");
}
$guiConfig = json_decode($guiConfig);
$settings = new stdClass();
if(!file_exists($settingsFilename))

View file

@ -83,12 +83,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -152,7 +152,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
-->
<!-- Title: G Pages: 1 -->
<svg width="383pt" height="312pt"
viewBox="0.00 0.00 382.69 312.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 308)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-308 378.687,-308 378.687,4 -4,4"/>
<g id="clust1" class="cluster"><title>cluster_Global</title>
<path fill="none" stroke="gray" d="M217.687,-8C217.687,-8 354.687,-8 354.687,-8 360.687,-8 366.687,-14 366.687,-20 366.687,-20 366.687,-284 366.687,-284 366.687,-290 360.687,-296 354.687,-296 354.687,-296 217.687,-296 217.687,-296 211.687,-296 205.687,-290 205.687,-284 205.687,-284 205.687,-20 205.687,-20 205.687,-14 211.687,-8 217.687,-8"/>
<text text-anchor="middle" x="286.187" y="-283.2" font-family="Times,serif" font-size="11.00" fill="gray">Global</text>
</g>
<!-- \\ids -->
<g id="node1" class="node"><title>\\ids</title>
<polygon fill="none" stroke="black" points="313.187,-268 259.187,-268 259.187,-232 313.187,-232 313.187,-268"/>
<text text-anchor="middle" x="286.187" y="-247.2" font-family="Courier,monospace" font-size="11.00">ids</text>
</g>
<!-- \\page_renderer -->
<g id="node2" class="node"><title>\\page_renderer</title>
<polygon fill="none" stroke="black" points="338.187,-214 234.187,-214 234.187,-178 338.187,-178 338.187,-214"/>
<text text-anchor="middle" x="286.187" y="-193.2" font-family="Courier,monospace" font-size="11.00">page_renderer</text>
</g>
<!-- \\Slimdown -->
<g id="node3" class="node"><title>\\Slimdown</title>
<polygon fill="none" stroke="black" points="321.687,-160 250.687,-160 250.687,-124 321.687,-124 321.687,-160"/>
<text text-anchor="middle" x="286.187" y="-139.2" font-family="Courier,monospace" font-size="11.00">Slimdown</text>
</g>
<!-- \\PeppermintParsedown -->
<g id="node4" class="node"><title>\\PeppermintParsedown</title>
<polygon fill="none" stroke="black" points="358.687,-106 213.687,-106 213.687,-70 358.687,-70 358.687,-106"/>
<text text-anchor="middle" x="286.187" y="-85.2" font-family="Courier,monospace" font-size="11.00">PeppermintParsedown</text>
</g>
<!-- \\ParsedownExtra -->
<g id="node6" class="node"><title>\\ParsedownExtra</title>
<ellipse fill="none" stroke="black" cx="70.8437" cy="-88" rx="70.6878" ry="18"/>
<text text-anchor="middle" x="70.8437" y="-84.3" font-family="Times,serif" font-size="14.00" fill="gray">\ParsedownExtra</text>
</g>
<!-- \\PeppermintParsedown&#45;&gt;\\ParsedownExtra -->
<g id="edge1" class="edge"><title>\\PeppermintParsedown&#45;&gt;\\ParsedownExtra</title>
<path fill="none" stroke="black" d="M213.554,-88C193.774,-88 172.187,-88 151.96,-88"/>
<polygon fill="none" stroke="black" points="151.84,-84.5001 141.84,-88 151.84,-91.5001 151.84,-84.5001"/>
</g>
<!-- \\search -->
<g id="node5" class="node"><title>\\search</title>
<polygon fill="none" stroke="black" points="314.687,-52 257.687,-52 257.687,-16 314.687,-16 314.687,-52"/>
<text text-anchor="middle" x="286.187" y="-31.2" font-family="Courier,monospace" font-size="11.00">search</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -58,12 +58,12 @@
<ul class="dropdown-menu">
<li>
<a href="reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -88,10 +88,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-229828996"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2115885962"></a>
<a href="namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-229828996" class="accordion-body collapse in">
<div id="namespace-2115885962" class="accordion-body collapse in">
<div class="accordion-inner">
@ -137,7 +137,7 @@
</tr>
<tr>
<td><a href="classes/search.html">search</a></td>
<td><em></em></td>
<td><em>Holds a collection to methods to manipulate various types of search index.</em></td>
</tr>
<tr>
<td><a href="classes/Slimdown.html">Slimdown</a></td>
@ -461,6 +461,57 @@ action is requested.</p></td>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_delete_comment" name="method_delete_comment" class="anchor"></a>
<article class="method">
<h3 class=" ">delete_comment()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">delete_comment(array <span class="argument">$comment_data</span>, string <span class="argument">$target_id</span>) : boolean</pre>
<p><em>Deletes the first comment found with the specified id.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$comment_data </td>
<td><p>An array of threaded comments to delete the comment from.</p></td>
</tr>
<tr>
<td>string</td>
<td>$target_id </td>
<td><p>The id of the comment to delete.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>Whether the comment was found and deleted or not.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>Default</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_email_user" name="method_email_user" class="anchor"></a>
<article class="method">
<h3 class=" ">email_user()</h3>
@ -2149,6 +2200,55 @@ size string.</p>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_register_remote_file" name="method_register_remote_file" class="anchor"></a>
<article class="method">
<h3 class=" ">register_remote_file()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">register_remote_file(array <span class="argument">$remote_file_def</span>) </pre>
<p><em>Registers a request for a remote file to be downloaded before execution. Will block until all files are downloaded.</em></p>
<p>Example definition:
[ &quot;local_filename&quot; =&gt; &quot;file.ext&quot;, &quot;remote_url&quot;: &quot;<a href="https://example.com">https://example.com</a>&quot; ]</p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$remote_file_def </td>
<td><p>The remote file definition to register.</p></td>
</tr>
</table>
<h4>Throws</h4>
<dl>
<dt>\Exception</dt>
<dd><p>Exception Throws an exception if a definition for the requested local file already exists.</p></dd>
</dl>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>Default</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_register_save_preprocessor" name="method_register_save_preprocessor" class="anchor"></a>
<article class="method">
<h3 class=" ">register_save_preprocessor()</h3>
@ -3415,7 +3515,7 @@ listed to be cacnonical.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -58,12 +58,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -88,10 +88,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1628268544"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1177289651"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1628268544" class="accordion-body collapse in">
<div id="namespace-1177289651" class="accordion-body collapse in">
<div class="accordion-inner">
@ -137,7 +137,7 @@
</tr>
<tr>
<td><a href="../classes/search.html">search</a></td>
<td><em></em></td>
<td><em>Holds a collection to methods to manipulate various types of search index.</em></td>
</tr>
<tr>
<td><a href="../classes/Slimdown.html">Slimdown</a></td>
@ -461,6 +461,57 @@ action is requested.</p></td>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_delete_comment" name="method_delete_comment" class="anchor"></a>
<article class="method">
<h3 class=" ">delete_comment()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">delete_comment(array <span class="argument">$comment_data</span>, string <span class="argument">$target_id</span>) : boolean</pre>
<p><em>Deletes the first comment found with the specified id.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$comment_data </td>
<td><p>An array of threaded comments to delete the comment from.</p></td>
</tr>
<tr>
<td>string</td>
<td>$target_id </td>
<td><p>The id of the comment to delete.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>Whether the comment was found and deleted or not.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>Default</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_email_user" name="method_email_user" class="anchor"></a>
<article class="method">
<h3 class=" ">email_user()</h3>
@ -2149,6 +2200,55 @@ size string.</p>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_register_remote_file" name="method_register_remote_file" class="anchor"></a>
<article class="method">
<h3 class=" ">register_remote_file()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">register_remote_file(array <span class="argument">$remote_file_def</span>) </pre>
<p><em>Registers a request for a remote file to be downloaded before execution. Will block until all files are downloaded.</em></p>
<p>Example definition:
[ &quot;local_filename&quot; =&gt; &quot;file.ext&quot;, &quot;remote_url&quot;: &quot;<a href="https://example.com">https://example.com</a>&quot; ]</p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$remote_file_def </td>
<td><p>The remote file definition to register.</p></td>
</tr>
</table>
<h4>Throws</h4>
<dl>
<dt>\Exception</dt>
<dd><p>Exception Throws an exception if a definition for the requested local file already exists.</p></dd>
</dl>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>Default</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_register_save_preprocessor" name="method_register_save_preprocessor" class="anchor"></a>
<article class="method">
<h3 class=" ">register_save_preprocessor()</h3>
@ -3415,7 +3515,7 @@ listed to be cacnonical.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -59,12 +59,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -142,7 +142,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -59,12 +59,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -905,12 +905,12 @@
</tr>
<tr>
<td>error</td>
<td>148</td>
<td>149</td>
<td>No summary for class \PeppermintParsedown</td>
</tr>
<tr>
<td>error</td>
<td>155</td>
<td>156</td>
<td>No summary for method __construct()</td>
</tr>
</tbody>
@ -1000,7 +1000,7 @@
<h3>
<i class="icon-file"></i>
modules/feature-search.php
<small style="float: right;padding-right: 10px;">39</small>
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
@ -1016,196 +1016,6 @@
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>434</td>
<td>No summary for class \search</td>
</tr>
<tr>
<td>error</td>
<td>482</td>
<td>Argument $source is missing from the Docblock of index</td>
</tr>
<tr>
<td>error</td>
<td>482</td>
<td>No summary for method index()</td>
</tr>
<tr>
<td>error</td>
<td>512</td>
<td>Argument $source is missing from the Docblock of tokenize</td>
</tr>
<tr>
<td>error</td>
<td>512</td>
<td>No summary for method tokenize()</td>
</tr>
<tr>
<td>error</td>
<td>519</td>
<td>Argument $source is missing from the Docblock of strip_markup</td>
</tr>
<tr>
<td>error</td>
<td>519</td>
<td>No summary for method strip_markup()</td>
</tr>
<tr>
<td>error</td>
<td>524</td>
<td>Argument $output is missing from the Docblock of rebuild_invindex</td>
</tr>
<tr>
<td>error</td>
<td>524</td>
<td>No summary for method rebuild_invindex()</td>
</tr>
<tr>
<td>error</td>
<td>577</td>
<td>Argument $index is missing from the Docblock of sort_index</td>
</tr>
<tr>
<td>error</td>
<td>577</td>
<td>No summary for method sort_index()</td>
</tr>
<tr>
<td>error</td>
<td>592</td>
<td>Argument $oldindex is missing from the Docblock of compare_indexes</td>
</tr>
<tr>
<td>error</td>
<td>592</td>
<td>Argument $newindex is missing from the Docblock of compare_indexes</td>
</tr>
<tr>
<td>error</td>
<td>592</td>
<td>Argument $changed is missing from the Docblock of compare_indexes</td>
</tr>
<tr>
<td>error</td>
<td>592</td>
<td>Argument $removed is missing from the Docblock of compare_indexes</td>
</tr>
<tr>
<td>error</td>
<td>592</td>
<td>No summary for method compare_indexes()</td>
</tr>
<tr>
<td>error</td>
<td>611</td>
<td>Argument $invindex_filename is missing from the Docblock of load_invindex</td>
</tr>
<tr>
<td>error</td>
<td>611</td>
<td>No summary for method load_invindex()</td>
</tr>
<tr>
<td>error</td>
<td>616</td>
<td>Argument $invindex_filename is missing from the Docblock of measure_invindex_load_time</td>
</tr>
<tr>
<td>error</td>
<td>616</td>
<td>No summary for method measure_invindex_load_time()</td>
</tr>
<tr>
<td>error</td>
<td>627</td>
<td>Argument $invindex is missing from the Docblock of merge_into_invindex</td>
</tr>
<tr>
<td>error</td>
<td>627</td>
<td>Argument $pageid is missing from the Docblock of merge_into_invindex</td>
</tr>
<tr>
<td>error</td>
<td>627</td>
<td>Argument $index is missing from the Docblock of merge_into_invindex</td>
</tr>
<tr>
<td>error</td>
<td>627</td>
<td>Argument $removals is missing from the Docblock of merge_into_invindex</td>
</tr>
<tr>
<td>error</td>
<td>627</td>
<td>No summary for method merge_into_invindex()</td>
</tr>
<tr>
<td>error</td>
<td>676</td>
<td>Argument $filename is missing from the Docblock of save_invindex</td>
</tr>
<tr>
<td>error</td>
<td>676</td>
<td>Argument $invindex is missing from the Docblock of save_invindex</td>
</tr>
<tr>
<td>error</td>
<td>676</td>
<td>No summary for method save_invindex()</td>
</tr>
<tr>
<td>error</td>
<td>681</td>
<td>Argument $query is missing from the Docblock of query_invindex</td>
</tr>
<tr>
<td>error</td>
<td>681</td>
<td>Argument $invindex is missing from the Docblock of query_invindex</td>
</tr>
<tr>
<td>error</td>
<td>681</td>
<td>No summary for method query_invindex()</td>
</tr>
<tr>
<td>error</td>
<td>809</td>
<td>Argument $query is missing from the Docblock of extract_context</td>
</tr>
<tr>
<td>error</td>
<td>809</td>
<td>Argument $source is missing from the Docblock of extract_context</td>
</tr>
<tr>
<td>error</td>
<td>809</td>
<td>No summary for method extract_context()</td>
</tr>
<tr>
<td>error</td>
<td>893</td>
<td>Argument $query is missing from the Docblock of highlight_context</td>
</tr>
<tr>
<td>error</td>
<td>893</td>
<td>Argument $context is missing from the Docblock of highlight_context</td>
</tr>
<tr>
<td>error</td>
<td>893</td>
<td>No summary for method highlight_context()</td>
</tr>
<tr>
<td>error</td>
<td>437</td>
<td>No summary for property $stop_words</td>
</tr>
</tbody>
</table>
@ -1276,7 +1086,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

View file

@ -59,12 +59,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">82</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">7</span>
</a>
</li>
<li>
@ -92,7 +92,8 @@
<li><a href="#modules/page-edit.php"><i class="icon-file"></i> modules/page-edit.php</a></li>
<li><a href="#modules/feature-upload.php"><i class="icon-file"></i> modules/feature-upload.php</a></li>
<li><a href="#modules/feature-history.php"><i class="icon-file"></i> modules/feature-history.php</a></li>
</ul>
<li><a href="#modules/feature-search.php"><i class="icon-file"></i> modules/feature-search.php</a></li>
</ul>
</div>
<div class="span10 offset2">
@ -147,12 +148,12 @@
</tr>
<tr>
<td>TODO</td>
<td>177</td>
<td>183</td>
<td>Add a button to press that restores the content that you were working on before. </td>
</tr>
<tr>
<td>TODO</td>
<td>412</td>
<td>418</td>
<td>Add an option to record the user&#039;s IP here instead </td>
</tr>
</table>
@ -202,7 +203,29 @@
</table>
</div>
</div>
</div>
<div class="package-contents">
<a name="modules/feature-search.php" id="modules/feature-search.php"></a>
<h3>
<i class="icon-file"></i>
modules/feature-search.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>TODO</td>
<td>636</td>
<td>Remove this function and make everything streamable</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</section>
@ -242,7 +265,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on October 25th, 2017 at 21:45.
on November 20th, 2017 at 20:40.
</section>
</section>
</section>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,7 @@ define({
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2017-10-25T21:45:06.506Z",
"time": "2017-11-20T20:40:12.522Z",
"url": "http://apidocjs.com",
"version": "0.17.6"
}

View file

@ -8,7 +8,7 @@
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2017-10-25T21:45:06.506Z",
"time": "2017-11-20T20:40:12.522Z",
"url": "http://apidocjs.com",
"version": "0.17.6"
}

View file

@ -431,9 +431,14 @@ window.addEventListener("load", function(event) {
}
]);
/**
* Holds a collection to methods to manipulate various types of search index.
*/
class search
{
// Words that we should exclude from the inverted index
/**
* Words that we should exclude from the inverted index
*/
public static $stop_words = [
"a", "about", "above", "above", "across", "after", "afterwards", "again",
"against", "all", "almost", "alone", "along", "already", "also",
@ -479,6 +484,12 @@ class search
"your", "yours", "yourself", "yourselves"
];
/**
* Converts a source string into an index of search terms that can be
* merged into an inverted index.
* @param string $source The source string to index.
* @return array An index represents the specified string.
*/
public static function index($source)
{
$source = html_entity_decode($source, ENT_QUOTES);
@ -509,6 +520,11 @@ class search
return $index;
}
/**
* Converts a source string into a series of raw tokens.
* @param string $source The source string to process.
* @return array An array of raw tokens extracted from the specified source string.
*/
public static function tokenize($source)
{
$source = strtolower($source);
@ -516,11 +532,21 @@ class search
return preg_split("/((^\p{P}+)|(\p{P}*\s+\p{P}*)|(\p{P}+$))|\|/u", $source, -1, PREG_SPLIT_NO_EMPTY);
}
/**
* Removes (most) markdown markup from the specified string.
* Stripped strings are not suitable for indexing!
* @param string $source The source string to process.
* @return string The stripped string.
*/
public static function strip_markup($source)
{
return str_replace([ "[", "]", "\"", "*", "_", " - ", "`" ], "", $source);
}
/**
* Rebuilds the master inverted index and clears the page id index.
* @param boolean $output Whether to send progress information to the user's browser.
*/
public static function rebuild_invindex($output = true)
{
global $pageindex, $env, $paths, $settings;
@ -569,25 +595,23 @@ class search
self::save_invindex($paths->searchindex, $invindex);
}
/*
* @summary Sorts an index alphabetically. Will also sort an inverted index.
* This allows us to do a binary search instead of a regular
* sequential search.
/**
* Sorts an index alphabetically. Will also sort an inverted index.
* This allows us to do a binary search instead of a regular
* sequential search.
* @param array $index The index to sort.
*/
public static function sort_index(&$index)
{
ksort($index, SORT_NATURAL);
}
/*
* @summary Compares two *regular* indexes to find the differences between them.
*
* @param {array} $indexa - The old index.
* @param {array} $indexb - The new index.
* @param {array} $changed - An array to be filled with the nterms of all
* the changed entries.
* @param {array} $removed - An array to be filled with the nterms of all
* the removed entries.
/**
* Compares two *regular* indexes to find the differences between them.
* @param array $oldindex The old index.
* @param array $newindex The new index.
* @param array $changed An array to be filled with the nterms of all the changed entries.
* @param array $removed An array to be filled with the nterms of all the removed entries.
*/
public static function compare_indexes($oldindex, $newindex, &$changed, &$removed)
{
@ -604,15 +628,19 @@ class search
}
}
/*
* @summary Reads in and parses an inverted index.
/**
* Reads in and parses an inverted index.
* @param string $invindex_filename The path tp the inverted index to parse.
* @todo Remove this function and make everything streamable
*/
// Todo remove this function and make everything streamable
public static function load_invindex($invindex_filename) {
$invindex = json_decode(file_get_contents($invindex_filename), true);
return $invindex;
}
/**
* Reads in and parses an inverted index, measuring the time it takes to do so.
* @param string $invindex_filename The path to the file inverted index to parse.
*/
public static function measure_invindex_load_time($invindex_filename) {
global $env;
@ -621,8 +649,12 @@ class search
$env->perfdata->searchindex_decode_time = round((microtime(true) - $searchindex_decode_start)*1000, 3);
}
/*
* @summary Merge an index into an inverted index.
/**
* Merge an index into an inverted index.
* @param array $invindex The inverted index to merge into.
* @param int $pageid The id of the page to assign to the index that's being merged.
* @param array $index The regular index to merge.
* @param array $removals An array of index entries to remove from the inverted index. Useful for applying changes to an inverted index instead of deleting and remerging an entire page's index.
*/
public static function merge_into_invindex(&$invindex, $pageid, &$index, &$removals = [])
{
@ -673,11 +705,22 @@ class search
}
}
/**
* Saves the given inverted index back to disk.
* @param string $filename The path to the file to save the inverted index to.
* @param array $invindex The inverted index to save.
*/
public static function save_invindex($filename, &$invindex)
{
file_put_contents($filename, json_encode($invindex));
}
/**
* Searches the given inverted index for the specified search terms.
* @param string $query The search query.
* @param array $invindex The inverted index to search.
* @return array An array of matching pages.
*/
public static function query_invindex($query, &$invindex)
{
global $settings, $pageindex;
@ -779,7 +822,7 @@ class search
// Sort the new list of clump distances
sort($clumpDistances);
// Calcualate a measureof how clumped the offsets are
// Calcualate a measure of how clumped the offsets are
$tightClumpLimit = floor((count($clumpDistances) - 1) / 0.25);
$tightClumpsMeasure = $clumpDistances[$tightClumpLimit] - $clumpDistances[0];
$clumpsRange = $clumpDistances[count($clumpDistances) - 1] - $clumpDistances[0];
@ -806,6 +849,13 @@ class search
return $matching_pages;
}
/**
* Extracts a context string (in HTML) given a search query that could be displayed
* in a list of search results.
* @param string $query The search queary to generate the context for.
* @param string $source The page source to extract the context from.
* @return string The generated context string.
*/
public static function extract_context($query, $source)
{
global $settings;
@ -890,6 +940,12 @@ class search
return implode(" ... ", $contexts);
}
/**
* Highlights the keywords of a context string.
* @param string $query The query to use when highlighting.
* @param string $context The context string to highlight.
* @return string The highlighted (HTML) string.
*/
public static function highlight_context($query, $context)
{
$qterms = self::tokenize($query);