Forráskód Böngészése

Add auto-generated phpDocumentor docs

Daniel Rudolf 9 éve
szülő
commit
9a7608cab9
73 módosított fájl, 14721 hozzáadás és 0 törlés
  1. 1 0
      phpDocumentor/.gitignore
  2. 5 0
      phpDocumentor/.htaccess
  3. 898 0
      phpDocumentor/classes/AbstractPicoPlugin.html
  4. 1649 0
      phpDocumentor/classes/DummyPlugin.html
  5. 2352 0
      phpDocumentor/classes/Pico.html
  6. 602 0
      phpDocumentor/classes/PicoPluginInterface.html
  7. 731 0
      phpDocumentor/css/bootstrap-combined.no-icons.min.css
  8. 403 0
      phpDocumentor/css/font-awesome.min.css
  9. 65 0
      phpDocumentor/css/jquery.iviewer.css
  10. 3 0
      phpDocumentor/css/phpdocumentor-clean-icons/Read Me.txt
  11. 17 0
      phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg
  12. BIN
      phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot
  13. 17 0
      phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg
  14. BIN
      phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf
  15. BIN
      phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff
  16. 30 0
      phpDocumentor/css/phpdocumentor-clean-icons/lte-ie7.js
  17. 48 0
      phpDocumentor/css/phpdocumentor-clean-icons/style.css
  18. 204 0
      phpDocumentor/css/prism.css
  19. 429 0
      phpDocumentor/css/template.css
  20. 249 0
      phpDocumentor/files/config.config.html
  21. 6 0
      phpDocumentor/files/config/config.php.txt
  22. 249 0
      phpDocumentor/files/index.html
  23. 18 0
      phpDocumentor/files/index.php.txt
  24. 256 0
      phpDocumentor/files/lib.AbstractPicoPlugin.html
  25. 256 0
      phpDocumentor/files/lib.Pico.html
  26. 256 0
      phpDocumentor/files/lib.PicoPluginInterface.html
  27. 254 0
      phpDocumentor/files/lib/AbstractPicoPlugin.php.txt
  28. 1174 0
      phpDocumentor/files/lib/Pico.php.txt
  29. 98 0
      phpDocumentor/files/lib/PicoPluginInterface.php.txt
  30. 256 0
      phpDocumentor/files/plugins.DummyPlugin.html
  31. 288 0
      phpDocumentor/files/plugins/DummyPlugin.php.txt
  32. BIN
      phpDocumentor/font/FontAwesome.otf
  33. BIN
      phpDocumentor/font/fontawesome-webfont.eot
  34. 196 0
      phpDocumentor/font/fontawesome-webfont.svg
  35. BIN
      phpDocumentor/font/fontawesome-webfont.ttf
  36. BIN
      phpDocumentor/font/fontawesome-webfont.woff
  37. 163 0
      phpDocumentor/graphs/class.html
  38. BIN
      phpDocumentor/images/apple-touch-icon-114x114.png
  39. BIN
      phpDocumentor/images/apple-touch-icon-72x72.png
  40. BIN
      phpDocumentor/images/apple-touch-icon.png
  41. 116 0
      phpDocumentor/images/custom-icons.svg
  42. BIN
      phpDocumentor/images/favicon.ico
  43. BIN
      phpDocumentor/images/hierarchy-item.png
  44. BIN
      phpDocumentor/images/icon-class-13x13.png
  45. 77 0
      phpDocumentor/images/icon-class.svg
  46. BIN
      phpDocumentor/images/icon-interface-13x13.png
  47. 73 0
      phpDocumentor/images/icon-interface.svg
  48. BIN
      phpDocumentor/images/icon-trait-13x13.png
  49. 73 0
      phpDocumentor/images/icon-trait.svg
  50. BIN
      phpDocumentor/images/iviewer/grab.cur
  51. BIN
      phpDocumentor/images/iviewer/hand.cur
  52. BIN
      phpDocumentor/images/iviewer/iviewer.rotate_left.png
  53. BIN
      phpDocumentor/images/iviewer/iviewer.rotate_right.png
  54. BIN
      phpDocumentor/images/iviewer/iviewer.zoom_fit.png
  55. BIN
      phpDocumentor/images/iviewer/iviewer.zoom_in.png
  56. BIN
      phpDocumentor/images/iviewer/iviewer.zoom_out.png
  57. BIN
      phpDocumentor/images/iviewer/iviewer.zoom_zero.png
  58. 206 0
      phpDocumentor/index.html
  59. 6 0
      phpDocumentor/js/bootstrap.min.js
  60. 8 0
      phpDocumentor/js/html5.js
  61. 1 0
      phpDocumentor/js/jquery-1.11.0.min.js
  62. 602 0
      phpDocumentor/js/jquery.dotdotdot-1.5.9.js
  63. 14 0
      phpDocumentor/js/jquery.dotdotdot-1.5.9.min.js
  64. 1169 0
      phpDocumentor/js/jquery.iviewer.js
  65. 47 0
      phpDocumentor/js/jquery.iviewer.min.js
  66. 201 0
      phpDocumentor/js/jquery.mousewheel.js
  67. 32 0
      phpDocumentor/js/jquery.smooth-scroll.js
  68. 4 0
      phpDocumentor/js/prism.min.js
  69. 5 0
      phpDocumentor/js/ui/1.10.4/jquery-ui.min.js
  70. 206 0
      phpDocumentor/namespaces/default.html
  71. 153 0
      phpDocumentor/reports/deprecated.html
  72. 381 0
      phpDocumentor/reports/errors.html
  73. 174 0
      phpDocumentor/reports/markers.html

+ 1 - 0
phpDocumentor/.gitignore

@@ -0,0 +1 @@
+phpdoc-cache-*

+ 5 - 0
phpDocumentor/.htaccess

@@ -0,0 +1,5 @@
+# Fixes a vulnerability in CentOS: http://stackoverflow.com/questions/20533279/prevent-php-from-parsing-non-php-files-such-as-somefile-php-txt
+<FilesMatch \.php\.txt$>
+    RemoveHandler .php
+    ForceType text/plain
+</FilesMatch>

+ 898 - 0
phpDocumentor/classes/AbstractPicoPlugin.html

@@ -0,0 +1,898 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+    <script type="text/javascript">
+    function loadExternalCodeSnippets() {
+        Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+            var src = pre.getAttribute('data-src');
+            var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+            var language = 'php';
+
+            var code = document.createElement('code');
+            code.className = 'language-' + language;
+
+            pre.textContent = '';
+
+            code.textContent = 'Loading…';
+
+            pre.appendChild(code);
+
+            var xhr = new XMLHttpRequest();
+
+            xhr.open('GET', src, true);
+
+            xhr.onreadystatechange = function () {
+                if (xhr.readyState == 4) {
+
+                    if (xhr.status < 400 && xhr.responseText) {
+                        code.textContent = xhr.responseText;
+
+                        Prism.highlightElement(code);
+                    }
+                    else if (xhr.status >= 400) {
+                        code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                    }
+                    else {
+                        code.textContent = '✖ Error: File does not exist or is empty';
+                    }
+                }
+            };
+
+            xhr.send(null);
+        });
+    }
+
+    $(document).ready(function(){
+        loadExternalCodeSnippets();
+    });
+    $('#source-view').on('shown', function () {
+        loadExternalCodeSnippets();
+    })
+</script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-63882034"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-63882034" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content class">
+                    <nav>
+                                                <a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
+                                            </nav>
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+
+                    <h1><small>\</small>AbstractPicoPlugin</h1>
+                    <p><em>Abstract class to extend from when implementing a Pico plugin</em></p>
+                    
+                    
+                                        
+                    <section id="summary">
+                        <h2>Summary</h2>
+                        <section class="row-fluid heading">
+                            <section class="span4">
+                                <a href="#methods">Methods</a>
+                            </section>
+                            <section class="span4">
+                                <a href="#properties">Properties</a>
+                            </section>
+                            <section class="span4">
+                                <a href="#constants">Constants</a>
+                            </section>
+                        </section>
+                        <section class="row-fluid public">
+                            <section class="span4">
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method___construct" class="">__construct()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_handleEvent" class="">handleEvent()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_setEnabled" class="">setEnabled()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_isEnabled" class="">isEnabled()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_isStatusChanged" class="">isStatusChanged()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_getPico" class="">getPico()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method___call" class="">__call()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_getDependencies" class="">getDependencies()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_getDependants" class="">getDependants()</a><br />
+                                                            </section>
+                            <section class="span4">
+                                                                    <em>No public properties found</em>
+                                                            </section>
+                            <section class="span4">
+                                                                    <em>No constants found</em>
+                                                            </section>
+                        </section>
+                        <section class="row-fluid protected">
+                            <section class="span4">
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_checkDependencies" class="">checkDependencies()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_checkDependants" class="">checkDependants()</a><br />
+                                                            </section>
+                            <section class="span4">
+                                                                    <a href="../classes/AbstractPicoPlugin.html#property_enabled" class="">$enabled</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#property_statusChanged" class="">$statusChanged</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#property_dependsOn" class="">$dependsOn</a><br />
+                                                            </section>
+                            <section class="span4">
+                                <em>N/A</em>
+                            </section>
+                        </section>
+                        <section class="row-fluid private">
+                            <section class="span4">
+                                                                    <em>No private methods found</em>
+                                                            </section>
+                            <section class="span4">
+                                                                    <a href="../classes/AbstractPicoPlugin.html#property_pico" class="">$pico</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#property_dependants" class="">$dependants</a><br />
+                                                            </section>
+                            <section class="span4">
+                                <em>N/A</em>
+                            </section>
+                        </section>
+                    </section>
+                </div>
+                <aside class="span4 detailsbar">
+                                            <span class="label label-info">abstract</span>
+                                        
+                    
+                    <dl>
+                        <dt>File</dt>
+                            <dd><a href="../files/lib.AbstractPicoPlugin.html"><div class="path-wrapper">lib/AbstractPicoPlugin.php</div></a></dd>
+                                                <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">Default</div></dd>
+                                                <dt>Class hierarchy</dt>
+                            <dd class="hierarchy">
+                                                                                                                                                                    <div class="namespace-wrapper">\AbstractPicoPlugin</div>
+                            </dd>
+
+                                                                            <dt>Implements</dt>
+                                                        <dd><a href="../classes/PicoPluginInterface.html"><div class="namespace-wrapper">\PicoPluginInterface</div></a></dd>
+                        
+                        
+                        
+                                                                            <dt>See also</dt>
+                                                                                        <dd><a href="../classes/PicoPluginInterface.html"><span class="namespace-wrapper">\PicoPluginInterface</span></a></dd>
+                                                                                                                                            <dd><a href="http://picocms.org"><span class="namespace-wrapper">http://picocms.org</span></a></dd>
+                                                    
+                                                                        </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                            <tr>
+                            <th>
+                                author
+                            </th>
+                            <td>
+                                                                    <p>Daniel Rudolf</p>
+                                                            </td>
+                        </tr>
+                                            <tr>
+                            <th>
+                                license
+                            </th>
+                            <td>
+                                                                    <p><a href="http://opensource.org/licenses/MIT">http://opensource.org/licenses/MIT</a></p>
+                                                            </td>
+                        </tr>
+                                            <tr>
+                            <th>
+                                version
+                            </th>
+                            <td>
+                                                                    
+                                                            </td>
+                        </tr>
+                                        </table>
+                </aside>
+            </div>
+
+                        
+                                    <a id="properties" name="properties"></a>
+            <div class="row-fluid">
+                <div class="span8 content class">
+                    <h2>Properties</h2>
+                </div>
+                <aside class="span4 detailsbar"></aside>
+            </div>
+
+                                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_enabled" name="property_enabled" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$enabled</h3>
+                <pre class="signature">$enabled : boolean</pre>
+                <p><em>Boolean indicating if this plugin is enabled (true) or disabled (false)</em></p>
+                
+
+                                <h4>Type</h4>
+                boolean
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_isEnabled"><span class="namespace-wrapper">\PicoPluginInterface::isEnabled()</span></a></dd>
+                                            <dd><a href="../classes/PicoPluginInterface.html#method_setEnabled"><span class="namespace-wrapper">\PicoPluginInterface::setEnabled()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_statusChanged" name="property_statusChanged" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$statusChanged</h3>
+                <pre class="signature">$statusChanged : boolean</pre>
+                <p><em>Boolean indicating if this plugin was ever enabled/disabled manually</em></p>
+                
+
+                                <h4>Type</h4>
+                boolean
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_isStatusChanged"><span class="namespace-wrapper">\PicoPluginInterface::isStatusChanged()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_dependsOn" name="property_dependsOn" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$dependsOn</h3>
+                <pre class="signature">$dependsOn : array&lt;mixed,string&gt;</pre>
+                <p><em>List of plugins which this plugin depends on</em></p>
+                
+
+                                <h4>Type</h4>
+                array&lt;mixed,string&gt;
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getDependencies"><span class="namespace-wrapper">\PicoPluginInterface::getDependencies()</span></a></dd>
+                                            <dd><a href="../classes/AbstractPicoPlugin.html#method_checkDependencies"><span class="namespace-wrapper">\AbstractPicoPlugin::checkDependencies()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_pico" name="property_pico" class="anchor"></a>
+            <article class="property">
+                <h3 class="private ">$pico</h3>
+                <pre class="signature">$pico : \Pico</pre>
+                <p><em>Current instance of Pico</em></p>
+                
+
+                                <h4>Type</h4>
+                <a href="../classes/Pico.html">\Pico</a>
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method___construct"><span class="namespace-wrapper">\PicoPluginInterface::__construct()</span></a></dd>
+                                            <dd><a href="../classes/PicoPluginInterface.html#method_getPico"><span class="namespace-wrapper">\PicoPluginInterface::getPico()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_dependants" name="property_dependants" class="anchor"></a>
+            <article class="property">
+                <h3 class="private ">$dependants</h3>
+                <pre class="signature">$dependants : array&lt;mixed,object&gt;</pre>
+                <p><em>List of plugin which depend on this plugin</em></p>
+                
+
+                                <h4>Type</h4>
+                array&lt;mixed,object&gt;
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getDependants"><span class="namespace-wrapper">\PicoPluginInterface::getDependants()</span></a></dd>
+                                            <dd><a href="../classes/AbstractPicoPlugin.html#method_checkDependants"><span class="namespace-wrapper">\AbstractPicoPlugin::checkDependants()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                            
+                                    <a id="methods" name="methods"></a>
+            <div class="row-fluid">
+                <div class="span8 content class"><h2>Methods</h2></div>
+                <aside class="span4 detailsbar"></aside>
+            </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method___construct" name="method___construct" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">__construct()</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;">__construct(\Pico  <span class="argument">$pico</span>) </pre>
+                <p><em>Constructs a new instance of a Pico plugin</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td><a href="../classes/Pico.html">\Pico</a></td>
+                                <td>$pico </td>
+                                <td><p>current instance of Pico</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method___construct"><span class="namespace-wrapper">\PicoPluginInterface::__construct()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_handleEvent" name="method_handleEvent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">handleEvent()</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;">handleEvent(string  <span class="argument">$eventName</span>, array  <span class="argument">$params</span>) : void</pre>
+                <p><em>Handles a event that was triggered by Pico</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$eventName </td>
+                                <td><p>name of the triggered event</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>array</td>
+                                <td>$params </td>
+                                <td><p>passed parameters</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_handleEvent"><span class="namespace-wrapper">\PicoPluginInterface::handleEvent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_setEnabled" name="method_setEnabled" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">setEnabled()</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;">setEnabled(boolean  <span class="argument">$enabled</span>, boolean  <span class="argument">$recursive = true</span>, boolean  <span class="argument">$auto = false</span>) : void</pre>
+                <p><em>Enables or disables this plugin</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$enabled </td>
+                                <td><p>enable (true) or disable (false) this plugin</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$recursive </td>
+                                <td><p>when true, enable or disable recursively
+In other words, if you enable a plugin, all required plugins are
+enabled, too. When disabling a plugin, all depending plugins are
+disabled likewise. Recursive operations are only performed as long
+as a plugin wasn't enabled/disabled manually. This parameter is
+optional and defaults to true.</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$auto </td>
+                                <td><p>enable or disable to fulfill a dependency
+This parameter is optional and defaults to false.</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_setEnabled"><span class="namespace-wrapper">\PicoPluginInterface::setEnabled()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_isEnabled" name="method_isEnabled" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">isEnabled()</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;">isEnabled() : boolean</pre>
+                <p><em>Returns true if this plugin is enabled, false otherwise</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    boolean
+                                            &mdash; <p>plugin is enabled (true) or disabled (false)</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_isEnabled"><span class="namespace-wrapper">\PicoPluginInterface::isEnabled()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_isStatusChanged" name="method_isStatusChanged" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">isStatusChanged()</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;">isStatusChanged() : boolean</pre>
+                <p><em>Returns true if the plugin was ever enabled/disabled manually</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    boolean
+                                            &mdash; <p>plugin is in its default state (true), false otherwise</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_isStatusChanged"><span class="namespace-wrapper">\PicoPluginInterface::isStatusChanged()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPico" name="method_getPico" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPico()</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;">getPico() : \Pico</pre>
+                <p><em>Returns the plugins instance of Pico</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    <a href="../classes/Pico.html">\Pico</a>
+                                            &mdash; <p>the plugins instance of Pico</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getPico"><span class="namespace-wrapper">\PicoPluginInterface::getPico()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method___call" name="method___call" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">__call()</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;">__call(string  <span class="argument">$methodName</span>, array  <span class="argument">$params</span>) : mixed</pre>
+                <p><em>Passes all not satisfiable method calls to {@link Pico}</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$methodName </td>
+                                <td><p>name of the method to call</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>array</td>
+                                <td>$params </td>
+                                <td><p>parameters to pass</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    mixed
+                                            &mdash; <p>return value of the called method</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getDependencies" name="method_getDependencies" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getDependencies()</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;">getDependencies() : array&lt;mixed,string&gt;</pre>
+                <p><em>Returns a list of names of plugins required by this plugin</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,string&gt;
+                                            &mdash; <p>required plugins</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getDependencies"><span class="namespace-wrapper">\PicoPluginInterface::getDependencies()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getDependants" name="method_getDependants" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getDependants()</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;">getDependants() : array&lt;mixed,object&gt;</pre>
+                <p><em>Returns a list of plugins which depend on this plugin</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,object&gt;
+                                            &mdash; <p>dependant plugins</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getDependants"><span class="namespace-wrapper">\PicoPluginInterface::getDependants()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_checkDependencies" name="method_checkDependencies" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">checkDependencies()</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;">checkDependencies(boolean  <span class="argument">$recursive</span>) : void</pre>
+                <p><em>Enables all plugins which this plugin depends on</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$recursive </td>
+                                <td><p>enable required plugins automatically</p></td>
+                            </tr>
+                                            </table>
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown when a dependency fails</p></dd>
+                                                                    </dl>
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_checkDependants" name="method_checkDependants" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">checkDependants()</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;">checkDependants(boolean  <span class="argument">$recursive</span>) : void</pre>
+                <p><em>Disables all plugins which depend on this plugin</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$recursive </td>
+                                <td><p>disabled dependant plugins automatically</p></td>
+                            </tr>
+                                            </table>
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown when a dependency fails</p></dd>
+                                                                    </dl>
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                    </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label">AbstractPicoPlugin.php</h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/lib/AbstractPicoPlugin.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 1649 - 0
phpDocumentor/classes/DummyPlugin.html

@@ -0,0 +1,1649 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+    <script type="text/javascript">
+    function loadExternalCodeSnippets() {
+        Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+            var src = pre.getAttribute('data-src');
+            var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+            var language = 'php';
+
+            var code = document.createElement('code');
+            code.className = 'language-' + language;
+
+            pre.textContent = '';
+
+            code.textContent = 'Loading…';
+
+            pre.appendChild(code);
+
+            var xhr = new XMLHttpRequest();
+
+            xhr.open('GET', src, true);
+
+            xhr.onreadystatechange = function () {
+                if (xhr.readyState == 4) {
+
+                    if (xhr.status < 400 && xhr.responseText) {
+                        code.textContent = xhr.responseText;
+
+                        Prism.highlightElement(code);
+                    }
+                    else if (xhr.status >= 400) {
+                        code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                    }
+                    else {
+                        code.textContent = '✖ Error: File does not exist or is empty';
+                    }
+                }
+            };
+
+            xhr.send(null);
+        });
+    }
+
+    $(document).ready(function(){
+        loadExternalCodeSnippets();
+    });
+    $('#source-view').on('shown', function () {
+        loadExternalCodeSnippets();
+    })
+</script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-208930814"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-208930814" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content class">
+                    <nav>
+                                                <a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
+                                            </nav>
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+
+                    <h1><small>\</small>DummyPlugin</h1>
+                    <p><em>Pico dummy plugin - a template for plugins</em></p>
+                    <p>You're a plugin developer? This template may be helpful :-)
+Simply remove the events you don't need and add your own logic.</p>
+                    
+                                        
+                    <section id="summary">
+                        <h2>Summary</h2>
+                        <section class="row-fluid heading">
+                            <section class="span4">
+                                <a href="#methods">Methods</a>
+                            </section>
+                            <section class="span4">
+                                <a href="#properties">Properties</a>
+                            </section>
+                            <section class="span4">
+                                <a href="#constants">Constants</a>
+                            </section>
+                        </section>
+                        <section class="row-fluid public">
+                            <section class="span4">
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method___construct" class="">__construct()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_handleEvent" class="">handleEvent()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_setEnabled" class="">setEnabled()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_isEnabled" class="">isEnabled()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_isStatusChanged" class="">isStatusChanged()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_getPico" class="">getPico()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method___call" class="">__call()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_getDependencies" class="">getDependencies()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_getDependants" class="">getDependants()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onPluginsLoaded" class="">onPluginsLoaded()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onConfigLoaded" class="">onConfigLoaded()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onRequestUrl" class="">onRequestUrl()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onRequestFile" class="">onRequestFile()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onContentLoading" class="">onContentLoading()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onContentLoaded" class="">onContentLoaded()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_on404ContentLoading" class="">on404ContentLoading()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_on404ContentLoaded" class="">on404ContentLoaded()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onMetaHeaders" class="">onMetaHeaders()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onMetaParsing" class="">onMetaParsing()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onMetaParsed" class="">onMetaParsed()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onContentParsing" class="">onContentParsing()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_prepareFileContent" class="">prepareFileContent()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onContentParsed" class="">onContentParsed()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onSinglePageLoaded" class="">onSinglePageLoaded()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onPagesLoaded" class="">onPagesLoaded()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onTwigRegistration" class="">onTwigRegistration()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onPageRendering" class="">onPageRendering()</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#method_onPageRendered" class="">onPageRendered()</a><br />
+                                                            </section>
+                            <section class="span4">
+                                                                    <em>No public properties found</em>
+                                                            </section>
+                            <section class="span4">
+                                                                    <em>No constants found</em>
+                                                            </section>
+                        </section>
+                        <section class="row-fluid protected">
+                            <section class="span4">
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_checkDependencies" class="">checkDependencies()</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#method_checkDependants" class="">checkDependants()</a><br />
+                                                            </section>
+                            <section class="span4">
+                                                                    <a href="../classes/DummyPlugin.html#property_enabled" class="">$enabled</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#property_statusChanged" class="">$statusChanged</a><br />
+                                                                    <a href="../classes/DummyPlugin.html#property_dependsOn" class="">$dependsOn</a><br />
+                                                            </section>
+                            <section class="span4">
+                                <em>N/A</em>
+                            </section>
+                        </section>
+                        <section class="row-fluid private">
+                            <section class="span4">
+                                                                    <em>No private methods found</em>
+                                                            </section>
+                            <section class="span4">
+                                                                    <a href="../classes/AbstractPicoPlugin.html#property_pico" class="">$pico</a><br />
+                                                                    <a href="../classes/AbstractPicoPlugin.html#property_dependants" class="">$dependants</a><br />
+                                                            </section>
+                            <section class="span4">
+                                <em>N/A</em>
+                            </section>
+                        </section>
+                    </section>
+                </div>
+                <aside class="span4 detailsbar">
+                                        
+                    
+                    <dl>
+                        <dt>File</dt>
+                            <dd><a href="../files/plugins.DummyPlugin.html"><div class="path-wrapper">plugins/DummyPlugin.php</div></a></dd>
+                                                <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">Default</div></dd>
+                                                <dt>Class hierarchy</dt>
+                            <dd class="hierarchy">
+                                                                                                                                                                                                                                                                                                
+                                        <div class="namespace-wrapper"><a href="../classes/AbstractPicoPlugin.html">\AbstractPicoPlugin</a></div>
+                                                                                                    <div class="namespace-wrapper">\DummyPlugin</div>
+                            </dd>
+
+                        
+                        
+                        
+                                                                            <dt>See also</dt>
+                                                                                        <dd><a href="http://picocms.org"><span class="namespace-wrapper">http://picocms.org</span></a></dd>
+                                                    
+                                                                        </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                            <tr>
+                            <th>
+                                author
+                            </th>
+                            <td>
+                                                                    <p>Daniel Rudolf</p>
+                                                            </td>
+                        </tr>
+                                            <tr>
+                            <th>
+                                license
+                            </th>
+                            <td>
+                                                                    <p><a href="http://opensource.org/licenses/MIT">http://opensource.org/licenses/MIT</a></p>
+                                                            </td>
+                        </tr>
+                                            <tr>
+                            <th>
+                                version
+                            </th>
+                            <td>
+                                                                    
+                                                            </td>
+                        </tr>
+                                        </table>
+                </aside>
+            </div>
+
+                        
+                                    <a id="properties" name="properties"></a>
+            <div class="row-fluid">
+                <div class="span8 content class">
+                    <h2>Properties</h2>
+                </div>
+                <aside class="span4 detailsbar"></aside>
+            </div>
+
+                                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_enabled" name="property_enabled" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$enabled</h3>
+                <pre class="signature">$enabled : boolean</pre>
+                <p><em>This plugin is enabled by default?</em></p>
+                
+
+                                <h4>Type</h4>
+                boolean
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/AbstractPicoPlugin.html#property_enabled"><span class="namespace-wrapper">\AbstractPicoPlugin::enabled</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_statusChanged" name="property_statusChanged" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$statusChanged</h3>
+                <pre class="signature">$statusChanged : boolean</pre>
+                <p><em>Boolean indicating if this plugin was ever enabled/disabled manually</em></p>
+                
+
+                                <h4>Type</h4>
+                boolean
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_isStatusChanged"><span class="namespace-wrapper">\PicoPluginInterface::isStatusChanged()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_dependsOn" name="property_dependsOn" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$dependsOn</h3>
+                <pre class="signature">$dependsOn : array&lt;mixed,string&gt;</pre>
+                <p><em>This plugin depends on {@link .</em></p>
+                <p>..}</p>
+
+                                <h4>Type</h4>
+                array&lt;mixed,string&gt;
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/AbstractPicoPlugin.html#property_dependsOn"><span class="namespace-wrapper">\AbstractPicoPlugin::dependsOn</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_pico" name="property_pico" class="anchor"></a>
+            <article class="property">
+                <h3 class="private ">$pico</h3>
+                <pre class="signature">$pico : \Pico</pre>
+                <p><em>Current instance of Pico</em></p>
+                
+
+                                <h4>Type</h4>
+                <a href="../classes/Pico.html">\Pico</a>
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method___construct"><span class="namespace-wrapper">\PicoPluginInterface::__construct()</span></a></dd>
+                                            <dd><a href="../classes/PicoPluginInterface.html#method_getPico"><span class="namespace-wrapper">\PicoPluginInterface::getPico()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_dependants" name="property_dependants" class="anchor"></a>
+            <article class="property">
+                <h3 class="private ">$dependants</h3>
+                <pre class="signature">$dependants : array&lt;mixed,object&gt;</pre>
+                <p><em>List of plugin which depend on this plugin</em></p>
+                
+
+                                <h4>Type</h4>
+                array&lt;mixed,object&gt;
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getDependants"><span class="namespace-wrapper">\PicoPluginInterface::getDependants()</span></a></dd>
+                                            <dd><a href="../classes/AbstractPicoPlugin.html#method_checkDependants"><span class="namespace-wrapper">\AbstractPicoPlugin::checkDependants()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                            
+                                    <a id="methods" name="methods"></a>
+            <div class="row-fluid">
+                <div class="span8 content class"><h2>Methods</h2></div>
+                <aside class="span4 detailsbar"></aside>
+            </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method___construct" name="method___construct" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">__construct()</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;">__construct(\Pico  <span class="argument">$pico</span>) </pre>
+                <p><em>Constructs a new instance of a Pico plugin</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td><a href="../classes/Pico.html">\Pico</a></td>
+                                <td>$pico </td>
+                                <td><p>current instance of Pico</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method___construct"><span class="namespace-wrapper">\PicoPluginInterface::__construct()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_handleEvent" name="method_handleEvent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">handleEvent()</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;">handleEvent(string  <span class="argument">$eventName</span>, array  <span class="argument">$params</span>) : void</pre>
+                <p><em>Handles a event that was triggered by Pico</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$eventName </td>
+                                <td><p>name of the triggered event</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>array</td>
+                                <td>$params </td>
+                                <td><p>passed parameters</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_handleEvent"><span class="namespace-wrapper">\PicoPluginInterface::handleEvent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_setEnabled" name="method_setEnabled" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">setEnabled()</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;">setEnabled(boolean  <span class="argument">$enabled</span>, boolean  <span class="argument">$recursive = true</span>, boolean  <span class="argument">$auto = false</span>) : void</pre>
+                <p><em>Enables or disables this plugin</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$enabled </td>
+                                <td><p>enable (true) or disable (false) this plugin</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$recursive </td>
+                                <td><p>when true, enable or disable recursively
+In other words, if you enable a plugin, all required plugins are
+enabled, too. When disabling a plugin, all depending plugins are
+disabled likewise. Recursive operations are only performed as long
+as a plugin wasn't enabled/disabled manually. This parameter is
+optional and defaults to true.</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$auto </td>
+                                <td><p>enable or disable to fulfill a dependency
+This parameter is optional and defaults to false.</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_setEnabled"><span class="namespace-wrapper">\PicoPluginInterface::setEnabled()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_isEnabled" name="method_isEnabled" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">isEnabled()</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;">isEnabled() : boolean</pre>
+                <p><em>Returns true if this plugin is enabled, false otherwise</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    boolean
+                                            &mdash; <p>plugin is enabled (true) or disabled (false)</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_isEnabled"><span class="namespace-wrapper">\PicoPluginInterface::isEnabled()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_isStatusChanged" name="method_isStatusChanged" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">isStatusChanged()</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;">isStatusChanged() : boolean</pre>
+                <p><em>Returns true if the plugin was ever enabled/disabled manually</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    boolean
+                                            &mdash; <p>plugin is in its default state (true), false otherwise</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_isStatusChanged"><span class="namespace-wrapper">\PicoPluginInterface::isStatusChanged()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPico" name="method_getPico" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPico()</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;">getPico() : \Pico</pre>
+                <p><em>Returns the plugins instance of Pico</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    <a href="../classes/Pico.html">\Pico</a>
+                                            &mdash; <p>the plugins instance of Pico</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getPico"><span class="namespace-wrapper">\PicoPluginInterface::getPico()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method___call" name="method___call" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">__call()</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;">__call(string  <span class="argument">$methodName</span>, array  <span class="argument">$params</span>) : mixed</pre>
+                <p><em>Passes all not satisfiable method calls to {@link Pico}</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$methodName </td>
+                                <td><p>name of the method to call</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>array</td>
+                                <td>$params </td>
+                                <td><p>parameters to pass</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    mixed
+                                            &mdash; <p>return value of the called method</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getDependencies" name="method_getDependencies" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getDependencies()</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;">getDependencies() : array&lt;mixed,string&gt;</pre>
+                <p><em>Returns a list of names of plugins required by this plugin</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,string&gt;
+                                            &mdash; <p>required plugins</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getDependencies"><span class="namespace-wrapper">\PicoPluginInterface::getDependencies()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getDependants" name="method_getDependants" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getDependants()</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;">getDependants() : array&lt;mixed,object&gt;</pre>
+                <p><em>Returns a list of plugins which depend on this plugin</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,object&gt;
+                                            &mdash; <p>dependant plugins</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/PicoPluginInterface.html#method_getDependants"><span class="namespace-wrapper">\PicoPluginInterface::getDependants()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onPluginsLoaded" name="method_onPluginsLoaded" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onPluginsLoaded()</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;">onPluginsLoaded(  <span class="argument">$plugins</span>) : void</pre>
+                <p><em>Triggered after Pico has loaded all available plugins</em></p>
+                <p>This event is triggered nevertheless the plugin is enabled or not.
+It is NOT guaranteed that plugin dependencies are fulfilled!</p>
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$plugins </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getPlugin"><span class="namespace-wrapper">\Pico::getPlugin()</span></a></dd>
+                                            <dd><a href="../classes/Pico.html#method_getPlugins"><span class="namespace-wrapper">\Pico::getPlugins()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onConfigLoaded" name="method_onConfigLoaded" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onConfigLoaded()</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;">onConfigLoaded(  <span class="argument">$config</span>) : void</pre>
+                <p><em>Triggered after Pico has read its configuration</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$config </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getConfig"><span class="namespace-wrapper">\Pico::getConfig()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onRequestUrl" name="method_onRequestUrl" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onRequestUrl()</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;">onRequestUrl(  <span class="argument">$url</span>) : void</pre>
+                <p><em>Triggered after Pico has evaluated the request URL</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$url </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getBaseUrl"><span class="namespace-wrapper">\Pico::getBaseUrl()</span></a></dd>
+                                            <dd><a href="../classes/Pico.html#method_getRequestUrl"><span class="namespace-wrapper">\Pico::getRequestUrl()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onRequestFile" name="method_onRequestFile" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onRequestFile()</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;">onRequestFile(  <span class="argument">$file</span>) : void</pre>
+                <p><em>Triggered after Pico has discovered the content file to serve</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$file </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getRequestFile"><span class="namespace-wrapper">\Pico::getRequestFile()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onContentLoading" name="method_onContentLoading" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onContentLoading()</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;">onContentLoading(  <span class="argument">$file</span>) : void</pre>
+                <p><em>Triggered before Pico reads the contents of the file to serve</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$file </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_loadFileContent"><span class="namespace-wrapper">\Pico::loadFileContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onContentLoaded" name="method_onContentLoaded" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onContentLoaded()</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;">onContentLoaded(  <span class="argument">$rawContent</span>) : void</pre>
+                <p><em>Triggered after Pico has read the contents of the file to serve</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$rawContent </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getRawContent"><span class="namespace-wrapper">\Pico::getRawContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_on404ContentLoading" name="method_on404ContentLoading" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">on404ContentLoading()</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;">on404ContentLoading(  <span class="argument">$file</span>) : void</pre>
+                <p><em>Triggered before Pico reads the contents of the 404 file</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$file </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_load404Content"><span class="namespace-wrapper">\Pico::load404Content()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_on404ContentLoaded" name="method_on404ContentLoaded" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">on404ContentLoaded()</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;">on404ContentLoaded(  <span class="argument">$rawContent</span>) : void</pre>
+                <p><em>Triggered after Pico has read the contents of the 404 file</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$rawContent </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getRawContent"><span class="namespace-wrapper">\Pico::getRawContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onMetaHeaders" name="method_onMetaHeaders" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onMetaHeaders()</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;">onMetaHeaders(  <span class="argument">$headers</span>) : void</pre>
+                <p><em>Triggered when Pico reads its known meta header fields</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$headers </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getMetaHeaders"><span class="namespace-wrapper">\Pico::getMetaHeaders()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onMetaParsing" name="method_onMetaParsing" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onMetaParsing()</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;">onMetaParsing(  <span class="argument">$rawContent</span>,   <span class="argument">$headers</span>) : void</pre>
+                <p><em>Triggered before Pico parses the meta header</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$rawContent </td>
+                                <td></td>
+                            </tr>
+                                                    <tr>
+                                <td></td>
+                                <td>$headers </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_parseFileMeta"><span class="namespace-wrapper">\Pico::parseFileMeta()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onMetaParsed" name="method_onMetaParsed" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onMetaParsed()</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;">onMetaParsed(  <span class="argument">$meta</span>) : void</pre>
+                <p><em>Triggered after Pico has parsed the meta header</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$meta </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getFileMeta"><span class="namespace-wrapper">\Pico::getFileMeta()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onContentParsing" name="method_onContentParsing" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onContentParsing()</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;">onContentParsing(  <span class="argument">$rawContent</span>) : void</pre>
+                <p><em>Triggered before Pico parses the pages content</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$rawContent </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_prepareFileContent"><span class="namespace-wrapper">\Pico::prepareFileContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_prepareFileContent" name="method_prepareFileContent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">prepareFileContent()</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;">prepareFileContent(  <span class="argument">$content</span>) : void</pre>
+                <p><em>Triggered after Pico has prepared the raw file contents for parsing</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$content </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_parseFileContent"><span class="namespace-wrapper">\Pico::parseFileContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onContentParsed" name="method_onContentParsed" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onContentParsed()</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;">onContentParsed(  <span class="argument">$content</span>) : void</pre>
+                <p><em>Triggered after Pico has parsed the contents of the file to serve</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$content </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getFileContent"><span class="namespace-wrapper">\Pico::getFileContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onSinglePageLoaded" name="method_onSinglePageLoaded" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onSinglePageLoaded()</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;">onSinglePageLoaded(  <span class="argument">$pageData</span>) : void</pre>
+                <p><em>Triggered when Pico reads a single page from the list of all known pages</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$pageData </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onPagesLoaded" name="method_onPagesLoaded" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onPagesLoaded()</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;">onPagesLoaded(  <span class="argument">$pages</span>,   <span class="argument">$currentPage</span>,   <span class="argument">$previousPage</span>,   <span class="argument">$nextPage</span>) : void</pre>
+                <p><em>Triggered after Pico has read all known pages</em></p>
+                <p>See <a href="/classes/DummyPlugin.html#method_onSinglePageLoaded">DummyPlugin::onSinglePageLoaded()</a> for details about the
+structure of the page data.</p>
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$pages </td>
+                                <td></td>
+                            </tr>
+                                                    <tr>
+                                <td></td>
+                                <td>$currentPage </td>
+                                <td></td>
+                            </tr>
+                                                    <tr>
+                                <td></td>
+                                <td>$previousPage </td>
+                                <td></td>
+                            </tr>
+                                                    <tr>
+                                <td></td>
+                                <td>$nextPage </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getPages"><span class="namespace-wrapper">\Pico::getPages()</span></a></dd>
+                                            <dd><a href="../classes/Pico.html#method_getCurrentPage"><span class="namespace-wrapper">\Pico::getCurrentPage()</span></a></dd>
+                                            <dd><a href="../classes/Pico.html#method_getPreviousPage"><span class="namespace-wrapper">\Pico::getPreviousPage()</span></a></dd>
+                                            <dd><a href="../classes/Pico.html#method_getNextPage"><span class="namespace-wrapper">\Pico::getNextPage()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onTwigRegistration" name="method_onTwigRegistration" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onTwigRegistration()</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;">onTwigRegistration() : void</pre>
+                <p><em>Triggered before Pico registers the twig template engine</em></p>
+                
+
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onPageRendering" name="method_onPageRendering" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onPageRendering()</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;">onPageRendering(  <span class="argument">$twig</span>,   <span class="argument">$twigVariables</span>,   <span class="argument">$templateName</span>) : void</pre>
+                <p><em>Triggered before Pico renders the page</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$twig </td>
+                                <td></td>
+                            </tr>
+                                                    <tr>
+                                <td></td>
+                                <td>$twigVariables </td>
+                                <td></td>
+                            </tr>
+                                                    <tr>
+                                <td></td>
+                                <td>$templateName </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getTwig"><span class="namespace-wrapper">\Pico::getTwig()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_onPageRendered" name="method_onPageRendered" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">onPageRendered()</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;">onPageRendered(  <span class="argument">$output</span>) : void</pre>
+                <p><em>Triggered after Pico has rendered the page</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td></td>
+                                <td>$output </td>
+                                <td></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_checkDependencies" name="method_checkDependencies" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">checkDependencies()</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;">checkDependencies(boolean  <span class="argument">$recursive</span>) : void</pre>
+                <p><em>Enables all plugins which this plugin depends on</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$recursive </td>
+                                <td><p>enable required plugins automatically</p></td>
+                            </tr>
+                                            </table>
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown when a dependency fails</p></dd>
+                                                                    </dl>
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_checkDependants" name="method_checkDependants" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">checkDependants()</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;">checkDependants(boolean  <span class="argument">$recursive</span>) : void</pre>
+                <p><em>Disables all plugins which depend on this plugin</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$recursive </td>
+                                <td><p>disabled dependant plugins automatically</p></td>
+                            </tr>
+                                            </table>
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown when a dependency fails</p></dd>
+                                                                    </dl>
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                    <dt>Inherited from</dt>
+                    <dd><a href="../classes/AbstractPicoPlugin.html"><div class="path-wrapper">\AbstractPicoPlugin</div></a></dd>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                    </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label">DummyPlugin.php</h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/plugins/DummyPlugin.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 2352 - 0
phpDocumentor/classes/Pico.html

@@ -0,0 +1,2352 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+    <script type="text/javascript">
+    function loadExternalCodeSnippets() {
+        Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+            var src = pre.getAttribute('data-src');
+            var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+            var language = 'php';
+
+            var code = document.createElement('code');
+            code.className = 'language-' + language;
+
+            pre.textContent = '';
+
+            code.textContent = 'Loading…';
+
+            pre.appendChild(code);
+
+            var xhr = new XMLHttpRequest();
+
+            xhr.open('GET', src, true);
+
+            xhr.onreadystatechange = function () {
+                if (xhr.readyState == 4) {
+
+                    if (xhr.status < 400 && xhr.responseText) {
+                        code.textContent = xhr.responseText;
+
+                        Prism.highlightElement(code);
+                    }
+                    else if (xhr.status >= 400) {
+                        code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                    }
+                    else {
+                        code.textContent = '✖ Error: File does not exist or is empty';
+                    }
+                }
+            };
+
+            xhr.send(null);
+        });
+    }
+
+    $(document).ready(function(){
+        loadExternalCodeSnippets();
+    });
+    $('#source-view').on('shown', function () {
+        loadExternalCodeSnippets();
+    })
+</script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-254219717"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-254219717" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content class">
+                    <nav>
+                                                <a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
+                                            </nav>
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+
+                    <h1><small>\</small>Pico</h1>
+                    <p><em>Pico</em></p>
+                    <p>Pico is a stupidly simple, blazing fast, flat file CMS.</p>
+<ul>
+<li>Stupidly Simple: Picos makes creating and maintaining a
+website as simple as editing text files.</li>
+<li>Blazing Fast: Pico is seriously lightweight and doesn't
+use a database, making it super fast.</li>
+<li>No Database: Pico is a &quot;flat file&quot; CMS, meaning no
+database woes, no MySQL queries, nothing.</li>
+<li>Markdown Formatting: Edit your website in your favourite
+text editor using simple Markdown formatting.</li>
+<li>Twig Templates: Pico uses the Twig templating engine,
+for powerful and flexible themes.</li>
+<li>Open Source: Pico is completely free and open source,
+released under the MIT license.
+See <a href="http://picocms.org/">http://picocms.org/</a> for more info.</li>
+</ul>
+                    
+                                        
+                    <section id="summary">
+                        <h2>Summary</h2>
+                        <section class="row-fluid heading">
+                            <section class="span4">
+                                <a href="#methods">Methods</a>
+                            </section>
+                            <section class="span4">
+                                <a href="#properties">Properties</a>
+                            </section>
+                            <section class="span4">
+                                <a href="#constants">Constants</a>
+                            </section>
+                        </section>
+                        <section class="row-fluid public">
+                            <section class="span4">
+                                                                    <a href="../classes/Pico.html#method___construct" class="">__construct()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getRootDir" class="">getRootDir()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getConfigDir" class="">getConfigDir()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getPluginsDir" class="">getPluginsDir()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getThemesDir" class="">getThemesDir()</a><br />
+                                                                    <a href="../classes/Pico.html#method_run" class="">run()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getPlugin" class="">getPlugin()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getPlugins" class="">getPlugins()</a><br />
+                                                                    <a href="../classes/Pico.html#method_setConfig" class="">setConfig()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getConfig" class="">getConfig()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getRequestUrl" class="">getRequestUrl()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getRequestFile" class="">getRequestFile()</a><br />
+                                                                    <a href="../classes/Pico.html#method_loadFileContent" class="">loadFileContent()</a><br />
+                                                                    <a href="../classes/Pico.html#method_load404Content" class="">load404Content()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getRawContent" class="">getRawContent()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getMetaHeaders" class="">getMetaHeaders()</a><br />
+                                                                    <a href="../classes/Pico.html#method_parseFileMeta" class="">parseFileMeta()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getFileMeta" class="">getFileMeta()</a><br />
+                                                                    <a href="../classes/Pico.html#method_prepareFileContent" class="">prepareFileContent()</a><br />
+                                                                    <a href="../classes/Pico.html#method_parseFileContent" class="">parseFileContent()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getFileContent" class="">getFileContent()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getPages" class="">getPages()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getCurrentPage" class="">getCurrentPage()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getPreviousPage" class="">getPreviousPage()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getNextPage" class="">getNextPage()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getTwig" class="">getTwig()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getBaseUrl" class="">getBaseUrl()</a><br />
+                                                                    <a href="../classes/Pico.html#method_isUrlRewritingEnabled" class="">isUrlRewritingEnabled()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getPageUrl" class="">getPageUrl()</a><br />
+                                                            </section>
+                            <section class="span4">
+                                                                    <em>No public properties found</em>
+                                                            </section>
+                            <section class="span4">
+                                                                    <a href="../classes/Pico.html#constant_SORT_ASC" class="">SORT_ASC</a><br />
+                                                                    <a href="../classes/Pico.html#constant_SORT_DESC" class="">SORT_DESC</a><br />
+                                                                    <a href="../classes/Pico.html#constant_SORT_NONE" class="">SORT_NONE</a><br />
+                                                            </section>
+                        </section>
+                        <section class="row-fluid protected">
+                            <section class="span4">
+                                                                    <a href="../classes/Pico.html#method_loadPlugins" class="">loadPlugins()</a><br />
+                                                                    <a href="../classes/Pico.html#method_loadConfig" class="">loadConfig()</a><br />
+                                                                    <a href="../classes/Pico.html#method_evaluateRequestUrl" class="">evaluateRequestUrl()</a><br />
+                                                                    <a href="../classes/Pico.html#method_discoverRequestFile" class="">discoverRequestFile()</a><br />
+                                                                    <a href="../classes/Pico.html#method_readPages" class="">readPages()</a><br />
+                                                                    <a href="../classes/Pico.html#method_sortPages" class="">sortPages()</a><br />
+                                                                    <a href="../classes/Pico.html#method_discoverCurrentPage" class="">discoverCurrentPage()</a><br />
+                                                                    <a href="../classes/Pico.html#method_registerTwig" class="">registerTwig()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getTwigVariables" class="">getTwigVariables()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getFiles" class="">getFiles()</a><br />
+                                                                    <a href="../classes/Pico.html#method_getAbsolutePath" class="">getAbsolutePath()</a><br />
+                                                                    <a href="../classes/Pico.html#method_triggerEvent" class="">triggerEvent()</a><br />
+                                                            </section>
+                            <section class="span4">
+                                                                    <a href="../classes/Pico.html#property_rootDir" class="">$rootDir</a><br />
+                                                                    <a href="../classes/Pico.html#property_configDir" class="">$configDir</a><br />
+                                                                    <a href="../classes/Pico.html#property_pluginsDir" class="">$pluginsDir</a><br />
+                                                                    <a href="../classes/Pico.html#property_themesDir" class="">$themesDir</a><br />
+                                                                    <a href="../classes/Pico.html#property_locked" class="">$locked</a><br />
+                                                                    <a href="../classes/Pico.html#property_plugins" class="">$plugins</a><br />
+                                                                    <a href="../classes/Pico.html#property_config" class="">$config</a><br />
+                                                                    <a href="../classes/Pico.html#property_requestUrl" class="">$requestUrl</a><br />
+                                                                    <a href="../classes/Pico.html#property_requestFile" class="">$requestFile</a><br />
+                                                                    <a href="../classes/Pico.html#property_rawContent" class="">$rawContent</a><br />
+                                                                    <a href="../classes/Pico.html#property_meta" class="">$meta</a><br />
+                                                                    <a href="../classes/Pico.html#property_content" class="">$content</a><br />
+                                                                    <a href="../classes/Pico.html#property_pages" class="">$pages</a><br />
+                                                                    <a href="../classes/Pico.html#property_currentPage" class="">$currentPage</a><br />
+                                                                    <a href="../classes/Pico.html#property_previousPage" class="">$previousPage</a><br />
+                                                                    <a href="../classes/Pico.html#property_nextPage" class="">$nextPage</a><br />
+                                                                    <a href="../classes/Pico.html#property_twig" class="">$twig</a><br />
+                                                                    <a href="../classes/Pico.html#property_twigVariables" class="">$twigVariables</a><br />
+                                                            </section>
+                            <section class="span4">
+                                <em>N/A</em>
+                            </section>
+                        </section>
+                        <section class="row-fluid private">
+                            <section class="span4">
+                                                                    <em>No private methods found</em>
+                                                            </section>
+                            <section class="span4">
+                                                                    <em>No private properties found</em>
+                                                            </section>
+                            <section class="span4">
+                                <em>N/A</em>
+                            </section>
+                        </section>
+                    </section>
+                </div>
+                <aside class="span4 detailsbar">
+                                        
+                    
+                    <dl>
+                        <dt>File</dt>
+                            <dd><a href="../files/lib.Pico.html"><div class="path-wrapper">lib/Pico.php</div></a></dd>
+                                                <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">Default</div></dd>
+                                                <dt>Class hierarchy</dt>
+                            <dd class="hierarchy">
+                                                                                                                                                                    <div class="namespace-wrapper">\Pico</div>
+                            </dd>
+
+                        
+                        
+                        
+                                                                            <dt>See also</dt>
+                                                                                        <dd><a href="&lt;http://picocms.org&gt;"><span class="namespace-wrapper">&lt;http://picocms.org&gt;</span></a></dd>
+                                                    
+                                                                        </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                            <tr>
+                            <th>
+                                author
+                            </th>
+                            <td>
+                                                                    <p>Gilbert Pellegrom</p>
+                                                                    <p>Daniel Rudolf</p>
+                                                            </td>
+                        </tr>
+                                            <tr>
+                            <th>
+                                license
+                            </th>
+                            <td>
+                                                                    <p>The MIT License <a href="http://opensource.org/licenses/MIT">http://opensource.org/licenses/MIT</a></p>
+                                                            </td>
+                        </tr>
+                                            <tr>
+                            <th>
+                                version
+                            </th>
+                            <td>
+                                                                    
+                                                            </td>
+                        </tr>
+                                        </table>
+                </aside>
+            </div>
+
+                                    <a id="constants" name="constants"></a>
+            <div class="row-fluid">
+                <div class="span8 content class">
+                    <h2>Constants</h2>
+                </div>
+                <aside class="span4 detailsbar"></aside>
+            </div>
+
+                                <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="constant_SORT_ASC" name="constant_SORT_ASC" class="anchor"></a>
+            <article id="constant_SORT_ASC" class="constant">
+                <h3 class="">SORT_ASC</h3>
+                <pre class="signature">SORT_ASC</pre>
+                <p><em>Sort files in alphabetical ascending order</em></p>
+                
+            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getFiles"><span class="namespace-wrapper">\Pico::getFiles()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="constant_SORT_DESC" name="constant_SORT_DESC" class="anchor"></a>
+            <article id="constant_SORT_DESC" class="constant">
+                <h3 class="">SORT_DESC</h3>
+                <pre class="signature">SORT_DESC</pre>
+                <p><em>Sort files in alphabetical descending order</em></p>
+                
+            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getFiles"><span class="namespace-wrapper">\Pico::getFiles()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="constant_SORT_NONE" name="constant_SORT_NONE" class="anchor"></a>
+            <article id="constant_SORT_NONE" class="constant">
+                <h3 class="">SORT_NONE</h3>
+                <pre class="signature">SORT_NONE</pre>
+                <p><em>Don&#039;t sort files</em></p>
+                
+            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_getFiles"><span class="namespace-wrapper">\Pico::getFiles()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                            
+                                    <a id="properties" name="properties"></a>
+            <div class="row-fluid">
+                <div class="span8 content class">
+                    <h2>Properties</h2>
+                </div>
+                <aside class="span4 detailsbar"></aside>
+            </div>
+
+                                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_rootDir" name="property_rootDir" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$rootDir</h3>
+                <pre class="signature">$rootDir : string</pre>
+                <p><em>Root directory of this Pico instance</em></p>
+                
+
+                                <h4>Type</h4>
+                string
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_configDir" name="property_configDir" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$configDir</h3>
+                <pre class="signature">$configDir : string</pre>
+                <p><em>Config directory of this Pico instance</em></p>
+                
+
+                                <h4>Type</h4>
+                string
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_pluginsDir" name="property_pluginsDir" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$pluginsDir</h3>
+                <pre class="signature">$pluginsDir : string</pre>
+                <p><em>Plugins directory of this Pico instance</em></p>
+                
+
+                                <h4>Type</h4>
+                string
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_themesDir" name="property_themesDir" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$themesDir</h3>
+                <pre class="signature">$themesDir : string</pre>
+                <p><em>Themes directory of this Pico instance</em></p>
+                
+
+                                <h4>Type</h4>
+                string
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_locked" name="property_locked" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$locked</h3>
+                <pre class="signature">$locked : boolean</pre>
+                <p><em>Boolean indicating whether Picos processing started yet</em></p>
+                
+
+                                <h4>Type</h4>
+                boolean
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_plugins" name="property_plugins" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$plugins</h3>
+                <pre class="signature">$plugins : array&lt;mixed,object&gt;|null</pre>
+                <p><em>List of loaded plugins</em></p>
+                
+
+                                <h4>Type</h4>
+                array&lt;mixed,object&gt;|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_loadPlugins"><span class="namespace-wrapper">\Pico::loadPlugins()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_config" name="property_config" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$config</h3>
+                <pre class="signature">$config : array&lt;mixed,mixed&gt;|null</pre>
+                <p><em>Current configuration of this Pico instance</em></p>
+                
+
+                                <h4>Type</h4>
+                array&lt;mixed,mixed&gt;|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_loadConfig"><span class="namespace-wrapper">\Pico::loadConfig()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_requestUrl" name="property_requestUrl" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$requestUrl</h3>
+                <pre class="signature">$requestUrl : string|null</pre>
+                <p><em>Part of the URL describing the requested contents</em></p>
+                
+
+                                <h4>Type</h4>
+                string|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_evaluateRequestUrl"><span class="namespace-wrapper">\Pico::evaluateRequestUrl()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_requestFile" name="property_requestFile" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$requestFile</h3>
+                <pre class="signature">$requestFile : string|null</pre>
+                <p><em>Absolute path to the content file being served</em></p>
+                
+
+                                <h4>Type</h4>
+                string|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_discoverRequestFile"><span class="namespace-wrapper">\Pico::discoverRequestFile()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_rawContent" name="property_rawContent" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$rawContent</h3>
+                <pre class="signature">$rawContent : string|null</pre>
+                <p><em>Raw, not yet parsed contents to serve</em></p>
+                
+
+                                <h4>Type</h4>
+                string|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_loadFileContent"><span class="namespace-wrapper">\Pico::loadFileContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_meta" name="property_meta" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$meta</h3>
+                <pre class="signature">$meta : array&lt;mixed,string&gt;|null</pre>
+                <p><em>Meta data of the page to serve</em></p>
+                
+
+                                <h4>Type</h4>
+                array&lt;mixed,string&gt;|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_parseFileMeta"><span class="namespace-wrapper">\Pico::parseFileMeta()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_content" name="property_content" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$content</h3>
+                <pre class="signature">$content : string|null</pre>
+                <p><em>Parsed content being served</em></p>
+                
+
+                                <h4>Type</h4>
+                string|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_prepareFileContent"><span class="namespace-wrapper">\Pico::prepareFileContent()</span></a></dd>
+                                            <dd><a href="../classes/Pico.html#method_parseFileContent"><span class="namespace-wrapper">\Pico::parseFileContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_pages" name="property_pages" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$pages</h3>
+                <pre class="signature">$pages : array&lt;mixed,array&gt;|null</pre>
+                <p><em>List of known pages</em></p>
+                
+
+                                <h4>Type</h4>
+                array&lt;mixed,array&gt;|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_readPages"><span class="namespace-wrapper">\Pico::readPages()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_currentPage" name="property_currentPage" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$currentPage</h3>
+                <pre class="signature">$currentPage : array|null</pre>
+                <p><em>Data of the page being served</em></p>
+                
+
+                                <h4>Type</h4>
+                array|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_discoverCurrentPage"><span class="namespace-wrapper">\Pico::discoverCurrentPage()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_previousPage" name="property_previousPage" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$previousPage</h3>
+                <pre class="signature">$previousPage : array|null</pre>
+                <p><em>Data of the previous page relative to the page being served</em></p>
+                
+
+                                <h4>Type</h4>
+                array|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_discoverCurrentPage"><span class="namespace-wrapper">\Pico::discoverCurrentPage()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_nextPage" name="property_nextPage" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$nextPage</h3>
+                <pre class="signature">$nextPage : array|null</pre>
+                <p><em>Data of the next page relative to the page being served</em></p>
+                
+
+                                <h4>Type</h4>
+                array|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_discoverCurrentPage"><span class="namespace-wrapper">\Pico::discoverCurrentPage()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_twig" name="property_twig" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$twig</h3>
+                <pre class="signature">$twig : \Twig_Environment|null</pre>
+                <p><em>Twig instance used for template parsing</em></p>
+                
+
+                                <h4>Type</h4>
+                \Twig_Environment|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_registerTwig"><span class="namespace-wrapper">\Pico::registerTwig()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="property_twigVariables" name="property_twigVariables" class="anchor"></a>
+            <article class="property">
+                <h3 class="protected ">$twigVariables</h3>
+                <pre class="signature">$twigVariables : array&lt;mixed,mixed&gt;|null</pre>
+                <p><em>Variables passed to the twig template</em></p>
+                
+
+                                <h4>Type</h4>
+                array&lt;mixed,mixed&gt;|null
+                                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                        <dl>
+                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                            
+                                    <a id="methods" name="methods"></a>
+            <div class="row-fluid">
+                <div class="span8 content class"><h2>Methods</h2></div>
+                <aside class="span4 detailsbar"></aside>
+            </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method___construct" name="method___construct" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">__construct()</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;">__construct(string  <span class="argument">$rootDir</span>, string  <span class="argument">$configDir</span>, string  <span class="argument">$pluginsDir</span>, string  <span class="argument">$themesDir</span>) </pre>
+                <p><em>Constructs a new Pico instance</em></p>
+                <p>To carry out all the processing in Pico, call the run() method.</p>
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$rootDir </td>
+                                <td><p>root directory of this Pico instance</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>string</td>
+                                <td>$configDir </td>
+                                <td><p>config directory of this Pico instance</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>string</td>
+                                <td>$pluginsDir </td>
+                                <td><p>plugins directory of this Pico instance</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>string</td>
+                                <td>$themesDir </td>
+                                <td><p>themes directory of this Pico instance</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getRootDir" name="method_getRootDir" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getRootDir()</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;">getRootDir() : string</pre>
+                <p><em>Returns the root directory of this Pico instance</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>root directory path</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getConfigDir" name="method_getConfigDir" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getConfigDir()</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;">getConfigDir() : string</pre>
+                <p><em>Returns the config directory of this Pico instance</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>config directory path</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPluginsDir" name="method_getPluginsDir" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPluginsDir()</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;">getPluginsDir() : string</pre>
+                <p><em>Returns the plugins directory of this Pico instance</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>plugins directory path</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getThemesDir" name="method_getThemesDir" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getThemesDir()</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;">getThemesDir() : string</pre>
+                <p><em>Returns the themes directory of this Pico instance</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>themes directory path</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_run" name="method_run" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">run()</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;">run() : string</pre>
+                <p><em>Runs this Pico instance</em></p>
+                <p>Loads plugins, evaluates the config file, does URL routing, parses
+meta headers, processes Markdown, does Twig processing and returns
+the rendered contents.</p>
+
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>rendered Pico contents</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPlugin" name="method_getPlugin" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPlugin()</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;">getPlugin(string  <span class="argument">$pluginName</span>) : object</pre>
+                <p><em>Returns the instance of a named plugin</em></p>
+                <p>Plugins SHOULD implement <a href="/classes/PicoPluginInterface.html">PicoPluginInterface</a>, but you MUST NOT
+rely on it. For more information see <a href="/classes/PicoPluginInterface.html">PicoPluginInterface</a>.</p>
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$pluginName </td>
+                                <td><p>name of the plugin</p></td>
+                            </tr>
+                                            </table>
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown when the plugin wasn't found</p></dd>
+                                                                    </dl>
+                
+                                    <h4>Returns</h4>
+                    object
+                                            &mdash; <p>instance of the plugin</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_loadPlugins"><span class="namespace-wrapper">\Pico::loadPlugins()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPlugins" name="method_getPlugins" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPlugins()</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;">getPlugins() : array&lt;mixed,object&gt;|null</pre>
+                <p><em>Returns all loaded plugins</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,object&gt;|null
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_loadPlugins"><span class="namespace-wrapper">\Pico::loadPlugins()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_setConfig" name="method_setConfig" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">setConfig()</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;">setConfig(array&lt;mixed,mixed&gt;  <span class="argument">$config</span>) : void</pre>
+                <p><em>Sets Picos config before calling Pico::run()</em></p>
+                <p>This method allows you to modify Picos config without creating a
+{@path &quot;config/config.php&quot;} or changing some of its variables before
+Pico starts processing. It can only be called between the constructor
+call and Pico::run(). Options set with this method cannot be overwritten
+by {@path &quot;config/config.php&quot;}.</p>
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>array&lt;mixed,mixed&gt;</td>
+                                <td>$config </td>
+                                <td><p>array with configuration variables, like
+$config in {@path &quot;config/config.php&quot;}</p></td>
+                            </tr>
+                                            </table>
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown if Pico already started processing</p></dd>
+                                                                    </dl>
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getConfig" name="method_getConfig" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getConfig()</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;">getConfig(string  <span class="argument">$configName = null</span>) : mixed</pre>
+                <p><em>Returns either the value of the specified config variable or
+the config array</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$configName </td>
+                                <td><p>optional name of a config variable</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    mixed
+                                            &mdash; <p>returns either the value of the named config
+variable, null if the config variable doesn't exist or the config
+array if no config name was supplied</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_loadConfig"><span class="namespace-wrapper">\Pico::loadConfig()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getRequestUrl" name="method_getRequestUrl" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getRequestUrl()</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;">getRequestUrl() : string|null</pre>
+                <p><em>Returns the URL where a user requested the page</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string|null
+                                            &mdash; <p>request URL</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_evaluateRequestUrl"><span class="namespace-wrapper">\Pico::evaluateRequestUrl()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getRequestFile" name="method_getRequestFile" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getRequestFile()</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;">getRequestFile() : string|null</pre>
+                <p><em>Returns the absolute path to the content file to serve</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string|null
+                                            &mdash; <p>file path</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_discoverRequestFile"><span class="namespace-wrapper">\Pico::discoverRequestFile()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_loadFileContent" name="method_loadFileContent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">loadFileContent()</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;">loadFileContent(string  <span class="argument">$file</span>) : string</pre>
+                <p><em>Returns the raw contents of a file</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$file </td>
+                                <td><p>file path</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>raw contents of the file</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_load404Content" name="method_load404Content" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">load404Content()</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;">load404Content(string  <span class="argument">$file</span>) : string</pre>
+                <p><em>Returns the raw contents of the first found 404 file when traversing
+up from the directory the requested file is in</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$file </td>
+                                <td><p>path to requested (but not existing) file</p></td>
+                            </tr>
+                                            </table>
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown when no suitable 404 file is found</p></dd>
+                                                                    </dl>
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>raw contents of the 404 file</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getRawContent" name="method_getRawContent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getRawContent()</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;">getRawContent() : string|null</pre>
+                <p><em>Returns the cached raw contents, either of the requested or the 404 file</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string|null
+                                            &mdash; <p>raw contents</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_loadFileContent"><span class="namespace-wrapper">\Pico::loadFileContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getMetaHeaders" name="method_getMetaHeaders" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getMetaHeaders()</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;">getMetaHeaders() : array&lt;mixed,string&gt;</pre>
+                <p><em>Returns known meta headers and triggers the onMetaHeaders event</em></p>
+                <p>Heads up! Calling this method triggers the <code>onMetaHeaders</code> event.
+Keep this in mind to prevent a infinite loop!</p>
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,string&gt;
+                                            &mdash; <p>known meta headers; the array value specifies the
+YAML key to search for, the array key is later used to access the
+found value</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_parseFileMeta" name="method_parseFileMeta" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">parseFileMeta()</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;">parseFileMeta(string  <span class="argument">$rawContent</span>, array&lt;mixed,string&gt;  <span class="argument">$headers</span>) : array</pre>
+                <p><em>Parses the file meta from raw file contents</em></p>
+                <p>Meta data MUST start on the first line of the file, either opened and
+closed by --- or C-style block comments (deprecated). The headers are
+parsed by the YAML component of the Symfony project, keys are lowered.
+If you're a plugin developer, you MUST register new headers during the
+<code>onMetaHeaders</code> event first. The implicit availability of headers is
+for users and pure (!) theme developers ONLY.</p>
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$rawContent </td>
+                                <td><p>the raw file contents</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>array&lt;mixed,string&gt;</td>
+                                <td>$headers </td>
+                                <td><p>known meta headers</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    array
+                                            &mdash; <p>parsed meta data</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href=""><span class="namespace-wrapper">\&lt;http://symfony.com/doc/current/components/yaml/introduction.html&gt;</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getFileMeta" name="method_getFileMeta" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getFileMeta()</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;">getFileMeta() : array|null</pre>
+                <p><em>Returns the parsed meta data of the requested page</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array|null
+                                            &mdash; <p>parsed meta data</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_parseFileMeta"><span class="namespace-wrapper">\Pico::parseFileMeta()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_prepareFileContent" name="method_prepareFileContent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">prepareFileContent()</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;">prepareFileContent(string  <span class="argument">$rawContent</span>) : string</pre>
+                <p><em>Applies some static preparations to the raw contents of a page,
+e.g. removing the meta header and replacing %base_url%</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$rawContent </td>
+                                <td><p>raw contents of a page</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>contents prepared for parsing</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_parseFileContent" name="method_parseFileContent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">parseFileContent()</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;">parseFileContent(string  <span class="argument">$content</span>) : string</pre>
+                <p><em>Parses the contents of a page using ParsedownExtra</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$content </td>
+                                <td><p>raw contents of a page (Markdown)</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>parsed contents (HTML)</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getFileContent" name="method_getFileContent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getFileContent()</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;">getFileContent() : string|null</pre>
+                <p><em>Returns the cached contents of the requested page</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string|null
+                                            &mdash; <p>parsed contents</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_parseFileContent"><span class="namespace-wrapper">\Pico::parseFileContent()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPages" name="method_getPages" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPages()</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;">getPages() : array|null</pre>
+                <p><em>Returns the list of known pages</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array|null
+                                            &mdash; <p>the data of all pages</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_readPages"><span class="namespace-wrapper">\Pico::readPages()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getCurrentPage" name="method_getCurrentPage" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getCurrentPage()</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;">getCurrentPage() : array|null</pre>
+                <p><em>Returns the data of the requested page</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array|null
+                                            &mdash; <p>page data</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_discoverCurrentPage"><span class="namespace-wrapper">\Pico::discoverCurrentPage()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPreviousPage" name="method_getPreviousPage" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPreviousPage()</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;">getPreviousPage() : array|null</pre>
+                <p><em>Returns the data of the previous page relative to the page being served</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array|null
+                                            &mdash; <p>page data</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_discoverCurrentPage"><span class="namespace-wrapper">\Pico::discoverCurrentPage()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getNextPage" name="method_getNextPage" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getNextPage()</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;">getNextPage() : array|null</pre>
+                <p><em>Returns the data of the next page relative to the page being served</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array|null
+                                            &mdash; <p>page data</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                                            <dt>See also</dt>
+                                                                <dd><a href="../classes/Pico.html#method_discoverCurrentPage"><span class="namespace-wrapper">\Pico::discoverCurrentPage()</span></a></dd>
+                                                                </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getTwig" name="method_getTwig" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getTwig()</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;">getTwig() : \Twig_Environment|null</pre>
+                <p><em>Returns the twig template engine</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    \Twig_Environment|null
+                                            &mdash; <p>twig template engine</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getBaseUrl" name="method_getBaseUrl" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getBaseUrl()</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;">getBaseUrl() : string</pre>
+                <p><em>Returns the base URL of this Pico instance</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>the base url</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_isUrlRewritingEnabled" name="method_isUrlRewritingEnabled" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">isUrlRewritingEnabled()</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;">isUrlRewritingEnabled() : boolean</pre>
+                <p><em>Returns true if URL rewriting is enabled</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    boolean
+                                            &mdash; <p>true if URL rewriting is enabled, false otherwise</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPageUrl" name="method_getPageUrl" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPageUrl()</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;">getPageUrl(string  <span class="argument">$page</span>) : string</pre>
+                <p><em>Returns the URL to a given page</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$page </td>
+                                <td><p>identifier of the page to link to</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>URL</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_loadPlugins" name="method_loadPlugins" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">loadPlugins()</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;">loadPlugins() : void</pre>
+                <p><em>Loads plugins from Pico::$pluginsDir in alphabetical order</em></p>
+                <p>Plugin files may be prefixed by a number (e.g. 00-PicoDeprecated.php)
+to indicate their processing order. You MUST NOT use prefixes between
+00 and 19 (reserved for built-in plugins).</p>
+
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown when a plugin couldn't be loaded</p></dd>
+                                                                    </dl>
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_loadConfig" name="method_loadConfig" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">loadConfig()</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;">loadConfig() : void</pre>
+                <p><em>Loads the config.php from Pico::$configDir</em></p>
+                
+
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_evaluateRequestUrl" name="method_evaluateRequestUrl" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">evaluateRequestUrl()</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;">evaluateRequestUrl() : void</pre>
+                <p><em>Evaluates the requested URL</em></p>
+                <p>Pico 1.0 uses the QUERY_STRING routing method (e.g. /pico/?sub/page) to
+support SEO-like URLs out-of-the-box with any webserver. You can still
+setup URL rewriting (e.g. using mod_rewrite on Apache) to basically
+remove the <code>?</code> from URLs, but your rewritten URLs must follow the
+new QUERY_STRING principles. URL rewriting requires some special
+configuration on your webserver, but this should be &quot;basic work&quot; for
+any webmaster...</p>
+<p>Pico 0.9 and older required Apache with mod_rewrite enabled, thus old
+plugins, templates and contents may require you to enable URL rewriting
+to work. If you're upgrading from Pico 0.9, you will probably have to
+update your rewriting rules.</p>
+<p>We recommend you to use the <code>link</code> filter in templates to create
+internal links, e.g. <code>{{ "sub/page"|link }}</code> is equivalent to
+<code>{{ base_url }}sub/page</code>. In content files you can still use the
+<code>%base_url%</code> variable; e.g. <code>%base_url%?sub/page</code> will be automatically
+replaced accordingly.</p>
+
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_discoverRequestFile" name="method_discoverRequestFile" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">discoverRequestFile()</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;">discoverRequestFile() : void</pre>
+                <p><em>Uses the request URL to discover the content file to serve</em></p>
+                
+
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_readPages" name="method_readPages" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">readPages()</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;">readPages() : void</pre>
+                <p><em>Reads the data of all pages known to Pico</em></p>
+                <p>The page data will be an array containing the following values:
++----------------+------------------------------------------+
+| Array key      | Description                              |
++----------------+------------------------------------------+
+| id             | relative path to the content file        |
+| url            | URL to the page                          |
+| title          | title of the page (YAML header)          |
+| description    | description of the page (YAML header)    |
+| author         | author of the page (YAML header)         |
+| time           | timestamp derived from the Date header   |
+| date           | date of the page (YAML header)           |
+| date_formatted | formatted date of the page               |
+| raw_content    | raw, not yet parsed contents of the page |
+| meta           | parsed meta data of the page)            |
++----------------+------------------------------------------+</p>
+
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_sortPages" name="method_sortPages" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">sortPages()</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;">sortPages() : void</pre>
+                <p><em>Sorts all pages known to Pico</em></p>
+                
+
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_discoverCurrentPage" name="method_discoverCurrentPage" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">discoverCurrentPage()</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;">discoverCurrentPage() : void</pre>
+                <p><em>Walks through the list of known pages and discovers the requested page
+as well as the previous and next page relative to it</em></p>
+                
+
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_registerTwig" name="method_registerTwig" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">registerTwig()</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;">registerTwig() : void</pre>
+                <p><em>Registers the twig template engine</em></p>
+                
+
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getTwigVariables" name="method_getTwigVariables" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">getTwigVariables()</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;">getTwigVariables() : array&lt;mixed,mixed&gt;</pre>
+                <p><em>Returns the variables passed to the template</em></p>
+                <p>URLs and paths (namely base_dir, base_url, theme_dir and theme_url)
+don't add a trailing slash for historic reasons.</p>
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,mixed&gt;
+                                            &mdash; <p>template variables</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getFiles" name="method_getFiles" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">getFiles()</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;">getFiles(string  <span class="argument">$directory</span>, string  <span class="argument">$fileExtension = &#039;&#039;</span>, integer  <span class="argument">$order = self::SORT_ASC</span>) : array</pre>
+                <p><em>Recursively walks through a directory and returns all containing files
+matching the specified file extension</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$directory </td>
+                                <td><p>start directory</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>string</td>
+                                <td>$fileExtension </td>
+                                <td><p>return files with the given file extension
+only (optional)</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>integer</td>
+                                <td>$order </td>
+                                <td><p>specify whether and how files should be
+sorted; use Pico::SORT_ASC for a alphabetical ascending order (this
+is the default behaviour), Pico::SORT_DESC for a descending order
+or Pico::SORT_NONE to leave the result unsorted</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    array
+                                            &mdash; <p>list of found files</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getAbsolutePath" name="method_getAbsolutePath" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">getAbsolutePath()</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;">getAbsolutePath(string  <span class="argument">$path</span>) : string</pre>
+                <p><em>Makes a relative path absolute to Picos root dir</em></p>
+                <p>This method also guarantees a trailing slash.</p>
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$path </td>
+                                <td><p>relative or absolute path</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>absolute path</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_triggerEvent" name="method_triggerEvent" class="anchor"></a>
+            <article class="method">
+                <h3 class="protected ">triggerEvent()</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;">triggerEvent(string  <span class="argument">$eventName</span>, array  <span class="argument">$params = array()</span>) : void</pre>
+                <p><em>Triggers events on plugins which implement {@link PicoPluginInterface}</em></p>
+                <p>Deprecated events (as used by plugins not implementing
+\IPocPlugin) are triggered by \PicoDeprecated.</p>
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$eventName </td>
+                                <td><p>name of the event to trigger</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>array</td>
+                                <td>$params </td>
+                                <td><p>optional parameters to pass</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                    </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label">Pico.php</h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/lib/Pico.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 602 - 0
phpDocumentor/classes/PicoPluginInterface.html

@@ -0,0 +1,602 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+        <script type="text/javascript">
+        function loadExternalCodeSnippets() {
+            Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+                var src = pre.getAttribute('data-src');
+                var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+                var language = 'php';
+
+                var code = document.createElement('code');
+                code.className = 'language-' + language;
+
+                pre.textContent = '';
+
+                code.textContent = 'Loading…';
+
+                pre.appendChild(code);
+
+                var xhr = new XMLHttpRequest();
+
+                xhr.open('GET', src, true);
+
+                xhr.onreadystatechange = function () {
+                    if (xhr.readyState == 4) {
+
+                        if (xhr.status < 400 && xhr.responseText) {
+                            code.textContent = xhr.responseText;
+
+                            Prism.highlightElement(code);
+                        }
+                        else if (xhr.status >= 400) {
+                            code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                        }
+                        else {
+                            code.textContent = '✖ Error: File does not exist or is empty';
+                        }
+                    }
+                };
+
+                xhr.send(null);
+            });
+        }
+
+        $(document).ready(function(){
+            loadExternalCodeSnippets();
+        });
+        $('#source-view').on('shown', function () {
+            loadExternalCodeSnippets();
+        })
+    </script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-731313356"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-731313356" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content class">
+                    <nav>
+                                                <a href="../namespaces/default.html">\</a>
+                                            </nav>
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+
+                    <h1><small>\</small>PicoPluginInterface</h1>
+                    <p><em>Common interface for Pico plugins</em></p>
+                    <p>For a list of supported events see <a href="/classes/DummyPlugin.html">DummyPlugin</a>; you can use
+<a href="/classes/DummyPlugin.html">DummyPlugin</a> as template for new plugins. For a list of deprecated
+events see \PicoDeprecated.</p>
+<p>You SHOULD NOT use deprecated events when implementing this interface.
+Deprecated events are triggered by the \PicoDeprecated plugin, if
+plugins which don't implement this interface are loaded. You can take
+advantage from this behaviour if you want to do something only when old
+plugins are loaded. Consequently the old events are never triggered when
+your plugin is implementing this interface and no old plugins are present.</p>
+<p>If you're developing a new plugin, you MUST implement PicoPluginInterface. If
+you're the developer of an old plugin, it is STRONGLY RECOMMENDED to use
+the events introduced in Pico 1.0 when releasing a new version of your
+plugin. If you want to use any of the new events, you MUST implement
+PicoPluginInterface and update all other events you use.</p>
+
+                    <section id="summary">
+                        <h2>Summary</h2>
+                        <section class="row-fluid heading">
+                            <section class="span6">
+                                <a href="#methods">Methods</a>
+                            </section>
+                            <section class="span6">
+                                <a href="#constants">Constants</a>
+                            </section>
+                        </section>
+                        <section class="row-fluid public">
+                            <section class="span6">
+                                                                    <a href="../classes/PicoPluginInterface.html#method___construct">__construct()</a><br />
+                                                                    <a href="../classes/PicoPluginInterface.html#method_handleEvent">handleEvent()</a><br />
+                                                                    <a href="../classes/PicoPluginInterface.html#method_setEnabled">setEnabled()</a><br />
+                                                                    <a href="../classes/PicoPluginInterface.html#method_isEnabled">isEnabled()</a><br />
+                                                                    <a href="../classes/PicoPluginInterface.html#method_isStatusChanged">isStatusChanged()</a><br />
+                                                                    <a href="../classes/PicoPluginInterface.html#method_getDependencies">getDependencies()</a><br />
+                                                                    <a href="../classes/PicoPluginInterface.html#method_getDependants">getDependants()</a><br />
+                                                                    <a href="../classes/PicoPluginInterface.html#method_getPico">getPico()</a><br />
+                                                            </section>
+                            <section class="span6">
+                                                                    <em>No constants found</em>
+                                                            </section>
+                        </section>
+                        <section class="row-fluid protected">
+                            <section class="span6">
+                                                                    <em>No protected methods found</em>
+                                                            </section>
+                            <section class="span6">
+                                <em>N/A</em>
+                            </section>
+                        </section>
+                        <section class="row-fluid private">
+                            <section class="span6">
+                                                                    <em>No private methods found</em>
+                                                            </section>
+                            <section class="span6">
+                                <em>N/A</em>
+                            </section>
+                        </section>
+                    </section>
+                </div>
+                <aside class="span4 detailsbar">
+                                        <dl>
+                        <dt>File</dt>
+                            <dd>
+                                <a href="../files/lib.PicoPluginInterface.html"><div class="path-wrapper">lib/PicoPluginInterface.php</div></a>
+                            </dd>
+                                                <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">\Default</div></dd>
+                                                
+                                                                            <dt>See also</dt>
+                                                                                    <dd><a href="http://picocms.org"><div class="namespace-wrapper">http://picocms.org</div></a></dd>
+                                                                        </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                            <tr>
+                            <th>author</th>
+                            <td>
+                                                                    <p>Daniel Rudolf</p>
+                                                            </td>
+                        </tr>
+                                            <tr>
+                            <th>license</th>
+                            <td>
+                                                                    <p><a href="http://opensource.org/licenses/MIT">http://opensource.org/licenses/MIT</a></p>
+                                                            </td>
+                        </tr>
+                                            <tr>
+                            <th>version</th>
+                            <td>
+                                                                    
+                                                            </td>
+                        </tr>
+                                        </table>
+                </aside>
+            </div>
+
+            
+                        <div class="row-fluid">
+                <div class="span8 content class">
+                    <h2>Methods</h2>
+                </div>
+                <aside class="span4 detailsbar"></aside>
+            </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method___construct" name="method___construct" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">__construct()</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;">__construct(\Pico  <span class="argument">$pico</span>) </pre>
+                <p><em>Constructs a new instance of a Pico plugin</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td><a href="../classes/Pico.html">\Pico</a></td>
+                                <td>$pico </td>
+                                <td><p>current instance of Pico</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_handleEvent" name="method_handleEvent" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">handleEvent()</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;">handleEvent(string  <span class="argument">$eventName</span>, array  <span class="argument">$params</span>) : void</pre>
+                <p><em>Handles a event that was triggered by Pico</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>string</td>
+                                <td>$eventName </td>
+                                <td><p>name of the triggered event</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>array</td>
+                                <td>$params </td>
+                                <td><p>passed parameters</p></td>
+                            </tr>
+                                            </table>
+                
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_setEnabled" name="method_setEnabled" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">setEnabled()</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;">setEnabled(boolean  <span class="argument">$enabled</span>, boolean  <span class="argument">$recursive = true</span>, boolean  <span class="argument">$auto = false</span>) : void</pre>
+                <p><em>Enables or disables this plugin</em></p>
+                
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$enabled </td>
+                                <td><p>enable (true) or disable (false) this plugin</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$recursive </td>
+                                <td><p>when true, enable or disable recursively
+In other words, if you enable a plugin, all required plugins are
+enabled, too. When disabling a plugin, all depending plugins are
+disabled likewise. Recursive operations are only performed as long
+as a plugin wasn't enabled/disabled manually. This parameter is
+optional and defaults to true.</p></td>
+                            </tr>
+                                                    <tr>
+                                <td>boolean</td>
+                                <td>$auto </td>
+                                <td><p>enable or disable to fulfill a dependency
+This parameter is optional and defaults to false.</p></td>
+                            </tr>
+                                            </table>
+                
+                                    <h4>Throws</h4>
+                    <dl>
+                                                    <dt>\RuntimeException</dt>
+                            <dd><p>thrown when a dependency fails</p></dd>
+                                                                    </dl>
+                
+                				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_isEnabled" name="method_isEnabled" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">isEnabled()</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;">isEnabled() : boolean</pre>
+                <p><em>Returns true if this plugin is enabled, false otherwise</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    boolean
+                                            &mdash; <p>plugin is enabled (true) or disabled (false)</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_isStatusChanged" name="method_isStatusChanged" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">isStatusChanged()</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;">isStatusChanged() : boolean</pre>
+                <p><em>Returns true if the plugin was ever enabled/disabled manually</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    boolean
+                                            &mdash; <p>plugin is in its default state (true), false otherwise</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getDependencies" name="method_getDependencies" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getDependencies()</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;">getDependencies() : array&lt;mixed,string&gt;</pre>
+                <p><em>Returns a list of names of plugins required by this plugin</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,string&gt;
+                                            &mdash; <p>required plugins</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getDependants" name="method_getDependants" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getDependants()</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;">getDependants() : array&lt;mixed,object&gt;</pre>
+                <p><em>Returns a list of plugins which depend on this plugin</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    array&lt;mixed,object&gt;
+                                            &mdash; <p>dependant plugins</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getPico" name="method_getPico" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getPico()</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;">getPico() : \Pico</pre>
+                <p><em>Returns the plugins instance of Pico</em></p>
+                
+
+                
+                
+                                    <h4>Returns</h4>
+                    <a href="../classes/Pico.html">\Pico</a>
+                                            &mdash; <p>the plugins instance of Pico</p>
+                                    				
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                                                    </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label">PicoPluginInterface.php</h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/lib/PicoPluginInterface.php.txt" class="language-php"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 731 - 0
phpDocumentor/css/bootstrap-combined.no-icons.min.css


+ 403 - 0
phpDocumentor/css/font-awesome.min.css

@@ -0,0 +1,403 @@
+@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;}
+[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;}
+.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;}
+a [class^="icon-"],a [class*=" icon-"]{display:inline;}
+[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;}
+.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;}
+.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;}
+[class^="icon-"].hide,[class*=" icon-"].hide{display:none;}
+.icon-muted{color:#eeeeee;}
+.icon-light{color:#ffffff;}
+.icon-dark{color:#333333;}
+.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
+.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;}
+.pull-right{float:right;}
+.pull-left{float:left;}
+[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;}
+[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;}
+[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;}
+.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;}
+.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;}
+.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;}
+.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;}
+.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;}
+.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;}
+.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;}
+.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;}
+.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;}
+.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;}
+.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;}
+.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;}
+.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;}
+.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;}
+a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;}
+@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);}
+.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);}
+.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}
+.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);}
+.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);}
+a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;}
+.icon-glass:before{content:"\f000";}
+.icon-music:before{content:"\f001";}
+.icon-search:before{content:"\f002";}
+.icon-envelope-alt:before{content:"\f003";}
+.icon-heart:before{content:"\f004";}
+.icon-star:before{content:"\f005";}
+.icon-star-empty:before{content:"\f006";}
+.icon-user:before{content:"\f007";}
+.icon-film:before{content:"\f008";}
+.icon-th-large:before{content:"\f009";}
+.icon-th:before{content:"\f00a";}
+.icon-th-list:before{content:"\f00b";}
+.icon-ok:before{content:"\f00c";}
+.icon-remove:before{content:"\f00d";}
+.icon-zoom-in:before{content:"\f00e";}
+.icon-zoom-out:before{content:"\f010";}
+.icon-power-off:before,.icon-off:before{content:"\f011";}
+.icon-signal:before{content:"\f012";}
+.icon-gear:before,.icon-cog:before{content:"\f013";}
+.icon-trash:before{content:"\f014";}
+.icon-home:before{content:"\f015";}
+.icon-file-alt:before{content:"\f016";}
+.icon-time:before{content:"\f017";}
+.icon-road:before{content:"\f018";}
+.icon-download-alt:before{content:"\f019";}
+.icon-download:before{content:"\f01a";}
+.icon-upload:before{content:"\f01b";}
+.icon-inbox:before{content:"\f01c";}
+.icon-play-circle:before{content:"\f01d";}
+.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";}
+.icon-refresh:before{content:"\f021";}
+.icon-list-alt:before{content:"\f022";}
+.icon-lock:before{content:"\f023";}
+.icon-flag:before{content:"\f024";}
+.icon-headphones:before{content:"\f025";}
+.icon-volume-off:before{content:"\f026";}
+.icon-volume-down:before{content:"\f027";}
+.icon-volume-up:before{content:"\f028";}
+.icon-qrcode:before{content:"\f029";}
+.icon-barcode:before{content:"\f02a";}
+.icon-tag:before{content:"\f02b";}
+.icon-tags:before{content:"\f02c";}
+.icon-book:before{content:"\f02d";}
+.icon-bookmark:before{content:"\f02e";}
+.icon-print:before{content:"\f02f";}
+.icon-camera:before{content:"\f030";}
+.icon-font:before{content:"\f031";}
+.icon-bold:before{content:"\f032";}
+.icon-italic:before{content:"\f033";}
+.icon-text-height:before{content:"\f034";}
+.icon-text-width:before{content:"\f035";}
+.icon-align-left:before{content:"\f036";}
+.icon-align-center:before{content:"\f037";}
+.icon-align-right:before{content:"\f038";}
+.icon-align-justify:before{content:"\f039";}
+.icon-list:before{content:"\f03a";}
+.icon-indent-left:before{content:"\f03b";}
+.icon-indent-right:before{content:"\f03c";}
+.icon-facetime-video:before{content:"\f03d";}
+.icon-picture:before{content:"\f03e";}
+.icon-pencil:before{content:"\f040";}
+.icon-map-marker:before{content:"\f041";}
+.icon-adjust:before{content:"\f042";}
+.icon-tint:before{content:"\f043";}
+.icon-edit:before{content:"\f044";}
+.icon-share:before{content:"\f045";}
+.icon-check:before{content:"\f046";}
+.icon-move:before{content:"\f047";}
+.icon-step-backward:before{content:"\f048";}
+.icon-fast-backward:before{content:"\f049";}
+.icon-backward:before{content:"\f04a";}
+.icon-play:before{content:"\f04b";}
+.icon-pause:before{content:"\f04c";}
+.icon-stop:before{content:"\f04d";}
+.icon-forward:before{content:"\f04e";}
+.icon-fast-forward:before{content:"\f050";}
+.icon-step-forward:before{content:"\f051";}
+.icon-eject:before{content:"\f052";}
+.icon-chevron-left:before{content:"\f053";}
+.icon-chevron-right:before{content:"\f054";}
+.icon-plus-sign:before{content:"\f055";}
+.icon-minus-sign:before{content:"\f056";}
+.icon-remove-sign:before{content:"\f057";}
+.icon-ok-sign:before{content:"\f058";}
+.icon-question-sign:before{content:"\f059";}
+.icon-info-sign:before{content:"\f05a";}
+.icon-screenshot:before{content:"\f05b";}
+.icon-remove-circle:before{content:"\f05c";}
+.icon-ok-circle:before{content:"\f05d";}
+.icon-ban-circle:before{content:"\f05e";}
+.icon-arrow-left:before{content:"\f060";}
+.icon-arrow-right:before{content:"\f061";}
+.icon-arrow-up:before{content:"\f062";}
+.icon-arrow-down:before{content:"\f063";}
+.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";}
+.icon-resize-full:before{content:"\f065";}
+.icon-resize-small:before{content:"\f066";}
+.icon-plus:before{content:"\f067";}
+.icon-minus:before{content:"\f068";}
+.icon-asterisk:before{content:"\f069";}
+.icon-exclamation-sign:before{content:"\f06a";}
+.icon-gift:before{content:"\f06b";}
+.icon-leaf:before{content:"\f06c";}
+.icon-fire:before{content:"\f06d";}
+.icon-eye-open:before{content:"\f06e";}
+.icon-eye-close:before{content:"\f070";}
+.icon-warning-sign:before{content:"\f071";}
+.icon-plane:before{content:"\f072";}
+.icon-calendar:before{content:"\f073";}
+.icon-random:before{content:"\f074";}
+.icon-comment:before{content:"\f075";}
+.icon-magnet:before{content:"\f076";}
+.icon-chevron-up:before{content:"\f077";}
+.icon-chevron-down:before{content:"\f078";}
+.icon-retweet:before{content:"\f079";}
+.icon-shopping-cart:before{content:"\f07a";}
+.icon-folder-close:before{content:"\f07b";}
+.icon-folder-open:before{content:"\f07c";}
+.icon-resize-vertical:before{content:"\f07d";}
+.icon-resize-horizontal:before{content:"\f07e";}
+.icon-bar-chart:before{content:"\f080";}
+.icon-twitter-sign:before{content:"\f081";}
+.icon-facebook-sign:before{content:"\f082";}
+.icon-camera-retro:before{content:"\f083";}
+.icon-key:before{content:"\f084";}
+.icon-gears:before,.icon-cogs:before{content:"\f085";}
+.icon-comments:before{content:"\f086";}
+.icon-thumbs-up-alt:before{content:"\f087";}
+.icon-thumbs-down-alt:before{content:"\f088";}
+.icon-star-half:before{content:"\f089";}
+.icon-heart-empty:before{content:"\f08a";}
+.icon-signout:before{content:"\f08b";}
+.icon-linkedin-sign:before{content:"\f08c";}
+.icon-pushpin:before{content:"\f08d";}
+.icon-external-link:before{content:"\f08e";}
+.icon-signin:before{content:"\f090";}
+.icon-trophy:before{content:"\f091";}
+.icon-github-sign:before{content:"\f092";}
+.icon-upload-alt:before{content:"\f093";}
+.icon-lemon:before{content:"\f094";}
+.icon-phone:before{content:"\f095";}
+.icon-unchecked:before,.icon-check-empty:before{content:"\f096";}
+.icon-bookmark-empty:before{content:"\f097";}
+.icon-phone-sign:before{content:"\f098";}
+.icon-twitter:before{content:"\f099";}
+.icon-facebook:before{content:"\f09a";}
+.icon-github:before{content:"\f09b";}
+.icon-unlock:before{content:"\f09c";}
+.icon-credit-card:before{content:"\f09d";}
+.icon-rss:before{content:"\f09e";}
+.icon-hdd:before{content:"\f0a0";}
+.icon-bullhorn:before{content:"\f0a1";}
+.icon-bell:before{content:"\f0a2";}
+.icon-certificate:before{content:"\f0a3";}
+.icon-hand-right:before{content:"\f0a4";}
+.icon-hand-left:before{content:"\f0a5";}
+.icon-hand-up:before{content:"\f0a6";}
+.icon-hand-down:before{content:"\f0a7";}
+.icon-circle-arrow-left:before{content:"\f0a8";}
+.icon-circle-arrow-right:before{content:"\f0a9";}
+.icon-circle-arrow-up:before{content:"\f0aa";}
+.icon-circle-arrow-down:before{content:"\f0ab";}
+.icon-globe:before{content:"\f0ac";}
+.icon-wrench:before{content:"\f0ad";}
+.icon-tasks:before{content:"\f0ae";}
+.icon-filter:before{content:"\f0b0";}
+.icon-briefcase:before{content:"\f0b1";}
+.icon-fullscreen:before{content:"\f0b2";}
+.icon-group:before{content:"\f0c0";}
+.icon-link:before{content:"\f0c1";}
+.icon-cloud:before{content:"\f0c2";}
+.icon-beaker:before{content:"\f0c3";}
+.icon-cut:before{content:"\f0c4";}
+.icon-copy:before{content:"\f0c5";}
+.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";}
+.icon-save:before{content:"\f0c7";}
+.icon-sign-blank:before{content:"\f0c8";}
+.icon-reorder:before{content:"\f0c9";}
+.icon-list-ul:before{content:"\f0ca";}
+.icon-list-ol:before{content:"\f0cb";}
+.icon-strikethrough:before{content:"\f0cc";}
+.icon-underline:before{content:"\f0cd";}
+.icon-table:before{content:"\f0ce";}
+.icon-magic:before{content:"\f0d0";}
+.icon-truck:before{content:"\f0d1";}
+.icon-pinterest:before{content:"\f0d2";}
+.icon-pinterest-sign:before{content:"\f0d3";}
+.icon-google-plus-sign:before{content:"\f0d4";}
+.icon-google-plus:before{content:"\f0d5";}
+.icon-money:before{content:"\f0d6";}
+.icon-caret-down:before{content:"\f0d7";}
+.icon-caret-up:before{content:"\f0d8";}
+.icon-caret-left:before{content:"\f0d9";}
+.icon-caret-right:before{content:"\f0da";}
+.icon-columns:before{content:"\f0db";}
+.icon-sort:before{content:"\f0dc";}
+.icon-sort-down:before{content:"\f0dd";}
+.icon-sort-up:before{content:"\f0de";}
+.icon-envelope:before{content:"\f0e0";}
+.icon-linkedin:before{content:"\f0e1";}
+.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";}
+.icon-legal:before{content:"\f0e3";}
+.icon-dashboard:before{content:"\f0e4";}
+.icon-comment-alt:before{content:"\f0e5";}
+.icon-comments-alt:before{content:"\f0e6";}
+.icon-bolt:before{content:"\f0e7";}
+.icon-sitemap:before{content:"\f0e8";}
+.icon-umbrella:before{content:"\f0e9";}
+.icon-paste:before{content:"\f0ea";}
+.icon-lightbulb:before{content:"\f0eb";}
+.icon-exchange:before{content:"\f0ec";}
+.icon-cloud-download:before{content:"\f0ed";}
+.icon-cloud-upload:before{content:"\f0ee";}
+.icon-user-md:before{content:"\f0f0";}
+.icon-stethoscope:before{content:"\f0f1";}
+.icon-suitcase:before{content:"\f0f2";}
+.icon-bell-alt:before{content:"\f0f3";}
+.icon-coffee:before{content:"\f0f4";}
+.icon-food:before{content:"\f0f5";}
+.icon-file-text-alt:before{content:"\f0f6";}
+.icon-building:before{content:"\f0f7";}
+.icon-hospital:before{content:"\f0f8";}
+.icon-ambulance:before{content:"\f0f9";}
+.icon-medkit:before{content:"\f0fa";}
+.icon-fighter-jet:before{content:"\f0fb";}
+.icon-beer:before{content:"\f0fc";}
+.icon-h-sign:before{content:"\f0fd";}
+.icon-plus-sign-alt:before{content:"\f0fe";}
+.icon-double-angle-left:before{content:"\f100";}
+.icon-double-angle-right:before{content:"\f101";}
+.icon-double-angle-up:before{content:"\f102";}
+.icon-double-angle-down:before{content:"\f103";}
+.icon-angle-left:before{content:"\f104";}
+.icon-angle-right:before{content:"\f105";}
+.icon-angle-up:before{content:"\f106";}
+.icon-angle-down:before{content:"\f107";}
+.icon-desktop:before{content:"\f108";}
+.icon-laptop:before{content:"\f109";}
+.icon-tablet:before{content:"\f10a";}
+.icon-mobile-phone:before{content:"\f10b";}
+.icon-circle-blank:before{content:"\f10c";}
+.icon-quote-left:before{content:"\f10d";}
+.icon-quote-right:before{content:"\f10e";}
+.icon-spinner:before{content:"\f110";}
+.icon-circle:before{content:"\f111";}
+.icon-mail-reply:before,.icon-reply:before{content:"\f112";}
+.icon-github-alt:before{content:"\f113";}
+.icon-folder-close-alt:before{content:"\f114";}
+.icon-folder-open-alt:before{content:"\f115";}
+.icon-expand-alt:before{content:"\f116";}
+.icon-collapse-alt:before{content:"\f117";}
+.icon-smile:before{content:"\f118";}
+.icon-frown:before{content:"\f119";}
+.icon-meh:before{content:"\f11a";}
+.icon-gamepad:before{content:"\f11b";}
+.icon-keyboard:before{content:"\f11c";}
+.icon-flag-alt:before{content:"\f11d";}
+.icon-flag-checkered:before{content:"\f11e";}
+.icon-terminal:before{content:"\f120";}
+.icon-code:before{content:"\f121";}
+.icon-reply-all:before{content:"\f122";}
+.icon-mail-reply-all:before{content:"\f122";}
+.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";}
+.icon-location-arrow:before{content:"\f124";}
+.icon-crop:before{content:"\f125";}
+.icon-code-fork:before{content:"\f126";}
+.icon-unlink:before{content:"\f127";}
+.icon-question:before{content:"\f128";}
+.icon-info:before{content:"\f129";}
+.icon-exclamation:before{content:"\f12a";}
+.icon-superscript:before{content:"\f12b";}
+.icon-subscript:before{content:"\f12c";}
+.icon-eraser:before{content:"\f12d";}
+.icon-puzzle-piece:before{content:"\f12e";}
+.icon-microphone:before{content:"\f130";}
+.icon-microphone-off:before{content:"\f131";}
+.icon-shield:before{content:"\f132";}
+.icon-calendar-empty:before{content:"\f133";}
+.icon-fire-extinguisher:before{content:"\f134";}
+.icon-rocket:before{content:"\f135";}
+.icon-maxcdn:before{content:"\f136";}
+.icon-chevron-sign-left:before{content:"\f137";}
+.icon-chevron-sign-right:before{content:"\f138";}
+.icon-chevron-sign-up:before{content:"\f139";}
+.icon-chevron-sign-down:before{content:"\f13a";}
+.icon-html5:before{content:"\f13b";}
+.icon-css3:before{content:"\f13c";}
+.icon-anchor:before{content:"\f13d";}
+.icon-unlock-alt:before{content:"\f13e";}
+.icon-bullseye:before{content:"\f140";}
+.icon-ellipsis-horizontal:before{content:"\f141";}
+.icon-ellipsis-vertical:before{content:"\f142";}
+.icon-rss-sign:before{content:"\f143";}
+.icon-play-sign:before{content:"\f144";}
+.icon-ticket:before{content:"\f145";}
+.icon-minus-sign-alt:before{content:"\f146";}
+.icon-check-minus:before{content:"\f147";}
+.icon-level-up:before{content:"\f148";}
+.icon-level-down:before{content:"\f149";}
+.icon-check-sign:before{content:"\f14a";}
+.icon-edit-sign:before{content:"\f14b";}
+.icon-external-link-sign:before{content:"\f14c";}
+.icon-share-sign:before{content:"\f14d";}
+.icon-compass:before{content:"\f14e";}
+.icon-collapse:before{content:"\f150";}
+.icon-collapse-top:before{content:"\f151";}
+.icon-expand:before{content:"\f152";}
+.icon-euro:before,.icon-eur:before{content:"\f153";}
+.icon-gbp:before{content:"\f154";}
+.icon-dollar:before,.icon-usd:before{content:"\f155";}
+.icon-rupee:before,.icon-inr:before{content:"\f156";}
+.icon-yen:before,.icon-jpy:before{content:"\f157";}
+.icon-renminbi:before,.icon-cny:before{content:"\f158";}
+.icon-won:before,.icon-krw:before{content:"\f159";}
+.icon-bitcoin:before,.icon-btc:before{content:"\f15a";}
+.icon-file:before{content:"\f15b";}
+.icon-file-text:before{content:"\f15c";}
+.icon-sort-by-alphabet:before{content:"\f15d";}
+.icon-sort-by-alphabet-alt:before{content:"\f15e";}
+.icon-sort-by-attributes:before{content:"\f160";}
+.icon-sort-by-attributes-alt:before{content:"\f161";}
+.icon-sort-by-order:before{content:"\f162";}
+.icon-sort-by-order-alt:before{content:"\f163";}
+.icon-thumbs-up:before{content:"\f164";}
+.icon-thumbs-down:before{content:"\f165";}
+.icon-youtube-sign:before{content:"\f166";}
+.icon-youtube:before{content:"\f167";}
+.icon-xing:before{content:"\f168";}
+.icon-xing-sign:before{content:"\f169";}
+.icon-youtube-play:before{content:"\f16a";}
+.icon-dropbox:before{content:"\f16b";}
+.icon-stackexchange:before{content:"\f16c";}
+.icon-instagram:before{content:"\f16d";}
+.icon-flickr:before{content:"\f16e";}
+.icon-adn:before{content:"\f170";}
+.icon-bitbucket:before{content:"\f171";}
+.icon-bitbucket-sign:before{content:"\f172";}
+.icon-tumblr:before{content:"\f173";}
+.icon-tumblr-sign:before{content:"\f174";}
+.icon-long-arrow-down:before{content:"\f175";}
+.icon-long-arrow-up:before{content:"\f176";}
+.icon-long-arrow-left:before{content:"\f177";}
+.icon-long-arrow-right:before{content:"\f178";}
+.icon-apple:before{content:"\f179";}
+.icon-windows:before{content:"\f17a";}
+.icon-android:before{content:"\f17b";}
+.icon-linux:before{content:"\f17c";}
+.icon-dribbble:before{content:"\f17d";}
+.icon-skype:before{content:"\f17e";}
+.icon-foursquare:before{content:"\f180";}
+.icon-trello:before{content:"\f181";}
+.icon-female:before{content:"\f182";}
+.icon-male:before{content:"\f183";}
+.icon-gittip:before{content:"\f184";}
+.icon-sun:before{content:"\f185";}
+.icon-moon:before{content:"\f186";}
+.icon-archive:before{content:"\f187";}
+.icon-bug:before{content:"\f188";}
+.icon-vk:before{content:"\f189";}
+.icon-weibo:before{content:"\f18a";}
+.icon-renren:before{content:"\f18b";}

+ 65 - 0
phpDocumentor/css/jquery.iviewer.css

@@ -0,0 +1,65 @@
+.viewer {
+    -ms-touch-action: none;
+}
+
+.iviewer_common {
+    position:absolute;
+    bottom:10px;
+    border: 1px  solid #000;
+    height: 28px;
+    z-index: 5000;
+}
+
+.iviewer_cursor {
+    cursor: url(../images/iviewer/hand.cur) 6 8, pointer;
+}
+
+.iviewer_drag_cursor {
+    cursor: url(../images/iviewer/grab.cur) 6 8, pointer;
+}
+
+.iviewer_button {
+    width: 28px;
+    cursor: pointer;
+    background-position: center center;
+    background-repeat: no-repeat;
+}
+
+.iviewer_zoom_in {
+    left: 20px;
+    background: url(../images/iviewer/iviewer.zoom_in.png);
+}
+
+.iviewer_zoom_out {
+    left: 55px;
+    background: url(../images/iviewer/iviewer.zoom_out.png);
+}
+
+.iviewer_zoom_zero {
+    left: 90px;
+    background: url(../images/iviewer/iviewer.zoom_zero.png);
+}
+
+.iviewer_zoom_fit {
+    left: 125px;
+    background: url(../images/iviewer/iviewer.zoom_fit.png);
+}
+
+.iviewer_zoom_status {
+    left: 160px;
+    font: 1em/28px Sans;
+    color: #000;
+    background-color: #fff;
+    text-align: center;
+    width: 60px;
+}
+
+.iviewer_rotate_left {
+    left: 227px;
+    background: #fff url(../images/iviewer/iviewer.rotate_left.png) center center no-repeat;
+}
+
+.iviewer_rotate_right {
+    left: 262px;
+    background: #fff url(../images/iviewer/iviewer.rotate_right.png) center center no-repeat;
+}

+ 3 - 0
phpDocumentor/css/phpdocumentor-clean-icons/Read Me.txt

@@ -0,0 +1,3 @@
+To modify your generated font, use the *dev.svg* file, located in the *fonts* folder in this package. You can import this dev.svg file to the IcoMoon app. All the tags (class names) and the Unicode points of your glyphs are saved in this file.
+
+See the documentation for more info on how to use this package: http://icomoon.io/#docs/font-face

+ 17 - 0
phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg

@@ -0,0 +1,17 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+This is a custom SVG font generated by IcoMoon.
+<iconset id="phpdocumentor-clean-icons" name="phpdocumentor-clean-icons" href="http://www.phpdoc.org" grid="16"></iconset><author name="Mike van Riel" href="http://www.mikevanriel.com"></author><license name="SIL"></license>
+</metadata>
+<defs>
+<font id="phpdocumentor-clean-icons" horiz-adv-x="512" >
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
+<glyph unicode="&#xe000;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 359.963,366.827  m0,0,0-43.124 -84.271,0 0-231.052 -50.246,0 0,231.052 -84.271,0 0,43.124 218.787,0" data-tags="trait" />
+<glyph unicode="&#xe001;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 231.075,366.827  m0,0, 49.85,0 0-274.176 -49.85,0 0,274.176" data-tags="interface" />
+<glyph unicode="&#xe002;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 278.749,86.717  m0,0,c -20.573,0 -39.036,3.165 -55.389,9.495 -16.353,6.33 -30.2,15.562 -41.542,27.695 -11.342,12.397 -20.046,27.431 -26.112,45.103 -6.066,17.672 -9.1,37.981 -9.1,60.928 0,22.947 3.429,43.256 10.287,60.928 7.121,17.672 16.749,32.574 28.881,44.707 12.133,12.396 26.376,21.76 42.729,28.090 16.353,6.33 33.893,9.495 52.62,9.495 11.341,0 21.628-0.923 30.86-2.769 9.231-1.583 17.276-3.429 24.134-5.539 6.857-2.11 12.528-4.352 17.012-6.726 4.484-2.374 7.649-4.089 9.495-5.143 l -14.639-40.751 c -6.33,3.956 -15.43,7.649 -27.299,11.078 -11.606,3.692 -24.266,5.539 -37.981,5.539 -11.869,0 -22.947-2.11 -33.233-6.33 -10.287-3.957 -19.254-10.023 -26.903-18.199 -7.385-8.177 -13.188-18.463 -17.408-30.86 -4.22-12.397 -6.33-26.772 -6.33-43.124 0-14.507 1.582-27.827 4.748-39.959 3.429-12.133 8.572-22.683 15.43-31.651 6.858-8.704 15.562-15.562 26.112-20.573 10.55-4.748 23.211-7.122 37.981-7.121 17.672,0 32.046,1.714 43.124,5.143 11.078,3.693 19.65,7.121 25.716,10.287 l 13.452-40.751 c -3.165-2.11 -7.517-4.22 -13.056-6.33 -5.275-2.11 -11.606-4.22 -18.991-6.33 -7.385-1.846 -15.694-3.297 -24.925-4.352 -9.232-1.319 -19.123-1.978 -29.673-1.978" data-tags="class" />
+<glyph unicode="&#x20;" horiz-adv-x="256" />
+</font></defs></svg>

BIN
phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot


+ 17 - 0
phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg

@@ -0,0 +1,17 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+This is a custom SVG font generated by IcoMoon.
+<iconset id="phpdocumentor-clean-icons" name="phpdocumentor-clean-icons" href="http://www.phpdoc.org" grid="16"></iconset><author name="Mike van Riel" href="http://www.mikevanriel.com"></author><license name="SIL"></license>
+</metadata>
+<defs>
+<font id="phpdocumentor-clean-icons" horiz-adv-x="512" >
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
+<glyph unicode="&#xe000;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 359.963,366.827  m0,0,0-43.124 -84.271,0 0-231.052 -50.246,0 0,231.052 -84.271,0 0,43.124 218.787,0"  />
+<glyph unicode="&#xe001;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 231.075,366.827  m0,0, 49.85,0 0-274.176 -49.85,0 0,274.176"  />
+<glyph unicode="&#xe002;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 278.749,86.717  m0,0,c -20.573,0 -39.036,3.165 -55.389,9.495 -16.353,6.33 -30.2,15.562 -41.542,27.695 -11.342,12.397 -20.046,27.431 -26.112,45.103 -6.066,17.672 -9.1,37.981 -9.1,60.928 0,22.947 3.429,43.256 10.287,60.928 7.121,17.672 16.749,32.574 28.881,44.707 12.133,12.396 26.376,21.76 42.729,28.090 16.353,6.33 33.893,9.495 52.62,9.495 11.341,0 21.628-0.923 30.86-2.769 9.231-1.583 17.276-3.429 24.134-5.539 6.857-2.11 12.528-4.352 17.012-6.726 4.484-2.374 7.649-4.089 9.495-5.143 l -14.639-40.751 c -6.33,3.956 -15.43,7.649 -27.299,11.078 -11.606,3.692 -24.266,5.539 -37.981,5.539 -11.869,0 -22.947-2.11 -33.233-6.33 -10.287-3.957 -19.254-10.023 -26.903-18.199 -7.385-8.177 -13.188-18.463 -17.408-30.86 -4.22-12.397 -6.33-26.772 -6.33-43.124 0-14.507 1.582-27.827 4.748-39.959 3.429-12.133 8.572-22.683 15.43-31.651 6.858-8.704 15.562-15.562 26.112-20.573 10.55-4.748 23.211-7.122 37.981-7.121 17.672,0 32.046,1.714 43.124,5.143 11.078,3.693 19.65,7.121 25.716,10.287 l 13.452-40.751 c -3.165-2.11 -7.517-4.22 -13.056-6.33 -5.275-2.11 -11.606-4.22 -18.991-6.33 -7.385-1.846 -15.694-3.297 -24.925-4.352 -9.232-1.319 -19.123-1.978 -29.673-1.978"  />
+<glyph unicode="&#x20;" horiz-adv-x="256" />
+</font></defs></svg>

BIN
phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf


BIN
phpDocumentor/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff


+ 30 - 0
phpDocumentor/css/phpdocumentor-clean-icons/lte-ie7.js

@@ -0,0 +1,30 @@
+/* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */
+
+window.onload = function() {
+	function addIcon(el, entity) {
+		var html = el.innerHTML;
+		el.innerHTML = '<span style="font-family: \'phpdocumentor-clean-icons\'">' + entity + '</span>' + html;
+	}
+	var icons = {
+			'icon-trait' : '&#xe000;',
+			'icon-interface' : '&#xe001;',
+			'icon-class' : '&#xe002;'
+		},
+		els = document.getElementsByTagName('*'),
+		i, attr, html, c, el;
+	for (i = 0; ; i += 1) {
+		el = els[i];
+		if(!el) {
+			break;
+		}
+		attr = el.getAttribute('data-icon');
+		if (attr) {
+			addIcon(el, attr);
+		}
+		c = el.className;
+		c = c.match(/icon-[^\s'"]+/);
+		if (c && icons[c[0]]) {
+			addIcon(el, icons[c[0]]);
+		}
+	}
+};

+ 48 - 0
phpDocumentor/css/phpdocumentor-clean-icons/style.css

@@ -0,0 +1,48 @@
+@font-face {
+	font-family: 'phpdocumentor-clean-icons';
+	src:url('fonts/phpdocumentor-clean-icons.eot');
+	src:url('fonts/phpdocumentor-clean-icons.eot?#iefix') format('embedded-opentype'),
+		url('fonts/phpdocumentor-clean-icons.woff') format('woff'),
+		url('fonts/phpdocumentor-clean-icons.ttf') format('truetype'),
+		url('fonts/phpdocumentor-clean-icons.svg#phpdocumentor-clean-icons') format('svg');
+	font-weight: normal;
+	font-style: normal;
+}
+
+/* Use the following CSS code if you want to use data attributes for inserting your icons */
+[data-icon]:before {
+	font-family: 'phpdocumentor-clean-icons';
+	content: attr(data-icon);
+	speak: none;
+	font-weight: normal;
+	font-variant: normal;
+	text-transform: none;
+	line-height: 1;
+	-webkit-font-smoothing: antialiased;
+}
+
+/* Use the following CSS code if you want to have a class per icon */
+/*
+Instead of a list of all class selectors,
+you can use the generic selector below, but it's slower:
+[class*="icon-"] {
+*/
+.icon-trait, .icon-interface, .icon-class {
+	font-family: 'phpdocumentor-clean-icons';
+	speak: none;
+	font-style: normal;
+	font-weight: normal;
+	font-variant: normal;
+	text-transform: none;
+	line-height: 1;
+	-webkit-font-smoothing: antialiased;
+}
+.icon-trait:before {
+	content: "\e000";
+}
+.icon-interface:before {
+	content: "\e001";
+}
+.icon-class:before {
+	content: "\e002";
+}

+ 204 - 0
phpDocumentor/css/prism.css

@@ -0,0 +1,204 @@
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+	color: black;
+	text-shadow: 0 1px white;
+	font-family: Consolas, Monaco, 'Andale Mono', monospace;
+	direction: ltr;
+	text-align: left;
+	white-space: pre;
+	word-spacing: normal;
+
+	-moz-tab-size: 4;
+	-o-tab-size: 4;
+	tab-size: 4;
+
+	-webkit-hyphens: none;
+	-moz-hyphens: none;
+	-ms-hyphens: none;
+	hyphens: none;
+}
+
+::-moz-selection {
+	text-shadow: none;
+	background: #b3d4fc;
+}
+
+::selection {
+	text-shadow: none;
+	background: #b3d4fc;
+}
+
+@media print {
+	code[class*="language-"],
+	pre[class*="language-"] {
+		text-shadow: none;
+	}
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+	padding: 1em;
+	margin: .5em 0;
+	overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+	background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+	padding: .1em;
+	border-radius: .3em;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+	color: slategray;
+}
+
+.token.punctuation {
+	color: #999;
+}
+
+.namespace {
+	opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number {
+	color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string {
+	color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+	color: #a67f59;
+	background: hsla(0,0%,100%,.5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+	color: #07a;
+}
+
+
+.token.regex,
+.token.important {
+	color: #e90;
+}
+
+.token.important {
+	font-weight: bold;
+}
+
+.token.entity {
+	cursor: help;
+}
+pre[data-line] {
+	position: relative;
+	padding: 1em 0 1em 3em;
+}
+
+.line-highlight {
+	position: absolute;
+	left: 0;
+	right: 0;
+	padding: inherit 0;
+	margin-top: 1em; /* Same as .prism’s padding-top */
+
+	background: hsla(24, 20%, 50%,.08);
+	background: -moz-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+	background: -webkit-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+	background: -o-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+	background: linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+	
+	pointer-events: none;
+	
+	line-height: inherit;
+	white-space: pre;
+}
+
+	.line-highlight:before,
+	.line-highlight[data-end]:after {
+		content: attr(data-start);
+		position: absolute;
+		top: .4em;
+		left: .6em;
+		min-width: 1em;
+		padding: 0 .5em;
+		background-color: hsla(24, 20%, 50%,.4);
+		color: hsl(24, 20%, 95%);
+		font: bold 65%/1.5 sans-serif;
+		text-align: center;
+		vertical-align: .3em;
+		border-radius: 999px;
+		text-shadow: none;
+		box-shadow: 0 1px white;
+	}
+	
+	.line-highlight[data-end]:after {
+		content: attr(data-end);
+		top: auto;
+		bottom: .4em;
+	}
+pre.line-numbers {
+	position: relative;
+	padding-left: 3.8em;
+	counter-reset: linenumber;
+}
+
+pre.line-numbers > code {
+	position: relative;
+}
+
+.line-numbers .line-numbers-rows {
+	position: absolute;
+	pointer-events: none;
+	top: 0;
+	font-size: 100%;
+	left: -3.8em;
+	width: 3em; /* works for line-numbers below 1000 lines */
+	letter-spacing: -1px;
+	border-right: 1px solid #999;
+
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+
+}
+
+	.line-numbers-rows > span {
+		pointer-events: none;
+		display: block;
+		counter-increment: linenumber;
+	}
+
+		.line-numbers-rows > span:before {
+			content: counter(linenumber);
+			color: #999;
+			display: block;
+			padding-right: 0.8em;
+			text-align: right;
+		}

+ 429 - 0
phpDocumentor/css/template.css

@@ -0,0 +1,429 @@
+@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro);
+@import url('phpdocumentor-clean-icons/style.css');
+
+body {
+    padding-top:      40px;
+    background-color: #333333;
+}
+
+a {
+    color: #6495ed;
+}
+a.anchor {
+    height: 40px;
+    margin-top: -40px;
+    display: block;
+}
+
+h1, h2, h3, h4, h5, h6, .brand {
+    font-family:    'Source Sans Pro', sans-serif;
+    font-weight:    normal;
+    letter-spacing: 0.05em;
+}
+
+h2, h3, .detailsbar h1 {
+    overflow:    hidden;
+    white-space: nowrap;
+    margin:      30px 0 20px 0;
+}
+
+h2:after, h3:after, .detailsbar h1:after {
+    content:        '';
+    display:        inline-block;
+    vertical-align: middle;
+    width:          100%;
+    height:         2px;
+    margin-left:    1em;
+    background:     silver;
+}
+
+h3 {
+    margin: 10px 0 20px 0;
+}
+
+h4 {
+    margin:    20px 0 10px 0;
+    color:     gray;
+    font-size: 18.5px;
+}
+
+h3.public, h3.protected, h3.private {
+    padding-left: 10px;
+    text-overflow: ellipsis;
+}
+
+.table tr:first-of-type th, .table tr:first-of-type td {
+    border-top: none;
+}
+.detailsbar {
+    color:            #eeeeee;
+    background-color: #333333;
+    font-size:        0.9em;
+    overflow:         hidden;
+    border-left:      2px solid gray;
+}
+
+.detailsbar h1 {
+    font-size:     1.5em;
+    margin-bottom: 20px;
+    margin-top:    0;
+}
+
+.detailsbar h2 {
+    font-size: 1.2em;
+    margin:    0;
+    padding:   0;
+}
+
+.detailsbar h1:after {
+    background: gray;
+}
+.detailsbar h2:after, .detailsbar h3:after {
+    background: transparent;
+}
+
+.detailsbar dt {
+    font-variant:   small-caps;
+    text-transform: lowercase;
+    font-size:      1.1em;
+    letter-spacing: 0.1em;
+    color:          silver;
+}
+
+.hierarchy div:nth-of-type(2) { margin-left: 11px; }
+.hierarchy div:nth-of-type(3) { margin-left: 22px; }
+.hierarchy div:nth-of-type(4) { margin-left: 33px; }
+.hierarchy div:nth-of-type(5) { margin-left: 44px; }
+.hierarchy div:nth-of-type(6) { margin-left: 55px; }
+.hierarchy div:nth-of-type(7) { margin-left: 66px; }
+.hierarchy div:nth-of-type(8) { margin-left: 77px; }
+.hierarchy div:nth-of-type(9) { margin-left: 88px; }
+.hierarchy div:before {
+    content: "\f0da";
+    font-family: FontAwesome;
+    margin-right: 5px;
+}
+
+.row-fluid {
+    background-color: white;
+    overflow:         hidden;
+}
+
+footer.row-fluid, footer.row-fluid * {
+    background-color: #333333;
+    color:            white;
+}
+
+footer.row-fluid {
+    border-top: 2px dashed #555;
+    margin-top: 2px;
+}
+
+.footer-sections .span4 {
+    border:        2px solid #555;
+    text-align:    center;
+    border-radius: 10px;
+    margin-top:    70px;
+    margin-bottom: 20px;
+    background:    #373737;
+}
+
+.footer-sections .span4 h1 {
+    background: transparent;
+    margin-top: -30px;
+    margin-bottom: 20px;
+    font-size:  5em;
+}
+
+.footer-sections .span4 h1 * {
+    background: transparent;
+}
+
+.footer-sections .span4 div {
+    border-bottom-right-radius: 6px;
+    border-bottom-left-radius: 6px;
+    padding: 10px;
+    min-height: 40px;
+}
+.footer-sections .span4 div, .footer-sections .span4 div * {
+    background-color: #555;
+}
+.footer-sections .span4 ul {
+    text-align: left;
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+.content {
+    background-color: white;
+    padding-right:    20px;
+}
+
+.content nav {
+    text-align:     center;
+    border-bottom:  1px solid silver;
+    margin:         5px 0 20px 0;
+    padding-bottom: 5px;
+}
+
+.content > h1 {
+    padding-bottom: 15px;
+}
+
+.content > h1 small {
+    display:        block;
+    padding-bottom: 8px;
+    font-size:      0.6em;
+}
+
+.deprecated {
+    text-decoration: line-through;
+}
+
+.method {
+    margin-bottom: 20px;
+}
+
+.method .signature .argument {
+    color:       maroon;
+    font-weight: bold;
+}
+
+.class #summary section.row-fluid {
+    overflow: hidden
+}
+
+.class #summary .heading {
+    font-weight: bold;
+    text-align:  center;
+}
+
+.class #summary section .span4 {
+    padding:        3px;
+    overflow:       hidden;
+    margin-bottom:  -9999px;
+    padding-bottom: 9999px;
+    white-space:    nowrap;
+    text-overflow:  ellipsis;
+    border-left:    5px solid transparent;
+}
+
+.class #summary section.public .span4:first-of-type:before,
+.class #summary section.public .span6:first-of-type:before,
+h3.public:before {
+    font-family: FontAwesome;
+    content:     "\f046";
+    color:       green;
+    display:     inline-block;
+    width:       1.2em;
+}
+
+.class #summary section .span4:first-of-type,
+.class #summary section .span6:first-of-type {
+    padding-left: 21px;
+}
+.class #summary section .span4:first-of-type:before,
+.class #summary section .span6:first-of-type:before {
+    margin-left: -21px;
+}
+.class #summary section.protected .span4:first-of-type:before,
+.class #summary section.protected .span6:first-of-type:before,
+h3.protected:before {
+    font-family: FontAwesome;
+    content:     "\f132";
+    color:       orange;
+    display:     inline-block;
+    width:       1.2em;
+}
+
+.class #summary section.private .span4:first-of-type:before,
+.class #summary section.private .span6:first-of-type:before,
+h3.private:before {
+    font-family: FontAwesome;
+    content:     "\f023";
+    color:       red;
+    display:     inline-block;
+    width:       1.2em;
+}
+
+.class #summary section em {
+    font-size: 0.9em;
+    color: silver;
+}
+.class #summary .inherited {
+    color:      gray;
+    font-style: italic;
+}
+
+.accordion-group {
+    border: none;
+}
+
+.accordion {
+    margin-bottom: 0;
+}
+
+.accordion a:hover {
+    text-decoration: none;
+    background:      #333333;
+    color:           #eeeeee;
+}
+
+.accordion-heading .accordion-toggle:before {
+    content:      "\f078";
+    font-family:  FontAwesome;
+    margin-right: 5px;
+}
+
+.accordion-heading .accordion-toggle.collapsed:before {
+    content: "\f054";
+}
+.accordion-heading .accordion-toggle {
+    float: left;
+    width: 16px;
+    height: 16px;
+    padding: 4px 2px 4px 12px;
+}
+.accordion-heading a {
+    display: block;
+    padding: 4px 12px;
+}
+
+.accordion-inner a {
+    display: block;
+    padding: 4px 12px;
+}
+
+.accordion-inner > ul a:before {
+    font-family: 'phpdocumentor-clean-icons';
+    content:      "\e001";
+    margin-right: 5px;
+}
+
+.accordion-inner li.class a:before {
+    content:      "\e002";
+}
+
+.accordion-inner li.interface a:before {
+    content:      "\e001";
+}
+
+.accordion-inner li.trait a:before {
+    content:      "\e000";
+}
+
+.accordion-inner {
+    padding: 4px 0 4px 12px;
+}
+.accordion-inner ul {
+    list-style: none;
+    padding:    0;
+    margin:     0;
+}
+
+.row-fluid .span2 {
+    width: 16.5%;
+}
+
+body .modal {
+    width: 90%; /* desired relative width */
+    left: 5%; /* (100%-width)/2 */
+    /* place center */
+    margin-left:auto;
+    margin-right:auto;
+}
+
+.side-nav.nav-list li a {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+
+@media (min-width: 767px) {
+    .sidebar {
+        position:         fixed;
+        top:              40px;
+        bottom:           0;
+        background-color: #f3f3f3;
+        left:             0;
+        border-right:     1px solid #e9e9e9;
+        overflow-y:       scroll;
+        overflow-x:       hidden;
+        padding-top:      10px;
+    }
+
+    .sidebar::-webkit-scrollbar {
+        width: 10px;
+    }
+
+    .sidebar::-webkit-scrollbar-thumb {
+        background:      #cccccc;
+        background-clip: padding-box;
+        border:          3px solid #f3f3f3;
+        border-radius:   5px;
+    }
+
+    .sidebar::-webkit-scrollbar-button {
+        display: none;
+    }
+
+    .sidebar::-webkit-scrollbar-track {
+        background: #f3f3f3;
+    }
+}
+
+@media (max-width: 979px) {
+    body {
+        padding-top: 0;
+    }
+}
+
+@media (max-width: 767px) {
+    .class #summary .heading {
+        display: none;
+    }
+
+    .detailsbar h1 {
+        display: none;
+    }
+
+    body {
+        background-color: white;
+    }
+
+    footer.row-fluid, footer.row-fluid * {
+        background-color: white;
+    }
+
+    .footer-sections .span4 h1 {
+        color: #ccccd9;
+        margin-top: 0;
+    }
+
+    .detailsbar {
+        background-color: white;
+        color: #333;
+        border: none;
+    }
+
+    .row-fluid .span2 {
+        width: 100%;
+    }
+}
+
+@media (min-width: 767px) {
+    .detailsbar {
+        min-height:     100%;
+        margin-bottom:  -99999px;
+        padding-bottom: 99999px;
+        padding-left:   20px;
+        padding-top:    10px;
+    }
+}
+
+@media (min-width: 1200px) {
+    .row-fluid .span2 {
+        width: 16.5%;
+    }
+}

+ 249 - 0
phpDocumentor/files/config.config.html

@@ -0,0 +1,249 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+        <script type="text/javascript">
+        function loadExternalCodeSnippets() {
+            Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+                var src = pre.getAttribute('data-src');
+                var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+                var language = 'php';
+
+                var code = document.createElement('code');
+                code.className = 'language-' + language;
+
+                pre.textContent = '';
+
+                code.textContent = 'Loading…';
+
+                pre.appendChild(code);
+
+                var xhr = new XMLHttpRequest();
+
+                xhr.open('GET', src, true);
+
+                xhr.onreadystatechange = function () {
+                    if (xhr.readyState == 4) {
+
+                        if (xhr.status < 400 && xhr.responseText) {
+                            code.textContent = xhr.responseText;
+
+                            Prism.highlightElement(code);
+                        }
+                        else if (xhr.status >= 400) {
+                            code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                        }
+                        else {
+                            code.textContent = '✖ Error: File does not exist or is empty';
+                        }
+                    }
+                };
+
+                xhr.send(null);
+            });
+        }
+
+        $(document).ready(function(){
+            loadExternalCodeSnippets();
+        });
+        $('#source-view').on('shown', function () {
+            loadExternalCodeSnippets();
+        })
+    </script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-1949412653"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-1949412653" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content file">
+                    <nav>
+                                                                    </nav>
+
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+                    <h1><small>config</small>config.php</h1>
+                    <p><em></em></p>
+                    
+
+                    
+                    
+                                    </div>
+
+                <aside class="span4 detailsbar">
+                    <dl>
+                                                    <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">\Default</div></dd>
+                        
+                        
+                    </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                                            </table>
+
+                </aside>
+            </div>
+
+            
+            
+        </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label"></h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/config/config.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 6 - 0
phpDocumentor/files/config/config.php.txt

@@ -0,0 +1,6 @@
+<?php
+return array(
+    'site_title' => 'config',
+    'PicoGAnalytics' => array('enabled' => true)
+);
+

+ 249 - 0
phpDocumentor/files/index.html

@@ -0,0 +1,249 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+        <script type="text/javascript">
+        function loadExternalCodeSnippets() {
+            Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+                var src = pre.getAttribute('data-src');
+                var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+                var language = 'php';
+
+                var code = document.createElement('code');
+                code.className = 'language-' + language;
+
+                pre.textContent = '';
+
+                code.textContent = 'Loading…';
+
+                pre.appendChild(code);
+
+                var xhr = new XMLHttpRequest();
+
+                xhr.open('GET', src, true);
+
+                xhr.onreadystatechange = function () {
+                    if (xhr.readyState == 4) {
+
+                        if (xhr.status < 400 && xhr.responseText) {
+                            code.textContent = xhr.responseText;
+
+                            Prism.highlightElement(code);
+                        }
+                        else if (xhr.status >= 400) {
+                            code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                        }
+                        else {
+                            code.textContent = '✖ Error: File does not exist or is empty';
+                        }
+                    }
+                };
+
+                xhr.send(null);
+            });
+        }
+
+        $(document).ready(function(){
+            loadExternalCodeSnippets();
+        });
+        $('#source-view').on('shown', function () {
+            loadExternalCodeSnippets();
+        })
+    </script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-1376516288"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-1376516288" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content file">
+                    <nav>
+                                                                    </nav>
+
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+                    <h1><small></small>index.php</h1>
+                    <p><em></em></p>
+                    
+
+                    
+                    
+                                    </div>
+
+                <aside class="span4 detailsbar">
+                    <dl>
+                                                    <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">\Default</div></dd>
+                        
+                        
+                    </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                                            </table>
+
+                </aside>
+            </div>
+
+            
+            
+        </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label"></h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/index.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 18 - 0
phpDocumentor/files/index.php.txt

@@ -0,0 +1,18 @@
+<?php
+// load dependencies
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// instance Pico
+$pico = new Pico(
+    __DIR__,    // root dir
+    'config/',  // config dir
+    'plugins/', // plugins dir
+    'themes/'   // themes dir
+);
+
+// override configuration?
+// $pico->setConfig(array());
+
+// run application
+echo $pico->run();
+

+ 256 - 0
phpDocumentor/files/lib.AbstractPicoPlugin.html

@@ -0,0 +1,256 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+        <script type="text/javascript">
+        function loadExternalCodeSnippets() {
+            Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+                var src = pre.getAttribute('data-src');
+                var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+                var language = 'php';
+
+                var code = document.createElement('code');
+                code.className = 'language-' + language;
+
+                pre.textContent = '';
+
+                code.textContent = 'Loading…';
+
+                pre.appendChild(code);
+
+                var xhr = new XMLHttpRequest();
+
+                xhr.open('GET', src, true);
+
+                xhr.onreadystatechange = function () {
+                    if (xhr.readyState == 4) {
+
+                        if (xhr.status < 400 && xhr.responseText) {
+                            code.textContent = xhr.responseText;
+
+                            Prism.highlightElement(code);
+                        }
+                        else if (xhr.status >= 400) {
+                            code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                        }
+                        else {
+                            code.textContent = '✖ Error: File does not exist or is empty';
+                        }
+                    }
+                };
+
+                xhr.send(null);
+            });
+        }
+
+        $(document).ready(function(){
+            loadExternalCodeSnippets();
+        });
+        $('#source-view').on('shown', function () {
+            loadExternalCodeSnippets();
+        })
+    </script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-1365857737"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-1365857737" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content file">
+                    <nav>
+                                                                    </nav>
+
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+                    <h1><small>lib</small>AbstractPicoPlugin.php</h1>
+                    <p><em></em></p>
+                    
+
+                    
+                    
+                                        <h2>Classes</h2>
+                    <table class="table table-hover">
+                                            <tr>
+                            <td><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></td>
+                            <td><em>Abstract class to extend from when implementing a Pico plugin</em></td>
+                        </tr>
+                                        </table>
+                                    </div>
+
+                <aside class="span4 detailsbar">
+                    <dl>
+                                                    <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">\Default</div></dd>
+                        
+                        
+                    </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                                            </table>
+
+                </aside>
+            </div>
+
+            
+            
+        </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label"></h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/lib/AbstractPicoPlugin.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 256 - 0
phpDocumentor/files/lib.Pico.html

@@ -0,0 +1,256 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+        <script type="text/javascript">
+        function loadExternalCodeSnippets() {
+            Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+                var src = pre.getAttribute('data-src');
+                var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+                var language = 'php';
+
+                var code = document.createElement('code');
+                code.className = 'language-' + language;
+
+                pre.textContent = '';
+
+                code.textContent = 'Loading…';
+
+                pre.appendChild(code);
+
+                var xhr = new XMLHttpRequest();
+
+                xhr.open('GET', src, true);
+
+                xhr.onreadystatechange = function () {
+                    if (xhr.readyState == 4) {
+
+                        if (xhr.status < 400 && xhr.responseText) {
+                            code.textContent = xhr.responseText;
+
+                            Prism.highlightElement(code);
+                        }
+                        else if (xhr.status >= 400) {
+                            code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                        }
+                        else {
+                            code.textContent = '✖ Error: File does not exist or is empty';
+                        }
+                    }
+                };
+
+                xhr.send(null);
+            });
+        }
+
+        $(document).ready(function(){
+            loadExternalCodeSnippets();
+        });
+        $('#source-view').on('shown', function () {
+            loadExternalCodeSnippets();
+        })
+    </script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-361571077"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-361571077" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content file">
+                    <nav>
+                                                                    </nav>
+
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+                    <h1><small>lib</small>Pico.php</h1>
+                    <p><em></em></p>
+                    
+
+                    
+                    
+                                        <h2>Classes</h2>
+                    <table class="table table-hover">
+                                            <tr>
+                            <td><a href="../classes/Pico.html">Pico</a></td>
+                            <td><em>Pico</em></td>
+                        </tr>
+                                        </table>
+                                    </div>
+
+                <aside class="span4 detailsbar">
+                    <dl>
+                                                    <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">\Default</div></dd>
+                        
+                        
+                    </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                                            </table>
+
+                </aside>
+            </div>
+
+            
+            
+        </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label"></h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/lib/Pico.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 256 - 0
phpDocumentor/files/lib.PicoPluginInterface.html

@@ -0,0 +1,256 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+        <script type="text/javascript">
+        function loadExternalCodeSnippets() {
+            Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+                var src = pre.getAttribute('data-src');
+                var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+                var language = 'php';
+
+                var code = document.createElement('code');
+                code.className = 'language-' + language;
+
+                pre.textContent = '';
+
+                code.textContent = 'Loading…';
+
+                pre.appendChild(code);
+
+                var xhr = new XMLHttpRequest();
+
+                xhr.open('GET', src, true);
+
+                xhr.onreadystatechange = function () {
+                    if (xhr.readyState == 4) {
+
+                        if (xhr.status < 400 && xhr.responseText) {
+                            code.textContent = xhr.responseText;
+
+                            Prism.highlightElement(code);
+                        }
+                        else if (xhr.status >= 400) {
+                            code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                        }
+                        else {
+                            code.textContent = '✖ Error: File does not exist or is empty';
+                        }
+                    }
+                };
+
+                xhr.send(null);
+            });
+        }
+
+        $(document).ready(function(){
+            loadExternalCodeSnippets();
+        });
+        $('#source-view').on('shown', function () {
+            loadExternalCodeSnippets();
+        })
+    </script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-551808860"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-551808860" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content file">
+                    <nav>
+                                                                    </nav>
+
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+                    <h1><small>lib</small>PicoPluginInterface.php</h1>
+                    <p><em></em></p>
+                    
+
+                    
+                                        <h2>Interfaces</h2>
+                    <table class="table table-hover">
+                                                    <tr>
+                                <td><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></td>
+                                <td><em>Common interface for Pico plugins</em></td>
+                            </tr>
+                                            </table>
+                    
+                                    </div>
+
+                <aside class="span4 detailsbar">
+                    <dl>
+                                                    <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">\Default</div></dd>
+                        
+                        
+                    </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                                            </table>
+
+                </aside>
+            </div>
+
+            
+            
+        </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label"></h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/lib/PicoPluginInterface.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 254 - 0
phpDocumentor/files/lib/AbstractPicoPlugin.php.txt

@@ -0,0 +1,254 @@
+<?php
+
+/**
+ * Abstract class to extend from when implementing a Pico plugin
+ *
+ * @see PicoPluginInterface
+ *
+ * @author  Daniel Rudolf
+ * @link    http://picocms.org
+ * @license http://opensource.org/licenses/MIT
+ * @version 1.0
+ */
+abstract class AbstractPicoPlugin implements PicoPluginInterface
+{
+    /**
+     * Current instance of Pico
+     *
+     * @var Pico
+     * @see PicoPluginInterface::__construct()
+     * @see PicoPluginInterface::getPico()
+     */
+    private $pico;
+
+    /**
+     * Boolean indicating if this plugin is enabled (true) or disabled (false)
+     *
+     * @var boolean
+     * @see PicoPluginInterface::isEnabled()
+     * @see PicoPluginInterface::setEnabled()
+     */
+    protected $enabled = true;
+
+    /**
+     * Boolean indicating if this plugin was ever enabled/disabled manually
+     *
+     * @var boolean
+     * @see PicoPluginInterface::isStatusChanged()
+     */
+    protected $statusChanged = false;
+
+    /**
+     * List of plugins which this plugin depends on
+     *
+     * @var string[]
+     * @see PicoPluginInterface::getDependencies()
+     * @see AbstractPicoPlugin::checkDependencies()
+     */
+    protected $dependsOn = array();
+
+    /**
+     * List of plugin which depend on this plugin
+     *
+     * @var object[]
+     * @see PicoPluginInterface::getDependants()
+     * @see AbstractPicoPlugin::checkDependants()
+     */
+    private $dependants;
+
+    /**
+     * @see PicoPluginInterface::__construct()
+     */
+    public function __construct(Pico $pico)
+    {
+        $this->pico = $pico;
+    }
+
+    /**
+     * @see PicoPluginInterface::handleEvent()
+     */
+    public function handleEvent($eventName, array $params)
+    {
+        // plugins can be enabled/disabled using the config
+        if ($eventName === 'onConfigLoaded') {
+            $pluginEnabled = $this->getConfig(get_called_class() . '.enabled');
+            if ($pluginEnabled !== null) {
+                $this->setEnabled($pluginEnabled);
+            } else {
+                $pluginConfig = $this->getConfig(get_called_class());
+                if (is_array($pluginConfig) && isset($pluginConfig['enabled'])) {
+                    $this->setEnabled($pluginConfig['enabled']);
+                }
+            }
+        }
+
+        if ($this->isEnabled() || ($eventName === 'onPluginsLoaded')) {
+            if (method_exists($this, $eventName)) {
+                call_user_func_array(array($this, $eventName), $params);
+            }
+        }
+    }
+
+    /**
+     * @see PicoPluginInterface::setEnabled()
+     */
+    public function setEnabled($enabled, $recursive = true, $auto = false)
+    {
+        $this->statusChanged = (!$this->statusChanged) ? !$auto : true;
+        $this->enabled = (bool) $enabled;
+
+        if ($enabled) {
+            $this->checkDependencies($recursive);
+        } else {
+            $this->checkDependants($recursive);
+        }
+    }
+
+    /**
+     * @see PicoPluginInterface::isEnabled()
+     */
+    public function isEnabled()
+    {
+        return $this->enabled;
+    }
+
+    /**
+     * @see PicoPluginInterface::isStatusChanged()
+     */
+    public function isStatusChanged()
+    {
+        return $this->statusChanged;
+    }
+
+    /**
+     * @see PicoPluginInterface::getPico()
+     */
+    public function getPico()
+    {
+        return $this->pico;
+    }
+
+    /**
+     * Passes all not satisfiable method calls to {@link Pico}
+     *
+     * @param  string $methodName name of the method to call
+     * @param  array  $params     parameters to pass
+     * @return mixed              return value of the called method
+     */
+    public function __call($methodName, array $params)
+    {
+        if (method_exists($this->getPico(), $methodName)) {
+            return call_user_func_array(array($this->getPico(), $methodName), $params);
+        }
+
+        throw new BadMethodCallException(
+            'Call to undefined method ' . get_class($this->getPico()) . '::' . $methodName . '() '
+            . 'through ' . get_called_class() . '::__call()'
+        );
+    }
+
+    /**
+     * Enables all plugins which this plugin depends on
+     *
+     * @param  boolean $recursive enable required plugins automatically
+     * @return void
+     * @throws RuntimeException   thrown when a dependency fails
+     */
+    protected function checkDependencies($recursive)
+    {
+        foreach ($this->getDependencies() as $pluginName) {
+            try {
+                $plugin = $this->getPlugin($pluginName);
+            } catch (RuntimeException $e) {
+                throw new RuntimeException(
+                    "Unable to enable plugin '" . get_called_class() . "':"
+                    . "Required plugin '" . $pluginName . "' not found"
+                );
+            }
+
+            // plugins which don't implement PicoPluginInterface are always enabled
+            if (is_a($plugin, 'PicoPluginInterface') && !$plugin->isEnabled()) {
+                if ($recursive) {
+                    if (!$plugin->isStatusChanged()) {
+                        $plugin->setEnabled(true, true, true);
+                    } else {
+                        throw new RuntimeException(
+                            "Unable to enable plugin '" . get_called_class() . "':"
+                            . "Required plugin '" . $pluginName . "' was disabled manually"
+                        );
+                    }
+                } else {
+                    throw new RuntimeException(
+                        "Unable to enable plugin '" . get_called_class() . "':"
+                        . "Required plugin '" . $pluginName . "' is disabled"
+                    );
+                }
+            }
+        }
+    }
+
+    /**
+     * @see PicoPluginInterface::getDependencies()
+     */
+    public function getDependencies()
+    {
+        return (array) $this->dependsOn;
+    }
+
+    /**
+     * Disables all plugins which depend on this plugin
+     *
+     * @param  boolean $recursive disabled dependant plugins automatically
+     * @return void
+     * @throws RuntimeException   thrown when a dependency fails
+     */
+    protected function checkDependants($recursive)
+    {
+        $dependants = $this->getDependants();
+        if (!empty($dependants)) {
+            if ($recursive) {
+                foreach ($this->getDependants() as $pluginName => $plugin) {
+                    if ($plugin->isEnabled()) {
+                        if (!$plugin->isStatusChanged()) {
+                            $plugin->setEnabled(false, true, true);
+                        } else {
+                            throw new RuntimeException(
+                                "Unable to disable plugin '" . get_called_class() . "': "
+                                . "Required by manually enabled plugin '" . $pluginName . "'"
+                            );
+                        }
+                    }
+                }
+            } else {
+                $dependantsList = 'plugin' . ((count($dependants) > 1) ? 's' : '') . ' ';
+                $dependantsList .= "'" . implode("', '", array_keys($dependants)) . "'";
+                throw new RuntimeException(
+                    "Unable to disable plugin '" . get_called_class() . "': "
+                    . "Required by " . $dependantsList
+                );
+            }
+        }
+    }
+
+    /**
+     * @see PicoPluginInterface::getDependants()
+     */
+    public function getDependants()
+    {
+        if ($this->dependants === null) {
+            $this->dependants = array();
+            foreach ($this->getPlugins() as $pluginName => $plugin) {
+                // only plugins which implement PicoPluginInterface support dependencies
+                if (is_a($plugin, 'PicoPluginInterface')) {
+                    $dependencies = $plugin->getDependencies();
+                    if (in_array(get_called_class(), $dependencies)) {
+                        $this->dependants[$pluginName] = $plugin;
+                    }
+                }
+            }
+        }
+
+        return $this->dependants;
+    }
+}
+

+ 1174 - 0
phpDocumentor/files/lib/Pico.php.txt

@@ -0,0 +1,1174 @@
+<?php
+
+/**
+ * Pico
+ *
+ * Pico is a stupidly simple, blazing fast, flat file CMS.
+ * - Stupidly Simple: Picos makes creating and maintaining a
+ *   website as simple as editing text files.
+ * - Blazing Fast: Pico is seriously lightweight and doesn't
+ *   use a database, making it super fast.
+ * - No Database: Pico is a "flat file" CMS, meaning no
+ *   database woes, no MySQL queries, nothing.
+ * - Markdown Formatting: Edit your website in your favourite
+ *   text editor using simple Markdown formatting.
+ * - Twig Templates: Pico uses the Twig templating engine,
+ *   for powerful and flexible themes.
+ * - Open Source: Pico is completely free and open source,
+ *   released under the MIT license.
+ * See <http://picocms.org/> for more info.
+ *
+ * @author  Gilbert Pellegrom
+ * @author  Daniel Rudolf
+ * @link    <http://picocms.org>
+ * @license The MIT License <http://opensource.org/licenses/MIT>
+ * @version 1.0
+ */
+class Pico
+{
+    /**
+     * Sort files in alphabetical ascending order
+     *
+     * @see Pico::getFiles()
+     * @var int
+     */
+    const SORT_ASC = 0;
+
+    /**
+     * Sort files in alphabetical descending order
+     *
+     * @see Pico::getFiles()
+     * @var int
+     */
+    const SORT_DESC = 1;
+
+    /**
+     * Don't sort files
+     *
+     * @see Pico::getFiles()
+     * @var int
+     */
+    const SORT_NONE = 2;
+
+    /**
+     * Root directory of this Pico instance
+     *
+     * @var string
+     */
+    protected $rootDir;
+
+    /**
+     * Config directory of this Pico instance
+     *
+     * @var string
+     */
+    protected $configDir;
+
+    /**
+     * Plugins directory of this Pico instance
+     *
+     * @var string
+     */
+    protected $pluginsDir;
+
+    /**
+     * Themes directory of this Pico instance
+     *
+     * @var string
+     */
+    protected $themesDir;
+
+    /**
+     * Boolean indicating whether Picos processing started yet
+     *
+     * @var boolean
+     */
+    protected $locked = false;
+
+    /**
+     * List of loaded plugins
+     *
+     * @see Pico::loadPlugins()
+     * @var object[]|null
+     */
+    protected $plugins;
+
+    /**
+     * Current configuration of this Pico instance
+     *
+     * @see Pico::loadConfig()
+     * @var mixed[]|null
+     */
+    protected $config;
+
+    /**
+     * Part of the URL describing the requested contents
+     *
+     * @see Pico::evaluateRequestUrl()
+     * @var string|null
+     */
+    protected $requestUrl;
+
+    /**
+     * Absolute path to the content file being served
+     *
+     * @see Pico::discoverRequestFile()
+     * @var string|null
+     */
+    protected $requestFile;
+
+    /**
+     * Raw, not yet parsed contents to serve
+     *
+     * @see Pico::loadFileContent()
+     * @var string|null
+     */
+    protected $rawContent;
+
+    /**
+     * Meta data of the page to serve
+     *
+     * @see Pico::parseFileMeta()
+     * @var string[]|null
+     */
+    protected $meta;
+
+    /**
+     * Parsed content being served
+     *
+     * @see Pico::prepareFileContent()
+     * @see Pico::parseFileContent()
+     * @var string|null
+     */
+    protected $content;
+
+    /**
+     * List of known pages
+     *
+     * @see Pico::readPages()
+     * @var array[]|null
+     */
+    protected $pages;
+
+    /**
+     * Data of the page being served
+     *
+     * @see Pico::discoverCurrentPage()
+     * @var array|null
+     */
+    protected $currentPage;
+
+    /**
+     * Data of the previous page relative to the page being served
+     *
+     * @see Pico::discoverCurrentPage()
+     * @var array|null
+     */
+    protected $previousPage;
+
+    /**
+     * Data of the next page relative to the page being served
+     *
+     * @see Pico::discoverCurrentPage()
+     * @var array|null
+     */
+    protected $nextPage;
+
+    /**
+     * Twig instance used for template parsing
+     *
+     * @see Pico::registerTwig()
+     * @var Twig_Environment|null
+     */
+    protected $twig;
+
+    /**
+     * Variables passed to the twig template
+     *
+     * @var mixed[]|null
+     */
+    protected $twigVariables;
+
+    /**
+     * Constructs a new Pico instance
+     *
+     * To carry out all the processing in Pico, call the run() method.
+     *
+     * @param string $rootDir    root directory of this Pico instance
+     * @param string $configDir  config directory of this Pico instance
+     * @param string $pluginsDir plugins directory of this Pico instance
+     * @param string $themesDir  themes directory of this Pico instance
+     */
+    public function __construct($rootDir, $configDir, $pluginsDir, $themesDir)
+    {
+        $this->rootDir = rtrim($rootDir, '/') . '/';
+        $this->configDir = $this->getAbsolutePath($configDir);
+        $this->pluginsDir = $this->getAbsolutePath($pluginsDir);
+        $this->themesDir = $this->getAbsolutePath($themesDir);
+    }
+
+    /**
+     * Returns the root directory of this Pico instance
+     *
+     * @return string root directory path
+     */
+    public function getRootDir()
+    {
+        return $this->rootDir;
+    }
+
+    /**
+     * Returns the config directory of this Pico instance
+     *
+     * @return string config directory path
+     */
+    public function getConfigDir()
+    {
+        return $this->configDir;
+    }
+
+    /**
+     * Returns the plugins directory of this Pico instance
+     *
+     * @return string plugins directory path
+     */
+    public function getPluginsDir()
+    {
+        return $this->pluginsDir;
+    }
+
+    /**
+     * Returns the themes directory of this Pico instance
+     *
+     * @return string themes directory path
+     */
+    public function getThemesDir()
+    {
+        return $this->themesDir;
+    }
+
+    /**
+     * Runs this Pico instance
+     *
+     * Loads plugins, evaluates the config file, does URL routing, parses
+     * meta headers, processes Markdown, does Twig processing and returns
+     * the rendered contents.
+     *
+     * @return string rendered Pico contents
+     */
+    public function run()
+    {
+        // lock Pico
+        $this->locked = true;
+
+        // load plugins
+        $this->loadPlugins();
+        $this->triggerEvent('onPluginsLoaded', array(&$this->plugins));
+
+        // load config
+        $this->loadConfig();
+        $this->triggerEvent('onConfigLoaded', array(&$this->config));
+
+        // evaluate request url
+        $this->evaluateRequestUrl();
+        $this->triggerEvent('onRequestUrl', array(&$this->requestUrl));
+
+        // discover requested file
+        $this->discoverRequestFile();
+        $this->triggerEvent('onRequestFile', array(&$this->requestFile));
+
+        // load raw file content
+        $this->triggerEvent('onContentLoading', array(&$this->requestFile));
+
+        if (file_exists($this->requestFile)) {
+            $this->rawContent = $this->loadFileContent($this->requestFile);
+        } else {
+            $this->triggerEvent('on404ContentLoading', array(&$this->requestFile));
+
+            header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
+            $this->rawContent = $this->load404Content($this->requestFile);
+
+            $this->triggerEvent('on404ContentLoaded', array(&$this->rawContent));
+        }
+
+        $this->triggerEvent('onContentLoaded', array(&$this->rawContent));
+
+        // parse file meta
+        $headers = $this->getMetaHeaders();
+
+        $this->triggerEvent('onMetaParsing', array(&$this->rawContent, &$headers));
+        $this->meta = $this->parseFileMeta($this->rawContent, $headers);
+        $this->triggerEvent('onMetaParsed', array(&$this->meta));
+
+        // parse file content
+        $this->triggerEvent('onContentParsing', array(&$this->rawContent));
+
+        $this->content = $this->prepareFileContent($this->rawContent);
+        $this->triggerEvent('onContentPrepared', array(&$this->content));
+
+        $this->content = $this->parseFileContent($this->content);
+        $this->triggerEvent('onContentParsed', array(&$this->content));
+
+        // read pages
+        $this->triggerEvent('onPagesLoading');
+
+        $this->readPages();
+        $this->sortPages();
+        $this->discoverCurrentPage();
+
+        $this->triggerEvent('onPagesLoaded', array(
+            &$this->pages,
+            &$this->currentPage,
+            &$this->previousPage,
+            &$this->nextPage
+        ));
+
+        // register twig
+        $this->triggerEvent('onTwigRegistration');
+        $this->registerTwig();
+
+        // render template
+        $this->twigVariables = $this->getTwigVariables();
+        if (isset($this->meta['template']) && $this->meta['template']) {
+            $templateName = $this->meta['template'];
+        } else {
+            $templateName = 'index';
+        }
+        if (file_exists($this->getThemesDir() . $this->getConfig('theme') . '/' . $templateName . '.twig')) {
+            $templateName .= '.twig';
+        } else {
+            $templateName .= '.html';
+        }
+
+        $this->triggerEvent('onPageRendering', array(&$this->twig, &$this->twigVariables, &$templateName));
+
+        $output = $this->twig->render($templateName, $this->twigVariables);
+        $this->triggerEvent('onPageRendered', array(&$output));
+
+        return $output;
+    }
+
+    /**
+     * Loads plugins from Pico::$pluginsDir in alphabetical order
+     *
+     * Plugin files may be prefixed by a number (e.g. 00-PicoDeprecated.php)
+     * to indicate their processing order. You MUST NOT use prefixes between
+     * 00 and 19 (reserved for built-in plugins).
+     *
+     * @return void
+     * @throws RuntimeException thrown when a plugin couldn't be loaded
+     */
+    protected function loadPlugins()
+    {
+        $this->plugins = array();
+        $pluginFiles = $this->getFiles($this->getPluginsDir(), '.php');
+        foreach ($pluginFiles as $pluginFile) {
+            require_once($pluginFile);
+
+            $className = preg_replace('/^[0-9]+-/', '', basename($pluginFile, '.php'));
+            if (class_exists($className)) {
+                // class name and file name can differ regarding case sensitivity
+                $plugin = new $className($this);
+                $className = get_class($plugin);
+
+                $this->plugins[$className] = $plugin;
+            } else {
+                // TODO: breaks backward compatibility
+                //throw new RuntimeException("Unable to load plugin '".$className."'");
+            }
+        }
+    }
+
+    /**
+     * Returns the instance of a named plugin
+     *
+     * Plugins SHOULD implement {@link PicoPluginInterface}, but you MUST NOT
+     * rely on it. For more information see {@link PicoPluginInterface}.
+     *
+     * @see    Pico::loadPlugins()
+     * @param  string           $pluginName name of the plugin
+     * @return object                       instance of the plugin
+     * @throws RuntimeException             thrown when the plugin wasn't found
+     */
+    public function getPlugin($pluginName)
+    {
+        if (isset($this->plugins[$pluginName])) {
+            return $this->plugins[$pluginName];
+        }
+
+        throw new RuntimeException("Missing plugin '" . $pluginName . "'");
+    }
+
+    /**
+     * Returns all loaded plugins
+     *
+     * @see    Pico::loadPlugins()
+     * @return object[]|null
+     */
+    public function getPlugins()
+    {
+        return $this->plugins;
+    }
+
+    /**
+     * Loads the config.php from Pico::$configDir
+     *
+     * @return void
+     */
+    protected function loadConfig()
+    {
+        $defaultConfig = array(
+            'site_title' => 'Pico',
+            'base_url' => '',
+            'rewrite_url' => null,
+            'theme' => 'default',
+            'date_format' => '%D %T',
+            'twig_config' => array('cache' => false, 'autoescape' => false, 'debug' => false),
+            'pages_order_by' => 'alpha',
+            'pages_order' => 'asc',
+            'content_dir' => $this->getRootDir() . 'content-sample/',
+            'content_ext' => '.md',
+            'timezone' => ''
+        );
+
+        $configFile = $this->getConfigDir() . 'config.php';
+        $config = file_exists($configFile) ? require($configFile) : null;
+
+        $this->config = is_array($this->config) ? $this->config : array();
+        $this->config += is_array($config) ? $config + $defaultConfig : $defaultConfig;
+
+        if (empty($this->config['base_url'])) {
+            $this->config['base_url'] = $this->getBaseUrl();
+        }
+        if (!empty($this->config['content_dir'])) {
+            $this->config['content_dir'] = $this->getAbsolutePath($this->config['content_dir']);
+        }
+        if (!empty($this->config['timezone'])) {
+            date_default_timezone_set($this->config['timezone']);
+        } else {
+            // explicitly set a default timezone to prevent a E_NOTICE
+            // when no timezone is set; the `date_default_timezone_get()`
+            // function always returns a timezone, at least UTC
+            $defaultTimezone = date_default_timezone_get();
+            date_default_timezone_set($defaultTimezone);
+        }
+    }
+
+    /**
+     * Sets Picos config before calling Pico::run()
+     *
+     * This method allows you to modify Picos config without creating a
+     * {@path "config/config.php"} or changing some of its variables before
+     * Pico starts processing. It can only be called between the constructor
+     * call and Pico::run(). Options set with this method cannot be overwritten
+     * by {@path "config/config.php"}.
+     *
+     * @param  mixed[] $config  array with configuration variables, like
+     *     $config in {@path "config/config.php"}
+     * @return void
+     * @throws RuntimeException thrown if Pico already started processing
+     */
+    public function setConfig(array $config)
+    {
+        if ($this->locked) {
+            throw new RuntimeException('You cannot modify Picos config after processing has started');
+        }
+
+        $this->config = $config;
+    }
+
+    /**
+     * Returns either the value of the specified config variable or
+     * the config array
+     *
+     * @see    Pico::loadConfig()
+     * @param  string $configName optional name of a config variable
+     * @return mixed              returns either the value of the named config
+     *     variable, null if the config variable doesn't exist or the config
+     *     array if no config name was supplied
+     */
+    public function getConfig($configName = null)
+    {
+        if ($configName !== null) {
+            return isset($this->config[$configName]) ? $this->config[$configName] : null;
+        } else {
+            return $this->config;
+        }
+    }
+
+    /**
+     * Evaluates the requested URL
+     *
+     * Pico 1.0 uses the QUERY_STRING routing method (e.g. /pico/?sub/page) to
+     * support SEO-like URLs out-of-the-box with any webserver. You can still
+     * setup URL rewriting (e.g. using mod_rewrite on Apache) to basically
+     * remove the `?` from URLs, but your rewritten URLs must follow the
+     * new QUERY_STRING principles. URL rewriting requires some special
+     * configuration on your webserver, but this should be "basic work" for
+     * any webmaster...
+     *
+     * Pico 0.9 and older required Apache with mod_rewrite enabled, thus old
+     * plugins, templates and contents may require you to enable URL rewriting
+     * to work. If you're upgrading from Pico 0.9, you will probably have to
+     * update your rewriting rules.
+     *
+     * We recommend you to use the `link` filter in templates to create
+     * internal links, e.g. `{{ "sub/page"|link }}` is equivalent to
+     * `{{ base_url }}sub/page`. In content files you can still use the
+     * `%base_url%` variable; e.g. `%base_url%?sub/page` will be automatically
+     * replaced accordingly.
+     *
+     * @return void
+     */
+    protected function evaluateRequestUrl()
+    {
+        // use QUERY_STRING; e.g. /pico/?sub/page
+        // if you want to use rewriting, you MUST make your rules to
+        // rewrite the URLs to follow the QUERY_STRING method
+        //
+        // Note: you MUST NOT call the index page with /pico/?someBooleanParameter;
+        // use /pico/?someBooleanParameter= or /pico/?index&someBooleanParameter instead
+        $pathComponent = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : '';
+        if (($pathComponentLength = strpos($pathComponent, '&')) !== false) {
+            $pathComponent = substr($pathComponent, 0, $pathComponentLength);
+        }
+        $this->requestUrl = (strpos($pathComponent, '=') === false) ? urldecode($pathComponent) : '';
+    }
+
+    /**
+     * Returns the URL where a user requested the page
+     *
+     * @see    Pico::evaluateRequestUrl()
+     * @return string|null request URL
+     */
+    public function getRequestUrl()
+    {
+        return $this->requestUrl;
+    }
+
+    /**
+     * Uses the request URL to discover the content file to serve
+     *
+     * @return void
+     */
+    protected function discoverRequestFile()
+    {
+        if (empty($this->requestUrl)) {
+            $this->requestFile = $this->getConfig('content_dir') . 'index' . $this->getConfig('content_ext');
+        } else {
+            $this->requestFile = $this->getConfig('content_dir') . $this->requestUrl;
+            if (is_dir($this->requestFile)) {
+                // if no index file is found, try a accordingly named file in the previous dir
+                // if this file doesn't exist either, show the 404 page, but assume the index
+                // file as being requested (maintains backward compatibility to Pico < 1.0)
+                $indexFile = $this->requestFile . '/index' . $this->getConfig('content_ext');
+                if (file_exists($indexFile) || !file_exists($this->requestFile . $this->getConfig('content_ext'))) {
+                    $this->requestFile = $indexFile;
+                    return;
+                }
+            }
+            $this->requestFile .= $this->getConfig('content_ext');
+        }
+    }
+
+    /**
+     * Returns the absolute path to the content file to serve
+     *
+     * @see    Pico::discoverRequestFile()
+     * @return string|null file path
+     */
+    public function getRequestFile()
+    {
+        return $this->requestFile;
+    }
+
+    /**
+     * Returns the raw contents of a file
+     *
+     * @param  string $file file path
+     * @return string       raw contents of the file
+     */
+    public function loadFileContent($file)
+    {
+        return file_get_contents($file);
+    }
+
+    /**
+     * Returns the raw contents of the first found 404 file when traversing
+     * up from the directory the requested file is in
+     *
+     * @param  string $file     path to requested (but not existing) file
+     * @return string           raw contents of the 404 file
+     * @throws RuntimeException thrown when no suitable 404 file is found
+     */
+    public function load404Content($file)
+    {
+        $errorFileDir = substr($file, strlen($this->getConfig('content_dir')));
+        do {
+            $errorFileDir = dirname($errorFileDir);
+            $errorFile = $errorFileDir . '/404' . $this->getConfig('content_ext');
+        } while (!file_exists($this->getConfig('content_dir') . $errorFile) && ($errorFileDir !== '.'));
+
+        if (!file_exists($this->getConfig('content_dir') . $errorFile)) {
+            $errorFile = ($errorFileDir === '.') ? '404' . $this->getConfig('content_ext') : $errorFile;
+            throw new RuntimeException('Required "' . $errorFile . '" not found');
+        }
+
+        return $this->loadFileContent($this->getConfig('content_dir') . $errorFile);
+    }
+
+    /**
+     * Returns the cached raw contents, either of the requested or the 404 file
+     *
+     * @see    Pico::loadFileContent()
+     * @return string|null raw contents
+     */
+    public function getRawContent()
+    {
+        return $this->rawContent;
+    }
+
+    /**
+     * Returns known meta headers and triggers the onMetaHeaders event
+     *
+     * Heads up! Calling this method triggers the `onMetaHeaders` event.
+     * Keep this in mind to prevent a infinite loop!
+     *
+     * @return string[] known meta headers; the array value specifies the
+     *     YAML key to search for, the array key is later used to access the
+     *     found value
+     */
+    public function getMetaHeaders()
+    {
+        $headers = array(
+            'title' => 'Title',
+            'description' => 'Description',
+            'author' => 'Author',
+            'date' => 'Date',
+            'robots' => 'Robots',
+            'template' => 'Template'
+        );
+
+        $this->triggerEvent('onMetaHeaders', array(&$headers));
+        return $headers;
+    }
+
+    /**
+     * Parses the file meta from raw file contents
+     *
+     * Meta data MUST start on the first line of the file, either opened and
+     * closed by --- or C-style block comments (deprecated). The headers are
+     * parsed by the YAML component of the Symfony project, keys are lowered.
+     * If you're a plugin developer, you MUST register new headers during the
+     * `onMetaHeaders` event first. The implicit availability of headers is
+     * for users and pure (!) theme developers ONLY.
+     *
+     * @see    <http://symfony.com/doc/current/components/yaml/introduction.html>
+     * @param  string   $rawContent the raw file contents
+     * @param  string[] $headers    known meta headers
+     * @return array                parsed meta data
+     */
+    public function parseFileMeta($rawContent, array $headers)
+    {
+        $meta = array();
+        $pattern = "/^(\/(\*)|---)[[:blank:]]*(?:\r)?\n"
+            . "(.*?)(?:\r)?\n(?(2)\*\/|---)[[:blank:]]*(?:(?:\r)?\n|$)/s";
+        if (preg_match($pattern, $rawContent, $rawMetaMatches)) {
+            $yamlParser = new \Symfony\Component\Yaml\Parser();
+            $meta = $yamlParser->parse($rawMetaMatches[3]);
+            $meta = array_change_key_case($meta, CASE_LOWER);
+
+            foreach ($headers as $fieldId => $fieldName) {
+                $fieldName = strtolower($fieldName);
+                if (isset($meta[$fieldName])) {
+                    // rename field (e.g. remove whitespaces)
+                    if ($fieldId != $fieldName) {
+                        $meta[$fieldId] = $meta[$fieldName];
+                        unset($meta[$fieldName]);
+                    }
+                } else {
+                    // guarantee array key existance
+                    $meta[$fieldId] = '';
+                }
+            }
+
+            if (!empty($meta['date'])) {
+                $meta['time'] = strtotime($meta['date']);
+                $meta['date_formatted'] = utf8_encode(strftime($this->getConfig('date_format'), $meta['time']));
+            } else {
+                $meta['time'] = $meta['date_formatted'] = '';
+            }
+        } else {
+            // guarantee array key existance
+            foreach ($headers as $id => $field) {
+                $meta[$id] = '';
+            }
+
+            $meta['time'] = $meta['date_formatted'] = '';
+        }
+
+        return $meta;
+    }
+
+    /**
+     * Returns the parsed meta data of the requested page
+     *
+     * @see    Pico::parseFileMeta()
+     * @return array|null parsed meta data
+     */
+    public function getFileMeta()
+    {
+        return $this->meta;
+    }
+
+    /**
+     * Applies some static preparations to the raw contents of a page,
+     * e.g. removing the meta header and replacing %base_url%
+     *
+     * @param  string $rawContent raw contents of a page
+     * @return string             contents prepared for parsing
+     */
+    public function prepareFileContent($rawContent)
+    {
+        // remove meta header
+        $metaHeaderPattern = "/^(\/(\*)|---)[[:blank:]]*(?:\r)?\n"
+            . "(.*?)(?:\r)?\n(?(2)\*\/|---)[[:blank:]]*(?:(?:\r)?\n|$)/s";
+        $content = preg_replace($metaHeaderPattern, '', $rawContent, 1);
+
+        // replace %site_title%
+        $content = str_replace('%site_title%', $this->getConfig('site_title'), $content);
+
+        // replace %base_url%
+        if ($this->isUrlRewritingEnabled()) {
+            // always use `%base_url%?sub/page` syntax for internal links
+            // we'll replace the links accordingly, depending on enabled rewriting
+            $content = str_replace('%base_url%?', $this->getBaseUrl(), $content);
+        } else {
+            // actually not necessary, but makes the URL look a little nicer
+            $content = str_replace('%base_url%?', $this->getBaseUrl() . '?', $content);
+        }
+        $content = str_replace('%base_url%', rtrim($this->getBaseUrl(), '/'), $content);
+
+        // replace %theme_url%
+        $themeUrl = $this->getBaseUrl() . basename($this->getThemesDir()) . '/' . $this->getConfig('theme');
+        $content = str_replace('%theme_url%', $themeUrl, $content);
+
+        // replace %meta.*%
+        $metaKeys = array_map(function ($metaKey) {
+            return '%meta.' . $metaKey . '%';
+        }, array_keys($this->meta));
+        $metaValues = array_values($this->meta);
+        $content = str_replace($metaKeys, $metaValues, $content);
+
+        return $content;
+    }
+
+    /**
+     * Parses the contents of a page using ParsedownExtra
+     *
+     * @param  string $content raw contents of a page (Markdown)
+     * @return string          parsed contents (HTML)
+     */
+    public function parseFileContent($content)
+    {
+        $parsedown = new ParsedownExtra();
+        return $parsedown->text($content);
+    }
+
+    /**
+     * Returns the cached contents of the requested page
+     *
+     * @see    Pico::parseFileContent()
+     * @return string|null parsed contents
+     */
+    public function getFileContent()
+    {
+        return $this->content;
+    }
+
+    /**
+     * Reads the data of all pages known to Pico
+     *
+     * The page data will be an array containing the following values:
+     * +----------------+------------------------------------------+
+     * | Array key      | Description                              |
+     * +----------------+------------------------------------------+
+     * | id             | relative path to the content file        |
+     * | url            | URL to the page                          |
+     * | title          | title of the page (YAML header)          |
+     * | description    | description of the page (YAML header)    |
+     * | author         | author of the page (YAML header)         |
+     * | time           | timestamp derived from the Date header   |
+     * | date           | date of the page (YAML header)           |
+     * | date_formatted | formatted date of the page               |
+     * | raw_content    | raw, not yet parsed contents of the page |
+     * | meta           | parsed meta data of the page)            |
+     * +----------------+------------------------------------------+
+     *
+     * @return void
+     */
+    protected function readPages()
+    {
+        $this->pages = array();
+        $files = $this->getFiles($this->getConfig('content_dir'), $this->getConfig('content_ext'), Pico::SORT_NONE);
+        foreach ($files as $i => $file) {
+            // skip 404 page
+            if (basename($file) == '404' . $this->getConfig('content_ext')) {
+                unset($files[$i]);
+                continue;
+            }
+
+            $id = substr($file, strlen($this->getConfig('content_dir')), -strlen($this->getConfig('content_ext')));
+
+            // drop inaccessible pages (e.g. drop "sub.md" if "sub/index.md" exists)
+            $conflictFile = $this->getConfig('content_dir') . $id . '/index' . $this->getConfig('content_ext');
+            if (in_array($conflictFile, $files, true)) {
+                continue;
+            }
+
+            $url = $this->getPageUrl($id);
+            if ($file != $this->requestFile) {
+                $rawContent = file_get_contents($file);
+                $meta = $this->parseFileMeta($rawContent, $this->getMetaHeaders());
+            } else {
+                $rawContent = &$this->rawContent;
+                $meta = &$this->meta;
+            }
+
+            // build page data
+            // title, description, author and date are assumed to be pretty basic data
+            // everything else is accessible through $page['meta']
+            $page = array(
+                'id' => $id,
+                'url' => $url,
+                'title' => &$meta['title'],
+                'description' => &$meta['description'],
+                'author' => &$meta['author'],
+                'time' => &$meta['time'],
+                'date' => &$meta['date'],
+                'date_formatted' => &$meta['date_formatted'],
+                'raw_content' => &$rawContent,
+                'meta' => &$meta
+            );
+
+            if ($file == $this->requestFile) {
+                $page['content'] = &$this->content;
+            }
+
+            unset($rawContent, $meta);
+
+            // trigger event
+            $this->triggerEvent('onSinglePageLoaded', array(&$page));
+
+            $this->pages[$id] = $page;
+        }
+    }
+
+    /**
+     * Sorts all pages known to Pico
+     *
+     * @return void
+     */
+    protected function sortPages()
+    {
+        // sort pages
+        $order = $this->getConfig('pages_order');
+        $alphaSortClosure = function ($a, $b) use ($order) {
+            $aSortKey = (basename($a['id']) === 'index') ? dirname($a['id']) : $a['id'];
+            $bSortKey = (basename($b['id']) === 'index') ? dirname($b['id']) : $b['id'];
+
+            $cmp = strcmp($aSortKey, $bSortKey);
+            return $cmp * (($order == 'desc') ? -1 : 1);
+        };
+
+        if ($this->getConfig('pages_order_by') == 'date') {
+            // sort by date
+            uasort($this->pages, function ($a, $b) use ($alphaSortClosure, $order) {
+                if (empty($a['time']) || empty($b['time'])) {
+                    $cmp = (empty($a['time']) - empty($b['time']));
+                } else {
+                    $cmp = ($b['time'] - $a['time']);
+                }
+
+                if ($cmp === 0) {
+                    // never assume equality; fallback to alphabetical order
+                    return $alphaSortClosure($a, $b);
+                }
+
+                return $cmp * (($order == 'desc') ? 1 : -1);
+            });
+        } else {
+            // sort alphabetically
+            uasort($this->pages, $alphaSortClosure);
+        }
+    }
+
+    /**
+     * Returns the list of known pages
+     *
+     * @see    Pico::readPages()
+     * @return array|null the data of all pages
+     */
+    public function getPages()
+    {
+        return $this->pages;
+    }
+
+    /**
+     * Walks through the list of known pages and discovers the requested page
+     * as well as the previous and next page relative to it
+     *
+     * @return void
+     */
+    protected function discoverCurrentPage()
+    {
+        $pageIds = array_keys($this->pages);
+
+        $contentDir = $this->getConfig('content_dir');
+        $contentExt = $this->getConfig('content_ext');
+        $currentPageId = substr($this->requestFile, strlen($contentDir), -strlen($contentExt));
+        $currentPageIndex = array_search($currentPageId, $pageIds);
+        if ($currentPageIndex !== false) {
+            $this->currentPage = &$this->pages[$currentPageId];
+
+            if (($this->getConfig('order_by') == 'date') && ($this->getConfig('order') == 'desc')) {
+                $previousPageOffset = 1;
+                $nextPageOffset = -1;
+            } else {
+                $previousPageOffset = -1;
+                $nextPageOffset = 1;
+            }
+
+            if (isset($pageIds[$currentPageIndex + $previousPageOffset])) {
+                $previousPageId = $pageIds[$currentPageIndex + $previousPageOffset];
+                $this->previousPage = &$this->pages[$previousPageId];
+            }
+
+            if (isset($pageIds[$currentPageIndex + $nextPageOffset])) {
+                $nextPageId = $pageIds[$currentPageIndex + $nextPageOffset];
+                $this->nextPage = &$this->pages[$nextPageId];
+            }
+        }
+    }
+
+    /**
+     * Returns the data of the requested page
+     *
+     * @see    Pico::discoverCurrentPage()
+     * @return array|null page data
+     */
+    public function getCurrentPage()
+    {
+        return $this->currentPage;
+    }
+
+    /**
+     * Returns the data of the previous page relative to the page being served
+     *
+     * @see    Pico::discoverCurrentPage()
+     * @return array|null page data
+     */
+    public function getPreviousPage()
+    {
+        return $this->previousPage;
+    }
+
+    /**
+     * Returns the data of the next page relative to the page being served
+     *
+     * @see    Pico::discoverCurrentPage()
+     * @return array|null page data
+     */
+    public function getNextPage()
+    {
+        return $this->nextPage;
+    }
+
+    /**
+     * Registers the twig template engine
+     *
+     * @return void
+     */
+    protected function registerTwig()
+    {
+        $twigLoader = new Twig_Loader_Filesystem($this->getThemesDir() . $this->getConfig('theme'));
+        $this->twig = new Twig_Environment($twigLoader, $this->getConfig('twig_config'));
+        $this->twig->addExtension(new Twig_Extension_Debug());
+        $this->twig->addFilter(new Twig_SimpleFilter('link', array($this, 'getPageUrl')));
+    }
+
+    /**
+     * Returns the twig template engine
+     *
+     * @return Twig_Environment|null twig template engine
+     */
+    public function getTwig()
+    {
+        return $this->twig;
+    }
+
+    /**
+     * Returns the variables passed to the template
+     *
+     * URLs and paths (namely base_dir, base_url, theme_dir and theme_url)
+     * don't add a trailing slash for historic reasons.
+     *
+     * @return mixed[] template variables
+     */
+    protected function getTwigVariables()
+    {
+        $frontPage = $this->getConfig('content_dir') . 'index' . $this->getConfig('content_ext');
+        return array(
+            'config' => $this->getConfig(),
+            'base_dir' => rtrim($this->getRootDir(), '/'),
+            'base_url' => rtrim($this->getBaseUrl(), '/'),
+            'theme_dir' => $this->getThemesDir() . $this->getConfig('theme'),
+            'theme_url' => $this->getBaseUrl() . basename($this->getThemesDir()) . '/' . $this->getConfig('theme'),
+            'rewrite_url' => $this->isUrlRewritingEnabled(),
+            'site_title' => $this->getConfig('site_title'),
+            'meta' => $this->meta,
+            'content' => $this->content,
+            'pages' => $this->pages,
+            'prev_page' => $this->previousPage,
+            'current_page' => $this->currentPage,
+            'next_page' => $this->nextPage,
+            'is_front_page' => ($this->requestFile == $frontPage),
+        );
+    }
+
+    /**
+     * Returns the base URL of this Pico instance
+     *
+     * @return string the base url
+     */
+    public function getBaseUrl()
+    {
+        $baseUrl = $this->getConfig('base_url');
+        if (!empty($baseUrl)) {
+            return $baseUrl;
+        }
+
+        if (
+            (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off')
+            || ($_SERVER['SERVER_PORT'] == 443)
+            || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
+        ) {
+            $protocol = 'https';
+        } else {
+            $protocol = 'http';
+        }
+
+        $this->config['base_url'] =
+            $protocol . "://" . $_SERVER['HTTP_HOST']
+            . dirname($_SERVER['SCRIPT_NAME']) . '/';
+
+        return $this->getConfig('base_url');
+    }
+
+    /**
+     * Returns true if URL rewriting is enabled
+     *
+     * @return boolean true if URL rewriting is enabled, false otherwise
+     */
+    public function isUrlRewritingEnabled()
+    {
+        if (($this->getConfig('rewrite_url') === null) && isset($_SERVER['PICO_URL_REWRITING'])) {
+            return (bool) $_SERVER['PICO_URL_REWRITING'];
+        } elseif ($this->getConfig('rewrite_url')) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Returns the URL to a given page
+     *
+     * @param  string $page identifier of the page to link to
+     * @return string       URL
+     */
+    public function getPageUrl($page)
+    {
+        return $this->getBaseUrl() . ((!$this->isUrlRewritingEnabled() && !empty($page)) ? '?' : '') . $page;
+    }
+
+    /**
+     * Recursively walks through a directory and returns all containing files
+     * matching the specified file extension
+     *
+     * @param  string $directory     start directory
+     * @param  string $fileExtension return files with the given file extension
+     *     only (optional)
+     * @param  int    $order         specify whether and how files should be
+     *     sorted; use Pico::SORT_ASC for a alphabetical ascending order (this
+     *     is the default behaviour), Pico::SORT_DESC for a descending order
+     *     or Pico::SORT_NONE to leave the result unsorted
+     * @return array                 list of found files
+     */
+    protected function getFiles($directory, $fileExtension = '', $order = self::SORT_ASC)
+    {
+        $directory = rtrim($directory, '/');
+        $result = array();
+
+        // scandir() reads files in alphabetical order
+        $files = scandir($directory, $order);
+        $fileExtensionLength = strlen($fileExtension);
+        if ($files !== false) {
+            foreach ($files as $file) {
+                // exclude hidden files/dirs starting with a .; this also excludes the special dirs . and ..
+                // exclude files ending with a ~ (vim/nano backup) or # (emacs backup)
+                if ((substr($file, 0, 1) === '.') || in_array(substr($file, -1), array('~', '#'))) {
+                    continue;
+                }
+
+                if (is_dir($directory . '/' . $file)) {
+                    // get files recursively
+                    $result = array_merge($result, $this->getFiles($directory . '/' . $file, $fileExtension, $order));
+                } elseif (empty($fileExtension) || (substr($file, -$fileExtensionLength) === $fileExtension)) {
+                    $result[] = $directory . '/' . $file;
+                }
+            }
+        }
+
+        return $result;
+    }
+
+    /**
+     * Makes a relative path absolute to Picos root dir
+     *
+     * This method also guarantees a trailing slash.
+     *
+     * @param  string $path relative or absolute path
+     * @return string       absolute path
+     */
+    protected function getAbsolutePath($path)
+    {
+        if (substr($path, 0, 1) !== '/') {
+            $path = $this->getRootDir() . $path;
+        }
+        return rtrim($path, '/') . '/';
+    }
+
+    /**
+     * Triggers events on plugins which implement {@link PicoPluginInterface}
+     *
+     * Deprecated events (as used by plugins not implementing
+     * {@link IPocPlugin}) are triggered by {@link PicoDeprecated}.
+     *
+     * @param  string $eventName name of the event to trigger
+     * @param  array  $params    optional parameters to pass
+     * @return void
+     */
+    protected function triggerEvent($eventName, array $params = array())
+    {
+        foreach ($this->plugins as $plugin) {
+            // only trigger events for plugins that implement PicoPluginInterface
+            // deprecated events (plugins for Pico 0.9 and older) will be
+            // triggered by the `PicoPluginDeprecated` plugin
+            if (is_a($plugin, 'PicoPluginInterface')) {
+                $plugin->handleEvent($eventName, $params);
+            }
+        }
+    }
+}
+

+ 98 - 0
phpDocumentor/files/lib/PicoPluginInterface.php.txt

@@ -0,0 +1,98 @@
+<?php
+
+/**
+ * Common interface for Pico plugins
+ *
+ * For a list of supported events see {@link DummyPlugin}; you can use
+ * {@link DummyPlugin} as template for new plugins. For a list of deprecated
+ * events see {@link PicoDeprecated}.
+ *
+ * You SHOULD NOT use deprecated events when implementing this interface.
+ * Deprecated events are triggered by the {@link PicoDeprecated} plugin, if
+ * plugins which don't implement this interface are loaded. You can take
+ * advantage from this behaviour if you want to do something only when old
+ * plugins are loaded. Consequently the old events are never triggered when
+ * your plugin is implementing this interface and no old plugins are present.
+ *
+ * If you're developing a new plugin, you MUST implement PicoPluginInterface. If
+ * you're the developer of an old plugin, it is STRONGLY RECOMMENDED to use
+ * the events introduced in Pico 1.0 when releasing a new version of your
+ * plugin. If you want to use any of the new events, you MUST implement
+ * PicoPluginInterface and update all other events you use.
+ *
+ * @author  Daniel Rudolf
+ * @link    http://picocms.org
+ * @license http://opensource.org/licenses/MIT
+ * @version 1.0
+ */
+interface PicoPluginInterface
+{
+    /**
+     * Constructs a new instance of a Pico plugin
+     *
+     * @param Pico $pico current instance of Pico
+     */
+    public function __construct(Pico $pico);
+
+    /**
+     * Handles a event that was triggered by Pico
+     *
+     * @param  string $eventName name of the triggered event
+     * @param  array  $params    passed parameters
+     * @return void
+     */
+    public function handleEvent($eventName, array $params);
+
+    /**
+     * Enables or disables this plugin
+     *
+     * @param  boolean $enabled     enable (true) or disable (false) this plugin
+     * @param  boolean $recursive   when true, enable or disable recursively
+     *     In other words, if you enable a plugin, all required plugins are
+     *     enabled, too. When disabling a plugin, all depending plugins are
+     *     disabled likewise. Recursive operations are only performed as long
+     *     as a plugin wasn't enabled/disabled manually. This parameter is
+     *     optional and defaults to true.
+     * @param  boolean $auto        enable or disable to fulfill a dependency
+     *     This parameter is optional and defaults to false.
+     * @return void
+     * @throws RuntimeException     thrown when a dependency fails
+     */
+    public function setEnabled($enabled, $recursive = true, $auto = false);
+
+    /**
+     * Returns true if this plugin is enabled, false otherwise
+     *
+     * @return boolean plugin is enabled (true) or disabled (false)
+     */
+    public function isEnabled();
+
+    /**
+     * Returns true if the plugin was ever enabled/disabled manually
+     *
+     * @return boolean plugin is in its default state (true), false otherwise
+     */
+    public function isStatusChanged();
+
+    /**
+     * Returns a list of names of plugins required by this plugin
+     *
+     * @return string[] required plugins
+     */
+    public function getDependencies();
+
+    /**
+     * Returns a list of plugins which depend on this plugin
+     *
+     * @return object[] dependant plugins
+     */
+    public function getDependants();
+
+    /**
+     * Returns the plugins instance of Pico
+     *
+     * @return Pico the plugins instance of Pico
+     */
+    public function getPico();
+}
+

+ 256 - 0
phpDocumentor/files/plugins.DummyPlugin.html

@@ -0,0 +1,256 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+        <script type="text/javascript">
+        function loadExternalCodeSnippets() {
+            Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+                var src = pre.getAttribute('data-src');
+                var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+                var language = 'php';
+
+                var code = document.createElement('code');
+                code.className = 'language-' + language;
+
+                pre.textContent = '';
+
+                code.textContent = 'Loading…';
+
+                pre.appendChild(code);
+
+                var xhr = new XMLHttpRequest();
+
+                xhr.open('GET', src, true);
+
+                xhr.onreadystatechange = function () {
+                    if (xhr.readyState == 4) {
+
+                        if (xhr.status < 400 && xhr.responseText) {
+                            code.textContent = xhr.responseText;
+
+                            Prism.highlightElement(code);
+                        }
+                        else if (xhr.status >= 400) {
+                            code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+                        }
+                        else {
+                            code.textContent = '✖ Error: File does not exist or is empty';
+                        }
+                    }
+                };
+
+                xhr.send(null);
+            });
+        }
+
+        $(document).ready(function(){
+            loadExternalCodeSnippets();
+        });
+        $('#source-view').on('shown', function () {
+            loadExternalCodeSnippets();
+        })
+    </script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-1725438618"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-1725438618" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content file">
+                    <nav>
+                                                                    </nav>
+
+                    <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
+                    <h1><small>plugins</small>DummyPlugin.php</h1>
+                    <p><em></em></p>
+                    
+
+                    
+                    
+                                        <h2>Classes</h2>
+                    <table class="table table-hover">
+                                            <tr>
+                            <td><a href="../classes/DummyPlugin.html">DummyPlugin</a></td>
+                            <td><em>Pico dummy plugin - a template for plugins</em></td>
+                        </tr>
+                                        </table>
+                                    </div>
+
+                <aside class="span4 detailsbar">
+                    <dl>
+                                                    <dt>Package</dt>
+                            <dd><div class="namespace-wrapper">\Default</div></dd>
+                        
+                        
+                    </dl>
+                    <h2>Tags</h2>
+                    <table class="table table-condensed">
+                                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                                            </table>
+
+                </aside>
+            </div>
+
+            
+            
+        </div>
+    </section>
+
+    <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+            <h3 id="source-view-label"></h3>
+        </div>
+        <div class="modal-body">
+            <pre data-src="../files/plugins/DummyPlugin.php.txt" class="language-php line-numbers"></pre>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 288 - 0
phpDocumentor/files/plugins/DummyPlugin.php.txt

@@ -0,0 +1,288 @@
+<?php
+
+/**
+ * Pico dummy plugin - a template for plugins
+ *
+ * You're a plugin developer? This template may be helpful :-)
+ * Simply remove the events you don't need and add your own logic.
+ *
+ * @author  Daniel Rudolf
+ * @link    http://picocms.org
+ * @license http://opensource.org/licenses/MIT
+ * @version 1.0
+ */
+class DummyPlugin extends AbstractPicoPlugin
+{
+    /**
+     * This plugin is enabled by default?
+     *
+     * @var boolean
+     * @see AbstractPicoPlugin::$enabled
+     */
+    protected $enabled = false;
+
+    /**
+     * This plugin depends on {@link ...}
+     *
+     * @var string[]
+     * @see AbstractPicoPlugin::$dependsOn
+     */
+    protected $dependsOn = array();
+
+    /**
+     * Triggered after Pico has loaded all available plugins
+     *
+     * This event is triggered nevertheless the plugin is enabled or not.
+     * It is NOT guaranteed that plugin dependencies are fulfilled!
+     *
+     * @see    Pico::getPlugin()
+     * @see    Pico::getPlugins()
+     * @param  object[] &$plugins loaded plugin instances
+     * @return void
+     */
+    public function onPluginsLoaded(&$plugins)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has read its configuration
+     *
+     * @see    Pico::getConfig()
+     * @param  mixed[] &$config array of config variables
+     * @return void
+     */
+    public function onConfigLoaded(&$config)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has evaluated the request URL
+     *
+     * @see    Pico::getBaseUrl()
+     * @see    Pico::getRequestUrl()
+     * @param  string &$url part of the URL describing the requested contents
+     * @return void
+     */
+    public function onRequestUrl(&$url)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has discovered the content file to serve
+     *
+     * @see    Pico::getRequestFile()
+     * @param  string &$file absolute path to the content file to serve
+     * @return void
+     */
+    public function onRequestFile(&$file)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered before Pico reads the contents of the file to serve
+     *
+     * @see    Pico::loadFileContent()
+     * @param  string &$file path to the file which contents will be read
+     * @return void
+     */
+    public function onContentLoading(&$file)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has read the contents of the file to serve
+     *
+     * @see    Pico::getRawContent()
+     * @param  string &$rawContent raw file contents
+     * @return void
+     */
+    public function onContentLoaded(&$rawContent)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered before Pico reads the contents of the 404 file
+     *
+     * @see    Pico::load404Content()
+     * @param  string &$file path to the file which contents were requested
+     * @return void
+     */
+    public function on404ContentLoading(&$file)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has read the contents of the 404 file
+     *
+     * @see    Pico::getRawContent()
+     * @param  string &$rawContent raw file contents
+     * @return void
+     */
+    public function on404ContentLoaded(&$rawContent)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered when Pico reads its known meta header fields
+     *
+     * @see    Pico::getMetaHeaders()
+     * @param  string[] &$headers list of known meta header
+     *     fields; the array value specifies the YAML key to search for, the
+     *     array key is later used to access the found value
+     * @return void
+     */
+    public function onMetaHeaders(&$headers)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered before Pico parses the meta header
+     *
+     * @see    Pico::parseFileMeta()
+     * @param  string   &$rawContent raw file contents
+     * @param  string[] &$headers    known meta header fields
+     * @return void
+     */
+    public function onMetaParsing(&$rawContent, &$headers)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has parsed the meta header
+     *
+     * @see    Pico::getFileMeta()
+     * @param  string[] &$meta parsed meta data
+     * @return void
+     */
+    public function onMetaParsed(&$meta)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered before Pico parses the pages content
+     *
+     * @see    Pico::prepareFileContent()
+     * @param  string &$rawContent raw file contents
+     * @return void
+     */
+    public function onContentParsing(&$rawContent)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has prepared the raw file contents for parsing
+     *
+     * @see    Pico::parseFileContent()
+     * @param  string &$content prepared file contents for parsing
+     * @return void
+     */
+    public function prepareFileContent(&$content)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has parsed the contents of the file to serve
+     *
+     * @see    Pico::getFileContent()
+     * @param  string &$content parsed contents
+     * @return void
+     */
+    public function onContentParsed(&$content)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered when Pico reads a single page from the list of all known pages
+     *
+     * @param array &$pageData {
+     *     data of the loaded page
+     *
+     *     @var string $id             relative path to the content file
+     *     @var string $url            URL to the page
+     *     @var string $title          title of the page (YAML header)
+     *     @var string $description    description of the page (YAML header)
+     *     @var string $author         author of the page (YAML header)
+     *     @var string $time           timestamp derived from the Date header
+     *     @var string $date           date of the page (YAML header)
+     *     @var string $date_formatted formatted date of the page
+     *     @var string $raw_content    raw, not yet parsed contents of the page
+     *     @var string $meta           parsed meta data of the page
+     * }
+     * @return void
+     */
+    public function onSinglePageLoaded(&$pageData)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has read all known pages
+     *
+     * See {@link DummyPlugin::onSinglePageLoaded()} for details about the
+     * structure of the page data.
+     *
+     * @see    Pico::getPages()
+     * @see    Pico::getCurrentPage()
+     * @see    Pico::getPreviousPage()
+     * @see    Pico::getNextPage()
+     * @param  array &$pages        data of all known pages
+     * @param  array &$currentPage  data of the page being served
+     * @param  array &$previousPage data of the previous page
+     * @param  array &$nextPage     data of the next page
+     * @return void
+     */
+    public function onPagesLoaded(&$pages, &$currentPage, &$previousPage, &$nextPage)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered before Pico registers the twig template engine
+     *
+     * @return void
+     */
+    public function onTwigRegistration()
+    {
+        // your code
+    }
+
+    /**
+     * Triggered before Pico renders the page
+     *
+     * @see    Pico::getTwig()
+     * @param  Twig_Environment &$twig          twig template engine
+     * @param  mixed[]          &$twigVariables template variables
+     * @param  string           &$templateName  file name of the template
+     * @return void
+     */
+    public function onPageRendering(&$twig, &$twigVariables, &$templateName)
+    {
+        // your code
+    }
+
+    /**
+     * Triggered after Pico has rendered the page
+     *
+     * @param  string &$output contents which will be sent to the user
+     * @return void
+     */
+    public function onPageRendered(&$output)
+    {
+        // your code
+    }
+}
+

BIN
phpDocumentor/font/FontAwesome.otf


BIN
phpDocumentor/font/fontawesome-webfont.eot


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 196 - 0
phpDocumentor/font/fontawesome-webfont.svg


BIN
phpDocumentor/font/fontawesome-webfont.ttf


BIN
phpDocumentor/font/fontawesome-webfont.woff


+ 163 - 0
phpDocumentor/graphs/class.html

@@ -0,0 +1,163 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+        <link href="../css/jquery.iviewer.css" rel="stylesheet" media="all"/>
+    <style>
+        #viewer {
+            position: relative;
+            width: 100%;
+        }
+        .wrapper {
+            overflow: hidden;
+        }
+    </style>
+
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+        <script src="../js/jquery.mousewheel.js" type="text/javascript"></script>
+    <script src="../js/jquery.iviewer.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        $(window).resize(function(){
+            $("#viewer").height($(window).height() - 100);
+        });
+
+        $(document).ready(function() {
+            $("#viewer").iviewer({src: '../graphs/classes.svg', zoom_animation: false});
+            $('#viewer img').bind('dragstart', function(event){
+                event.preventDefault();
+            });
+            $(window).resize();
+        });
+    </script>
+
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <div class="row-fluid">
+        <div class="span12">
+            <div class="wrapper">
+                <div id="viewer" class="viewer"></div>
+            </div>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

BIN
phpDocumentor/images/apple-touch-icon-114x114.png


BIN
phpDocumentor/images/apple-touch-icon-72x72.png


BIN
phpDocumentor/images/apple-touch-icon.png


+ 116 - 0
phpDocumentor/images/custom-icons.svg

@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="220"
+   height="220"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="custom-icons.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.4181818"
+     inkscape:cx="60.37594"
+     inkscape:cy="110"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer4"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="718"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:showpageshadow="false"
+     fit-margin-top="10"
+     fit-margin-left="10"
+     fit-margin-right="10"
+     fit-margin-bottom="10" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Background"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(7.0217361,8.0694962)"
+     sodipodi:insensitive="true">
+    <path
+       style="fill:#333333;fill-opacity:1;stroke:none"
+       d="M 60,10 C 32.3,10 10,32.3 10,60 l 0,100 c 0,27.7 22.3,50 50,50 l 100,0 c 27.7,0 50,-22.3 50,-50 L 210,60 C 210,32.3 187.7,10 160,10 L 60,10 z m 8.90625,17.78125 82.1875,0 c 22.7744,0 41.125,18.350601 41.125,41.125 l 0,82.1875 c 0,22.7744 -18.3506,41.125 -41.125,41.125 l -82.1875,0 c -22.774399,0 -41.125,-18.3506 -41.125,-41.125 l 0,-82.1875 c 0,-22.774399 18.350601,-41.125 41.125,-41.125 z"
+       transform="translate(-7.0217361,-8.0694962)"
+       id="rect4991"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Class"
+     style="display:none"
+     sodipodi:insensitive="true">
+    <g
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+       id="text3761">
+      <path
+         d="m 119.775,168.98893 c -8.84006,0 -16.77338,-1.36 -23.8,-4.08 -7.026702,-2.71999 -12.976696,-6.68665 -17.85,-11.9 -4.873353,-5.32664 -8.613349,-11.78664 -11.22,-19.38 -2.606677,-7.59329 -3.910009,-16.31995 -3.91,-26.18 -9e-6,-9.859927 1.473322,-18.586585 4.42,-26.179996 3.059983,-7.59324 7.196646,-13.996567 12.41,-19.21 5.213302,-5.326557 11.333296,-9.349886 18.36,-12.07 7.02662,-2.719881 14.56327,-4.079879 22.61,-4.08 4.87326,1.21e-4 9.29326,0.396787 13.26,1.19 3.96658,0.680119 7.42325,1.473452 10.37,2.38 2.94657,0.906783 5.38324,1.870115 7.31,2.89 1.92657,1.020113 3.28657,1.756779 4.08,2.21 l -6.29,17.51 c -2.72009,-1.699904 -6.63009,-3.286569 -11.73,-4.76 -4.98675,-1.586566 -10.42674,-2.379898 -16.32,-2.38 -5.10006,1.02e-4 -9.86006,0.906768 -14.28,2.72 -4.42005,1.700097 -8.273379,4.306761 -11.56,7.82 -3.173372,3.513421 -5.666703,7.933417 -7.48,13.26 -1.813366,5.326739 -2.720032,11.503396 -2.72,18.529996 -3.2e-5,6.23339 0.679967,11.95672 2.04,17.17 1.473298,5.21337 3.683296,9.7467 6.63,13.6 2.946623,3.74003 6.68662,6.68669 11.22,8.84 4.53328,2.04002 9.97327,3.06002 16.32,3.06 7.59326,2e-5 13.76992,-0.73665 18.53,-2.21 4.75991,-1.58664 8.44324,-3.05997 11.05,-4.42 l 5.78,17.51 c -1.3601,0.90668 -3.2301,1.81334 -5.61,2.72 -2.26676,0.90667 -4.98676,1.81334 -8.16,2.72 -3.17342,0.79334 -6.74342,1.41667 -10.71,1.87 -3.96674,0.56667 -8.21674,0.85 -12.75,0.85"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium"
+         id="path5013"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Interface"
+     style="display:none"
+     sodipodi:insensitive="true">
+    <g
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+       id="text3761-9">
+      <path
+         d="m 99.289993,48.628934 21.419997,0 0,117.809996 -21.419997,0 0,-117.809996"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium"
+         id="path5086"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Trait"
+     style="display:inline"
+     sodipodi:insensitive="true">
+    <g
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+       id="text3761-7">
+      <path
+         d="m 154.67148,48.628934 0,18.53 -36.21,0 0,99.279996 -21.589995,0 0,-99.279996 -36.21,0 0,-18.53 94.009995,0"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium"
+         id="path5089"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>

BIN
phpDocumentor/images/favicon.ico


BIN
phpDocumentor/images/hierarchy-item.png


BIN
phpDocumentor/images/icon-class-13x13.png


+ 77 - 0
phpDocumentor/images/icon-class.svg

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="220"
+   height="220"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(7.0217361,8.0694962)"
+     id="layer1">
+    <path
+       d="M 60,10 C 32.3,10 10,32.3 10,60 l 0,100 c 0,27.7 22.3,50 50,50 l 100,0 c 27.7,0 50,-22.3 50,-50 L 210,60 C 210,32.3 187.7,10 160,10 L 60,10 z m 8.90625,17.78125 82.1875,0 c 22.7744,0 41.125,18.350601 41.125,41.125 l 0,82.1875 c 0,22.7744 -18.3506,41.125 -41.125,41.125 l -82.1875,0 c -22.774399,0 -41.125,-18.3506 -41.125,-41.125 l 0,-82.1875 c 0,-22.774399 18.350601,-41.125 41.125,-41.125 z"
+       transform="translate(-7.0217361,-8.0694962)"
+       id="rect4991"
+       style="fill:#333333;fill-opacity:1;stroke:none" />
+  </g>
+  <g
+     id="layer2"
+     style="display:inline">
+    <g
+       id="text3761"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
+      <path
+         d="m 119.775,168.98893 c -8.84006,0 -16.77338,-1.36 -23.8,-4.08 -7.026702,-2.71999 -12.976696,-6.68665 -17.85,-11.9 -4.873353,-5.32664 -8.613349,-11.78664 -11.22,-19.38 -2.606677,-7.59329 -3.910009,-16.31995 -3.91,-26.18 -9e-6,-9.859927 1.473322,-18.586585 4.42,-26.179996 3.059983,-7.59324 7.196646,-13.996567 12.41,-19.21 5.213302,-5.326557 11.333296,-9.349886 18.36,-12.07 7.02662,-2.719881 14.56327,-4.079879 22.61,-4.08 4.87326,1.21e-4 9.29326,0.396787 13.26,1.19 3.96658,0.680119 7.42325,1.473452 10.37,2.38 2.94657,0.906783 5.38324,1.870115 7.31,2.89 1.92657,1.020113 3.28657,1.756779 4.08,2.21 l -6.29,17.51 c -2.72009,-1.699904 -6.63009,-3.286569 -11.73,-4.76 -4.98675,-1.586566 -10.42674,-2.379898 -16.32,-2.38 -5.10006,1.02e-4 -9.86006,0.906768 -14.28,2.72 -4.42005,1.700097 -8.273379,4.306761 -11.56,7.82 -3.173372,3.513421 -5.666703,7.933417 -7.48,13.26 -1.813366,5.326739 -2.720032,11.503396 -2.72,18.529996 -3.2e-5,6.23339 0.679967,11.95672 2.04,17.17 1.473298,5.21337 3.683296,9.7467 6.63,13.6 2.946623,3.74003 6.68662,6.68669 11.22,8.84 4.53328,2.04002 9.97327,3.06002 16.32,3.06 7.59326,2e-5 13.76992,-0.73665 18.53,-2.21 4.75991,-1.58664 8.44324,-3.05997 11.05,-4.42 l 5.78,17.51 c -1.3601,0.90668 -3.2301,1.81334 -5.61,2.72 -2.26676,0.90667 -4.98676,1.81334 -8.16,2.72 -3.17342,0.79334 -6.74342,1.41667 -10.71,1.87 -3.96674,0.56667 -8.21674,0.85 -12.75,0.85"
+         id="path5013"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
+    </g>
+  </g>
+  <g
+     id="layer3"
+     style="display:none">
+    <text
+       x="110.08234"
+       y="166.43893"
+       id="text3761-9"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"><tspan
+         x="110.08234"
+         y="166.43893"
+         id="tspan3763-5"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium">I</tspan></text>
+  </g>
+  <g
+     id="layer4"
+     style="display:none">
+    <text
+       x="107.59211"
+       y="166.43893"
+       id="text3761-7"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"><tspan
+         x="107.59211"
+         y="166.43893"
+         id="tspan3763-8"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium">T</tspan></text>
+  </g>
+</svg>

BIN
phpDocumentor/images/icon-interface-13x13.png


+ 73 - 0
phpDocumentor/images/icon-interface.svg

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="220"
+   height="220"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(7.0217361,8.0694962)"
+     id="layer1">
+    <path
+       d="M 60,10 C 32.3,10 10,32.3 10,60 l 0,100 c 0,27.7 22.3,50 50,50 l 100,0 c 27.7,0 50,-22.3 50,-50 L 210,60 C 210,32.3 187.7,10 160,10 L 60,10 z m 8.90625,17.78125 82.1875,0 c 22.7744,0 41.125,18.350601 41.125,41.125 l 0,82.1875 c 0,22.7744 -18.3506,41.125 -41.125,41.125 l -82.1875,0 c -22.774399,0 -41.125,-18.3506 -41.125,-41.125 l 0,-82.1875 c 0,-22.774399 18.350601,-41.125 41.125,-41.125 z"
+       transform="translate(-7.0217361,-8.0694962)"
+       id="rect4991"
+       style="fill:#333333;fill-opacity:1;stroke:none" />
+  </g>
+  <g
+     id="layer2"
+     style="display:none">
+    <g
+       id="text3761"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
+      <path
+         d="m 119.775,168.98893 c -8.84006,0 -16.77338,-1.36 -23.8,-4.08 -7.026702,-2.71999 -12.976696,-6.68665 -17.85,-11.9 -4.873353,-5.32664 -8.613349,-11.78664 -11.22,-19.38 -2.606677,-7.59329 -3.910009,-16.31995 -3.91,-26.18 -9e-6,-9.859927 1.473322,-18.586585 4.42,-26.179996 3.059983,-7.59324 7.196646,-13.996567 12.41,-19.21 5.213302,-5.326557 11.333296,-9.349886 18.36,-12.07 7.02662,-2.719881 14.56327,-4.079879 22.61,-4.08 4.87326,1.21e-4 9.29326,0.396787 13.26,1.19 3.96658,0.680119 7.42325,1.473452 10.37,2.38 2.94657,0.906783 5.38324,1.870115 7.31,2.89 1.92657,1.020113 3.28657,1.756779 4.08,2.21 l -6.29,17.51 c -2.72009,-1.699904 -6.63009,-3.286569 -11.73,-4.76 -4.98675,-1.586566 -10.42674,-2.379898 -16.32,-2.38 -5.10006,1.02e-4 -9.86006,0.906768 -14.28,2.72 -4.42005,1.700097 -8.273379,4.306761 -11.56,7.82 -3.173372,3.513421 -5.666703,7.933417 -7.48,13.26 -1.813366,5.326739 -2.720032,11.503396 -2.72,18.529996 -3.2e-5,6.23339 0.679967,11.95672 2.04,17.17 1.473298,5.21337 3.683296,9.7467 6.63,13.6 2.946623,3.74003 6.68662,6.68669 11.22,8.84 4.53328,2.04002 9.97327,3.06002 16.32,3.06 7.59326,2e-5 13.76992,-0.73665 18.53,-2.21 4.75991,-1.58664 8.44324,-3.05997 11.05,-4.42 l 5.78,17.51 c -1.3601,0.90668 -3.2301,1.81334 -5.61,2.72 -2.26676,0.90667 -4.98676,1.81334 -8.16,2.72 -3.17342,0.79334 -6.74342,1.41667 -10.71,1.87 -3.96674,0.56667 -8.21674,0.85 -12.75,0.85"
+         id="path5013"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
+    </g>
+  </g>
+  <g
+     id="layer3"
+     style="display:inline">
+    <g
+       id="text3761-9"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
+      <path
+         d="m 99.289993,48.628934 21.419997,0 0,117.809996 -21.419997,0 0,-117.809996"
+         id="path5086"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
+    </g>
+  </g>
+  <g
+     id="layer4"
+     style="display:none">
+    <g
+       id="text3761-7"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
+      <path
+         d="m 154.67148,48.628934 0,18.53 -36.21,0 0,99.279996 -21.589995,0 0,-99.279996 -36.21,0 0,-18.53 94.009995,0"
+         id="path5089"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
+    </g>
+  </g>
+</svg>

BIN
phpDocumentor/images/icon-trait-13x13.png


+ 73 - 0
phpDocumentor/images/icon-trait.svg

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="220"
+   height="220"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(7.0217361,8.0694962)"
+     id="layer1">
+    <path
+       d="M 60,10 C 32.3,10 10,32.3 10,60 l 0,100 c 0,27.7 22.3,50 50,50 l 100,0 c 27.7,0 50,-22.3 50,-50 L 210,60 C 210,32.3 187.7,10 160,10 L 60,10 z m 8.90625,17.78125 82.1875,0 c 22.7744,0 41.125,18.350601 41.125,41.125 l 0,82.1875 c 0,22.7744 -18.3506,41.125 -41.125,41.125 l -82.1875,0 c -22.774399,0 -41.125,-18.3506 -41.125,-41.125 l 0,-82.1875 c 0,-22.774399 18.350601,-41.125 41.125,-41.125 z"
+       transform="translate(-7.0217361,-8.0694962)"
+       id="rect4991"
+       style="fill:#333333;fill-opacity:1;stroke:none" />
+  </g>
+  <g
+     id="layer2"
+     style="display:none">
+    <g
+       id="text3761"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
+      <path
+         d="m 119.775,168.98893 c -8.84006,0 -16.77338,-1.36 -23.8,-4.08 -7.026702,-2.71999 -12.976696,-6.68665 -17.85,-11.9 -4.873353,-5.32664 -8.613349,-11.78664 -11.22,-19.38 -2.606677,-7.59329 -3.910009,-16.31995 -3.91,-26.18 -9e-6,-9.859927 1.473322,-18.586585 4.42,-26.179996 3.059983,-7.59324 7.196646,-13.996567 12.41,-19.21 5.213302,-5.326557 11.333296,-9.349886 18.36,-12.07 7.02662,-2.719881 14.56327,-4.079879 22.61,-4.08 4.87326,1.21e-4 9.29326,0.396787 13.26,1.19 3.96658,0.680119 7.42325,1.473452 10.37,2.38 2.94657,0.906783 5.38324,1.870115 7.31,2.89 1.92657,1.020113 3.28657,1.756779 4.08,2.21 l -6.29,17.51 c -2.72009,-1.699904 -6.63009,-3.286569 -11.73,-4.76 -4.98675,-1.586566 -10.42674,-2.379898 -16.32,-2.38 -5.10006,1.02e-4 -9.86006,0.906768 -14.28,2.72 -4.42005,1.700097 -8.273379,4.306761 -11.56,7.82 -3.173372,3.513421 -5.666703,7.933417 -7.48,13.26 -1.813366,5.326739 -2.720032,11.503396 -2.72,18.529996 -3.2e-5,6.23339 0.679967,11.95672 2.04,17.17 1.473298,5.21337 3.683296,9.7467 6.63,13.6 2.946623,3.74003 6.68662,6.68669 11.22,8.84 4.53328,2.04002 9.97327,3.06002 16.32,3.06 7.59326,2e-5 13.76992,-0.73665 18.53,-2.21 4.75991,-1.58664 8.44324,-3.05997 11.05,-4.42 l 5.78,17.51 c -1.3601,0.90668 -3.2301,1.81334 -5.61,2.72 -2.26676,0.90667 -4.98676,1.81334 -8.16,2.72 -3.17342,0.79334 -6.74342,1.41667 -10.71,1.87 -3.96674,0.56667 -8.21674,0.85 -12.75,0.85"
+         id="path5013"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
+    </g>
+  </g>
+  <g
+     id="layer3"
+     style="display:none">
+    <g
+       id="text3761-9"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
+      <path
+         d="m 99.289993,48.628934 21.419997,0 0,117.809996 -21.419997,0 0,-117.809996"
+         id="path5086"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
+    </g>
+  </g>
+  <g
+     id="layer4"
+     style="display:inline">
+    <g
+       id="text3761-7"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
+      <path
+         d="m 154.67148,48.628934 0,18.53 -36.21,0 0,99.279996 -21.589995,0 0,-99.279996 -36.21,0 0,-18.53 94.009995,0"
+         id="path5089"
+         style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
+    </g>
+  </g>
+</svg>

BIN
phpDocumentor/images/iviewer/grab.cur


BIN
phpDocumentor/images/iviewer/hand.cur


BIN
phpDocumentor/images/iviewer/iviewer.rotate_left.png


BIN
phpDocumentor/images/iviewer/iviewer.rotate_right.png


BIN
phpDocumentor/images/iviewer/iviewer.zoom_fit.png


BIN
phpDocumentor/images/iviewer/iviewer.zoom_in.png


BIN
phpDocumentor/images/iviewer/iviewer.zoom_out.png


BIN
phpDocumentor/images/iviewer/iviewer.zoom_zero.png


+ 206 - 0
phpDocumentor/index.html

@@ -0,0 +1,206 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="css/font-awesome.min.css" rel="stylesheet">
+    <link href="css/prism.css" rel="stylesheet" media="all"/>
+    <link href="css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="js/html5.js"></script>
+    <![endif]-->
+    <script src="js/jquery-1.11.0.min.js"></script>
+    <script src="js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="js/bootstrap.min.js"></script>
+    <script src="js/jquery.smooth-scroll.js"></script>
+    <script src="js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+    
+    <link rel="shortcut icon" href="images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-143734261"></a>
+                                <a href="namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-143734261" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content namespace">
+                    <nav>
+                                                
+                                            </nav>
+                    <h1><small></small>\</h1>
+
+                    
+                    
+                                        <h2>Interfaces</h2>
+                    <table class="table table-hover">
+                                                    <tr>
+                                <td><a href="classes/PicoPluginInterface.html">PicoPluginInterface</a></td>
+                                <td><em>Common interface for Pico plugins</em></td>
+                            </tr>
+                                            </table>
+                    
+                                        <h2>Classes</h2>
+                    <table class="table table-hover">
+                                            <tr>
+                            <td><a href="classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></td>
+                            <td><em>Abstract class to extend from when implementing a Pico plugin</em></td>
+                        </tr>
+                                            <tr>
+                            <td><a href="classes/DummyPlugin.html">DummyPlugin</a></td>
+                            <td><em>Pico dummy plugin - a template for plugins</em></td>
+                        </tr>
+                                            <tr>
+                            <td><a href="classes/Pico.html">Pico</a></td>
+                            <td><em>Pico</em></td>
+                        </tr>
+                                        </table>
+                                    </div>
+
+                <aside class="span4 detailsbar">
+                    <dl>
+                        <dt>Namespace hierarchy</dt>
+                        <dd class="hierarchy">
+                                                                                                                                                <div class="namespace-wrapper">\</div>
+                        </dd>
+                    </dl>
+                </aside>
+            </div>
+
+            
+            
+        </div>
+    </section>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="reports/errors.html">Errors</a></li>
+                                    <li><a href="reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 6 - 0
phpDocumentor/js/bootstrap.min.js


+ 8 - 0
phpDocumentor/js/html5.js

@@ -0,0 +1,8 @@
+/*
+ HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}</style>";
+c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
+"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);
+if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 0
phpDocumentor/js/jquery-1.11.0.min.js


+ 602 - 0
phpDocumentor/js/jquery.dotdotdot-1.5.9.js

@@ -0,0 +1,602 @@
+/*	
+ *	jQuery dotdotdot 1.5.9
+ *	
+ *	Copyright (c) 2013 Fred Heusschen
+ *	www.frebsite.nl
+ *
+ *	Plugin website:
+ *	dotdotdot.frebsite.nl
+ *
+ *	Dual licensed under the MIT and GPL licenses.
+ *	http://en.wikipedia.org/wiki/MIT_License
+ *	http://en.wikipedia.org/wiki/GNU_General_Public_License
+ */
+
+(function( $ )
+{
+	if ( $.fn.dotdotdot )
+	{
+		return;
+	}
+
+	$.fn.dotdotdot = function( o )
+	{
+		if ( this.length == 0 )
+		{
+			if ( !o || o.debug !== false )
+			{
+				debug( true, 'No element found for "' + this.selector + '".' );				
+			}
+			return this;
+		}
+		if ( this.length > 1 )
+		{
+			return this.each(
+				function()
+				{
+					$(this).dotdotdot( o );
+				}
+			);
+		}
+
+
+		var $dot = this;
+
+		if ( $dot.data( 'dotdotdot' ) )
+		{
+			$dot.trigger( 'destroy.dot' );
+		}
+
+		$dot.data( 'dotdotdot-style', $dot.attr( 'style' ) );
+		$dot.css( 'word-wrap', 'break-word' );
+
+		$dot.bind_events = function()
+		{
+			$dot.bind(
+				'update.dot',
+				function( e, c )
+				{
+					e.preventDefault();
+					e.stopPropagation();
+
+					opts.maxHeight = ( typeof opts.height == 'number' ) 
+						? opts.height 
+						: getTrueInnerHeight( $dot );
+
+					opts.maxHeight += opts.tolerance;
+
+					if ( typeof c != 'undefined' )
+					{
+						if ( typeof c == 'string' || c instanceof HTMLElement )
+						{
+					 		c = $('<div />').append( c ).contents();
+						}
+						if ( c instanceof $ )
+						{
+							orgContent = c;
+						}
+					}
+
+					$inr = $dot.wrapInner( '<div class="dotdotdot" />' ).children();
+					$inr.empty()
+						.append( orgContent.clone( true ) )
+						.css({
+							'height'	: 'auto',
+							'width'		: 'auto',
+							'border'	: 'none',
+							'padding'	: 0,
+							'margin'	: 0
+						});
+
+					var after = false,
+						trunc = false;
+
+					if ( conf.afterElement )
+					{
+						after = conf.afterElement.clone( true );
+						conf.afterElement.remove();
+					}
+					if ( test( $inr, opts ) )
+					{
+						if ( opts.wrap == 'children' )
+						{
+							trunc = children( $inr, opts, after );
+						}
+						else
+						{
+							trunc = ellipsis( $inr, $dot, $inr, opts, after );
+						}
+					}
+					$inr.replaceWith( $inr.contents() );
+					$inr = null;
+					
+					if ( $.isFunction( opts.callback ) )
+					{
+						opts.callback.call( $dot[ 0 ], trunc, orgContent );
+					}
+
+					conf.isTruncated = trunc;
+					return trunc;
+				}
+
+			).bind(
+				'isTruncated.dot',
+				function( e, fn )
+				{
+					e.preventDefault();
+					e.stopPropagation();
+
+					if ( typeof fn == 'function' )
+					{
+						fn.call( $dot[ 0 ], conf.isTruncated );
+					}
+					return conf.isTruncated;
+				}
+
+			).bind(
+				'originalContent.dot',
+				function( e, fn )
+				{
+					e.preventDefault();
+					e.stopPropagation();
+
+					if ( typeof fn == 'function' )
+					{
+						fn.call( $dot[ 0 ], orgContent );
+					}
+					return orgContent;
+				}
+
+			).bind(
+				'destroy.dot',
+				function( e )
+				{
+					e.preventDefault();
+					e.stopPropagation();
+
+					$dot.unwatch()
+						.unbind_events()
+						.empty()
+						.append( orgContent )
+						.attr( 'style', $dot.data( 'dotdotdot-style' ) )
+						.data( 'dotdotdot', false );
+				}
+			);
+			return $dot;
+		};	//	/bind_events
+
+		$dot.unbind_events = function()
+		{
+			$dot.unbind('.dot');
+			return $dot;
+		};	//	/unbind_events
+
+		$dot.watch = function()
+		{
+			$dot.unwatch();
+			if ( opts.watch == 'window' )
+			{
+				var $window = $(window),
+					_wWidth = $window.width(),
+					_wHeight = $window.height(); 
+
+				$window.bind(
+					'resize.dot' + conf.dotId,
+					function()
+					{
+						if ( _wWidth != $window.width() || _wHeight != $window.height() || !opts.windowResizeFix )
+						{
+							_wWidth = $window.width();
+							_wHeight = $window.height();
+	
+							if ( watchInt )
+							{
+								clearInterval( watchInt );
+							}
+							watchInt = setTimeout(
+								function()
+								{
+									$dot.trigger( 'update.dot' );
+								}, 10
+							);
+						}
+					}
+				);
+			}
+			else
+			{
+				watchOrg = getSizes( $dot );
+				watchInt = setInterval(
+					function()
+					{
+						var watchNew = getSizes( $dot );
+						if ( watchOrg.width  != watchNew.width ||
+							 watchOrg.height != watchNew.height )
+						{
+							$dot.trigger( 'update.dot' );
+							watchOrg = getSizes( $dot );
+						}
+					}, 100
+				);
+			}
+			return $dot;
+		};
+		$dot.unwatch = function()
+		{
+			$(window).unbind( 'resize.dot' + conf.dotId );
+			if ( watchInt )
+			{
+				clearInterval( watchInt );
+			}
+			return $dot;
+		};
+
+		var	orgContent	= $dot.contents(),
+			opts 		= $.extend( true, {}, $.fn.dotdotdot.defaults, o ),
+			conf		= {},
+			watchOrg	= {},
+			watchInt	= null,
+			$inr		= null;
+
+		conf.afterElement	= getElement( opts.after, $dot );
+		conf.isTruncated	= false;
+		conf.dotId			= dotId++;
+
+
+		$dot.data( 'dotdotdot', true )
+			.bind_events()
+			.trigger( 'update.dot' );
+
+		if ( opts.watch )
+		{
+			$dot.watch();
+		}
+
+		return $dot;
+	};
+
+
+	//	public
+	$.fn.dotdotdot.defaults = {
+		'ellipsis'	: '... ',
+		'wrap'		: 'word',
+		'lastCharacter': {
+			'remove'		: [ ' ', ',', ';', '.', '!', '?' ],
+			'noEllipsis'	: []
+		},
+		'tolerance'	: 0,
+		'callback'	: null,
+		'after'		: null,
+		'height'	: null,
+		'watch'		: false,
+		'windowResizeFix': true,
+		'debug'		: false
+	};
+	
+
+	//	private
+	var dotId = 1;
+
+	function children( $elem, o, after )
+	{
+		var $elements 	= $elem.children(),
+			isTruncated	= false;
+
+		$elem.empty();
+
+		for ( var a = 0, l = $elements.length; a < l; a++ )
+		{
+			var $e = $elements.eq( a );
+			$elem.append( $e );
+			if ( after )
+			{
+				$elem.append( after );
+			}
+			if ( test( $elem, o ) )
+			{
+				$e.remove();
+				isTruncated = true;
+				break;
+			}
+			else
+			{
+				if ( after )
+				{
+					after.remove();
+				}
+			}
+		}
+		return isTruncated;
+	}
+	function ellipsis( $elem, $d, $i, o, after )
+	{
+		var $elements 	= $elem.contents(),
+			isTruncated	= false;
+
+		$elem.empty();
+
+		var notx = 'table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, select, optgroup, option, textarea, script, style';
+		for ( var a = 0, l = $elements.length; a < l; a++ )
+		{
+
+			if ( isTruncated )
+			{
+				break;
+			}
+
+			var e	= $elements[ a ],
+				$e	= $(e);
+
+			if ( typeof e == 'undefined' )
+			{
+				continue;
+			}
+
+			$elem.append( $e );
+			if ( after )
+			{
+				$elem[ ( $elem.is( notx ) ) ? 'after' : 'append' ]( after );
+			}
+			if ( e.nodeType == 3 )
+			{
+				if ( test( $i, o ) )
+				{
+					isTruncated = ellipsisElement( $e, $d, $i, o, after );
+				}
+			}
+			else
+			{
+				isTruncated = ellipsis( $e, $d, $i, o, after );
+			}
+
+			if ( !isTruncated )
+			{
+				if ( after )
+				{
+					after.remove();
+				}
+			}
+		}
+		return isTruncated;
+	}
+	function ellipsisElement( $e, $d, $i, o, after )
+	{
+		var isTruncated	= false,
+			e = $e[ 0 ];
+
+		if ( typeof e == 'undefined' )
+		{
+			return false;
+		}
+
+		var seporator	= ( o.wrap == 'letter' ) ? '' : ' ',
+			textArr		= getTextContent( e ).split( seporator ),
+			position 	= -1,
+			midPos		= -1,
+			startPos	= 0,
+			endPos		= textArr.length - 1;
+
+		while ( startPos <= endPos )
+		{
+			var m = Math.floor( ( startPos + endPos ) / 2 );
+			if ( m == midPos ) 
+			{
+				break;
+			}
+			midPos = m;
+
+			setTextContent( e, textArr.slice( 0, midPos + 1 ).join( seporator ) + o.ellipsis );
+
+			if ( !test( $i, o ) )
+			{
+				position = midPos;
+				startPos = midPos; 
+			}
+			else
+			{
+				endPos = midPos;
+			}				
+		}	
+	
+		if ( position != -1 && !( textArr.length == 1 && textArr[ 0 ].length == 0 ) )
+		{
+			var txt = addEllipsis( textArr.slice( 0, position + 1 ).join( seporator ), o );
+			isTruncated = true;
+			setTextContent( e, txt );
+		}
+		else
+		{
+			var $w = $e.parent();
+			$e.remove();
+
+			var afterLength = ( after ) ? after.length : 0 ;
+
+			if ( $w.contents().size() > afterLength )
+			{
+				var $n = $w.contents().eq( -1 - afterLength );
+				isTruncated = ellipsisElement( $n, $d, $i, o, after );
+			}
+			else
+			{
+				var $p = $w.prev()
+				var e = $p.contents().eq( -1 )[ 0 ];
+
+				if ( typeof e != 'undefined' )
+				{
+					var txt = addEllipsis( getTextContent( e ), o );
+					setTextContent( e, txt );
+					if ( after )
+					{
+						$p.append( after );
+					}
+					$w.remove();
+					isTruncated = true;
+				}
+
+			}
+		}
+
+		return isTruncated;
+	}
+	function test( $i, o )
+	{
+		return $i.innerHeight() > o.maxHeight;
+	}
+	function addEllipsis( txt, o )
+	{
+		while( $.inArray( txt.slice( -1 ), o.lastCharacter.remove ) > -1 )
+		{
+			txt = txt.slice( 0, -1 );
+		}
+		if ( $.inArray( txt.slice( -1 ), o.lastCharacter.noEllipsis ) < 0 )
+		{
+			txt += o.ellipsis;
+		}
+		return txt;
+	}
+	function getSizes( $d )
+	{
+		return {
+			'width'	: $d.innerWidth(),
+			'height': $d.innerHeight()
+		};
+	}
+	function setTextContent( e, content )
+	{
+		if ( e.innerText )
+		{
+			e.innerText = content;
+		}
+		else if ( e.nodeValue )
+		{
+			e.nodeValue = content;
+		}
+		else if (e.textContent)
+		{
+			e.textContent = content;
+		}
+
+	}
+	function getTextContent( e )
+	{
+		if ( e.innerText )
+		{
+			return e.innerText;
+		}
+		else if ( e.nodeValue )
+		{
+			return e.nodeValue;
+		}
+		else if ( e.textContent )
+		{
+			return e.textContent;
+		}
+		else
+		{
+			return "";
+		}
+	}
+	function getElement( e, $i )
+	{
+		if ( typeof e == 'undefined' )
+		{
+			return false;
+		}
+		if ( !e )
+		{
+			return false;
+		}
+		if ( typeof e == 'string' )
+		{
+			e = $(e, $i);
+			return ( e.length )
+				? e 
+				: false;
+		}
+		if ( typeof e == 'object' )
+		{
+			return ( typeof e.jquery == 'undefined' )
+				? false
+				: e;
+		}
+		return false;
+	}
+	function getTrueInnerHeight( $el )
+	{
+		var h = $el.innerHeight(),
+			a = [ 'paddingTop', 'paddingBottom' ];
+
+		for ( var z = 0, l = a.length; z < l; z++ ) {
+			var m = parseInt( $el.css( a[ z ] ), 10 );
+			if ( isNaN( m ) )
+			{
+				m = 0;
+			}
+			h -= m;
+		}
+		return h;
+	}
+	function debug( d, m )
+	{
+		if ( !d )
+		{
+			return false;
+		}
+		if ( typeof m == 'string' )
+		{
+			m = 'dotdotdot: ' + m;
+		}
+		else
+		{
+			m = [ 'dotdotdot:', m ];
+		}
+
+		if ( typeof window.console != 'undefined' )
+		{
+			if ( typeof window.console.log != 'undefined' )
+			{
+				window.console.log( m );
+			}
+		}
+		return false;
+	}
+	
+
+	//	override jQuery.html
+	var _orgHtml = $.fn.html;
+    $.fn.html = function( str ) {
+		if ( typeof str != 'undefined' )
+		{
+			if ( this.data( 'dotdotdot' ) )
+			{
+				if ( typeof str != 'function' )
+				{
+					return this.trigger( 'update', [ str ] );
+				}
+			}
+			return _orgHtml.call( this, str );
+		}
+		return _orgHtml.call( this );
+    };
+
+
+	//	override jQuery.text
+	var _orgText = $.fn.text;
+    $.fn.text = function( str ) {
+		if ( typeof str != 'undefined' )
+		{
+			if ( this.data( 'dotdotdot' ) )
+			{
+				var temp = $( '<div />' );
+				temp.text( str );
+				str = temp.html();
+				temp.remove();
+				return this.trigger( 'update', [ str ] );
+			}
+			return _orgText.call( this, str );
+		}
+        return _orgText.call( this );
+    };
+
+
+})( jQuery );

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 14 - 0
phpDocumentor/js/jquery.dotdotdot-1.5.9.min.js


+ 1169 - 0
phpDocumentor/js/jquery.iviewer.js

@@ -0,0 +1,1169 @@
+/*
+ * iviewer Widget for jQuery UI
+ * https://github.com/can3p/iviewer
+ *
+ * Copyright (c) 2009 - 2012 Dmitry Petrov
+ * Dual licensed under the MIT and GPL licenses.
+ *  - http://www.opensource.org/licenses/mit-license.php
+ *  - http://www.gnu.org/copyleft/gpl.html
+ *
+ * Author: Dmitry Petrov
+ * Version: 0.7.7
+ */
+
+( function( $, undefined ) {
+
+//this code was taken from the https://github.com/furf/jquery-ui-touch-punch
+var mouseEvents = {
+        touchstart: 'mousedown',
+        touchmove: 'mousemove',
+        touchend: 'mouseup'
+    },
+    gesturesSupport = 'ongesturestart' in document.createElement('div');
+
+
+/**
+ * Convert a touch event to a mouse-like
+ */
+function makeMouseEvent (event) {
+    var touch = event.originalEvent.changedTouches[0];
+
+    return $.extend(event, {
+        type:    mouseEvents[event.type],
+        which:   1,
+        pageX:   touch.pageX,
+        pageY:   touch.pageY,
+        screenX: touch.screenX,
+        screenY: touch.screenY,
+        clientX: touch.clientX,
+        clientY: touch.clientY,
+        isTouchEvent: true
+    });
+}
+
+var mouseProto = $.ui.mouse.prototype,
+    _mouseInit = $.ui.mouse.prototype._mouseInit;
+
+mouseProto._mouseInit = function() {
+    var self = this;
+    self._touchActive = false;
+
+    this.element.bind( 'touchstart.' + this.widgetName, function(event) {
+        if (gesturesSupport && event.originalEvent.touches.length > 1) { return; }
+        self._touchActive = true;
+        return self._mouseDown(makeMouseEvent(event));
+    })
+
+    var self = this;
+    // these delegates are required to keep context
+    this._mouseMoveDelegate = function(event) {
+        if (gesturesSupport && event.originalEvent.touches && event.originalEvent.touches.length > 1) { return; }
+        if (self._touchActive) {
+            return self._mouseMove(makeMouseEvent(event));
+        }
+    };
+    this._mouseUpDelegate = function(event) {
+        if (self._touchActive) {
+            self._touchActive = false;
+            return self._mouseUp(makeMouseEvent(event));
+        }
+    };
+
+    $(document)
+        .bind('touchmove.'+ this.widgetName, this._mouseMoveDelegate)
+        .bind('touchend.' + this.widgetName, this._mouseUpDelegate);
+
+    _mouseInit.apply(this);
+}
+
+/**
+ * Simple implementation of jQuery like getters/setters
+ * var val = something();
+ * something(val);
+ */
+var setter = function(setter, getter) {
+    return function(val) {
+        if (arguments.length === 0) {
+            return getter.apply(this);
+        } else {
+            setter.apply(this, arguments);
+        }
+    }
+};
+
+/**
+ * Internet explorer rotates image relative left top corner, so we should
+ * shift image when it's rotated.
+ */
+var ieTransforms = {
+        '0': {
+            marginLeft: 0,
+            marginTop: 0,
+            filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=1, SizingMethod="auto expand")'
+        },
+
+        '90': {
+            marginLeft: -1,
+            marginTop: 1,
+            filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=0, M12=-1, M21=1, M22=0, SizingMethod="auto expand")'
+        },
+
+        '180': {
+            marginLeft: 0,
+            marginTop: 0,
+            filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=-1, M12=0, M21=0, M22=-1, SizingMethod="auto expand")'
+        },
+
+        '270': {
+            marginLeft: -1,
+            marginTop: 1,
+            filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=0, M12=1, M21=-1, M22=0, SizingMethod="auto expand")'
+        }
+    },
+    // this test is the inversion of the css filters test from the modernizr project
+    useIeTransforms = function() {
+        var modElem = document.createElement('modernizr'),
+		mStyle = modElem.style,
+		omPrefixes = 'Webkit Moz O ms',
+		domPrefixes = omPrefixes.toLowerCase().split(' '),
+        	props = ("transform" + ' ' + domPrefixes.join("Transform ") + "Transform").split(' ');
+        for ( var i in props ) {
+            var prop = props[i];
+            if ( !$.contains(prop, "-") && mStyle[prop] !== undefined ) {
+                return false;
+            }
+        }
+        return true;
+    }();
+
+$.widget( "ui.iviewer", $.ui.mouse, {
+    widgetEventPrefix: "iviewer",
+    options : {
+        /**
+        * start zoom value for image, not used now
+        * may be equal to "fit" to fit image into container or scale in %
+        **/
+        zoom: "fit",
+        /**
+        * base value to scale image
+        **/
+        zoom_base: 100,
+        /**
+        * maximum zoom
+        **/
+        zoom_max: 800,
+        /**
+        * minimum zoom
+        **/
+        zoom_min: 25,
+        /**
+        * base of rate multiplier.
+        * zoom is calculated by formula: zoom_base * zoom_delta^rate
+        **/
+        zoom_delta: 1.4,
+        /**
+        * whether the zoom should be animated.
+        */
+        zoom_animation: true,
+        /**
+        * if true plugin doesn't add its own controls
+        **/
+        ui_disabled: false,
+        /**
+         * If false mousewheel will be disabled
+         */
+        mousewheel: true,
+        /**
+        * if false, plugin doesn't bind resize event on window and this must
+        * be handled manually
+        **/
+        update_on_resize: true,
+        /**
+        * event is triggered when zoom value is changed
+        * @param int new zoom value
+        * @return boolean if false zoom action is aborted
+        **/
+        onZoom: jQuery.noop,
+        /**
+        * event is triggered when zoom value is changed after image is set to the new dimensions
+        * @param int new zoom value
+        * @return boolean if false zoom action is aborted
+        **/
+        onAfterZoom: jQuery.noop,
+        /**
+        * event is fired on drag begin
+        * @param object coords mouse coordinates on the image
+        * @return boolean if false is returned, drag action is aborted
+        **/
+        onStartDrag: jQuery.noop,
+        /**
+        * event is fired on drag action
+        * @param object coords mouse coordinates on the image
+        **/
+        onDrag: jQuery.noop,
+        /**
+        * event is fired on drag stop
+        * @param object coords mouse coordinates on the image
+        **/
+        onStopDrag: jQuery.noop,
+        /**
+        * event is fired when mouse moves over image
+        * @param object coords mouse coordinates on the image
+        **/
+        onMouseMove: jQuery.noop,
+        /**
+        * mouse click event
+        * @param object coords mouse coordinates on the image
+        **/
+        onClick: jQuery.noop,
+        /**
+        * event is fired when image starts to load
+        */
+        onStartLoad: null,
+        /**
+        * event is fired, when image is loaded and initially positioned
+        */
+        onFinishLoad: null,
+        /**
+        * event is fired when image load error occurs
+        */
+        onErrorLoad: null
+    },
+
+    _create: function() {
+        var me = this;
+
+        //drag variables
+        this.dx = 0;
+        this.dy = 0;
+
+        /* object containing actual information about image
+        *   @img_object.object - jquery img object
+        *   @img_object.orig_{width|height} - original dimensions
+        *   @img_object.display_{width|height} - actual dimensions
+        */
+        this.img_object = {};
+
+        this.zoom_object = {}; //object to show zoom status
+
+        this._angle = 0;
+
+        this.current_zoom = this.options.zoom;
+
+        if(this.options.src === null){
+            return;
+        }
+
+        this.container = this.element;
+
+        this._updateContainerInfo();
+
+        //init container
+        this.container.css("overflow","hidden");
+
+        if (this.options.update_on_resize == true) {
+            $(window).resize(function() {
+                me.update();
+            });
+        }
+
+        this.img_object = new $.ui.iviewer.ImageObject(this.options.zoom_animation);
+
+        if (this.options.mousewheel) {
+            this.container.bind('mousewheel.iviewer', function(ev, delta)
+                {
+                    //this event is there instead of containing div, because
+                    //at opera it triggers many times on div
+                    var zoom = (delta > 0)?1:-1,
+                        container_offset = me.container.offset(),
+                        mouse_pos = {
+                            //jquery.mousewheel 3.1.0 uses strange MozMousePixelScroll event
+                            //which is not being fixed by jQuery.Event
+                            x: (ev.pageX || ev.originalEvent.pageX) - container_offset.left,
+                            y: (ev.pageY || ev.originalEvent.pageX) - container_offset.top
+                        };
+
+                    me.zoom_by(zoom, mouse_pos);
+                    return false;
+                });
+
+            if (gesturesSupport) {
+                var gestureThrottle = +new Date();
+                var originalScale, originalCenter;
+                this.img_object.object()
+                    // .bind('gesturestart', function(ev) {
+                    .bind('touchstart', function(ev) {
+                        originalScale = me.current_zoom;
+                        var touches = ev.originalEvent.touches,
+                            container_offset;
+                        if (touches.length == 2) {
+                            container_offset = me.container.offset();
+                            originalCenter = {
+                                x: (touches[0].pageX + touches[1].pageX) / 2  - container_offset.left,
+                                y: (touches[0].pageY + touches[1].pageY) / 2 - container_offset.top
+                            };
+                        } else {
+                            originalCenter = null;
+                        }
+                    }).bind('gesturechange', function(ev) {
+                        //do not want to import throttle function from underscore
+                        var d = +new Date();
+                        if ((d - gestureThrottle) < 50) { return; }
+                        gestureThrottle = d;
+                        var zoom = originalScale * ev.originalEvent.scale;
+                        me.set_zoom(zoom, originalCenter);
+                        ev.preventDefault();
+                    }).bind('gestureend', function(ev) {
+                        originalCenter = null;
+                    });
+            }
+        }
+
+        //init object
+        this.img_object.object()
+            //bind mouse events
+            .click(function(e){return me._click(e)})
+                .prependTo(this.container);
+
+        this.container.bind('mousemove', function(ev) { me._handleMouseMove(ev); });
+
+        this.loadImage(this.options.src);
+
+        if(!this.options.ui_disabled)
+        {
+            this.createui();
+        }
+
+        this._mouseInit();
+    },
+
+    destroy: function() {
+        $.Widget.prototype.destroy.call( this );
+        this._mouseDestroy();
+        this.img_object.object().remove();
+        this.container.off('.iviewer');
+        this.container.css('overflow', ''); //cleanup styles on destroy
+    },
+
+    _updateContainerInfo: function()
+    {
+        this.options.height = this.container.height();
+        this.options.width = this.container.width();
+    },
+
+    update: function()
+    {
+        this._updateContainerInfo()
+        this.setCoords(this.img_object.x(), this.img_object.y());
+    },
+
+    loadImage: function( src )
+    {
+        this.current_zoom = this.options.zoom;
+        var me = this;
+
+        this._trigger('onStartLoad', 0, src);
+
+        this.container.addClass("iviewer_loading");
+        this.img_object.load(src, function() {
+            me._imageLoaded(src);
+        }, function() {
+            me._trigger("onErrorLoad", 0, src);
+        });
+    },
+
+    _imageLoaded: function(src) {
+        this.container.removeClass("iviewer_loading");
+        this.container.addClass("iviewer_cursor");
+
+        if(this.options.zoom == "fit"){
+            this.fit(true);
+        }
+        else {
+            this.set_zoom(this.options.zoom, true);
+        }
+
+        this._trigger('onFinishLoad', 0, src);
+    },
+
+    /**
+    * fits image in the container
+    *
+    * @param {boolean} skip_animation
+    **/
+    fit: function(skip_animation)
+    {
+        var aspect_ratio = this.img_object.orig_width() / this.img_object.orig_height();
+        var window_ratio = this.options.width /  this.options.height;
+        var choose_left = (aspect_ratio > window_ratio);
+        var new_zoom = 0;
+
+        if(choose_left){
+            new_zoom = this.options.width / this.img_object.orig_width() * 100;
+        }
+        else {
+            new_zoom = this.options.height / this.img_object.orig_height() * 100;
+        }
+
+      this.set_zoom(new_zoom, skip_animation);
+    },
+
+    /**
+    * center image in container
+    **/
+    center: function()
+    {
+        this.setCoords(-Math.round((this.img_object.display_width() - this.options.width)/2),
+                -Math.round((this.img_object.display_height() - this.options.height)/2));
+    },
+
+    /**
+    *   move a point in container to the center of display area
+    *   @param x a point in container
+    *   @param y a point in container
+    **/
+    moveTo: function(x, y)
+    {
+        var dx = x-Math.round(this.options.width/2);
+        var dy = y-Math.round(this.options.height/2);
+
+        var new_x = this.img_object.x() - dx;
+        var new_y = this.img_object.y() - dy;
+
+        this.setCoords(new_x, new_y);
+    },
+
+    /**
+     * Get container offset object.
+     */
+    getContainerOffset: function() {
+        return jQuery.extend({}, this.container.offset());
+    },
+
+    /**
+    * set coordinates of upper left corner of image object
+    **/
+    setCoords: function(x,y)
+    {
+        //do nothing while image is being loaded
+        if(!this.img_object.loaded()) { return; }
+
+        var coords = this._correctCoords(x,y);
+        this.img_object.x(coords.x);
+        this.img_object.y(coords.y);
+    },
+
+    _correctCoords: function( x, y )
+    {
+        x = parseInt(x, 10);
+        y = parseInt(y, 10);
+
+        //check new coordinates to be correct (to be in rect)
+        if(y > 0){
+            y = 0;
+        }
+        if(x > 0){
+            x = 0;
+        }
+        if(y + this.img_object.display_height() < this.options.height){
+            y = this.options.height - this.img_object.display_height();
+        }
+        if(x + this.img_object.display_width() < this.options.width){
+            x = this.options.width - this.img_object.display_width();
+        }
+        if(this.img_object.display_width() <= this.options.width){
+            x = -(this.img_object.display_width() - this.options.width)/2;
+        }
+        if(this.img_object.display_height() <= this.options.height){
+            y = -(this.img_object.display_height() - this.options.height)/2;
+        }
+
+        return { x: x, y:y };
+    },
+
+
+    /**
+    * convert coordinates on the container to the coordinates on the image (in original size)
+    *
+    * @return object with fields x,y according to coordinates or false
+    * if initial coords are not inside image
+    **/
+    containerToImage : function (x,y)
+    {
+        var coords = { x : x - this.img_object.x(),
+                 y :  y - this.img_object.y()
+        };
+
+        coords = this.img_object.toOriginalCoords(coords);
+
+        return { x :  util.descaleValue(coords.x, this.current_zoom),
+                 y :  util.descaleValue(coords.y, this.current_zoom)
+        };
+    },
+
+    /**
+    * convert coordinates on the image (in original size, and zero angle) to the coordinates on the container
+    *
+    * @return object with fields x,y according to coordinates
+    **/
+    imageToContainer : function (x,y)
+    {
+        var coords = {
+                x : util.scaleValue(x, this.current_zoom),
+                y : util.scaleValue(y, this.current_zoom)
+            };
+
+        return this.img_object.toRealCoords(coords);
+    },
+
+    /**
+    * get mouse coordinates on the image
+    * @param e - object containing pageX and pageY fields, e.g. mouse event object
+    *
+    * @return object with fields x,y according to coordinates or false
+    * if initial coords are not inside image
+    **/
+    _getMouseCoords : function(e)
+    {
+        var containerOffset = this.container.offset();
+            coords = this.containerToImage(e.pageX - containerOffset.left, e.pageY - containerOffset.top);
+
+        return coords;
+    },
+
+    /**
+    * set image scale to the new_zoom
+    *
+    * @param {number} new_zoom image scale in %
+    * @param {boolean} skip_animation
+    * @param {x: number, y: number} Coordinates of point the should not be moved on zoom. The default is the center of image.
+    **/
+    set_zoom: function(new_zoom, skip_animation, zoom_center)
+    {
+        if (this._trigger('onZoom', 0, new_zoom) == false) {
+            return;
+        }
+
+        //do nothing while image is being loaded
+        if(!this.img_object.loaded()) { return; }
+
+        zoom_center = zoom_center || {
+            x: Math.round(this.options.width/2),
+            y: Math.round(this.options.height/2)
+        }
+
+        if(new_zoom <  this.options.zoom_min)
+        {
+            new_zoom = this.options.zoom_min;
+        }
+        else if(new_zoom > this.options.zoom_max)
+        {
+            new_zoom = this.options.zoom_max;
+        }
+
+        /* we fake these values to make fit zoom properly work */
+        if(this.current_zoom == "fit")
+        {
+            var old_x = zoom_center.x + Math.round(this.img_object.orig_width()/2);
+            var old_y = zoom_center.y + Math.round(this.img_object.orig_height()/2);
+            this.current_zoom = 100;
+        }
+        else {
+            var old_x = -this.img_object.x() + zoom_center.x;
+            var old_y = -this.img_object.y() + zoom_center.y
+        }
+
+        var new_width = util.scaleValue(this.img_object.orig_width(), new_zoom);
+        var new_height = util.scaleValue(this.img_object.orig_height(), new_zoom);
+        var new_x = util.scaleValue( util.descaleValue(old_x, this.current_zoom), new_zoom);
+        var new_y = util.scaleValue( util.descaleValue(old_y, this.current_zoom), new_zoom);
+
+        new_x = zoom_center.x - new_x;
+        new_y = zoom_center.y - new_y;
+
+        new_width = Math.floor(new_width);
+        new_height = Math.floor(new_height);
+        new_x = Math.floor(new_x);
+        new_y = Math.floor(new_y);
+
+        this.img_object.display_width(new_width);
+        this.img_object.display_height(new_height);
+
+        var coords = this._correctCoords( new_x, new_y ),
+            self = this;
+
+        this.img_object.setImageProps(new_width, new_height, coords.x, coords.y,
+                                        skip_animation, function() {
+            self._trigger('onAfterZoom', 0, new_zoom );
+        });
+        this.current_zoom = new_zoom;
+
+        this.update_status();
+    },
+
+    /**
+    * changes zoom scale by delta
+    * zoom is calculated by formula: zoom_base * zoom_delta^rate
+    * @param Integer delta number to add to the current multiplier rate number
+    * @param {x: number, y: number=} Coordinates of point the should not be moved on zoom.
+    **/
+    zoom_by: function(delta, zoom_center)
+    {
+        var closest_rate = this.find_closest_zoom_rate(this.current_zoom);
+
+        var next_rate = closest_rate + delta;
+        var next_zoom = this.options.zoom_base * Math.pow(this.options.zoom_delta, next_rate)
+        if(delta > 0 && next_zoom < this.current_zoom)
+        {
+            next_zoom *= this.options.zoom_delta;
+        }
+
+        if(delta < 0 && next_zoom > this.current_zoom)
+        {
+            next_zoom /= this.options.zoom_delta;
+        }
+
+        this.set_zoom(next_zoom, undefined, zoom_center);
+    },
+
+    /**
+    * Rotate image
+    * @param {num} deg Degrees amount to rotate. Positive values rotate image clockwise.
+    *     Currently 0, 90, 180, 270 and -90, -180, -270 values are supported
+    *
+    * @param {boolean} abs If the flag is true if, the deg parameter will be considered as
+    *     a absolute value and relative otherwise.
+    * @return {num|null} Method will return current image angle if called without any arguments.
+    **/
+    angle: function(deg, abs) {
+        if (arguments.length === 0) { return this.img_object.angle(); }
+
+        if (deg < -270 || deg > 270 || deg % 90 !== 0) { return; }
+        if (!abs) { deg += this.img_object.angle(); }
+        if (deg < 0) { deg += 360; }
+        if (deg >= 360) { deg -= 360; }
+
+        if (deg === this.img_object.angle()) { return; }
+
+        this.img_object.angle(deg);
+        //the rotate behavior is different in all editors. For now we  just center the
+        //image. However, it will be better to try to keep the position.
+        this.center();
+        this._trigger('angle', 0, { angle: this.img_object.angle() });
+    },
+
+    /**
+    * finds closest multiplier rate for value
+    * basing on zoom_base and zoom_delta values from settings
+    * @param Number value zoom value to examine
+    **/
+    find_closest_zoom_rate: function(value)
+    {
+        if(value == this.options.zoom_base)
+        {
+            return 0;
+        }
+
+        function div(val1,val2) { return val1 / val2 };
+        function mul(val1,val2) { return val1 * val2 };
+
+        var func = (value > this.options.zoom_base)?mul:div;
+        var sgn = (value > this.options.zoom_base)?1:-1;
+
+        var mltplr = this.options.zoom_delta;
+        var rate = 1;
+
+        while(Math.abs(func(this.options.zoom_base, Math.pow(mltplr,rate)) - value) >
+              Math.abs(func(this.options.zoom_base, Math.pow(mltplr,rate+1)) - value))
+        {
+            rate++;
+        }
+
+        return sgn * rate;
+    },
+
+    /* update scale info in the container */
+    update_status: function()
+    {
+        if(!this.options.ui_disabled)
+        {
+            var percent = Math.round(100*this.img_object.display_height()/this.img_object.orig_height());
+            if(percent)
+            {
+                this.zoom_object.html(percent + "%");
+            }
+        }
+    },
+
+    /**
+     * Get some information about the image.
+     *     Currently orig_(width|height), display_(width|height), angle, zoom and src params are supported.
+     *
+     *  @param {string} parameter to check
+     *  @param {boolean} withoutRotation if param is orig_width or orig_height and this flag is set to true,
+     *      method will return original image width without considering rotation.
+     *
+     */
+    info: function(param, withoutRotation) {
+        if (!param) { return; }
+
+        switch (param) {
+            case 'orig_width':
+            case 'orig_height':
+                if (withoutRotation) {
+                    return (this.img_object.angle() % 180 === 0 ? this.img_object[param]() :
+                            param === 'orig_width' ? this.img_object.orig_height() :
+                                                        this.img_object.orig_width());
+                } else {
+                    return this.img_object[param]();
+                }
+            case 'display_width':
+            case 'display_height':
+            case 'angle':
+                return this.img_object[param]();
+            case 'zoom':
+                return this.current_zoom;
+            case 'src':
+                return this.img_object.object().attr('src');
+            case 'coords':
+                return {
+                    x: this.img_object.x(),
+                    y: this.img_object.y()
+                };
+        }
+    },
+
+    /**
+    *   callback for handling mousdown event to start dragging image
+    **/
+    _mouseStart: function( e )
+    {
+        $.ui.mouse.prototype._mouseStart.call(this, e);
+        if (this._trigger('onStartDrag', 0, this._getMouseCoords(e)) === false) {
+            return false;
+        }
+
+        /* start drag event*/
+        this.container.addClass("iviewer_drag_cursor");
+
+        //#10: fix movement quirks for ipad
+        this._dragInitialized = !(e.originalEvent.changedTouches && e.originalEvent.changedTouches.length==1);
+
+        this.dx = e.pageX - this.img_object.x();
+        this.dy = e.pageY - this.img_object.y();
+        return true;
+    },
+
+    _mouseCapture: function( e ) {
+        return true;
+    },
+
+    /**
+     * Handle mouse move if needed. User can avoid using this callback, because
+     *    he can get the same information through public methods.
+     *  @param {jQuery.Event} e
+     */
+    _handleMouseMove: function(e) {
+        this._trigger('onMouseMove', e, this._getMouseCoords(e));
+    },
+
+    /**
+    *   callback for handling mousemove event to drag image
+    **/
+    _mouseDrag: function(e)
+    {
+        $.ui.mouse.prototype._mouseDrag.call(this, e);
+
+        //#10: imitate mouseStart, because we can get here without it on iPad for some reason
+        if (!this._dragInitialized) {
+            this.dx = e.pageX - this.img_object.x();
+            this.dy = e.pageY - this.img_object.y();
+            this._dragInitialized = true;
+        }
+
+        var ltop =  e.pageY - this.dy;
+        var lleft = e.pageX - this.dx;
+
+        this.setCoords(lleft, ltop);
+        this._trigger('onDrag', e, this._getMouseCoords(e));
+        return false;
+    },
+
+    /**
+    *   callback for handling stop drag
+    **/
+    _mouseStop: function(e)
+    {
+        $.ui.mouse.prototype._mouseStop.call(this, e);
+        this.container.removeClass("iviewer_drag_cursor");
+        this._trigger('onStopDrag', 0, this._getMouseCoords(e));
+    },
+
+    _click: function(e)
+    {
+        this._trigger('onClick', 0, this._getMouseCoords(e));
+    },
+
+    /**
+    *   create zoom buttons info box
+    **/
+    createui: function()
+    {
+        var me=this;
+
+        $("<div>", { 'class': "iviewer_zoom_in iviewer_common iviewer_button"})
+                    .bind('mousedown touchstart',function(){me.zoom_by(1); return false;})
+                    .appendTo(this.container);
+
+        $("<div>", { 'class': "iviewer_zoom_out iviewer_common iviewer_button"})
+                    .bind('mousedown touchstart',function(){me.zoom_by(- 1); return false;})
+                    .appendTo(this.container);
+
+        $("<div>", { 'class': "iviewer_zoom_zero iviewer_common iviewer_button"})
+                    .bind('mousedown touchstart',function(){me.set_zoom(100); return false;})
+                    .appendTo(this.container);
+
+        $("<div>", { 'class': "iviewer_zoom_fit iviewer_common iviewer_button"})
+                    .bind('mousedown touchstart',function(){me.fit(this); return false;})
+                    .appendTo(this.container);
+
+        this.zoom_object = $("<div>").addClass("iviewer_zoom_status iviewer_common")
+                                    .appendTo(this.container);
+
+        $("<div>", { 'class': "iviewer_rotate_left iviewer_common iviewer_button"})
+                    .bind('mousedown touchstart',function(){me.angle(-90); return false;})
+                    .appendTo(this.container);
+
+        $("<div>", { 'class': "iviewer_rotate_right iviewer_common iviewer_button" })
+                    .bind('mousedown touchstart',function(){me.angle(90); return false;})
+                    .appendTo(this.container);
+
+        this.update_status(); //initial status update
+    }
+
+} );
+
+/**
+ * @class $.ui.iviewer.ImageObject Class represents image and provides public api without
+ *     extending image prototype.
+ * @constructor
+ * @param {boolean} do_anim Do we want to animate image on dimension changes?
+ */
+$.ui.iviewer.ImageObject = function(do_anim) {
+    this._img = $("<img>")
+            //this is needed, because chromium sets them auto otherwise
+            .css({ position: "absolute", top :"0px", left: "0px"});
+
+    this._loaded = false;
+    this._swapDimensions = false;
+    this._do_anim = do_anim || false;
+    this.x(0, true);
+    this.y(0, true);
+    this.angle(0);
+};
+
+
+/** @lends $.ui.iviewer.ImageObject.prototype */
+(function() {
+    /**
+     * Restore initial object state.
+     *
+     * @param {number} w Image width.
+     * @param {number} h Image height.
+     */
+    this._reset = function(w, h) {
+        this._angle = 0;
+        this._swapDimensions = false;
+        this.x(0);
+        this.y(0);
+
+        this.orig_width(w);
+        this.orig_height(h);
+        this.display_width(w);
+        this.display_height(h);
+    };
+
+    /**
+     * Check if image is loaded.
+     *
+     * @return {boolean}
+     */
+    this.loaded = function() { return this._loaded; };
+
+    /**
+     * Load image.
+     *
+     * @param {string} src Image url.
+     * @param {Function=} loaded Function will be called on image load.
+     */
+    this.load = function(src, loaded, error) {
+        var self = this;
+
+        loaded = loaded || jQuery.noop;
+        this._loaded = false;
+
+        //If we assign new image url to the this._img IE9 fires onload event and image width and
+        //height are set to zero. So, we create another image object and load image through it.
+        var img = new Image();
+        img.onload = function() {
+            self._loaded = true;
+            self._reset(this.width, this.height);
+
+            self._img
+                .removeAttr("width")
+                .removeAttr("height")
+                .removeAttr("style")
+                //max-width is reset, because plugin breaks in the twitter bootstrap otherwise
+                .css({ position: "absolute", top :"0px", left: "0px", maxWidth: "none"})
+
+            self._img[0].src = src;
+            loaded();
+        };
+
+        img.onerror = error;
+
+        //we need this because sometimes internet explorer 8 fires onload event
+        //right after assignment (synchronously)
+        setTimeout(function() {
+            img.src = src;
+        }, 0);
+
+        this.angle(0);
+    };
+
+    this._dimension = function(prefix, name) {
+        var horiz = '_' + prefix + '_' + name,
+            vert = '_' + prefix + '_' + (name === 'height' ? 'width' : 'height');
+        return setter(function(val) {
+                this[this._swapDimensions ? horiz: vert] = val;
+            },
+            function() {
+                return this[this._swapDimensions ? horiz: vert];
+            });
+    };
+
+    /**
+     * Getters and setter for common image dimensions.
+     *    display_ means real image tag dimensions
+     *    orig_ means physical image dimensions.
+     *  Note, that dimensions are swapped if image is rotated. It necessary,
+     *  because as little as possible code should know about rotation.
+     */
+    this.display_width = this._dimension('display', 'width'),
+    this.display_height = this._dimension('display', 'height'),
+    this.display_diff = function() { return Math.floor( this.display_width() - this.display_height() ) };
+    this.orig_width = this._dimension('orig', 'width'),
+    this.orig_height = this._dimension('orig', 'height'),
+
+    /**
+     * Setter for  X coordinate. If image is rotated we need to additionaly shift an
+     *     image to map image coordinate to the visual position.
+     *
+     * @param {number} val Coordinate value.
+     * @param {boolean} skipCss If true, we only set the value and do not touch the dom.
+     */
+    this.x = setter(function(val, skipCss) {
+            this._x = val;
+            if (!skipCss) {
+                this._finishAnimation();
+                this._img.css("left",this._x + (this._swapDimensions ? this.display_diff() / 2 : 0) + "px");
+            }
+        },
+        function() {
+            return this._x;
+        });
+
+    /**
+     * Setter for  Y coordinate. If image is rotated we need to additionaly shift an
+     *     image to map image coordinate to the visual position.
+     *
+     * @param {number} val Coordinate value.
+     * @param {boolean} skipCss If true, we only set the value and do not touch the dom.
+     */
+    this.y = setter(function(val, skipCss) {
+            this._y = val;
+            if (!skipCss) {
+                this._finishAnimation();
+                this._img.css("top",this._y - (this._swapDimensions ? this.display_diff() / 2 : 0) + "px");
+            }
+        },
+       function() {
+            return this._y;
+       });
+
+    /**
+     * Perform image rotation.
+     *
+     * @param {number} deg Absolute image angle. The method will work with values 0, 90, 180, 270 degrees.
+     */
+    this.angle = setter(function(deg) {
+            var prevSwap = this._swapDimensions;
+
+            this._angle = deg;
+            this._swapDimensions = deg % 180 !== 0;
+
+            if (prevSwap !== this._swapDimensions) {
+                var verticalMod = this._swapDimensions ? -1 : 1;
+                this.x(this.x() - verticalMod * this.display_diff() / 2, true);
+                this.y(this.y() + verticalMod * this.display_diff() / 2, true);
+            };
+
+            var cssVal = 'rotate(' + deg + 'deg)',
+                img = this._img;
+
+            jQuery.each(['', '-webkit-', '-moz-', '-o-', '-ms-'], function(i, prefix) {
+                img.css(prefix + 'transform', cssVal);
+            });
+
+            if (useIeTransforms) {
+                jQuery.each(['-ms-', ''], function(i, prefix) {
+                    img.css(prefix + 'filter', ieTransforms[deg].filter);
+                });
+
+                img.css({
+                    marginLeft: ieTransforms[deg].marginLeft * this.display_diff() / 2,
+                    marginTop: ieTransforms[deg].marginTop * this.display_diff() / 2
+                });
+            }
+        },
+       function() { return this._angle; });
+
+    /**
+     * Map point in the container coordinates to the point in image coordinates.
+     *     You will get coordinates of point on image with respect to rotation,
+     *     but will be set as if image was not rotated.
+     *     So, if image was rotated 90 degrees, it's (0,0) point will be on the
+     *     top right corner.
+     *
+     * @param {{x: number, y: number}} point Point in container coordinates.
+     * @return  {{x: number, y: number}}
+     */
+    this.toOriginalCoords = function(point) {
+        switch (this.angle()) {
+            case 0: return { x: point.x, y: point.y }
+            case 90: return { x: point.y, y: this.display_width() - point.x }
+            case 180: return { x: this.display_width() - point.x, y: this.display_height() - point.y }
+            case 270: return { x: this.display_height() - point.y, y: point.x }
+        }
+    };
+
+    /**
+     * Map point in the image coordinates to the point in container coordinates.
+     *     You will get coordinates of point on container with respect to rotation.
+     *     Note, if image was rotated 90 degrees, it's (0,0) point will be on the
+     *     top right corner.
+     *
+     * @param {{x: number, y: number}} point Point in container coordinates.
+     * @return  {{x: number, y: number}}
+     */
+    this.toRealCoords = function(point) {
+        switch (this.angle()) {
+            case 0: return { x: this.x() + point.x, y: this.y() + point.y }
+            case 90: return { x: this.x() + this.display_width() - point.y, y: this.y() + point.x}
+            case 180: return { x: this.x() + this.display_width() - point.x, y: this.y() + this.display_height() - point.y}
+            case 270: return { x: this.x() + point.y, y: this.y() + this.display_height() - point.x}
+        }
+    };
+
+    /**
+     * @return {jQuery} Return image node. this is needed to add event handlers.
+     */
+    this.object = setter(jQuery.noop,
+                           function() { return this._img; });
+
+    /**
+     * Change image properties.
+     *
+     * @param {number} disp_w Display width;
+     * @param {number} disp_h Display height;
+     * @param {number} x
+     * @param {number} y
+     * @param {boolean} skip_animation If true, the animation will be skiped despite the
+     *     value set in constructor.
+     * @param {Function=} complete Call back will be fired when zoom will be complete.
+     */
+    this.setImageProps = function(disp_w, disp_h, x, y, skip_animation, complete) {
+        complete = complete || jQuery.noop;
+
+        this.display_width(disp_w);
+        this.display_height(disp_h);
+        this.x(x, true);
+        this.y(y, true);
+
+        var w = this._swapDimensions ? disp_h : disp_w;
+        var h = this._swapDimensions ? disp_w : disp_h;
+
+        var params = {
+            width: w,
+            height: h,
+            top: y - (this._swapDimensions ? this.display_diff() / 2 : 0) + "px",
+            left: x + (this._swapDimensions ? this.display_diff() / 2 : 0) + "px"
+        };
+
+        if (useIeTransforms) {
+            jQuery.extend(params, {
+                marginLeft: ieTransforms[this.angle()].marginLeft * this.display_diff() / 2,
+                marginTop: ieTransforms[this.angle()].marginTop * this.display_diff() / 2
+            });
+        }
+
+        var swapDims = this._swapDimensions,
+            img = this._img;
+
+        //here we come: another IE oddness. If image is rotated 90 degrees with a filter, than
+        //width and height getters return real width and height of rotated image. The bad news
+        //is that to set height you need to set a width and vice versa. Fuck IE.
+        //So, in this case we have to animate width and height manually.
+        if(useIeTransforms && swapDims) {
+            var ieh = this._img.width(),
+                iew = this._img.height(),
+                iedh = params.height - ieh;
+                iedw = params.width - iew;
+
+            delete params.width;
+            delete params.height;
+        }
+
+        if (this._do_anim && !skip_animation) {
+            this._img.stop(true)
+                .animate(params, {
+                    duration: 200,
+                    complete: complete,
+                    step: function(now, fx) {
+                        if(useIeTransforms && swapDims && (fx.prop === 'top')) {
+                            var percent = (now - fx.start) / (fx.end - fx.start);
+
+                            img.height(ieh + iedh * percent);
+                            img.width(iew + iedw * percent);
+                            img.css('top', now);
+                        }
+                    }
+                });
+        } else {
+            this._img.css(params);
+            setTimeout(complete, 0); //both if branches should behave equally.
+        }
+    };
+
+    //if we set image coordinates we need to be sure that no animation is active atm
+    this._finishAnimation = function() {
+      this._img.stop(true, true);
+    }
+
+}).apply($.ui.iviewer.ImageObject.prototype);
+
+
+
+var util = {
+    scaleValue: function(value, toZoom)
+    {
+        return value * toZoom / 100;
+    },
+
+    descaleValue: function(value, fromZoom)
+    {
+        return value * 100 / fromZoom;
+    }
+};
+
+ } )( jQuery, undefined );

+ 47 - 0
phpDocumentor/js/jquery.iviewer.min.js

@@ -0,0 +1,47 @@
+/*
+ * iviewer Widget for jQuery UI
+ * https://github.com/can3p/iviewer
+ *
+ * Copyright (c) 2009 - 2012 Dmitry Petrov
+ * Dual licensed under the MIT and GPL licenses.
+ *  - http://www.opensource.org/licenses/mit-license.php
+ *  - http://www.gnu.org/copyleft/gpl.html
+ *
+ * Author: Dmitry Petrov
+ * Version: 0.7.7
+ */
+(function($,undefined){var mouseEvents={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"},gesturesSupport="ongesturestart"in document.createElement("div");function makeMouseEvent(event){var touch=event.originalEvent.changedTouches[0];return $.extend(event,{type:mouseEvents[event.type],which:1,pageX:touch.pageX,pageY:touch.pageY,screenX:touch.screenX,screenY:touch.screenY,clientX:touch.clientX,clientY:touch.clientY,isTouchEvent:true})}var mouseProto=$.ui.mouse.prototype,_mouseInit=$.ui.mouse.prototype._mouseInit;
+mouseProto._mouseInit=function(){var self=this;self._touchActive=false;this.element.bind("touchstart."+this.widgetName,function(event){if(gesturesSupport&&event.originalEvent.touches.length>1)return;self._touchActive=true;return self._mouseDown(makeMouseEvent(event))});var self=this;this._mouseMoveDelegate=function(event){if(gesturesSupport&&event.originalEvent.touches&&event.originalEvent.touches.length>1)return;if(self._touchActive)return self._mouseMove(makeMouseEvent(event))};this._mouseUpDelegate=
+function(event){if(self._touchActive){self._touchActive=false;return self._mouseUp(makeMouseEvent(event))}};$(document).bind("touchmove."+this.widgetName,this._mouseMoveDelegate).bind("touchend."+this.widgetName,this._mouseUpDelegate);_mouseInit.apply(this)};var setter=function(setter,getter){return function(val){if(arguments.length===0)return getter.apply(this);else setter.apply(this,arguments)}};var ieTransforms={"0":{marginLeft:0,marginTop:0,filter:'progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=1, SizingMethod="auto expand")'},
+90:{marginLeft:-1,marginTop:1,filter:'progid:DXImageTransform.Microsoft.Matrix(M11=0, M12=-1, M21=1, M22=0, SizingMethod="auto expand")'},180:{marginLeft:0,marginTop:0,filter:'progid:DXImageTransform.Microsoft.Matrix(M11=-1, M12=0, M21=0, M22=-1, SizingMethod="auto expand")'},270:{marginLeft:-1,marginTop:1,filter:'progid:DXImageTransform.Microsoft.Matrix(M11=0, M12=1, M21=-1, M22=0, SizingMethod="auto expand")'}},useIeTransforms=function(){var el=document.createElement("div");el.style.cssText=["-ms-",
+"",""].join("filter:blur(2px); ");return!!el.style.cssText&&document.documentMode<9}();$.widget("ui.iviewer",$.ui.mouse,{widgetEventPrefix:"iviewer",options:{zoom:"fit",zoom_base:100,zoom_max:800,zoom_min:25,zoom_delta:1.4,zoom_animation:true,ui_disabled:false,mousewheel:true,update_on_resize:true,onZoom:jQuery.noop,onAfterZoom:jQuery.noop,onStartDrag:jQuery.noop,onDrag:jQuery.noop,onStopDrag:jQuery.noop,onMouseMove:jQuery.noop,onClick:jQuery.noop,onStartLoad:null,onFinishLoad:null,onErrorLoad:null},
+_create:function(){var me=this;this.dx=0;this.dy=0;this.img_object={};this.zoom_object={};this._angle=0;this.current_zoom=this.options.zoom;if(this.options.src===null)return;this.container=this.element;this._updateContainerInfo();this.container.css("overflow","hidden");if(this.options.update_on_resize==true)$(window).resize(function(){me.update()});this.img_object=new $.ui.iviewer.ImageObject(this.options.zoom_animation);if(this.options.mousewheel){this.container.bind("mousewheel.iviewer",function(ev,
+delta){var zoom=delta>0?1:-1,container_offset=me.container.offset(),mouse_pos={x:ev.pageX-container_offset.left,y:ev.pageY-container_offset.top};me.zoom_by(zoom,mouse_pos);return false});if(gesturesSupport){var gestureThrottle=+new Date;var originalScale,originalCenter;this.img_object.object().bind("touchstart",function(ev){originalScale=me.current_zoom;var touches=ev.originalEvent.touches,container_offset;if(touches.length==2){container_offset=me.container.offset();originalCenter={x:(touches[0].pageX+
+touches[1].pageX)/2-container_offset.left,y:(touches[0].pageY+touches[1].pageY)/2-container_offset.top}}else originalCenter=null}).bind("gesturechange",function(ev){var d=+new Date;if(d-gestureThrottle<50)return;gestureThrottle=d;var zoom=originalScale*ev.originalEvent.scale;me.set_zoom(zoom,originalCenter);ev.preventDefault()}).bind("gestureend",function(ev){originalCenter=null})}}this.img_object.object().click(function(e){return me._click(e)}).prependTo(this.container);this.container.bind("mousemove",
+function(ev){me._handleMouseMove(ev)});this.loadImage(this.options.src);if(!this.options.ui_disabled)this.createui();this._mouseInit()},destroy:function(){$.Widget.prototype.destroy.call(this);this._mouseDestroy();this.img_object.object().remove();this.container.off(".iviewer");this.container.css("overflow","")},_updateContainerInfo:function(){this.options.height=this.container.height();this.options.width=this.container.width()},update:function(){this._updateContainerInfo();this.setCoords(this.img_object.x(),
+this.img_object.y())},loadImage:function(src){this.current_zoom=this.options.zoom;var me=this;this._trigger("onStartLoad",0,src);this.container.addClass("iviewer_loading");this.img_object.load(src,function(){me._imageLoaded(src)},function(){me._trigger("onErrorLoad",0,src)})},_imageLoaded:function(src){this.container.removeClass("iviewer_loading");this.container.addClass("iviewer_cursor");if(this.options.zoom=="fit")this.fit(true);else this.set_zoom(this.options.zoom,true);this._trigger("onFinishLoad",
+0,src)},fit:function(skip_animation){var aspect_ratio=this.img_object.orig_width()/this.img_object.orig_height();var window_ratio=this.options.width/this.options.height;var choose_left=aspect_ratio>window_ratio;var new_zoom=0;if(choose_left)new_zoom=this.options.width/this.img_object.orig_width()*100;else new_zoom=this.options.height/this.img_object.orig_height()*100;this.set_zoom(new_zoom,skip_animation)},center:function(){this.setCoords(-Math.round((this.img_object.display_width()-this.options.width)/
+2),-Math.round((this.img_object.display_height()-this.options.height)/2))},moveTo:function(x,y){var dx=x-Math.round(this.options.width/2);var dy=y-Math.round(this.options.height/2);var new_x=this.img_object.x()-dx;var new_y=this.img_object.y()-dy;this.setCoords(new_x,new_y)},getContainerOffset:function(){return jQuery.extend({},this.container.offset())},setCoords:function(x,y){if(!this.img_object.loaded())return;var coords=this._correctCoords(x,y);this.img_object.x(coords.x);this.img_object.y(coords.y)},
+_correctCoords:function(x,y){x=parseInt(x,10);y=parseInt(y,10);if(y>0)y=0;if(x>0)x=0;if(y+this.img_object.display_height()<this.options.height)y=this.options.height-this.img_object.display_height();if(x+this.img_object.display_width()<this.options.width)x=this.options.width-this.img_object.display_width();if(this.img_object.display_width()<=this.options.width)x=-(this.img_object.display_width()-this.options.width)/2;if(this.img_object.display_height()<=this.options.height)y=-(this.img_object.display_height()-
+this.options.height)/2;return{x:x,y:y}},containerToImage:function(x,y){var coords={x:x-this.img_object.x(),y:y-this.img_object.y()};coords=this.img_object.toOriginalCoords(coords);return{x:util.descaleValue(coords.x,this.current_zoom),y:util.descaleValue(coords.y,this.current_zoom)}},imageToContainer:function(x,y){var coords={x:util.scaleValue(x,this.current_zoom),y:util.scaleValue(y,this.current_zoom)};return this.img_object.toRealCoords(coords)},_getMouseCoords:function(e){var containerOffset=this.container.offset();
+coords=this.containerToImage(e.pageX-containerOffset.left,e.pageY-containerOffset.top);return coords},set_zoom:function(new_zoom,skip_animation,zoom_center){if(this._trigger("onZoom",0,new_zoom)==false)return;if(!this.img_object.loaded())return;zoom_center=zoom_center||{x:Math.round(this.options.width/2),y:Math.round(this.options.height/2)};if(new_zoom<this.options.zoom_min)new_zoom=this.options.zoom_min;else if(new_zoom>this.options.zoom_max)new_zoom=this.options.zoom_max;if(this.current_zoom=="fit"){var old_x=
+zoom_center.x+Math.round(this.img_object.orig_width()/2);var old_y=zoom_center.y+Math.round(this.img_object.orig_height()/2);this.current_zoom=100}else{var old_x=-this.img_object.x()+zoom_center.x;var old_y=-this.img_object.y()+zoom_center.y}var new_width=util.scaleValue(this.img_object.orig_width(),new_zoom);var new_height=util.scaleValue(this.img_object.orig_height(),new_zoom);var new_x=util.scaleValue(util.descaleValue(old_x,this.current_zoom),new_zoom);var new_y=util.scaleValue(util.descaleValue(old_y,
+this.current_zoom),new_zoom);new_x=zoom_center.x-new_x;new_y=zoom_center.y-new_y;new_width=Math.floor(new_width);new_height=Math.floor(new_height);new_x=Math.floor(new_x);new_y=Math.floor(new_y);this.img_object.display_width(new_width);this.img_object.display_height(new_height);var coords=this._correctCoords(new_x,new_y),self=this;this.img_object.setImageProps(new_width,new_height,coords.x,coords.y,skip_animation,function(){self._trigger("onAfterZoom",0,new_zoom)});this.current_zoom=new_zoom;this.update_status()},
+zoom_by:function(delta,zoom_center){var closest_rate=this.find_closest_zoom_rate(this.current_zoom);var next_rate=closest_rate+delta;var next_zoom=this.options.zoom_base*Math.pow(this.options.zoom_delta,next_rate);if(delta>0&&next_zoom<this.current_zoom)next_zoom*=this.options.zoom_delta;if(delta<0&&next_zoom>this.current_zoom)next_zoom/=this.options.zoom_delta;this.set_zoom(next_zoom,undefined,zoom_center)},angle:function(deg,abs){if(arguments.length===0)return this.img_object.angle();if(deg<-270||
+deg>270||deg%90!==0)return;if(!abs)deg+=this.img_object.angle();if(deg<0)deg+=360;if(deg>=360)deg-=360;if(deg===this.img_object.angle())return;this.img_object.angle(deg);this.center();this._trigger("angle",0,{angle:this.img_object.angle()})},find_closest_zoom_rate:function(value){if(value==this.options.zoom_base)return 0;function div(val1,val2){return val1/val2}function mul(val1,val2){return val1*val2}var func=value>this.options.zoom_base?mul:div;var sgn=value>this.options.zoom_base?1:-1;var mltplr=
+this.options.zoom_delta;var rate=1;while(Math.abs(func(this.options.zoom_base,Math.pow(mltplr,rate))-value)>Math.abs(func(this.options.zoom_base,Math.pow(mltplr,rate+1))-value))rate++;return sgn*rate},update_status:function(){if(!this.options.ui_disabled){var percent=Math.round(100*this.img_object.display_height()/this.img_object.orig_height());if(percent)this.zoom_object.html(percent+"%")}},info:function(param,withoutRotation){if(!param)return;switch(param){case "orig_width":case "orig_height":if(withoutRotation)return this.img_object.angle()%
+180===0?this.img_object[param]():param==="orig_width"?this.img_object.orig_height():this.img_object.orig_width();else return this.img_object[param]();case "display_width":case "display_height":case "angle":return this.img_object[param]();case "zoom":return this.current_zoom;case "src":return this.img_object.object().attr("src");case "coords":return{x:this.img_object.x(),y:this.img_object.y()}}},_mouseStart:function(e){$.ui.mouse.prototype._mouseStart.call(this,e);if(this._trigger("onStartDrag",0,
+this._getMouseCoords(e))===false)return false;this.container.addClass("iviewer_drag_cursor");this._dragInitialized=!(e.originalEvent.changedTouches&&e.originalEvent.changedTouches.length==1);this.dx=e.pageX-this.img_object.x();this.dy=e.pageY-this.img_object.y();return true},_mouseCapture:function(e){return true},_handleMouseMove:function(e){this._trigger("onMouseMove",e,this._getMouseCoords(e))},_mouseDrag:function(e){$.ui.mouse.prototype._mouseDrag.call(this,e);if(!this._dragInitialized){this.dx=
+e.pageX-this.img_object.x();this.dy=e.pageY-this.img_object.y();this._dragInitialized=true}var ltop=e.pageY-this.dy;var lleft=e.pageX-this.dx;this.setCoords(lleft,ltop);this._trigger("onDrag",e,this._getMouseCoords(e));return false},_mouseStop:function(e){$.ui.mouse.prototype._mouseStop.call(this,e);this.container.removeClass("iviewer_drag_cursor");this._trigger("onStopDrag",0,this._getMouseCoords(e))},_click:function(e){this._trigger("onClick",0,this._getMouseCoords(e))},createui:function(){var me=
+this;$("<div>",{"class":"iviewer_zoom_in iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.zoom_by(1);return false}).appendTo(this.container);$("<div>",{"class":"iviewer_zoom_out iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.zoom_by(-1);return false}).appendTo(this.container);$("<div>",{"class":"iviewer_zoom_zero iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.set_zoom(100);return false}).appendTo(this.container);$("<div>",
+{"class":"iviewer_zoom_fit iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.fit(this);return false}).appendTo(this.container);this.zoom_object=$("<div>").addClass("iviewer_zoom_status iviewer_common").appendTo(this.container);$("<div>",{"class":"iviewer_rotate_left iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.angle(-90);return false}).appendTo(this.container);$("<div>",{"class":"iviewer_rotate_right iviewer_common iviewer_button"}).bind("mousedown touchstart",
+function(){me.angle(90);return false}).appendTo(this.container);this.update_status()}});$.ui.iviewer.ImageObject=function(do_anim){this._img=$("<img>").css({position:"absolute",top:"0px",left:"0px"});this._loaded=false;this._swapDimensions=false;this._do_anim=do_anim||false;this.x(0,true);this.y(0,true);this.angle(0)};(function(){this._reset=function(w,h){this._angle=0;this._swapDimensions=false;this.x(0);this.y(0);this.orig_width(w);this.orig_height(h);this.display_width(w);this.display_height(h)};
+this.loaded=function(){return this._loaded};this.load=function(src,loaded,error){var self=this;loaded=loaded||jQuery.noop;this._loaded=false;var img=new Image;img.onload=function(){self._loaded=true;self._reset(this.width,this.height);self._img.removeAttr("width").removeAttr("height").removeAttr("style").css({position:"absolute",top:"0px",left:"0px",maxWidth:"none"});self._img[0].src=src;loaded()};img.onerror=error;setTimeout(function(){img.src=src},0);this.angle(0)};this._dimension=function(prefix,
+name){var horiz="_"+prefix+"_"+name,vert="_"+prefix+"_"+(name==="height"?"width":"height");return setter(function(val){this[this._swapDimensions?horiz:vert]=val},function(){return this[this._swapDimensions?horiz:vert]})};this.display_width=this._dimension("display","width"),this.display_height=this._dimension("display","height"),this.display_diff=function(){return Math.floor(this.display_width()-this.display_height())};this.orig_width=this._dimension("orig","width"),this.orig_height=this._dimension("orig",
+"height"),this.x=setter(function(val,skipCss){this._x=val;if(!skipCss){this._finishAnimation();this._img.css("left",this._x+(this._swapDimensions?this.display_diff()/2:0)+"px")}},function(){return this._x});this.y=setter(function(val,skipCss){this._y=val;if(!skipCss){this._finishAnimation();this._img.css("top",this._y-(this._swapDimensions?this.display_diff()/2:0)+"px")}},function(){return this._y});this.angle=setter(function(deg){var prevSwap=this._swapDimensions;this._angle=deg;this._swapDimensions=
+deg%180!==0;if(prevSwap!==this._swapDimensions){var verticalMod=this._swapDimensions?-1:1;this.x(this.x()-verticalMod*this.display_diff()/2,true);this.y(this.y()+verticalMod*this.display_diff()/2,true)}var cssVal="rotate("+deg+"deg)",img=this._img;jQuery.each(["","-webkit-","-moz-","-o-","-ms-"],function(i,prefix){img.css(prefix+"transform",cssVal)});if(useIeTransforms){jQuery.each(["-ms-",""],function(i,prefix){img.css(prefix+"filter",ieTransforms[deg].filter)});img.css({marginLeft:ieTransforms[deg].marginLeft*
+this.display_diff()/2,marginTop:ieTransforms[deg].marginTop*this.display_diff()/2})}},function(){return this._angle});this.toOriginalCoords=function(point){switch(this.angle()){case 0:return{x:point.x,y:point.y};case 90:return{x:point.y,y:this.display_width()-point.x};case 180:return{x:this.display_width()-point.x,y:this.display_height()-point.y};case 270:return{x:this.display_height()-point.y,y:point.x}}};this.toRealCoords=function(point){switch(this.angle()){case 0:return{x:this.x()+point.x,y:this.y()+
+point.y};case 90:return{x:this.x()+this.display_width()-point.y,y:this.y()+point.x};case 180:return{x:this.x()+this.display_width()-point.x,y:this.y()+this.display_height()-point.y};case 270:return{x:this.x()+point.y,y:this.y()+this.display_height()-point.x}}};this.object=setter(jQuery.noop,function(){return this._img});this.setImageProps=function(disp_w,disp_h,x,y,skip_animation,complete){complete=complete||jQuery.noop;this.display_width(disp_w);this.display_height(disp_h);this.x(x,true);this.y(y,
+true);var w=this._swapDimensions?disp_h:disp_w;var h=this._swapDimensions?disp_w:disp_h;var params={width:w,height:h,top:y-(this._swapDimensions?this.display_diff()/2:0)+"px",left:x+(this._swapDimensions?this.display_diff()/2:0)+"px"};if(useIeTransforms)jQuery.extend(params,{marginLeft:ieTransforms[this.angle()].marginLeft*this.display_diff()/2,marginTop:ieTransforms[this.angle()].marginTop*this.display_diff()/2});var swapDims=this._swapDimensions,img=this._img;if(useIeTransforms&&swapDims){var ieh=
+this._img.width(),iew=this._img.height(),iedh=params.height-ieh;iedw=params.width-iew;delete params.width;delete params.height}if(this._do_anim&&!skip_animation)this._img.stop(true).animate(params,{duration:200,complete:complete,step:function(now,fx){if(useIeTransforms&&swapDims&&fx.prop==="top"){var percent=(now-fx.start)/(fx.end-fx.start);img.height(ieh+iedh*percent);img.width(iew+iedw*percent);img.css("top",now)}}});else{this._img.css(params);setTimeout(complete,0)}};this._finishAnimation=function(){this._img.stop(true,
+true)}}).apply($.ui.iviewer.ImageObject.prototype);var util={scaleValue:function(value,toZoom){return value*toZoom/100},descaleValue:function(value,fromZoom){return value*100/fromZoom}}})(jQuery,undefined);

+ 201 - 0
phpDocumentor/js/jquery.mousewheel.js

@@ -0,0 +1,201 @@
+/*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
+ * Licensed under the MIT License (LICENSE.txt).
+ *
+ * Version: 3.1.9
+ *
+ * Requires: jQuery 1.2.2+
+ */
+
+(function (factory) {
+    if ( typeof define === 'function' && define.amd ) {
+        // AMD. Register as an anonymous module.
+        define(['jquery'], factory);
+    } else if (typeof exports === 'object') {
+        // Node/CommonJS style for Browserify
+        module.exports = factory;
+    } else {
+        // Browser globals
+        factory(jQuery);
+    }
+}(function ($) {
+
+    var toFix  = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
+        toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
+                    ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
+        slice  = Array.prototype.slice,
+        nullLowestDeltaTimeout, lowestDelta;
+
+    if ( $.event.fixHooks ) {
+        for ( var i = toFix.length; i; ) {
+            $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
+        }
+    }
+
+    var special = $.event.special.mousewheel = {
+        version: '3.1.9',
+
+        setup: function() {
+            if ( this.addEventListener ) {
+                for ( var i = toBind.length; i; ) {
+                    this.addEventListener( toBind[--i], handler, false );
+                }
+            } else {
+                this.onmousewheel = handler;
+            }
+            // Store the line height and page height for this particular element
+            $.data(this, 'mousewheel-line-height', special.getLineHeight(this));
+            $.data(this, 'mousewheel-page-height', special.getPageHeight(this));
+        },
+
+        teardown: function() {
+            if ( this.removeEventListener ) {
+                for ( var i = toBind.length; i; ) {
+                    this.removeEventListener( toBind[--i], handler, false );
+                }
+            } else {
+                this.onmousewheel = null;
+            }
+        },
+
+        getLineHeight: function(elem) {
+            return parseInt($(elem)['offsetParent' in $.fn ? 'offsetParent' : 'parent']().css('fontSize'), 10);
+        },
+
+        getPageHeight: function(elem) {
+            return $(elem).height();
+        },
+
+        settings: {
+            adjustOldDeltas: true
+        }
+    };
+
+    $.fn.extend({
+        mousewheel: function(fn) {
+            return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
+        },
+
+        unmousewheel: function(fn) {
+            return this.unbind('mousewheel', fn);
+        }
+    });
+
+
+    function handler(event) {
+        var orgEvent   = event || window.event,
+            args       = slice.call(arguments, 1),
+            delta      = 0,
+            deltaX     = 0,
+            deltaY     = 0,
+            absDelta   = 0;
+        event = $.event.fix(orgEvent);
+        event.type = 'mousewheel';
+
+        // Old school scrollwheel delta
+        if ( 'detail'      in orgEvent ) { deltaY = orgEvent.detail * -1;      }
+        if ( 'wheelDelta'  in orgEvent ) { deltaY = orgEvent.wheelDelta;       }
+        if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY;      }
+        if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }
+
+        // Firefox < 17 horizontal scrolling related to DOMMouseScroll event
+        if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
+            deltaX = deltaY * -1;
+            deltaY = 0;
+        }
+
+        // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
+        delta = deltaY === 0 ? deltaX : deltaY;
+
+        // New school wheel delta (wheel event)
+        if ( 'deltaY' in orgEvent ) {
+            deltaY = orgEvent.deltaY * -1;
+            delta  = deltaY;
+        }
+        if ( 'deltaX' in orgEvent ) {
+            deltaX = orgEvent.deltaX;
+            if ( deltaY === 0 ) { delta  = deltaX * -1; }
+        }
+
+        // No change actually happened, no reason to go any further
+        if ( deltaY === 0 && deltaX === 0 ) { return; }
+
+        // Need to convert lines and pages to pixels if we aren't already in pixels
+        // There are three delta modes:
+        //   * deltaMode 0 is by pixels, nothing to do
+        //   * deltaMode 1 is by lines
+        //   * deltaMode 2 is by pages
+        if ( orgEvent.deltaMode === 1 ) {
+            var lineHeight = $.data(this, 'mousewheel-line-height');
+            delta  *= lineHeight;
+            deltaY *= lineHeight;
+            deltaX *= lineHeight;
+        } else if ( orgEvent.deltaMode === 2 ) {
+            var pageHeight = $.data(this, 'mousewheel-page-height');
+            delta  *= pageHeight;
+            deltaY *= pageHeight;
+            deltaX *= pageHeight;
+        }
+
+        // Store lowest absolute delta to normalize the delta values
+        absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
+
+        if ( !lowestDelta || absDelta < lowestDelta ) {
+            lowestDelta = absDelta;
+
+            // Adjust older deltas if necessary
+            if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
+                lowestDelta /= 40;
+            }
+        }
+
+        // Adjust older deltas if necessary
+        if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
+            // Divide all the things by 40!
+            delta  /= 40;
+            deltaX /= 40;
+            deltaY /= 40;
+        }
+
+        // Get a whole, normalized value for the deltas
+        delta  = Math[ delta  >= 1 ? 'floor' : 'ceil' ](delta  / lowestDelta);
+        deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
+        deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
+
+        // Add information to the event object
+        event.deltaX = deltaX;
+        event.deltaY = deltaY;
+        event.deltaFactor = lowestDelta;
+        // Go ahead and set deltaMode to 0 since we converted to pixels
+        // Although this is a little odd since we overwrite the deltaX/Y
+        // properties with normalized deltas.
+        event.deltaMode = 0;
+
+        // Add event and delta to the front of the arguments
+        args.unshift(event, delta, deltaX, deltaY);
+
+        // Clearout lowestDelta after sometime to better
+        // handle multiple device types that give different
+        // a different lowestDelta
+        // Ex: trackpad = 3 and mouse wheel = 120
+        if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
+        nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
+
+        return ($.event.dispatch || $.event.handle).apply(this, args);
+    }
+
+    function nullLowestDelta() {
+        lowestDelta = null;
+    }
+
+    function shouldAdjustOldDeltas(orgEvent, absDelta) {
+        // If this is an older event and the delta is divisable by 120,
+        // then we are assuming that the browser is treating this as an
+        // older mouse wheel event and that we should divide the deltas
+        // by 40 to try and get a more usable deltaFactor.
+        // Side note, this actually impacts the reported scroll distance
+        // in older browsers and can cause scrolling to be slower than native.
+        // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
+        return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;
+    }
+
+}));

+ 32 - 0
phpDocumentor/js/jquery.smooth-scroll.js

@@ -0,0 +1,32 @@
+$(document).ready(function() {
+    function filterPath(string) {
+        return string
+            .replace(/^\//,'')
+            .replace(/(index|default).[a-zA-Z]{3,4}$/,'')
+            .replace(/\/$/,'');
+    }
+    var locationPath = filterPath(location.pathname);
+
+    $('a[href*=#]').each(function() {
+        var thisPath = filterPath(this.pathname) || locationPath;
+        if (  locationPath == thisPath
+            && (location.hostname == this.hostname || !this.hostname)
+            && this.hash.replace(/#/,'') ) {
+            var $target = $(this.hash), target = this.hash;
+            if (target) {
+                $(this).click(function(event) {
+                    if (!$(this.hash).offset()) {
+                        return;
+                    }
+
+                    event.preventDefault();
+                    position = $(this.hash).offset().top;
+
+                    $('html,body').animate({scrollTop: position}, 400, function() {
+                        location.hash = target;
+                    });
+                });
+            }
+        }
+    });
+});

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 4 - 0
phpDocumentor/js/prism.min.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 5 - 0
phpDocumentor/js/ui/1.10.4/jquery-ui.min.js


+ 206 - 0
phpDocumentor/namespaces/default.html

@@ -0,0 +1,206 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>Pico 1.0 API Documentation</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+    
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+                                <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-681713133"></a>
+                                <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
+            </div>
+            <div id="namespace-681713133" class="accordion-body collapse in">
+                <div class="accordion-inner">
+
+                    
+                    <ul>
+                                                    <li class="interface"><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></li>
+                                                                                                    <li class="class"><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></li>
+                                                    <li class="class"><a href="../classes/DummyPlugin.html">DummyPlugin</a></li>
+                                                    <li class="class"><a href="../classes/Pico.html">Pico</a></li>
+                                            </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+        </div>
+    </section>
+    <section class="row-fluid">
+        <div class="span10 offset2">
+            <div class="row-fluid">
+                <div class="span8 content namespace">
+                    <nav>
+                                                
+                                            </nav>
+                    <h1><small></small>\</h1>
+
+                    
+                    
+                                        <h2>Interfaces</h2>
+                    <table class="table table-hover">
+                                                    <tr>
+                                <td><a href="../classes/PicoPluginInterface.html">PicoPluginInterface</a></td>
+                                <td><em>Common interface for Pico plugins</em></td>
+                            </tr>
+                                            </table>
+                    
+                                        <h2>Classes</h2>
+                    <table class="table table-hover">
+                                            <tr>
+                            <td><a href="../classes/AbstractPicoPlugin.html">AbstractPicoPlugin</a></td>
+                            <td><em>Abstract class to extend from when implementing a Pico plugin</em></td>
+                        </tr>
+                                            <tr>
+                            <td><a href="../classes/DummyPlugin.html">DummyPlugin</a></td>
+                            <td><em>Pico dummy plugin - a template for plugins</em></td>
+                        </tr>
+                                            <tr>
+                            <td><a href="../classes/Pico.html">Pico</a></td>
+                            <td><em>Pico</em></td>
+                        </tr>
+                                        </table>
+                                    </div>
+
+                <aside class="span4 detailsbar">
+                    <dl>
+                        <dt>Namespace hierarchy</dt>
+                        <dd class="hierarchy">
+                                                                                                                                                <div class="namespace-wrapper">\</div>
+                        </dd>
+                    </dl>
+                </aside>
+            </div>
+
+            
+            
+        </div>
+    </section>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 153 - 0
phpDocumentor/reports/deprecated.html

@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>     &raquo; Deprecated elements
+</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+    
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <div class="row-fluid">
+
+        <div class="span2 sidebar">
+            <ul class="side-nav nav nav-list">
+                <li class="nav-header">Navigation</li>
+                            </ul>
+        </div>
+
+        <div class="span10 offset2">
+            <ul class="breadcrumb">
+                <li><a href="../"><i class="icon-remove-sign"></i></a><span class="divider">\</span></li>
+                <li>Deprecated elements</li>
+            </ul>
+
+            <div id="marker-accordion">
+                                    <div class="alert alert-info">No deprecated elements have been found in this project.</div>
+                                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 381 - 0
phpDocumentor/reports/errors.html

@@ -0,0 +1,381 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>     &raquo; Compilation errors
+</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+    
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+
+            <ul class="side-nav nav nav-list">
+                <li class="nav-header">Navigation</li>
+                                                                            <li><a href="#plugins/DummyPlugin.php"><i class="icon-file"></i> plugins/DummyPlugin.php</a></li>
+                                                                                                    <li><a href="#lib/AbstractPicoPlugin.php"><i class="icon-file"></i> lib/AbstractPicoPlugin.php</a></li>
+                                                                                                    <li><a href="#lib/Pico.php"><i class="icon-file"></i> lib/Pico.php</a></li>
+                                                                                                    <li><a href="#lib/PicoPluginInterface.php"><i class="icon-file"></i> lib/PicoPluginInterface.php</a></li>
+                                                                                                    <li><a href="#index.php"><i class="icon-file"></i> index.php</a></li>
+                                                                                                    <li><a href="#config/config.php"><i class="icon-file"></i> config/config.php</a></li>
+                                                                    </ul>
+        </div>
+
+        <div class="span10 offset2">
+            <ul class="breadcrumb">
+                <li><a href="../"><i class="icon-remove-sign"></i></a><span class="divider">\</span></li>
+                <li>Compilation Errors</li>
+            </ul>
+
+            
+                            <div class="package-contents">
+                                            <a name="plugins/DummyPlugin.php" id="plugins/DummyPlugin.php"></a>
+                        <h3>
+                            <i class="icon-file"></i>
+                            plugins/DummyPlugin.php
+                            <small style="float: right;padding-right: 10px;">1</small>
+                        </h3>
+                        <div>
+                            <table class="table markers table-bordered">
+                                <thead>
+                                <tr>
+                                    <th>Type</th>
+                                    <th>Line</th>
+                                    <th>Description</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>0</td>
+                                        <td>PPC:ERR-50000</td>
+                                    </tr>
+                                                            </tbody>
+                            </table>
+                        </div>
+                                    </div>
+                            <div class="package-contents">
+                                            <a name="lib/AbstractPicoPlugin.php" id="lib/AbstractPicoPlugin.php"></a>
+                        <h3>
+                            <i class="icon-file"></i>
+                            lib/AbstractPicoPlugin.php
+                            <small style="float: right;padding-right: 10px;">15</small>
+                        </h3>
+                        <div>
+                            <table class="table markers table-bordered">
+                                <thead>
+                                <tr>
+                                    <th>Type</th>
+                                    <th>Line</th>
+                                    <th>Description</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>0</td>
+                                        <td>PPC:ERR-50000</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>62</td>
+                                        <td>PPC:ERR-50015</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>62</td>
+                                        <td>PPC:ERR-50008</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>70</td>
+                                        <td>PPC:ERR-50015</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>70</td>
+                                        <td>PPC:ERR-50015</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>70</td>
+                                        <td>PPC:ERR-50008</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>95</td>
+                                        <td>PPC:ERR-50015</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>95</td>
+                                        <td>PPC:ERR-50015</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>95</td>
+                                        <td>PPC:ERR-50015</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>95</td>
+                                        <td>PPC:ERR-50008</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>110</td>
+                                        <td>PPC:ERR-50008</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>118</td>
+                                        <td>PPC:ERR-50008</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>126</td>
+                                        <td>PPC:ERR-50008</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>193</td>
+                                        <td>PPC:ERR-50008</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>236</td>
+                                        <td>PPC:ERR-50008</td>
+                                    </tr>
+                                                            </tbody>
+                            </table>
+                        </div>
+                                    </div>
+                            <div class="package-contents">
+                                            <a name="lib/Pico.php" id="lib/Pico.php"></a>
+                        <h3>
+                            <i class="icon-file"></i>
+                            lib/Pico.php
+                            <small style="float: right;padding-right: 10px;">1</small>
+                        </h3>
+                        <div>
+                            <table class="table markers table-bordered">
+                                <thead>
+                                <tr>
+                                    <th>Type</th>
+                                    <th>Line</th>
+                                    <th>Description</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>0</td>
+                                        <td>PPC:ERR-50000</td>
+                                    </tr>
+                                                            </tbody>
+                            </table>
+                        </div>
+                                    </div>
+                            <div class="package-contents">
+                                            <a name="lib/PicoPluginInterface.php" id="lib/PicoPluginInterface.php"></a>
+                        <h3>
+                            <i class="icon-file"></i>
+                            lib/PicoPluginInterface.php
+                            <small style="float: right;padding-right: 10px;">1</small>
+                        </h3>
+                        <div>
+                            <table class="table markers table-bordered">
+                                <thead>
+                                <tr>
+                                    <th>Type</th>
+                                    <th>Line</th>
+                                    <th>Description</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>0</td>
+                                        <td>PPC:ERR-50000</td>
+                                    </tr>
+                                                            </tbody>
+                            </table>
+                        </div>
+                                    </div>
+                            <div class="package-contents">
+                                            <a name="index.php" id="index.php"></a>
+                        <h3>
+                            <i class="icon-file"></i>
+                            index.php
+                            <small style="float: right;padding-right: 10px;">1</small>
+                        </h3>
+                        <div>
+                            <table class="table markers table-bordered">
+                                <thead>
+                                <tr>
+                                    <th>Type</th>
+                                    <th>Line</th>
+                                    <th>Description</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>0</td>
+                                        <td>PPC:ERR-50000</td>
+                                    </tr>
+                                                            </tbody>
+                            </table>
+                        </div>
+                                    </div>
+                            <div class="package-contents">
+                                            <a name="config/config.php" id="config/config.php"></a>
+                        <h3>
+                            <i class="icon-file"></i>
+                            config/config.php
+                            <small style="float: right;padding-right: 10px;">1</small>
+                        </h3>
+                        <div>
+                            <table class="table markers table-bordered">
+                                <thead>
+                                <tr>
+                                    <th>Type</th>
+                                    <th>Line</th>
+                                    <th>Description</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>0</td>
+                                        <td>PPC:ERR-50000</td>
+                                    </tr>
+                                                            </tbody>
+                            </table>
+                        </div>
+                                    </div>
+                    </div>
+    </section>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

+ 174 - 0
phpDocumentor/reports/markers.html

@@ -0,0 +1,174 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
+    <meta charset="utf-8"/>
+    <title>     &raquo; Markers
+</title>
+    <meta name="author" content=""/>
+    <meta name="description" content=""/>
+
+    <link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
+    <link href="../css/font-awesome.min.css" rel="stylesheet">
+    <link href="../css/prism.css" rel="stylesheet" media="all"/>
+    <link href="../css/template.css" rel="stylesheet" media="all"/>
+    
+    <!--[if lt IE 9]>
+    <script src="../js/html5.js"></script>
+    <![endif]-->
+    <script src="../js/jquery-1.11.0.min.js"></script>
+    <script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
+    <script src="../js/bootstrap.min.js"></script>
+    <script src="../js/jquery.smooth-scroll.js"></script>
+    <script src="../js/prism.min.js"></script>
+    <!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
+    
+    <link rel="shortcut icon" href="../images/favicon.ico"/>
+    <link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
+    <link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
+    <link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
+</head>
+<body>
+
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <i class="icon-ellipsis-vertical"></i>
+            </a>
+            <a class="brand" href="../index.html">Pico 1.0 API Documentation</a>
+
+            <div class="nav-collapse">
+                <ul class="nav pull-right">
+                                        <li class="dropdown" id="charts-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Charts <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li>
+                                <a href="../graphs/class.html">
+                                    <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown" id="reports-menu">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Reports <b class="caret"></b>
+                        </a>
+                        <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">20</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/markers.html">
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">1</span>
+                                </a>
+                            </li>
+                            <li>
+                                <a href="../reports/deprecated.html">
+                                                                                                            <i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
+                                </a>
+                            </li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <!--<div class="go_to_top">-->
+    <!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
+    <!--</div>-->
+</div>
+
+<div id="___" class="container-fluid">
+        <section class="row-fluid">
+        <div class="span2 sidebar">
+            <ul class="side-nav nav nav-list">
+                <li class="nav-header">Navigation</li>
+                                                                                                                                                                                        <li><a href="#lib/Pico.php"><i class="icon-file"></i> lib/Pico.php</a></li>
+                                                                                                                                                                                                                                            </ul>
+        </div>
+
+        <div class="span10 offset2">
+
+            <ul class="breadcrumb">
+                <li><a href="../"><i class="icon-map-marker"></i></a><span class="divider">\</span></li>
+                <li>Markers</li>
+            </ul>
+
+            
+            <div id="marker-accordion">
+                                                                                                                                    <div class="package-contents">
+                            <a name="lib/Pico.php" id="lib/Pico.php"></a>
+                            <h3>
+                            <i class="icon-file"></i>
+                                lib/Pico.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>376</td>
+                                            <td>breaks backward compatibility</td>
+                                        </tr>
+                                                                    </table>
+                            </div>
+                        </div>
+                                                                                                                                                            </div>
+        </div>
+    </section>
+
+    <footer class="row-fluid">
+        <section class="span10 offset2">
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <section class="row-fluid footer-sections">
+                        <section class="span4">
+                                                        <h1><i class="icon-code"></i></h1>
+                            <div>
+                                <ul>
+                                                                    </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-bar-chart"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                        <section class="span4">
+                                                        <h1><i class="icon-pushpin"></i></h1>
+                            <div>
+                                <ul>
+                                    <li><a href="../reports/errors.html">Errors</a></li>
+                                    <li><a href="../reports/markers.html">Markers</a></li>
+                                </ul>
+                            </div>
+                        </section>
+                    </section>
+                </section>
+            </section>
+            <section class="row-fluid">
+                <section class="span10 offset1">
+                    <hr />
+                    Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
+                    on October 27th, 2015 at 02:57.
+                </section>
+            </section>
+        </section>
+    </footer>
+</div>
+
+</body>
+</html>

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott