aboutsummaryrefslogtreecommitdiff
path: root/w
diff options
context:
space:
mode:
Diffstat (limited to 'w')
-rw-r--r--w/class/aff.php1018
-rw-r--r--w/class/app.php657
-rw-r--r--w/class/application.php21
-rw-r--r--w/class/art2.php618
-rw-r--r--w/class/config.1.php188
-rw-r--r--w/class/config.php213
-rw-r--r--w/class/configtest.php22
-rw-r--r--w/class/controller.php96
-rw-r--r--w/class/controlleradmin.php28
-rw-r--r--w/class/controllerart.php148
-rw-r--r--w/class/controllerconnect.php18
-rw-r--r--w/class/controllerdb.php45
-rw-r--r--w/class/controllerhome.php66
-rw-r--r--w/class/controllermedia.php37
-rw-r--r--w/class/media.php173
-rw-r--r--w/class/model.php16
-rw-r--r--w/class/modelanalyse.php73
-rw-r--r--w/class/modelart.php178
-rw-r--r--w/class/modelconfig.php39
-rw-r--r--w/class/modeldb.php54
-rw-r--r--w/class/modelhome.php70
-rw-r--r--w/class/modelmassedit.php0
-rw-r--r--w/class/modelmedia.php95
-rw-r--r--w/class/modelrender.php277
-rw-r--r--w/class/modeluser.php61
-rw-r--r--w/class/opt.php272
-rw-r--r--w/class/quickcss.php291
-rw-r--r--w/class/record.php116
-rw-r--r--w/class/route.php84
-rw-r--r--w/class/router.php74
-rw-r--r--w/class/sleekdbw.php180
-rw-r--r--w/class/user.php58
-rw-r--r--w/class/w.article.php32
-rw-r--r--w/class/w.home.php85
-rw-r--r--w/class/w.menu.php56
-rw-r--r--w/fn/w.fn.php155
-rw-r--r--w/view/templates/arthead.php6
-rw-r--r--w/view/templates/body.php0
-rw-r--r--w/view/templates/connect.php30
-rw-r--r--w/view/templates/delete.php44
-rw-r--r--w/view/templates/edit.php35
-rw-r--r--w/view/templates/edithelp.php27
-rw-r--r--w/view/templates/editleftbar.php70
-rw-r--r--w/view/templates/editrightbar.php20
-rw-r--r--w/view/templates/edittabs.php19
-rw-r--r--w/view/templates/edittopbar.php29
-rw-r--r--w/view/templates/home.php109
-rw-r--r--w/view/templates/homeopt.php84
-rw-r--r--w/view/templates/layout.php20
-rw-r--r--w/view/templates/media.php4
-rw-r--r--w/view/templates/navart.php85
-rw-r--r--w/view/templates/navback.php54
-rw-r--r--w/view/templates/read.php67
-rw-r--r--w/view/templates/readart.php25
-rw-r--r--w/view/templates/readcreate.php5
-rw-r--r--w/view/templates/readerlayout.php15
-rw-r--r--w/w.index.php365
57 files changed, 0 insertions, 6727 deletions
diff --git a/w/class/aff.php b/w/class/aff.php
deleted file mode 100644
index 6f9f07e..0000000
--- a/w/class/aff.php
+++ /dev/null
@@ -1,1018 +0,0 @@
-<?php
-
-class Aff
-{
-
-
- // ____________________________________________________ C O N F I G ______________________________________________
-
-
- public function configform()
- {
- ?>
- <p>Config file does not exist yet, or maybe you deleted it ? Anyway, it is time to set it :</p>
- <form action="" method="post">
- <input type="hidden" name="config" value="create">
- Database settings</br>
- <input type="text" name="host" id="" placeholder="host"></br>
- <input type="text" name="dbname" id="" placeholder="dbname"></br>
- <input type="text" name="user" id="" placeholder="user"></br>
- <input type="text" name="password" id="" placeholder="password"></br>
- Domain name settings</br>
- <input type="text" name="domain" id="" placeholder="domain"></br>
- W_cms settings</br>
- <input type="text" name="admin" id="" placeholder="W admin password" required></br>
- <input type="hidden" name="editor" id="" value="editor">
- <input type="hidden" name="invite" id="" value="invite">
- <input type="hidden" name="read" id="" value="read">
- <input type="hidden" name="cssread" id="" value="">
- (You can change everything later, set at least your admin password, and don't forget it !)</br>
- <input type="submit" value="create config file">
- </form>
- <?php
-
- }
-
-
-
-
-
-
-
- // ____________________________________________________ F U N ______________________________________________
-
-
-
-
-
-
-
- public function edit(Art2 $art, App $app, $list, $fontsize, $imagelist)
- {
-
- if ($app->session() >= $app::EDITOR) {
-
- ?>
-
- <form action="?id=<?= $art->id() ?>" method="post" id="artedit">
-
- <?php
- echo '<style>textarea{font-size: ' . $fontsize . '}</style>';
- $tablist = ['section' => $art->md(), 'css' => $art->css(), 'aside' => $art->aside(), 'footer' => $art->footer()];
-
- $this->tabs($tablist, 'section');
-
- ?>
-
- <div id="submit">
- <input type="submit" name="action" value="home" accesskey="w" onclick="document.getElementById('artedit').submit();" form="artedit">
- <input type="submit" name="action" value="update" accesskey="x" onclick="document.getElementById('artedit').submit();" form="artedit">
- <input type="submit" name="action" value="display" accesskey="c" onclick="document.getElementById('artedit').submit();" form="artedit">
- <input type="submit" name="action" value="delete" onclick="confirmSubmit(event, 'Delete this article', 'artedit')" form="artedit">
- <a href="?id=<?= $art->id() ?>" target="_blank">👁</a>
-
- <span id="headid"><?= $art->id() ?></span>
-
- <label for="fontsize">Font-size</label>
- <input type="number" name="fontsize" value="<?= $fontsize ?>" id="fontsize">
- </div>
- <div class="sidebar">
- <details id="editinfo" open>
- <summary>Infos</summary>
- <fieldset>
- <label for="title">title :</label>
- <input type="text" name="title" id="title" value="<?= $art->title(); ?>">
- <label for="description">Description :</label>
- <input type="text" name="description" id="description" value="<?= $art->description(); ?>">
- <label for="tag">Tag(s) :</label>
- <input type="text" name="tag" id="tag" value="<?= $art->tag('string'); ?>">
- <label for="secure">Niveau de sécurité :</label>
- <select name="secure" id="secure">
- <option value="0" <?= $art->secure() == 0 ? 'selected' : '' ?>>0</option>
- <option value="1" <?= $art->secure() == 1 ? 'selected' : '' ?>>1</option>
- <option value="2" <?= $art->secure() == 2 ? 'selected' : '' ?>>2</option>
- </select>
- <label for="template">Template :</label>
- <select name="template" id="template">
- <?php
- if ($art->template() == 'NULL') {
- echo '<option value="" selected >No template</option>';
- } else {
- echo '<option value="" >No template</option>';
- }
- foreach ($list as $item) {
-
- if ($item->id() == $art->template()) {
- echo '<option value="' . $item->id() . '" selected >' . $item->title() . '</option>';
- } else {
- echo '<option value="' . $item->id() . '">' . $item->title() . '</option>';
- }
- }
- ?>
- </select>
- </fieldset>
- </details>
- <details>
- <summary>Advanced</summary>
- <fieldset>
- <h3>Template options</h3>
- <p>NOT WORKING</p>
- </fieldset>
- </details>
- <details id="editcss" open>
- <summary>Quick CSS</summary>
-
- </details>
- <details>
- <summary>Help</summary>
- <div id="help">
- <?= $this->editorhelp() ?>
- </div>
- </details>
-
-
- </div>
-
-
- <input type="hidden" name="datecreation" value="<?= $art->datecreation('string'); ?>">
- <input type="hidden" name="id" value="<?= $art->id() ?>">
-
- </form>
-
-
- <?php
-
-}
-
-}
-
-
-public function tabs($tablist, $opentab)
-{
- echo '<div class="tabs">';
- foreach ($tablist as $key => $value) {
- echo '<div class="tab">';
- if ($key == $opentab) {
- echo '<input name="checkbox-tabs-group" type="radio" id="tab' . $key . '" class="checkboxtab" checked>';
- } else {
- echo '<input name="checkbox-tabs-group" type="radio" id="tab' . $key . '" class="checkboxtab">';
- }
- echo '<label for="tab' . $key . '">' . $key . '</label>';
- echo '<div class="content">';
- echo '<textarea name="' . $key . '" id="' . $key . '" >' . $value . '</textarea>';
- echo '</div>';
- echo '</div>';
- }
-
- echo '</div>';
-}
-
-public function editorhelp()
-{
- ?>
- <h2>Help !</h2>
- <p>To save your article, press the HOME, UPDATE, or DISPLAY buttons. You can use the keyboard shortcuts as well.</p>
- <pre><span class="i">ALT + W</span> : home</pre>
- <pre><span class="i">ALT + X</span> : update</pre>
- <pre><span class="i">ALT + C</span> : display</pre>
- <h3>Markdown</h3>
- <p>The html section use <a href="https://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown encoding</a>. Actualy, W is using Michel Fortin's <a href="https://michelf.ca/projects/php-markdown/extra/" target="_blank">Markdown Extra</a>.</p>
- <h3>Links</h3>
- <pre>[text](=<span class="i">article_id</span>)</pre>
- <p>where article_id is the article's id you want to point to.</p>
- <h3>Images</h3>
- <pre>[altimage](/<span class="i">img_id.extension</span>)</pre>
- <p>Where img_id is the id of your image and its extension.</p>
- <h3>Shortcuts</h3>
- <pre>%TITLE%</pre>
- <p>Show the title of your article.</p>
- <pre>%DESCRIPTION%</pre>
- <p>Show the description of your article.</p>
- <pre>%SUMMARY%</pre>
- <p>Generate a <strong>summary</strong>, the list of all your head titles using #, ##, ###...</p>
- <pre>%%<span class="i">tag_name</span>%%</pre>
- <p>Generate a <strong>menu</strong>, a list of links to all articles under this tag.</p>
- <p>vv</p>
- <p>vv</p>
- <p>vv</p>
- <p></p>
- <?php
-}
-
-
-
-public function head($title, $tool, $color4)
-{
- ?>
- <head>
- <meta charset="utf8" />
- <meta name="viewport" content="width=device-width" />
- <link rel="shortcut icon" href="./media/logo.png" type="image/x-icon">
- <link href="./rsc/css/stylebase.css" rel="stylesheet" />
- <link href="./rsc/css/style<?= $tool ?>.css" rel="stylesheet" />
- <style>
- :root {
- --color4: <?= $color4 ?>;
- }
- </style>
- <title><?= $title ?></title>
- <script src="./rsc/js/app.js"></script>
- </head>
- <?php
-
-}
-
-public function arthead(Art2 $art, $globalcss, $edit = 0)
-{
- ?>
- <head>
- <meta charset="utf8" />
- <meta name="description" content="<?= $art->description() ?>" />
- <meta name="viewport" content="width=device-width" />
- <link rel="shortcut icon" href="./media/logo.png" type="image/x-icon">
- <link href="./rsc/css/stylebase.css" rel="stylesheet" />
- <?= $edit == 0 ? '<link href="' . $globalcss . '" rel="stylesheet" />' : '<link href="./rsc/css/styleedit.css" rel="stylesheet" />' ?>
- <title><?= $edit == 1 ? '✏' : '' ?> <?= $art->title() ?></title>
- <script src="./rsc/js/app.js"></script>
- </head>
- <?php
-
-}
-
-public function noarthead($id, $globalcss)
-{
- ?>
- <head>
- <meta charset="utf8" />
- <meta name="description" content="This article does not exist yet." />
- <meta name="viewport" content="width=device-width" />
- <link rel="shortcut icon" href="./media/logo.png" type="image/x-icon">
- <link href="./rsc/css/stylebase.css" rel="stylesheet" />
- <link href="<?= $globalcss ?>" rel="stylesheet" />
- <title>❓ <?= $id ?></title>
- <script src="./rsc/js/app.js"></script>
- </head>
- <?php
-
-}
-
-
-
-
-public function search()
-{
- ?>
- <div id="search">
- <form action="./" method="get">
- <input type="text" name="id" id="id" placeholder="identifiant article" required>
- <input type="submit" value="accéder">
- </form>
- </div>
- <?php
-
-}
-
-public function tag($getlist, $tag, $app)
-{
- echo '<div class="tag">';
- echo '<ul>';
- foreach ($getlist as $item) {
- if (in_array($tag, $item->tag('array'))) {
- echo '<li><a href="?id=' . $item->id() . '">' . $item->title() . '</a> - ' . $item->description();
- if ($app->session() >= $app::EDITOR) {
- echo ' - <a href="?id=' . $item->id() . '&edit=1">modifier</a></li>';
- } else {
- echo '</li>';
- }
- }
- }
- echo ' </ul> ';
- echo ' </div> ';
-}
-
-public function linkfrom($getlist, $linkfrom, App $app)
-{
- echo '<div class="linkfrom">';
- echo '<ul>';
- foreach ($getlist as $item) {
- if (in_array($linkfrom, $item->linkfrom('array'))) {
- echo '<li><a href="?id=' . $item->id() . '">' . $item->title() . '</a> - ' . $item->description();
- if ($app->session() >= $app::EDITOR) {
- echo ' - <a href="?id=' . $item->id() . '&edit=1">modifier</a> - <a href="?linkfrom=' . $item->id() . '">linkfroms</a></li>';
- } else {
- echo '</li>';
- }
- }
- }
- echo ' </ul> ';
- echo ' </div> ';
-}
-
-public function dump($getlist)
-{
- echo '<ul>';
- foreach ($getlist as $item) {
- echo '<li>';
- var_dump($item);
- echo '</li>';
- }
- echo ' </ul> ';
-}
-
-public function header()
-{
- echo '<header>';
- $this->search();
- echo '</header>';
-}
-
-
-public function home2table(App $app, $getlist, $masslist)
-{
- echo '<div id="main">';
- echo '<h2>Articles</h2>';
- echo '<form action="./" method="post">';
-
- ?>
- <div id="massedit">
- <h3>Mass Edit</h3>
- <select name="massedit" required>
- <option value="public">set as public</option>
- <option value="private">set as private</option>
- <option value="not published">set as not published</option>
- <option value="erasetag">erase all tags</option>
- <option value="erasetemplate">erase template</option>
- <option value="delete">delete</option>
- </select>
-
- <input type="submit" name="massaction" value="do" onclick="confirmSubmit(event, 'Are you sure')" >
-
- <input type="text" name="targettag" placeholder="add tag">
- <input type="submit" name="massaction" value="add tag" onclick="confirmSubmit(event, 'Are you sure')" >
-
- <select name="masstemplate">
- <?php
- foreach ($masslist as $art) {
- echo '<option value="' . $art->id() . '">' . $art->id() . '</option>';
- }
- ?>
- </select>
-
- <input type="submit" name="massaction" value="set template" onclick="confirmSubmit(event, 'Are you sure')" >
-
- <input type="hidden" name="action" value="massedit">
- </div>
-
- <?php
- if ($app->session() >= $app::EDITOR) {
- echo '<table id="home2table">';
- echo '<tr><th>x</th><th>title</th><th>tag</th><th>summary</th><th>↘ to</th><th>↗ from</th><th>last modification</th><th>date of creation</th><th>privacy</th><th>display</th></tr>';
- foreach ($getlist as $item) {
- echo '<tr>';
- echo '<td><input type="checkbox" name="id[]" value=' . $item->id() . '></td>';
- echo '<td><a href="?id=' . $item->id() . '&edit=1">' . $item->title() . '</a></td>';
- echo '<td>' . $item->tag('sort') . '</td>';
- echo '<td>' . $item->description() . '</td>';
- echo '<td><a href="?linkfrom=' . $item->id() . '">' . $item->linkto('sort') . '</a></td>';
- echo '<td>' . $item->linkfrom('sort') . '</td>';
- echo '<td>' . $item->datemodif('hrdi') . '</td>';
- echo '<td>' . $item->datecreation('hrdi') . '</td>';
- echo '<td>' . $item->secure('string') . '</td>';
- echo '<td><a href="?id=' . $item->id() . '" target="_blank">👁</a></td>';
- echo '</tr>';
- }
- echo ' </table> ';
- echo ' </form> ';
- echo '</div>';
- }
-}
-
-public function option(App $app, Opt $opt)
-{
- if ($app->session() >= $app::EDITOR) {
- echo '<div id="options">';
- echo '<h2>Options</h2>';
- echo '<form action="./" method="get" >';
- echo '<input type="submit" name="submit" value="filter">';
- echo '⬅<input type="submit" name="submit" value="reset">';
-
-
- $this->optionsort($opt);
- $this->optionprivacy($opt);
- $this->optiontag($opt);
-
- if ($opt->invert() == 1) {
- echo '<input type="checkbox" name="invert" value="1" id="invert" checked>';
- } else {
- echo '<input type="checkbox" name="invert" value="1" id="invert">';
- }
- echo '<label for="invert">invert</></br>';
-
-
- echo '<input type="submit" name="submit" value="filter">';
- echo '⬅<input type="submit" name="submit" value="reset">';
-
- echo '</form></div>';
-
- }
-
-}
-
-public function optiontag(Opt $opt)
-{
-
- echo '<fieldset><legend>Tag</legend><ul>';
-
-
- echo '<input type="radio" id="OR" name="tagcompare" value="OR" ' . ($opt->tagcompare() == "OR" ? "checked" : "") . ' ><label for="OR">OR</label>';
- echo '<input type="radio" id="AND" name="tagcompare" value="AND" ' . ($opt->tagcompare() == "AND" ? "checked" : "") . '><label for="AND">AND</label>';
-
- //echo '<input type="hidden" name="tagfilter[]" value="">';
-
- $in = false;
- $out = false;
- $limit = 1;
- foreach ($opt->taglist() as $tagfilter => $count) {
-
- if ($count > $limit && $in == false) {
- echo '<details open><summary>>' . $limit . '</summary>';
- $in = true;
- }
- if ($count == $limit && $in == true && $out == false) {
- echo '</details><details><summary>' . $limit . '</summary>';
- $out = true;
- }
-
- if (in_array($tagfilter, $opt->tagfilter())) {
-
- echo '<li><input type="checkbox" name="tagfilter[]" id="' . $tagfilter . '" value="' . $tagfilter . '" checked /><label for="' . $tagfilter . '">' . $tagfilter . ' (' . $count . ')</label></li>';
- } else {
- echo '<li><input type="checkbox" name="tagfilter[]" id="' . $tagfilter . '" value="' . $tagfilter . '" /><label for="' . $tagfilter . '">' . $tagfilter . ' (' . $count . ')</label></li>';
- }
- }
- if ($in = true || $out = true) {
- echo '</details>';
- }
- echo '</ul></fieldset>';
-
-}
-
-public function optionprivacy(Opt $opt)
-{
- echo '<fieldset><legend>Privacity</legend><ul>';
- echo '<li><input type="radio" id="4" name="secure" value="4" ' . ($opt->secure() == 4 ? "checked" : "") . ' /><label for="4">all</label></li>';
- echo '<li><input type="radio" id="2" name="secure" value="2" ' . ($opt->secure() == 2 ? "checked" : "") . ' /><label for="2">not published</label></li>';
- echo '<li><input type="radio" id="1" name="secure" value="1" ' . ($opt->secure() == 1 ? "checked" : "") . ' /><label for="1">private</label></li>';
- echo '<li><input type="radio" id="0" name="secure" value="0" ' . ($opt->secure() == 0 ? "checked" : "") . ' /><label for="0">public</label></li>';
- echo '</ul></fieldset>';
-}
-
-public function optionsort(Opt $opt)
-{
- echo '<fieldset><legend>Sort</legend>';
- echo '<select name="sortby" id="sortby">';
- foreach ($opt->col('array') as $key => $col) {
- echo '<option value="' . $col . '" ' . ($opt->sortby() == $col ? "selected" : "") . '>' . $col . '</option>';
- }
- echo '</select>';
- echo '</br>';
- echo '<input type="radio" id="asc" name="order" value="1" ' . ($opt->order() == '1' ? "checked" : "") . ' /><label for="asc">ascending</label>';
- echo '</br>';
- echo '<input type="radio" id="desc" name="order" value="-1" ' . ($opt->order() == '-1' ? "checked" : "") . ' /><label for="desc">descending</label>';
-
- echo '</fieldset>';
-
-}
-
-public function mapheader()
-{
- $selectcurve = isset($_GET['curve']) ? $_GET['curve'] : 'basis';
- $selectorient = isset($_GET['orient']) ? $_GET['orient'] : 'TD';
- $curves = ['linear', 'basis', 'natural', 'step', 'stepAfter', 'stepBefore', 'monotoneX', 'monotoneY'];
- $orients = ['TD', 'LR', 'BT', 'RL'];
- ?>
- <h2>Map</h2>
-
- <form action="./" method="get">
- <label for="curve">Curve style</label>
- <select name="curve" id="curve">
- <?php
- foreach ($curves as $curve) {
- ?>
- <option value="<?= $curve ?>" <?= $selectcurve == $curve ? 'selected' : '' ?>><?= $curve ?></option>
- <?php
-
- }
- ?>
- </select>
- <label for="orient">Orientation</label>
- <select name="orient" id="orient">
- <?php
- foreach ($orients as $orient) {
- ?>
- <option value="<?= $orient ?>" <?= $selectorient == $orient ? 'selected' : '' ?>><?= $orient ?></option>
- <?php
-
- }
- ?>
- </select>
- <input type="submit" value="draw" name="map">
- </form>
- <?php
-
-}
-
-public function mermaid(string $map)
-{
- $curve = isset($_GET['curve']) ? $_GET['curve'] : 'basis';
- $orient = isset($_GET['orient']) ? $_GET['orient'] : 'TD';
-
-
- ?>
-
- <script src="./rsc/js/mermaid.min.js"></script>
-
- <script>
- mermaid.initialize({
- startOnLoad:true,
- themeCSS: ".node circle, .node rect , .node polygon { fill: var(--color1); stroke: var(--color4);} ",
- flowchart: {
- curve: '<?= $curve ?>'
- }
- });
-
- </script>
-
-
- <div class="mermaid">
-
- graph <?= $orient ?>
- <?= $map ?>
- </div>
-
-
- <?php
-
-}
-
-public function aside(App $app)
-{
- if ($app->session() >= $app::EDITOR) {
- echo '<div id="linklist">Links<div id="roll"><ul>';
- foreach ($app->lister() as $item) {
- echo '<li><a href="?id=' . $item['id'] . '&edit=1">' . $item['title'] . '</a> - <input type="text" value="[' . $item['title'] . '](?id=' . $item['id'] . ')">';
-
-
- }
- echo ' </ul></div></div> ';
- }
-}
-
-public function nav($app)
-{
- echo '<nav>';
- echo $app->session();
- echo '<div id="menu">';
-
- echo '<a class="button" href="?">home</a>';
-
- if ($app->session() == $app::FREE) {
- if (isset($_GET['id'])) {
- echo '<form action="./?id=' . $_GET['id'] . '" method="post">';
- } else {
- echo '<form action="." method="post">';
- }
- ?>
- <input type="hidden" name="action" value="login">
- <input type="password" name="pass" id="loginpass" placeholder="password">
- <input type="submit" value="login">
- </form>
- <?php
-
- }
- if ($app->session() > $app::FREE) {
- if (isset($_GET['id'])) {
- echo '<form action="./?id=' . $_GET['id'] . '" method="post">';
- } else {
- echo '<form action="." method="post">';
- }
- ?>
- <input type="hidden" name="action" value="logout">
- <input type="submit" value="logout">
- </form>
- <?php
-
- }
- if ($app->session() >= $app::EDITOR && isset($_GET['id']) && $app->exist($_GET['id'])) {
- if (isset($_GET['edit']) && $_GET['edit'] == 1) {
- echo '<a class="button" href="?id=' . $_GET['id'] . '" target="_blank">display</a>';
- } else {
- echo '<a class="button" href="?id=' . $_GET['id'] . '&edit=1" >edit</a>';
- }
- }
- if ($app->session() >= $app::EDITOR) {
- echo '<a class="button" href="?aff=media" >Media</a>';
- echo '<a class="button" href="?aff=record" >Record</a>';
- if ($app->session() >= $app::ADMIN) {
- echo '<a class="button" href="?aff=admin" >Admin</a>';
- }
- }
-
-
-
-
- ?>
- </div>
- </nav>
- <?php
-
- }
-
- // ____________________________________________________ M E D ________________________________________________
-
-
- public function addmedia($app)
- {
- if ($app->session() >= $app::EDITOR) {
-
- ?>
- <details close>
- <summary>Add Media</summary>
- <form action="./" method="post" enctype="multipart/form-data">
- <input type="hidden" name="action" value="addmedia">
- <input type="file" accept="*" name="media" required>
- <input type="text" name="id" id="" placeholder="nom du fichier" required>
- <input type="submit" value="envoi">
- </form>
- </details>
- <?php
-
- }
- }
-
- public function medialist(array $getlistermedia, $dir)
- {
- ?>
- <details open>
- <summary>Media List</summary>
-
- <form action="" method="post">
-
- <table id=mediatable>
- <tr><th>x</th><th>Name</th><th>extension</th><th>width</th><th>height</th><th>size</th><th>code</th><th>thumbnail</th></tr>
- <?php
-
-
- foreach ($getlistermedia as $item) {
- $filepath = $dir . $item->id() . '.' . $item->extension();
- echo '<tr>';
- echo '<td><input type="checkbox" name="id[]" value=' . $item->id() . ' id="' . $item->id() . '"></td>';
- echo '<td><label for="' . $item->id() . '">' . $item->id() . '</label></td>';
- echo '<td>' . $item->extension() . '</td>';
- echo '<td>' . $item->width() . '</td>';
- echo '<td>' . $item->height() . '</td>';
- echo '<td>' . readablesize($item->size()) . '</td>';
- if ($item->type() == 'image') {
- echo '<td><input type="text" value="![' . $item->id() . '](/' . $item->id() . '.' . $item->extension() . ')"></td>';
- echo '<td class="tooltip">👁<span class="infobulle"><a href="' . $filepath . '" target="_blank" ><img class="thumbnail" src="' . $filepath . '" alt="' . $item->id() . '"></a></span></td>';
- } elseif ($item->type() == 'sound') {
- echo '<td><input type="text" value="[' . $item->id() . '](' . $filepath . ')"></td>';
- echo '<td><a href="' . $filepath . '" target="_blank" >♪</a></td>';
- } else {
- echo '<td><input type="text" value="[' . $item->id() . '](' . $filepath . ')"></td>';
- echo '<td><a href="' . $filepath . '" target="_blank" >∞</a></td>';
- }
- echo '</tr>';
- echo '';
-
- }
-
-
- ?>
-
-
- </table>
-
- <select name="action" id="">
- <option value="">compress /2</option>
- <option value="">downscale /2</option>
- <option value="">upscale *2</option>
- </select>
- <input type="submit" value="edit">
- <input type="submit" value="delete">
- </form>
- </div>
-
- </details>
-
-
- <?php
-
- }
-
-
- //______________________________________________________ R E C _________________________________________________
-
-
- public function recordlist(App $app, $dir = "../ACRRecordings/")
- {
- echo '<details open>';
- echo '<summary>Media List</summary>';
-
- echo '<article class="gest">';
-
- echo '<form action="" method="post">';
-
- echo '<ul>';
-
- foreach ($app->getlisterrecord($dir) as $item) {
- echo '<li>';
-
- ?>
- <input type="checkbox" id="<?= $item->id() ?>" name="<?= $item->id() ?>" value="1">
- <label for="<?= $item->id() ?>"><?= $item->id() ?></label>
- <input type="hidden" name="id" value="<?= $item->id() ?>">
-
- <?php
-
- $filepathurl = $dir . urlencode($item->id()) . '.' . $item->extension();
-
- echo '<br/>';
- var_dump($item->size());
- var_dump(intval($item->size()));
- echo 'filesize = ' . readablesize(intval($item->size()));
- echo '<br/>';
- echo 'extension = ' . $item->extension();
- echo '<br/>';
-
- ?>
-
- <audio controls>
- <source src="<?= $filepathurl ?>" type="audio/mpeg">
- </audio>
-
-
-
- <?php
-
-
-
-
- echo '</li>';
- }
-
- echo '</ul>';
-
- ?>
- <select name="action" id="">
- <option value="">compress /2</option>
- <option value="">downscale /2</option>
- <option value="">upscale *2</option>
- </select>
- <input type="submit" value="edit">
- <input type="submit" value="delete">
- </form>
- </div>
-
-
- <?php
-
-
- echo '</article>';
- echo '</details>';
-
-
- }
-
-
- //______________________________________________________ A D M _________________________________________________
-
-
-
- public function admincss(Config $config, $app)
- {
- ?>
- <article>
- <h2>CSS</h2>
-
- <p>CSS file :</p>
-
- <p><code> <?= $app::GLOBAL_CSS_DIR ?></code></p>
-
- <?php
- $cssfile = $app::GLOBAL_CSS_DIR;
- if (is_file($cssfile)) {
- $cssread = file_get_contents($cssfile);
- echo '<details>';
- echo '<summary>Edit current CSS</summary>';
- echo '<form action="./" method="post">';
- echo '<textarea name="editcss" id="cssarea">' . $cssread . '</textarea>';
- echo '<input type="hidden" name="action" value="editcss">';
- echo '<input type="submit" value="edit">';
- echo '</form>';
- echo '</details>';
- }
-
- ?>
-
- </article>
- <?php
-
- }
-
- public function admindb($config)
- {
- ?>
-
- <article>
-
-
- <h2>Database</h2>
-
- <details>
- <summary>Database credentials</summary>
-
- <p>Fill this sections with the database settings you want to connect to</p>
-
- <form action="./" method="post">
- <input type="hidden" name="action" value="editconfig">
- <label for="host">Host</label>
- <input title="host" type="text" name="host" id="host" value="<?= $config->host() ?>">
- <label for="dbname">DataBase name</label>
- <input title="dbname" type="text" name="dbname" id="dbname" value="<?= $config->dbname() ?>">
- <label for="user">User name</label>
- <input title="user" type="text" name="user" id="user" value="<?= $config->user() ?>">
- <label for="password">Password</label>
- <input title="password" type="text" name="password" id="password" value="<?= $config->password() ?>">
- <input type="submit" value="edit" id="">
- </form>
-
- </details>
-
-
- </article>
-
- <?php
-
- }
-
- public function adminpassword(Config $config)
- {
- ?>
- <article>
-
- <h2>Passwords</h2>
-
- <details>
- <summary>Admin</summary>
-
- <p>Edit your own admin password. You can find it in the config.w.json file, in the root of your website folder.</p>
-
- <form action="./" method="post">
- <input type="hidden" name="action" value="editconfig">
- <label for="admin">Administrator password (10)</label>
- <input title="admin password" type="password" name="admin" id="admin" value="<?= $config->admin() ?>" >
- <input type="submit" value="edit" id="">
- </form>
-
- </details>
- <details>
- <summary>Others</summary>
-
- <p>Use this section to set all the others users passwords. They cant access this page, so they cant change it by themselves.</p>
-
- <form action="./" method="post">
- <input type="hidden" name="action" value="editconfig">
- <label for="editor">Editor password (3)</label>
- <input title="editor" type="text" name="editor" id="editor" value="<?= $config->editor() ?>">
- <label for="invite">Invite password (2)</label>
- <input title="invite" type="text" name="invite" id="invite" value="<?= $config->invite() ?>" >
- <label for="read">Reader password (1)</label>
- <input title="read" type="text" name="read" id="read" value="<?= $config->read() ?>">
- <input type="submit" value="edit" id="">
- </form>
-
- </details>
- </article>
-
-
-
-
- <?php
-
- }
-
- public function admintable(Config $config, string $status, array $arttables)
- {
- ?>
-
- <article>
-
- <h2>Table</h2>
-
-
-
- <p>Database status : <strong><?= $status ?></strong></p>
-
-
- <p>Current Table : <strong><?= $config->arttable(); ?></strong></p>
- <details>
- <summary>Select Table</summary>
- <p>The table is where all your articles are stored, select the one you want to use.</p>
-
- <form action="./" method="post">
- <select name="arttable" required>
-
- <?php
- foreach ($arttables as $arttable) {
- if ($arttable == $config->arttable()) {
- echo '<option value="' . $arttable . '" " selected >' . $arttable . '</option>';
- } else {
- echo '<option value="' . $arttable . '">' . $arttable . '</option>';
- }
- }
- ?>
- </select>
- <input type="hidden" name="action" value="editconfig">
- <input type="submit" value="choose">
- </form>
-
- </details>
-
- <details>
- <summary>Add table</summary>
-
- <p>Create new table in your database. You need at least one to use W_cms</p>
-
- <form action="./" method="post">
- <input type="hidden" name="actiondb" value="addtable">
- <input type="text" name="tablename" placeholder="table name" maxlength="30" required>
- <input type="submit" value="create">
- </form>
-
- </details>
-
- <details>
- <summary>Duplicate Table</summary>
- <p>If you want to save versions of your work.</p>
-
- <form action="./" method="post">
- <label for="arttable">Select the table you want to copy.</label>
- <select name="arttable" id="arttable" required>
-
- <?php
- foreach ($arttables as $arttable) {
- if ($arttable == $config->arttable()) {
- echo '<option value="' . $arttable . '" " selected >' . $arttable . '</option>';
- } else {
- echo '<option value="' . $arttable . '">' . $arttable . '</option>';
- }
- }
- ?>
- </select>
- <label for="tablename">Choose a name for the copy</label>
- <input type="text" name="tablename" id="tablename" required>
- <input type="hidden" name="actiondb" value="duplicatetable">
- <input type="submit" value="Duplicate">
- </form>
-
- </details>
-
- </article>
-
- <?php
-
- }
-
- public function admindisplay($color4)
- {
- ?>
- <article>
- <h2>Display</h2>
- <details>
- <summary>Update favicon</summary>
- <form action="./" method="post" enctype="multipart/form-data">
- <input type="file" name="favicon" id="favicon">
- <input type="submit" value="update">
- </form>
- </details>
- <details>
- <summary>Change desktop background color</summary>
- <form action="./" method="post">
- <label for="color4">Background color</label>
- <input type="color" name="color4" id="color4" value="<?= $color4 ?>">
- <input type="hidden" name="action" value="editconfig">
- <input type="submit" value="color my life">
- </form>
- </details>
- </article>
- <?php
-
- }
-
-
-}
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/app.php b/w/class/app.php
deleted file mode 100644
index b791846..0000000
--- a/w/class/app.php
+++ /dev/null
@@ -1,657 +0,0 @@
-<?php
-class App
-{
- private $bdd;
- private $session;
- private $arttable;
-
-
- const CONFIG_FILE = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'w.config.json';
- const GLOBAL_CSS_DIR = '.' . DIRECTORY_SEPARATOR . 'css' . DIRECTORY_SEPARATOR . 'global' . DIRECTORY_SEPARATOR . 'global.css';
- const MEDIA_DIR = '.' . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR;
- const MEDIA_EXTENSIONS = array('jpeg', 'jpg', 'JPG', 'png', 'gif', 'mp3', 'mp4', 'mov', 'wav', 'flac', 'pdf');
- const MEDIA_TYPES = ['image', 'video', 'sound', 'other'];
-
-
- const ADMIN = 10;
- const EDITOR = 3;
- const INVITE = 2;
- const READ = 1;
- const FREE = 0;
-
-
-// _____________________________________ C O N S T R U C T _________________________________
-
-
-
- public function __construct()
- {
- $this->setsession($this::FREE);
- }
-
- public function setbdd(Config $config)
- {
- $caught = true;
-
- try {
- $this->bdd = new PDO('mysql:host=' . $config->host() . ';dbname=' . $config->dbname() . ';charset=utf8', $config->user(), $config->password(), array(PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
- //$this->bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- } catch (PDOException $e) {
- $caught = false;
- echo '<h1>Error 500, database offline</h1>';
- if ($this->session() >= self::EDITOR) {
- echo '<p>Error : ' . $e->getMessage() . '</p>';
- if ($this->session() == self::ADMIN) {
- echo '<p>Go to the <a href="?aff=admin">Admin Panel</a> to edit your database credentials</p>';
- } else {
- echo '<p>Logout and and come back with an <strong>admin password</strong> to edit the database connexions settings.</p>';
- }
- } else {
- echo '<p><a href=".">Homepage for admin login</a> (connect on the top right side)</p>';
- }
- exit;
- }
-
- return $caught;
-
- }
-
- public function settable(Config $config)
- {
- if (!empty($config->arttable())) {
- $this->arttable = $config->arttable();
- } else {
- echo '<h1>Table Error</h1>';
-
- if ($this->session() >= self::EDITOR) {
- if ($this->session() == self::ADMIN) {
- echo '<p>Go to the <a href="?aff=admin">Admin Panel</a> to select or add an Article table</p>';
- } else {
- echo '<p>Logout and and come back with an <strong>admin password</strong> to edit table settings.</p>';
- }
- } else {
- echo '<p><a href=".">Homepage for admin login</a> (connect on the top right side)</p>';
- }
- $caught = false;
- exit;
- }
- }
-
- public function bddinit(Config $config)
- {
- $test = $this->setbdd($config);
- if ($test) {
- $this->settable($config);
- }
- }
-
-
-// _________________________________________ C O N F I G ____________________________________
-
- public function readconfig()
- {
- if (file_exists(self::CONFIG_FILE)) {
- $current = file_get_contents(self::CONFIG_FILE);
- $donnees = json_decode($current, true);
- return new Config($donnees);
- } else {
- return 0;
- }
-
- }
-
- public function createconfig(array $donnees)
- {
- return new Config($donnees);
- }
-
-
- public function savejson(string $json)
- {
- file_put_contents(self::CONFIG_FILE, $json);
- }
-
-
-
-
-
-
-// ___________________________________________ A R T ____________________________________
-
-
- public function add(Art2 $art)
- {
-
- if ($this->exist($art->id())) {
- echo '<span class="alert">idalreadyexist</span>';
- } else {
-
- var_dump($art);
-
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
-
- $request = 'INSERT INTO ' . $this->arttable . '(id, title, description, tag, date, datecreation, datemodif, daterender, css, quickcss, javascript, html, header, section, nav, aside, footer, render, secure, invitepassword, interface, linkfrom, template, affcount, editcount)
- VALUES(:id, :title, :description, :tag, :date, :datecreation, :datemodif, :daterender, :css, :quickcss, :javascript, :html, :header, :section, :nav, :aside, :footer, :render, :secure, :invitepassword, :interface, :linkfrom, :template, :affcount, :editcount)';
-
- $q = $this->bdd->prepare($request);
-
- $q->bindValue(':id', $art->id());
- $q->bindValue(':title', $art->title());
- $q->bindValue(':description', $art->description());
- $q->bindValue(':tag', $art->tag('string'));
- $q->bindValue(':date', $now->format('Y-m-d H:i:s'));
- $q->bindValue(':datecreation', $now->format('Y-m-d H:i:s'));
- $q->bindValue(':datemodif', $now->format('Y-m-d H:i:s'));
- $q->bindValue(':daterender', $now->format('Y-m-d H:i:s'));
- $q->bindValue(':css', $art->css());
- $q->bindValue(':quickcss', $art->quickcss('json'));
- $q->bindValue(':javascript', $art->javascript());
- $q->bindValue(':html', $art->html());
- $q->bindValue(':header', $art->header());
- $q->bindValue(':section', $art->md());
- $q->bindValue(':nav', $art->nav());
- $q->bindValue(':aside', $art->aside());
- $q->bindValue(':footer', $art->footer());
- $q->bindValue(':render', $art->render());
- $q->bindValue(':secure', $art->secure());
- $q->bindValue(':invitepassword', $art->invitepassword());
- $q->bindValue(':interface', $art->interface());
- $q->bindValue(':linkfrom', $art->linkfrom('json'));
- $q->bindValue(':template', $art->template('json'));
- $q->bindValue(':affcount', $art->affcount());
- $q->bindValue(':editcount', $art->editcount());
-
- $q->execute();
- }
- }
-
- public function delete(Art2 $art)
- {
- $req = $this->bdd->prepare('DELETE FROM ' . $this->arttable . ' WHERE id = :id ');
- $req->execute(array('id' => $art->id()));
- $req->closeCursor();
- }
-
- public function get($id)
- {
- $req = $this->bdd->prepare('SELECT * FROM ' . $this->arttable . ' WHERE id = :id ');
- $req->execute(array('id' => $id));
- $donnees = $req->fetch(PDO::FETCH_ASSOC);
-
- return new Art2($donnees);
-
- $req->closeCursor();
-
- }
-
-
-
-
-
- public function update(Art2 $art)
- {
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
-
- //$request = 'UPDATE ' . $this->arttable . '(id, title, description, tag, date, datecreation, datemodif, daterender, css, quickcss, javascript, html, header, section, nav, aside, footer, render, secure, invitepassword, interface, linkfrom, template, affcount, editcount) VALUES(:id, :title, :description, :tag, :date, :datecreation, :datemodif, :daterender, :css, :quickcss, :javascript, :html, :header, :section, :nav, :aside, :footer, :render, :secure, :invitepassword, :interface, :linkfrom, :template, :affcount, :editcount) WHERE id = :id';
-
- $request = 'UPDATE ' . $this->arttable . ' SET id = :id, title = :title, description = :description, tag = :tag, date = :date, datecreation = :datecreation, datemodif = :datemodif, daterender = :daterender, css = :css, quickcss = :quickcss, javascript = :javascript, html = :html, header = :header, section = :section, nav = :nav, aside = :aside, footer = :footer, render = :footer, secure = :secure, invitepassword = :invitepassword, interface = :interface, linkfrom = :linkfrom, template = :template, affcount = :affcount, editcount = :editcount WHERE id = :id';
-
- $q = $this->bdd->prepare($request);
-
- $q->bindValue(':id', $art->id());
- $q->bindValue(':title', $art->title());
- $q->bindValue(':description', $art->description());
- $q->bindValue(':tag', $art->tag('string'));
- $q->bindValue(':date', $now->format('Y-m-d H:i:s'));
- $q->bindValue(':datecreation', $now->format('Y-m-d H:i:s'));
- $q->bindValue(':datemodif', $now->format('Y-m-d H:i:s'));
- $q->bindValue(':daterender', $now->format('Y-m-d H:i:s'));
- $q->bindValue(':css', $art->css());
- $q->bindValue(':quickcss', $art->quickcss('json'));
- $q->bindValue(':javascript', $art->javascript());
- $q->bindValue(':html', $art->html());
- $q->bindValue(':header', $art->header());
- $q->bindValue(':section', $art->md());
- $q->bindValue(':nav', $art->nav());
- $q->bindValue(':aside', $art->aside());
- $q->bindValue(':footer', $art->footer());
- $q->bindValue(':render', $art->render());
- $q->bindValue(':secure', $art->secure());
- $q->bindValue(':invitepassword', $art->invitepassword());
- $q->bindValue(':interface', $art->interface());
- $q->bindValue(':linkfrom', $art->linkfrom('json'));
- $q->bindValue(':template', $art->template('json'));
- $q->bindValue(':affcount', $art->affcount());
- $q->bindValue(':editcount', $art->editcount());
-
- $q->execute();
- }
-
- public function exist($id)
- {
- $req = $this->bdd->prepare(' SELECT COUNT(*) FROM ' . $this->arttable . ' WHERE id = :id ');
- $req->execute(array('id' => $id));
- $donnees = $req->fetch(PDO::FETCH_ASSOC);
-
- return (bool)$donnees['COUNT(*)'];
- }
-
-
-
-
-
- //____________________________________________ L S T ______________________________
-
-
-
- public function getlister(array $selection = ['id'], array $opt = [])
- {
- // give an array using SELECTION columns and sort and desc OPTIONS
-
- $default = ['tri' => 'id', 'desc' => 'DESC'];
- $opt = array_update($default, $opt);
-
- $list = [];
- $option = ['datecreation', 'title', 'id', 'description', 'datemodif', 'tag', 'secure'];
- if (is_array($selection) && is_string($opt['tri']) && strlen($opt['tri']) < 16 && is_string($opt['desc']) && strlen($opt['desc']) < 5 && in_array($opt['tri'], $option)) {
-
- $selection = implode(", ", $selection);
-
- $select = 'SELECT ' . $selection . ' FROM ' . $this->arttable . ' ORDER BY ' . $opt['tri'] . ' ' . $opt['desc'];
- $req = $this->bdd->query($select);
- while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) {
- $list[] = new Art2($donnees);
- }
- return $list;
- }
- }
-
-
-
-
-
-
- public function getlisteropt(Opt $opt)
- {
-
- $artlist = [];
-
- $select = 'SELECT ' . $opt->col('string') . ' FROM ' . $this->arttable;
- $req = $this->bdd->query($select);
- while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) {
- $artlist[] = new Art2($donnees);
- }
- return $artlist;
-
- }
-
- public function listcalclinkfrom(&$artlist)
- {
- foreach ($artlist as $art) {
- $art->calclinkto($artlist);
- }
- }
-
- public function artcompare($art1, $art2, $method = 'id', $order = 1)
- {
- $result = ($art1->$method('sort') <=> $art2->$method('sort'));
- return $result * $order;
-
- }
-
- public function buildsorter($sortby, $order)
- {
- return function ($art1, $art2) use ($sortby, $order) {
- $result = $this->artcompare($art1, $art2, $sortby, $order);
- return $result;
- };
- }
-
-
-
- public function artlistsort(&$artlist, $sortby, $order = 1)
- {
- return usort($artlist, $this->buildsorter($sortby, $order));
- }
-
-
-
-
-
-
- public function filtertagfilter(array $artlist, array $tagchecked, $tagcompare = 'OR')
- {
-
- $filteredlist = [];
- foreach ($artlist as $art) {
- if (empty($tagchecked)) {
- $filteredlist[] = $art->id();
- } else {
- $inter = (array_intersect($art->tag('array'), $tagchecked));
- if ($tagcompare == 'OR') {
- if (!empty($inter)) {
- $filteredlist[] = $art->id();
- }
- } elseif ($tagcompare == 'AND') {
- if (!array_diff($tagchecked, $art->tag('array'))) {
- $filteredlist[] = $art->id();
- }
- }
- }
- }
- return $filteredlist;
- }
-
- public function filtersecure(array $artlist, $secure)
- {
- $filteredlist = [];
- foreach ($artlist as $art) {
- if ($art->secure() == intval($secure)) {
- $filteredlist[] = $art->id();
- } elseif (intval($secure) >= 4) {
- $filteredlist[] = $art->id();
- }
- }
- return $filteredlist;
- }
-
-
- public function lister()
- {
- $req = $this->bdd->query(' SELECT * FROM ' . $this->arttable . ' ORDER BY id ');
- $donnees = $req->fetchAll(PDO::FETCH_ASSOC);
- $req->closeCursor();
- return $donnees;
-
- }
-
- public function tag(array $artlist, $tagchecked)
- {
- $artcheckedlist = [];
- foreach ($artlist as $art) {
- if (in_array($tagchecked, $art->tag('array'))) {
- $artcheckedlist[] = $art;
- }
- }
- return $artcheckedlist;
- }
-
- public function taglist(array $artlist, array $tagcheckedlist)
- {
- $taglist = [];
- foreach ($tagcheckedlist as $tag) {
- $taglist[$tag] = $this->tag($artlist, $tag);
- }
- return $taglist;
- }
-
- public function count()
- {
- return $this->bdd->query(' SELECT COUNT(*) FROM ' . $this->arttable . ' ')->fetchColumn();
- }
-
-
-
- // __________________________________________ T A B L E ________________________________________________________
-
-
- public function tableexist($dbname, $tablename)
- {
-
- $req = $this->bdd->prepare('SELECT COUNT(*)
- FROM information_schema.tables
- WHERE table_schema = :dbname AND
- table_name like :tablename');
- $req->execute(array(
- 'dbname' => $dbname,
- 'tablename' => $tablename
- ));
- $donnees = $req->fetch(PDO::FETCH_ASSOC);
- $req->closeCursor();
- $exist = intval($donnees['COUNT(*)']);
- return $exist;
-
-
-
-
- }
-
- public function tablelist($dbname)
- {
- $request = 'SHOW TABLES IN ' . $dbname;
- $req = $this->bdd->query($request);
- $donnees = $req->fetchAll(PDO::FETCH_ASSOC);
- $req->closeCursor();
-
- $arttables = [];
- foreach ($donnees as $table) {
- $arttables[] = $table['Tables_in_' . $dbname];
- }
- return $arttables;
-
-
- }
-
-
-
-
-
- public function tableduplicate($dbname, $arttable, $tablename)
- {
- $arttable = strip_tags($arttable);
- $tablename = str_clean($tablename);
- if ($this->tableexist($dbname, $arttable) && !$this->tableexist($dbname, $tablename)) {
- $duplicate = " CREATE TABLE `$tablename` LIKE `$arttable`;";
- $alter = "ALTER TABLE `$tablename` ADD PRIMARY KEY (`id`);";
- $insert = "INSERT `$tablename` SELECT * FROM `$arttable`;";
-
-
- $req = $this->bdd->query($duplicate . $alter . $insert);
-
- return 'tableduplicated';
- } else {
- return 'tablealreadyexist';
- }
- }
-
-
-
-
-// __________________________________________ M E D ________________________________________________________
-
- public function addmedia(array $file, $maxsize = 2 ** 24, $id)
- {
- $message = 'runing';
- $id = strtolower(strip_tags($id));
- $id = str_replace(' ', '_', $id);
- if (isset($file) and $file['media']['error'] == 0 and $file['media']['size'] < $maxsize) {
- $infosfichier = pathinfo($file['media']['name']);
- $extension_upload = $infosfichier['extension'];
- $extensions_autorisees = $this::MEDIA_EXTENSIONS;
- if (in_array($extension_upload, $extensions_autorisees)) {
- if (!file_exists($this::MEDIA_DIR . $id . '.' . $extension_upload)) {
-
- $extension_upload = strtolower($extension_upload);
- $uploadok = move_uploaded_file($file['media']['tmp_name'], $this::MEDIA_DIR . $id . '.' . $extension_upload);
- if ($uploadok) {
- $message = 'uploadok';
- } else {
- $message = 'uploaderror';
- }
- } else {
- $message = 'filealreadyexist';
-
- }
- }
- } else {
- $message = 'filetoobig';
-
- }
-
- return $message;
- }
-
-
- public function getmedia($entry, $dir)
- {
- $fileinfo = pathinfo($entry);
-
- $filepath = $fileinfo['dirname'] . '.' . $fileinfo['extension'];
-
- $donnees = array(
- 'id' => str_replace('.' . $fileinfo['extension'], '', $fileinfo['filename']),
- 'path' => $dir,
- 'extension' => $fileinfo['extension']
- );
-
-
-
- return new Media($donnees);
-
- }
-
- public function getlistermedia($dir, $type = "all")
- {
- if ($handle = opendir($dir)) {
- $list = [];
- while (false !== ($entry = readdir($handle))) {
- if ($entry != "." && $entry != "..") {
-
- $media = $this->getmedia($entry, $dir);
-
-
- $media->analyse();
-
- if (in_array($type, self::MEDIA_TYPES)) {
- if ($media->type() == $type) {
- $list[] = $media;
- }
- } else {
- $list[] = $media;
- }
-
-
- }
- }
- return $list;
- }
-
- return $list;
-
- }
-
-
-
-
- //_________________________________________________________ R E C ________________________________________________________
-
-
- public function getlisterrecord($dir)
- {
- if ($handle = opendir($dir)) {
- $list = [];
- while (false !== ($entry = readdir($handle))) {
- if ($entry != "." && $entry != "..") {
- $fileinfo = pathinfo($entry);
-
- $filepath = $dir . $fileinfo['filename'] . '.' . $fileinfo['extension'];
-
- list($width, $height, $type, $attr) = getimagesize($filepath);
- $filesize = filesize($filepath);
-
- $donnees = array(
- 'id' => str_replace('.' . $fileinfo['extension'], '', $fileinfo['filename']),
- 'path' => $fileinfo['dirname'],
- 'extension' => $fileinfo['extension'],
- 'size' => $filesize
- );
-
- $list[] = new Record($donnees);
-
- }
- }
- }
-
- return $list;
-
-
-
- }
-
-
-
-
- // ________________________________________________________ M A P ________________________________________________________
-
-
- public function map(array $getlister, $lb = PHP_EOL)
- {
-
- $map = "";
- $link = "";
- $style = "";
- foreach ($getlister as $item) {
- if($item->secure() == 2) {
- $style = $style . $lb . $item->id() . '{' . $item->title() . '}';
- } elseif ($item->secure() == 1) {
- $style = $style . $lb . $item->id() . '(' . $item->title() . ')';
-
- } else {
- $style = $style . $lb . $item->id() . '((' . $item->title() . '))';
- }
- foreach ($item->linkfrom('array') as $linkfrom) {
- $map = $map . $lb . $item->id() . ' --> ' . $linkfrom;
- $link = $link . $lb . 'click ' . $linkfrom . ' "./?id=' . $linkfrom . '"';
-
- }
- $link = $link . $lb . 'click ' . $item->id() . ' "./?id=' . $item->id() . '"';
- }
- return $map . $link . $style;
-
- }
-
-
-
-
-
- //_________________________________________________________ S E S ________________________________________________________
-
- public function login($pass, $config)
- {
- if (strip_tags($pass) == $config->admin()) {
- return $level = self::ADMIN;
- } elseif (strip_tags($pass) == $config->read()) {
- return $level = self::READ;
- } elseif (strip_tags($pass) == $config->editor()) {
- return $level = self::EDITOR;
- } elseif (strip_tags($pass) == $config->invite()) {
- return $level = self::INVITE;
- }
- }
-
- public function logout()
- {
- return $level = 0;
- }
-
- // ________________________________________________________ S E T ___________________________________________________
-
-
- public function setsession($session)
- {
- $this->session = $session;
- }
-
-
-
-
- //_________________________________________________________ G E T ________________________________________________________
-
- public function session()
- {
- return $this->session;
- }
-
-
-}
-?> \ No newline at end of file
diff --git a/w/class/application.php b/w/class/application.php
deleted file mode 100644
index 4492aad..0000000
--- a/w/class/application.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-
-class Application
-{
-
-
-
-
-}
-
-
-
-
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/art2.php b/w/class/art2.php
deleted file mode 100644
index 867b17a..0000000
--- a/w/class/art2.php
+++ /dev/null
@@ -1,618 +0,0 @@
-<?php
-
-class Art2
-{
- protected $id;
- protected $title;
- protected $description;
- protected $tag;
- protected $date;
- protected $datecreation;
- protected $datemodif;
- protected $daterender;
- protected $css;
- protected $quickcss;
- protected $javascript;
- protected $html;
- protected $header;
- protected $section;
- protected $nav;
- protected $aside;
- protected $footer;
- protected $render;
- protected $secure;
- protected $invitepassword;
- protected $interface;
- protected $linkfrom;
- protected $linkto;
- protected $template;
- protected $affcount;
- protected $editcount;
-
-
- const LEN = 255;
- const LENTEXT = 20000;
- const SECUREMAX = 2;
- const LENCOULEUR = 7;
- const DEBUT = '(?id=';
- const FIN = ')';
- const TABS = ['section', 'css', 'header', 'html', 'nav', 'aside', 'footer', 'javascript'];
- const VAR_DATE = ['date', 'datecreation', 'datemodif', 'daterender'];
-
-
-
-
-// _____________________________________________________ F U N ____________________________________________________
-
- public function __construct($donnees)
- {
- $this->hydrate($donnees);
- }
-
- public function hydrate($donnees)
- {
- foreach ($donnees as $key => $value) {
- $method = 'set' . $key;
-
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
- }
-
- public function reset()
- {
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
-
- $this->settitle($this->id());
- $this->setdescription('');
- $this->settag([]);
- $this->setdate($now);
- $this->setdatecreation($now);
- $this->setdatecreation($now);
- $this->setdatemodif($now);
- $this->setdaterender($now);
- $this->setcss('');
- $this->setquickcss([]);
- $this->setjavascript('');
- $this->sethtml('');
- $this->setheader('');
- $this->setsection('');
- $this->setnav('');
- $this->setaside('');
- $this->setfooter('');
- $this->setrender('');
- $this->setsecure(3);
- $this->setinvitepassword('invitepassword');
- $this->setinterface('section');
- $this->setlinkfrom([]);
- $this->setlinkto([]);
- $this->settemplate([]);
- $this->setaffcount(0);
- $this->seteditcount(0);
- }
-
-
-
- public static function classvarlist()
- {
- $classvarlist = [];
- foreach (get_class_vars(__class__) as $var => $default) {
- $classvarlist[] = $var;
- }
- return ['artvarlist' => $classvarlist];
- }
-
- public function dry()
- {
- $array = [];
- foreach (get_class_vars(__class__) as $var => $value) {
- if(in_array($var, self::VAR_DATE)) {
- $array[$var] = $this->$var('string');
- } else {
- $array[$var] = $this->$var();
- }
- }
- return $array;
- }
-
-
- // _____________________________________________________ G E T ____________________________________________________
-
- public function id($type = 'string')
- {
- return $this->id;
- }
-
- public function title($type = 'string')
- {
- return $this->title;
- }
-
- public function description($type = 'string')
- {
- return $this->description;
- }
-
- public function tag($option = 'array')
- {
- if ($option == 'string') {
- return implode(", ", $this->tag);
- } elseif ($option == 'array') {
- return $this->tag;
- } elseif ($option == 'sort') {
- return count($this->tag);
- }
- }
-
- public function date($option = 'date')
- {
- if ($option == 'string') {
- return $this->date->format(DateTime::ISO8601);
- } elseif ($option == 'date' || $option == 'sort') {
- return $this->date;
- } elseif ($option == 'hrdi') {
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
- return hrdi($this->date->diff($now));
- }
-
-
- }
-
- public function datecreation($option = 'date')
- {
- if ($option == 'string') {
- return $this->datecreation->format(DateTime::ISO8601);
- } elseif ($option == 'date' || $option == 'sort') {
- return $this->datecreation;
- } elseif ($option == 'hrdi') {
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
- return hrdi($this->datecreation->diff($now));
- }
- }
-
-
- public function datemodif($option = 'date')
- {
- if ($option == 'string') {
- return $this->datemodif->format(DateTime::ISO8601);
- } elseif ($option == 'date' || $option == 'sort') {
- return $this->datemodif;
- } elseif ($option == 'hrdi') {
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
- return hrdi($this->datemodif->diff($now));
- }
- }
-
- public function daterender($option = 'date')
- {
- if ($option == 'string') {
- return $this->daterender->format(DateTime::ISO8601);
- } elseif ($option == 'date' || $option == 'sort') {
- return $this->daterender;
- } elseif ($option == 'hrdi') {
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
- return hrdi($this->daterender->diff($now));
- }
- }
-
- public function css($type = 'string')
- {
- return $this->css;
- }
-
- public function quickcss($type = 'array')
- {
- if ($type == 'json') {
- return json_encode($this->quickcss);
- } elseif ($type == 'array') {
- return $this->quickcss;
- }
- }
-
-
- public function csstemplate(App $app)
- {
- $data = [];
- $temp = '';
- if (!empty($this->template())) {
- if ($app->exist($this->template()) and !in_array($this->template(), $data)) {
- $template = $app->get($this->template());
- $temp = $temp . $template->css($app);
- $data[] = $template->id();
-
- }
-
- }
- $cssprint = str_replace('url(/', 'url(' . $app::MEDIA_DIR, $temp . $this->css);
- return $cssprint;
- }
-
-
- public function javascript($type = 'string')
- {
- return $this->javascript;
- }
-
- public function html($type = 'string')
- {
- return $this->html;
- }
-
- public function header($type = 'string')
- {
- return $this->header;
- }
-
- public function md($expand = false)
- {
- if ($expand == true) {
- $md = str_replace('](=', '](?id=', $this->section);
- } else {
- $md = $this->section;
- }
- return $md;
- }
-
- public function section($type = 'string')
- {
- return $this->section;
- }
-
- public function nav($type = "string")
- {
- return $this->nav;
- }
-
- public function aside($type = "string")
- {
- return $this->aside;
- }
-
- public function footer($type = "string")
- {
- return $this->footer;
- }
-
- public function render($type = 'string')
- {
- if($type == 'string') {
- return $this->render;
- }
- }
-
- public function secure($type = 'int')
- {
- if ($type == 'string') {
- if ($this->secure == 0) $secure = 'public';
- if ($this->secure == 1) $secure = 'private';
- if ($this->secure == 2) $secure = 'not published';
- return $secure;
- } else {
- return $this->secure;
- }
- }
-
- public function invitepassword($type = 'string')
- {
- return $this->invitepassword;
- }
-
- public function interface($type = 'string')
- {
- return $this->interface;
- }
-
- public function linkfrom($option = 'array')
- {
- if ($option == 'json') {
- $linkfrom = json_encode($this->linkfrom);
- } elseif ($option == 'array') {
- $linkfrom = $this->linkfrom;
- } elseif ($option == 'sort') {
- return count($this->linkfrom);
- }
- return $linkfrom;
-
- }
-
- public function linkto($option = 'array')
- {
- if ($option == 'json') {
- $linkto = json_encode($this->linkto);
- } elseif ($option == 'array') {
- $linkto = $this->linkto;
- } elseif ($option == 'sort') {
- return count($this->linkto);
- }
- return $linkto;
-
- }
-
- public function template($type = 'array')
- {
- if ($type == 'json') {
- return json_encode($this->template);
- } elseif ($type = 'array') {
- return $this->template;
- }
- }
-
- public function affcount($type = 'int')
- {
- return $this->affcount;
- }
-
- public function editcount($type = 'int')
- {
- return $this->editcount;
- }
-
-
-
-
-
- // _____________________________________________________ S E T ____________________________________________________
-
- public function setid($id)
- {
- if (strlen($id) < self::LEN and is_string($id)) {
- $this->id = strip_tags(strtolower(str_replace(" ", "", $id)));
- }
- }
-
- public function settitle($title)
- {
- if (strlen($title) < self::LEN and is_string($title)) {
- $this->title = strip_tags(trim($title));
- }
- }
-
- public function setdescription($description)
- {
- if (strlen($description) < self::LEN and is_string($description)) {
- $this->description = strip_tags(trim($description));
- }
- }
-
- public function settag($tag)
- {
- if (is_string($tag)) {
-
- if (strlen($tag) < self::LEN and is_string($tag)) {
- $tag = strip_tags(trim(strtolower($tag)));
- $tag = str_replace('*', '', $tag);
- $tag = str_replace(' ', '', $tag);
-
- $taglist = explode(",", $tag);
- $taglist = array_filter($taglist);
- $this->tag = $taglist;
- }
- } elseif (is_array($tag)) {
- $this->tag = $tag;
- }
- }
-
- public function setdate($date)
- {
- if ($date instanceof DateTimeImmutable) {
- $this->date = $date;
- } else {
- $this->date = DateTimeImmutable::createFromFormat(DateTime::ISO8601, $date, new DateTimeZone('Europe/Paris'));
- }
- }
-
- public function setdatecreation($datecreation)
- {
- if ($datecreation instanceof DateTimeImmutable) {
- $this->datecreation = $datecreation;
- } else {
- $this->datecreation = DateTimeImmutable::createFromFormat(DateTime::ISO8601, $datecreation, new DateTimeZone('Europe/Paris'));
- }
- }
-
- public function setdatemodif($datemodif)
- {
- if ($datemodif instanceof DateTimeImmutable) {
- $this->datemodif = $datemodif;
- } else {
- $this->datemodif = DateTimeImmutable::createFromFormat(DateTime::ISO8601, $datemodif, new DateTimeZone('Europe/Paris'));
- }
- }
-
- public function setdaterender($daterender)
- {
- if ($daterender instanceof DateTimeImmutable) {
- $this->daterender = $daterender;
- } else {
- $this->daterender = DateTimeImmutable::createFromFormat(DateTime::ISO8601, $daterender, new DateTimeZone('Europe/Paris'));
- }
- }
-
-
- public function setcss($css)
- {
- if (strlen($css) < self::LENTEXT and is_string($css)) {
- $this->css = strip_tags(trim(strtolower($css)));
- }
- }
-
-
- public function setquickcss($quickcss)
- {
- if (is_string($quickcss)) {
- $quickcss = json_decode($quickcss, true);
- }
- if (is_array($quickcss)) {
- $this->quickcss = $quickcss;
- }
- }
-
- public function setjavascript($javascript)
- {
- if (strlen($javascript < self::LENTEXT && is_string($javascript))) {
- $this->javascript = $javascript;
- }
- }
-
-
- public function sethtml($html)
- {
- if (strlen($html < self::LENTEXT && is_string($html))) {
- $this->html = $html;
- }
- }
-
- public function setheader($header)
- {
- if (strlen($header < self::LENTEXT && is_string($header))) {
- $this->header = $header;
- }
- }
-
- public function setsection($section)
- {
- if (strlen($section) < self::LENTEXT and is_string($section)) {
- $this->section = $section;
- }
- }
-
- public function setnav($nav)
- {
- if (strlen($nav) < self::LENTEXT and is_string($nav)) {
- $this->nav = $nav;
- }
- }
-
- public function setaside($aside)
- {
- if (strlen($aside) < self::LENTEXT and is_string($aside)) {
- $this->aside = $aside;
- }
- }
-
- public function setfooter($footer)
- {
- if (strlen($footer) < self::LENTEXT and is_string($footer)) {
- $this->footer = $footer;
- }
- }
-
- public function setrender(string $render)
- {
- $this->render = $render;
- }
-
- public function setsecure($secure)
- {
- if ($secure >= 0 and $secure <= self::SECUREMAX) {
- $this->secure = intval($secure);
- }
- }
-
- public function setinvitepassword($invitepassword)
- {
- if (is_string($invitepassword) && strlen($invitepassword) < self::LEN) {
- $this->invitepassword = $invitepassword;
- }
- }
-
- public function setinterface($interface)
- {
- if (in_array($interface, self::TABS)) {
- $this->interface = $interface;
- }
- }
-
- public function setlinkfrom($linkfrom)
- {
- if(is_array($linkfrom)) {
- $this->linkfrom = $linkfrom;
- } elseif(is_string($linkfrom)) {
- $linkfromjson = json_decode($linkfrom);
- if(is_array($linkfromjson)) {
- $this->linkfrom = $linkfromjson;
- }
- } elseif ($linkfrom === null) {
- $this->linkfrom = [];
- }
- }
-
- public function setlinkto($linkto)
- {
- if(is_array($linkto)) {
- $this->linkto = $linkto;
- } elseif(is_string($linkto)) {
- $linktojson = json_decode($linkto);
- if(is_array($linktojson)) {
- $this->linkto = $linktojson;
- }
- } elseif ($linkto === null) {
- $this->linkto = [];
- }
- }
-
- public function settemplate($template)
- {
- if (is_string($template)) {
- $templatearray = json_decode($template, true);
- }
- if (is_array($template)) {
- $templatearray = $template;
- }
- if(is_object($template)) {
- $templatearray = (array) $template;
- }
- $this->template = array_map(function ($value) {
- if(empty($value)) {
- return null;
- } else {
- return $value;
- }
- }, $templatearray);
- }
-
- public function setaffcount($affcount)
- {
- if (is_int($affcount)) {
- $this->affcount = $affcount;
- } elseif (is_numeric($affcount)) {
- $this->affcount = intval($affcount);
- }
- }
-
- public function seteditcount($editcount)
- {
- if (is_int($editcount)) {
- $this->editcount = $editcount;
- } elseif (is_numeric($editcount)) {
- $this->editcount = intval($editcount);
- }
- }
-
-
- // __________________________________ C O U N T E R S ______________________________
-
-
- public function addeditcount()
- {
- $this->editcount ++;
- }
-
- public function addaffcount()
- {
- $this->affcount ++;
- }
-
- public function updateedited()
- {
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
- $this->setdatemodif($now);
- $this->addeditcount();
- }
-
-
-}
-
-
-?> \ No newline at end of file
diff --git a/w/class/config.1.php b/w/class/config.1.php
deleted file mode 100644
index 14ff6e3..0000000
--- a/w/class/config.1.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-
-
-class Config1
-{
- private $host;
- private $dbname;
- private $user;
- private $password;
- private $arttable;
- private $domain;
- private $admin;
- private $editor;
- private $invite;
- private $read;
- private $color4;
- private $fontsize = 6;
-
-
-// _______________________________________ F U N _______________________________________
-
- public function __construct(array $donnees)
- {
- $this->hydrate($donnees);
- }
-
- public function hydrate(array $donnees)
- {
- foreach ($donnees as $key => $value) {
- $method = 'set' . $key;
-
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
- }
-
- public function tojson()
- {
- $arr = get_object_vars($this);
- $json = json_encode($arr, JSON_FORCE_OBJECT | JSON_PRETTY_PRINT);
- return $json;
- }
-
-// ________________________________________ G E T _______________________________________
-
- public function host()
- {
- return $this->host;
- }
-
- public function dbname()
- {
- return $this->dbname;
- }
-
- public function user()
- {
- return $this->user;
- }
-
- public function password()
- {
- return $this->password;
- }
-
- public function arttable()
- {
- return $this->arttable;
- }
-
- public function domain()
- {
- return $this->domain;
- }
-
- public function admin()
- {
- return $this->admin;
- }
-
- public function editor()
- {
- return $this->editor;
- }
-
- public function invite()
- {
- return $this->invite;
- }
-
- public function read()
- {
- return $this->read;
- }
-
- public function color4()
- {
- return $this->color4;
- }
-
- public function fontsize()
- {
- return $this->fontsize;
- }
-
-
-
-// __________________________________________ S E T ______________________________________
-
- public function sethost($host)
- {
- $this->host = strip_tags($host);
- }
-
- public function setdbname($dbname)
- {
- $this->dbname = strip_tags($dbname);
- }
-
- public function setuser($user)
- {
- $this->user = strip_tags($user);
- }
-
- public function setpassword($password)
- {
- $this->password = strip_tags($password);
- }
-
- public function setarttable($arttable)
- {
- $this->arttable = strip_tags($arttable);
- }
-
- public function setdomain($domain)
- {
- $this->domain = strip_tags($domain);
- }
-
- public function setadmin($admin)
- {
- $this->admin = strip_tags($admin);
- }
-
- public function seteditor($editor)
- {
- $this->editor = strip_tags($editor);
- }
-
- public function setinvite($invite)
- {
- $this->invite = strip_tags($invite);
- }
-
- public function setread($read)
- {
- $this->read = strip_tags($read);
- }
-
- public function setcolor4($color4)
- {
- if(strlen($color4) <= 8) {
- $this->color4 = $color4;
- }
- }
-
- public function setfontsize($fontsize)
- {
- $fontsize = intval($fontsize);
- if($fontsize > 1) {
- $this->fontsize = $fontsize;
- }
- }
-
-
-}
-
-
-
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/config.php b/w/class/config.php
deleted file mode 100644
index ead4a40..0000000
--- a/w/class/config.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php
-
-
-
-abstract class Config
-{
- protected static $host;
- protected static $dbname;
- protected static $user;
- protected static $password;
- protected static $arttable = 'artstore';
- protected static $domain;
- protected static $admin;
- protected static $editor;
- protected static $invite;
- protected static $read;
- protected static $color4;
- protected static $fontsize = 6;
- protected static $renderpath = './render/';
-
-
-// _______________________________________ F U N _______________________________________
-
-
-
- public static function hydrate(array $donnees)
- {
- foreach ($donnees as $key => $value) {
- $method = 'set' . $key;
-
- if (method_exists(get_called_class(), $method)) {
- self::$method($value);
- }
- }
- }
-
- public static function readconfig()
- {
- if (file_exists(Model::CONFIG_FILE)) {
- $current = file_get_contents(Model::CONFIG_FILE);
- $datas = json_decode($current, true);
- self::hydrate($datas);
- }
- }
-
- public static function createconfig(array $datas)
- {
- self::hydrate($datas);
- }
-
-
- public static function savejson()
- {
- $json = self::tojson();
- file_put_contents(self::CONFIG_FILE, $json);
- }
-
-
- public static function tojson()
- {
- $arr = get_object_vars($this);
- $json = json_encode($arr, JSON_FORCE_OBJECT | JSON_PRETTY_PRINT);
- return $json;
- }
-
-// ________________________________________ G E T _______________________________________
-
- public static function host()
- {
- return self::$host;
- }
-
- public static function dbname()
- {
- return self::$dbname;
- }
-
- public static function user()
- {
- return self::$user;
- }
-
- public static function password()
- {
- return self::$password;
- }
-
- public static function arttable()
- {
- return self::$arttable;
- }
-
- public static function domain()
- {
- return self::$domain;
- }
-
- public static function admin()
- {
- return self::$admin;
- }
-
- public static function editor()
- {
- return self::$editor;
- }
-
- public static function invite()
- {
- return self::$invite;
- }
-
- public static function read()
- {
- return self::$read;
- }
-
- public static function color4()
- {
- return self::$color4;
- }
-
- public static function fontsize()
- {
- return self::$fontsize;
- }
-
- public static function renderpath()
- {
- return self::$renderpath;
- }
-
-
-
-// __________________________________________ S E T ______________________________________
-
- public static function sethost($host)
- {
- self::$host = strip_tags($host);
- }
-
- public static function setdbname($dbname)
- {
- self::$dbname = strip_tags($dbname);
- }
-
- public static function setuser($user)
- {
- self::$user = strip_tags($user);
- }
-
- public static function setpassword($password)
- {
- self::$password = strip_tags($password);
- }
-
- public static function setarttable($arttable)
- {
- self::$arttable = strip_tags($arttable);
- }
-
- public static function setdomain($domain)
- {
- self::$domain = strip_tags($domain);
- }
-
- public static function setadmin($admin)
- {
- self::$admin = strip_tags($admin);
- }
-
- public static function seteditor($editor)
- {
- self::$editor = strip_tags($editor);
- }
-
- public static function setinvite($invite)
- {
- self::$invite = strip_tags($invite);
- }
-
- public static function setread($read)
- {
- self::$read = strip_tags($read);
- }
-
- public static function setcolor4($color4)
- {
- if(strlen($color4) <= 8) {
- self::$color4 = $color4;
- }
- }
-
- public static function setfontsize($fontsize)
- {
- $fontsize = intval($fontsize);
- if($fontsize > 1) {
- self::$fontsize = $fontsize;
- }
- }
-
-
-}
-
-
-
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/configtest.php b/w/class/configtest.php
deleted file mode 100644
index cd72753..0000000
--- a/w/class/configtest.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-abstract class Configtest
-{
- protected static $info;
-
- public static function setinfo($info)
- {
- self::$info = $info;
- }
-
- public static function info()
- {
- return self::$info;
- }
-}
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/controller.php b/w/class/controller.php
deleted file mode 100644
index c97c99f..0000000
--- a/w/class/controller.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-class Controller
-{
-
- protected $user;
- protected $usermanager;
- protected $plates;
-
- public function __construct() {
- $this->setuser();
- $this->initplates();
- $this->initconfig();
- }
-
- public function setuser()
- {
- $this->usermanager = new Modeluser;
- $this->user = $this->usermanager->readsession();
- }
-
- public function initplates()
- {
- $this->plates = new League\Plates\Engine(Model::TEMPLATES_DIR);
- }
-
- public function useriseditor()
- {
- if ($this->user->level() >= $this->usermanager::EDITOR) {
- echo '<h3>Editor access</h3>';
- return true;
- } else {
- echo '<h3>Not enought rights to see more...</h3>';
- return false;
- }
- }
-
- public function initconfig()
- {
- Config::readconfig();
- }
-
- public function showtemplate($template, $params)
- {
- $params = array_merge($this->commonsparams(), $params);
- echo $this->plates->render($template, $params);
- }
-
- public function commonsparams()
- {
- $commonsparams = [];
- $commonsparams['user'] = $this->user;
- return $commonsparams;
- }
-
- public function login($redirect = 'home')
- {
- if(isset($_POST['pass'])) {
- $this->user = $this->usermanager->login($_POST['pass']);
- $this->usermanager->writesession($this->user);
- }
- if($redirect == 'art') {
- $this->redirect('?id=' . $this->art->id());
- } else {
- $this->redirect('?aff=' . $redirect);
- }
- }
-
- public function logout($redirect = 'home')
- {
- $this->user = $this->usermanager->logout();
- $this->usermanager->writesession($this->user);
- if($redirect == 'art') {
- $this->redirect('?id=' . $this->art->id());
- } else {
- $this->redirect('?aff=' . $redirect);
- }
- }
-
-
-
-
- public function redirect($url)
- {
- header('Location: ' . $url);
- }
-
-
-
-}
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/controlleradmin.php b/w/class/controlleradmin.php
deleted file mode 100644
index 42a0f65..0000000
--- a/w/class/controlleradmin.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-class Controlleradmin extends Controllerdb
-{
-
- public function desktop()
- {
- echo '<h1>Admin</h1>';
- }
-
- public function addtable()
- {
-
- }
-
-
-
- public function duplicatetable()
- {
-
- }
-
-}
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/controllerart.php b/w/class/controllerart.php
deleted file mode 100644
index 33bd93f..0000000
--- a/w/class/controllerart.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-
-class Controllerart extends Controllerdb
-{
- /** @var Art2 */
- protected $art;
- protected $artmanager;
- protected $renderengine;
-
- public function __construct($id)
- {
- parent::__construct();
-
-
- $this->art = new Art2(['id' => $id]);
- $this->artmanager = new Modelart();
- $this->renderengine = new Modelrender();
-
- }
-
- public function importart()
- {
- $art = $this->artmanager->get($this->art);
- if ($art !== false) {
- $this->art = $art;
- //$this->art->autotaglistupdate($this->artmanager->taglist($this->artmanager->getlister(['id', 'title', 'description', 'tag']), $this->art->autotaglist()));
- return true;
- } else {
- return false;
- }
- }
-
- public function read()
- {
- $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
-
-
- $artexist = $this->importart();
- $canread = $this->user->level() >= $this->art->secure();
- $cancreate = $this->user->cancreate();
- $alerts = ['alertnotexist' => 'This page does not exist yet', 'alertprivate' => 'You cannot see this page'];
- $body = '';
- $head = '';
-
-
-
- if ($artexist) {
-
- if ($this->art->daterender() < $this->art->datemodif()) {
- $body = $this->renderengine->renderbody($this->art);
- $this->art->setrender($body);
- $this->art->setdaterender($now);
- $this->artmanager->update($this->art);
- } else {
- $body = $this->art->render();
- }
-
- $head = $this->renderengine->renderhead($this->art);
-
- $this->art->addaffcount();
- $this->artmanager->update($this->art);
-
- }
-
-
- $data = array_merge($alerts, ['art' => $this->art, 'artexist' => $artexist, 'canread' => $canread, 'cancreate' => $cancreate, 'readernav' => true, 'body' => $body, 'head' => $head]);
-
-
- $this->showtemplate('read', $data);
-
-
-
- }
-
- public function edit()
- {
- if ($this->importart() && $this->user->canedit()) {
- $tablist = ['section' => $this->art->md(), 'css' => $this->art->css(), 'header' => $this->art->header(), 'nav' => $this->art->nav(), 'aside' => $this->art->aside(), 'footer' => $this->art->footer(), 'html' => $this->art->html(), 'javascript' => $this->art->javascript()];
-
- $artlist = $this->artmanager->list();
-
- if(isset($_SESSION['workspace'])) {
- $showleftpanel = $_SESSION['workspace']['showleftpanel'];
- $showrightpanel = $_SESSION['workspace']['showrightpanel'];
- } else {
- $showleftpanel = false;
- $showrightpanel = false;
- }
-
-
- $this->showtemplate('edit', ['art' => $this->art, 'artexist' => true, 'tablist' => $tablist, 'artlist' => $artlist, 'showleftpanel' => $showleftpanel, 'showrightpanel' => $showrightpanel]);
- } else {
- $this->redirect('?id=' . $this->art->id());
- }
-
- }
-
- public function log()
- {
- $this->importart();
- var_dump($this->art);
- }
-
- public function add()
- {
- $this->art->reset();
- $this->artmanager->add($this->art);
- $this->redirect('?id=' . $this->art->id() . '&aff=edit');
- }
-
- public function delete()
- {
- if ($this->user->canedit() && $this->importart()) {
-
- if (isset($_POST['deleteconfirm']) && $_POST['deleteconfirm'] == true) {
- $this->artmanager->delete($this->art);
- $this->redirect('?id=' . $this->art->id());
- } else {
- $this->showtemplate('delete', ['art' => $this->art, 'artexist' => true]);
- }
- } else {
- $this->redirect('?id=' . $this->art->id());
- }
- }
-
- public function update()
- {
- $_SESSION['workspace']['showrightpanel'] = isset($_POST['workspace']['showrightpanel']);
- $_SESSION['workspace']['showleftpanel'] = isset($_POST['workspace']['showleftpanel']);
-
- if ($this->importart() && $this->user->canedit()) {
- $this->art->hydrate($_POST);
- $this->art->updateedited();
- $this->artmanager->update($this->art);
-
- }
-
- $this->redirect('?id=' . $this->art->id() . '&aff=edit');
-
-
-
- }
-}
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/controllerconnect.php b/w/class/controllerconnect.php
deleted file mode 100644
index 2bda1b0..0000000
--- a/w/class/controllerconnect.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-class Controllerconnect extends Controller
-{
-
- public function desktop()
- {
- $this->showtemplate('connect', ['user' => $this->user]);
- }
-
-}
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/controllerdb.php b/w/class/controllerdb.php
deleted file mode 100644
index 54a9de1..0000000
--- a/w/class/controllerdb.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-class Controllerdb extends Controller
-{
-
- protected $artmanager;
- protected $database;
- protected $artstore;
-
-
- public function __construct()
- {
- parent::__construct();
-
-
- }
-
-
-
-
- // if (isset($_POST['actiondb'])) {
- // $app->setbdd($config);
-
- // switch ($_POST['actiondb']) {
-
- // case 'addtable':
- // if (isset($_POST['tablename'])) {
- // $message = Modeldb::addtable($config->dbname(), $_POST['tablename']);
- // header('Location: ./?aff=admin&message=' . $message);
- // }
- // break;
-
- // case 'duplicatetable':
- // $message = Modeldb::tableduplicate($config->dbname(), $_POST['arttable'], $_POST['tablename']);
- // header('Location: ./?aff=admin&message=' . $message);
- // break;
-
- // }
- // }
-}
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/controllerhome.php b/w/class/controllerhome.php
deleted file mode 100644
index 31d27c3..0000000
--- a/w/class/controllerhome.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-class Controllerhome extends Controllerdb
-{
-
- protected $modelhome;
- protected $opt;
-
- public function __construct() {
- parent::__construct();
- $this->modelhome = new Modelhome;
- }
-
-
-
-
- public function desktop()
- {
-
- $this->table2();
- }
-
- public function table2()
- {
- $table = $this->modelhome->getlister();
- $this->opt = $this->modelhome->optinit($table);
-
- $table2 = $this->modelhome->table2($table, $this->opt);
-
- $this->showtemplate('home', ['user' => $this->user, 'table2' => $table2, 'opt' =>$this->opt]);
-
-
- }
-
- public function analyseall()
- {
- if($this->user->level() >= Modeluser::EDITOR) {
- $scan = new Modelanalyse;
- $scan->analyseall();
- $this->redirect('./');
-
- }
- }
-
- public function massedit()
- {
- echo '<h2>Mass Edit</h2>';
-
- }
-
-
-
-
-
-
-
-}
-
-
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/controllermedia.php b/w/class/controllermedia.php
deleted file mode 100644
index 6bd22cd..0000000
--- a/w/class/controllermedia.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-class Controllermedia extends Controller
-{
- protected $medialist;
- protected $mediamanager;
-
- public function __construct() {
- parent::__construct();
-
- $this->mediamanager = new Modelmedia;
-
- }
-
- public function desktop()
- {
-
- if($this->useriseditor()) {
-
-
-
- }
- }
-
- public function addmedia()
- {
- echo $this->templates->render('media', ['interface' => 'addmedia']);
-
- //$message = $this->mediamanager->addmedia($_FILES, 2 ** 24, $_POST['id']);
-
- }
-
-
-}
-
-
-?> \ No newline at end of file
diff --git a/w/class/media.php b/w/class/media.php
deleted file mode 100644
index 2d27be7..0000000
--- a/w/class/media.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-
-class Media
-{
- private $id;
- private $path;
- private $extension;
- private $type;
- private $size;
- private $width;
- private $height;
- private $length;
-
- const IMAGE = array('jpg', 'jpeg', 'gif', 'png');
- const SOUND = array('mp3', 'flac');
- const VIDEO = array('mp4', 'mov', 'avi');
-
-
-
-// _____________________________________________________ F U N ____________________________________________________
-
- public function __construct(array $donnees)
- {
- $this->hydrate($donnees);
- }
-
- public function hydrate(array $donnees)
- {
- foreach ($donnees as $key => $value) {
- $method = 'set' . $key;
-
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
- }
-
-
- public function analyse()
- {
- $this->settype();
-
- $filepath = $this->path . $this->id . '.' . $this->extension;
-
- $this->size = filesize($filepath);
-
- if ($this->type == 'image') {
- list($width, $height, $type, $attr) = getimagesize($filepath);
- $this->width = $width;
- $this->height = $height;
- }
-
-
- }
-
-
-
-// _________________________________________________ G E T ____________________________________________________
-
- public function id()
- {
- return $this->id;
- }
-
- public function path()
- {
- return $this->path;
- }
-
- public function extension()
- {
- return $this->extension;
- }
-
- public function type()
- {
- return $this->type;
- }
-
- public function size()
- {
- return $this->size;
- }
-
- public function width()
- {
- return $this->width;
- }
-
- public function height()
- {
- return $this->height;
- }
-
- public function length()
- {
- return $this->length;
- }
-
-// ___________________________________________________ S E T __________________________________________________
-
- public function setid($id)
- {
- if (strlen($id) < 40 and is_string($id)) {
- $this->id = strip_tags(strtolower($id));
- }
- }
-
- public function setpath($path)
- {
- if (strlen($path) < 40 and is_string($path)) {
- $this->path = strip_tags(strtolower($path));
- }
- }
-
- public function setextension($extension)
- {
- if (strlen($extension) < 7 and is_string($extension)) {
- $this->extension = strip_tags(strtolower($extension));
- }
- }
-
- public function settype()
- {
- if (isset($this->extension)) {
- if (in_array($this->extension, $this::IMAGE)) {
- $this->type = "image";
- } elseif (in_array($this->extension, $this::SOUND)) {
- $this->type = "sound";
- } elseif (in_array($this->extension, $this::VIDEO)) {
- $this->type = "video";
- } else {
- $this->type = "other";
- }
- }
- }
-
- public function setsize($size)
- {
- if (40 and is_int($size)) {
- $this->size = strip_tags(strtolower($size));
- }
- }
-
- public function setwidth($width)
- {
- if (is_int($width)) {
- $this->width = strip_tags(strtolower($width));
- }
- }
-
- public function setheight($height)
- {
- if (is_int($height)) {
- $this->height = strip_tags(strtolower($height));
- }
- }
-
- public function setlength($length)
- {
- if ($this->type == 'sound') {
- $this->length = $length;
- }
- }
-
-
-
-
-
-
-}
-
-?> \ No newline at end of file
diff --git a/w/class/model.php b/w/class/model.php
deleted file mode 100644
index 24c2404..0000000
--- a/w/class/model.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-class Model
-{
-
- const CONFIG_FILE = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'w.config.json';
- const GLOBAL_CSS_DIR = '.' . DIRECTORY_SEPARATOR . 'css' . DIRECTORY_SEPARATOR . 'global' . DIRECTORY_SEPARATOR . 'global.css';
- const MEDIA_DIR = '.' . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR;
- const TEMPLATES_DIR = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'view' . DIRECTORY_SEPARATOR . 'templates';
- const MEDIA_EXTENSIONS = array('jpeg', 'jpg', 'JPG', 'png', 'gif', 'mp3', 'mp4', 'mov', 'wav', 'flac', 'pdf');
- const MEDIA_TYPES = ['image', 'video', 'sound', 'other'];
-
- const TEXT_ELEMENTS = ['header', 'nav', 'section', 'aside', 'footer'];
-
-
-
-}
diff --git a/w/class/modelanalyse.php b/w/class/modelanalyse.php
deleted file mode 100644
index 379c41a..0000000
--- a/w/class/modelanalyse.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-
-
-class Modelanalyse extends Modelart
-{
-
-
- public function __construct() {
- parent::__construct();
- }
-
- public function analyseall()
- {
- $artlist = $this->getlister();
-
- $artlist2 = [];
- foreach ($artlist as $art) {
- $art->setlinkfrom($this->analyselinkfrom($art));
- $artlist2[] = $art;
- }
- foreach ($artlist2 as $art) {
- $art->setlinkto($this->analyselinkto($art->id(), $artlist));
- $this->update($art);
- }
- }
-
-
- public function analyse(Art2 $art)
- {
- $art->setlinkfrom($this->analyselinkfrom($art));
-
- $artlist = $this->getlister();
- $art->setlinkto($this->analyselinkto($art->id(), $artlist));
-
- return $art;
- }
-
-
-
-
- public function analyselinkto($id, $artlist)
- {
- //analyse les liens vers cet article en fouillant tout les linkfrom de la bdd, génere un tableau à stocker dans l'article
- $linkto = [];
- foreach ($artlist as $link) {
- if (in_array($id, $link->linkfrom('array')) && $id != $link->id()) {
- $linkto[] = $link->id();
- }
- }
- return $linkto;
- }
-
- public function analyselinkfrom(Art2 $art)
- {
- $linkfrom = [];
- foreach (self::TEXT_ELEMENTS as $element) {
- preg_match_all('#\]\((\?id=|=)(\w+)\)#', $art->$element(), $out);
- $linkfrom = array_merge($linkfrom, $out[2]);
- }
- return array_unique($linkfrom);
-
- }
-
-}
-
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/modelart.php b/w/class/modelart.php
deleted file mode 100644
index ef4d61d..0000000
--- a/w/class/modelart.php
+++ /dev/null
@@ -1,178 +0,0 @@
-<?php
-class Modelart extends Modeldb
-{
-
- const SELECT = ['title', 'id', 'description', 'tag', 'date', 'datecreation', 'datemodif', 'daterender', 'css', 'quickcss', 'javascript', 'html', 'header', 'section', 'nav', 'aside', 'footer', 'render', 'secure', 'invitepassword', 'interface', 'linkfrom', 'linkto', 'template', 'affcount', 'editcount'];
- const BY = ['datecreation', 'title', 'id', 'description', 'datemodif', 'secure'];
- const ORDER = ['DESC', 'ASC'];
-
-
- public function __construct()
- {
- parent::__construct();
- }
-
-
-
- public function exist(Art2 $art)
- {
- $artdata = $this->artstore->get($art->id());
- if($artdata === false) {
- return false;
- } else {
- return true;
- }
-
- }
-
-
- public function add(Art2 $art)
- {
-
- $artdata = new \JamesMoss\Flywheel\Document($art->dry());
- $artdata->setId($art->id());
- $this->artstore->store($artdata);
- }
-
- public function get($id)
- {
- if($id instanceof Art2) {
- $id = $id->id();
- }
- if(is_string($id)) {
- $artdata = $this->artstore->findById($id);
- if($artdata !== false) {
- return new Art2($artdata);
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
-
- public function delete(Art2 $art)
- {
- $this->artstore->delete($art->id());
- }
-
- public function update(Art2 $art)
- {
- $artdata = new \JamesMoss\Flywheel\Document($art->dry());
- $artdata->setId($art->id());
- $this->artstore->store($artdata);
- }
-
- public function getlisteropt(Opt $opt)
- {
-
- $artlist = [];
-
- $select = 'SELECT ' . $opt->col('string') . ' FROM ' . Config::arttable();
- $req = $this->bdd->query($select);
- while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) {
- $artlist[] = new Art2($donnees);
- }
- return $artlist;
-
- }
-
- public function artcompare($art1, $art2, $method = 'id', $order = 1)
- {
- $result = ($art1->$method('sort') <=> $art2->$method('sort'));
- return $result * $order;
-
- }
-
- public function buildsorter($sortby, $order)
- {
- return function ($art1, $art2) use ($sortby, $order) {
- $result = $this->artcompare($art1, $art2, $sortby, $order);
- return $result;
- };
- }
-
-
-
- public function artlistsort(&$artlist, $sortby, $order = 1)
- {
- return usort($artlist, $this->buildsorter($sortby, $order));
- }
-
-
-
-
-
-
- public function filtertagfilter(array $artlist, array $tagchecked, $tagcompare = 'OR')
- {
-
- $filteredlist = [];
- foreach ($artlist as $art) {
- if (empty($tagchecked)) {
- $filteredlist[] = $art->id();
- } else {
- $inter = (array_intersect($art->tag('array'), $tagchecked));
- if ($tagcompare == 'OR') {
- if (!empty($inter)) {
- $filteredlist[] = $art->id();
- }
- } elseif ($tagcompare == 'AND') {
- if (!array_diff($tagchecked, $art->tag('array'))) {
- $filteredlist[] = $art->id();
- }
- }
- }
- }
- return $filteredlist;
- }
-
- public function filtersecure(array $artlist, $secure)
- {
- $filteredlist = [];
- foreach ($artlist as $art) {
- if ($art->secure() == intval($secure)) {
- $filteredlist[] = $art->id();
- } elseif (intval($secure) >= 4) {
- $filteredlist[] = $art->id();
- }
- }
- return $filteredlist;
- }
-
-
- public function lister()
- {
- $req = $this->bdd->query(' SELECT * FROM ' . Config::arttable() . ' ORDER BY id ');
- $donnees = $req->fetchAll(PDO::FETCH_ASSOC);
- $req->closeCursor();
- return $donnees;
-
- }
-
- public function tag(array $artlist, $tagchecked)
- {
- $artcheckedlist = [];
- foreach ($artlist as $art) {
- if (in_array($tagchecked, $art->tag('array'))) {
- $artcheckedlist[] = $art;
- }
- }
- return $artcheckedlist;
- }
-
- public function taglist(array $artlist, array $tagcheckedlist)
- {
- $taglist = [];
- foreach ($tagcheckedlist as $tag) {
- $taglist[$tag] = $this->tag($artlist, $tag);
- }
- return $taglist;
- }
-
- public function count()
- {
- return $this->bdd->query(' SELECT COUNT(*) FROM ' . $this->arttable . ' ')->fetchColumn();
- }
-
-}
diff --git a/w/class/modelconfig.php b/w/class/modelconfig.php
deleted file mode 100644
index 7c5fc18..0000000
--- a/w/class/modelconfig.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-abstract class Modelconfig extends Model
-{
- public static function readconfig()
- {
- if (file_exists(self::CONFIG_FILE)) {
- $current = file_get_contents(self::CONFIG_FILE);
- $donnees = json_decode($current, true);
- return new Config($donnees);
- } else {
- return 0;
- }
-
- }
-
- public static function createconfig(array $donnees)
- {
- return new Config($donnees);
- }
-
-
- public static function savejson(string $json)
- {
- file_put_contents(self::CONFIG_FILE, $json);
- }
-
-
-
-
-}
-
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/modeldb.php b/w/class/modeldb.php
deleted file mode 100644
index a5ebf6f..0000000
--- a/w/class/modeldb.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-class Modeldb extends Model
-{
- /** @var PDO */
- protected $bdd;
- protected $arttable;
- protected $database;
- protected $artstore;
-
-
- public function __construct()
- {
- $this->dbinit();
- }
-
-
- public function dbinit()
- {
- $this->database = new \JamesMoss\Flywheel\Config(__DIR__ .'/../../w_database');
- $this->artstore = new \JamesMoss\Flywheel\Repository(Config::arttable(), $this->database);
- }
-
-
- public function getlister()
- {
- $artlist = [];
- $list = $this->artstore->findAll();
- foreach ($list as $artdata) {
- $artlist[$artdata->id] = new Art2($artdata);
- }
- return $artlist;
- }
-
- public function list()
- {
- return $this->artstore->getAllIds();
- }
-
- public function getlisterid(array $idlist = [])
- {
- $artdatalist = $this->artstore->query()
- ->where('__id', 'IN', $idlist)
- ->execute();
-
- $artlist = [];
- foreach ($artdatalist as $id => $artdata) {
- $artlist[$id] = new Art2($artdata);
- }
- return $artlist;
- }
-
-
-
-}
diff --git a/w/class/modelhome.php b/w/class/modelhome.php
deleted file mode 100644
index 3ff72c7..0000000
--- a/w/class/modelhome.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-class Modelhome extends Modeldb
-{
-
- public function __construct() {
- parent::__construct();
- }
-
- public function optinit($table)
- {
-
- $opt = new Opt(Art2::classvarlist());
- $opt->setcol(['id', 'tag', 'linkfrom', 'linkto', 'description', 'title', 'datemodif', 'datecreation', 'secure']);
- //$table = $listmanager->getlisteropt($opt);
- //$listmanager->listcalclinkfrom($table);
- $opt->settaglist($table);
- $opt->submit();
-
-
-
- return $opt;
- }
-
- public function optupdate()
- {
-
- }
-
-
- public function table2($table, $opt)
- {
- $listmanager = new Modelart;
-
-
- $filtertagfilter = $listmanager->filtertagfilter($table, $opt->tagfilter(), $opt->tagcompare());
- $filtersecure = $listmanager->filtersecure($table, $opt->secure());
-
- $filter = array_intersect($filtertagfilter, $filtersecure);
- $table2 = [];
- $table2invert = [];
- foreach ($table as $art) {
- if (in_array($art->id(), $filter)) {
- $table2[] = $art;
- } else {
- $table2invert[] = $art;
- }
-
-
- }
-
- if (!empty($opt->invert())) {
- $table2 = $table2invert;
- }
-
- $listmanager->artlistsort($table2, $opt->sortby(), $opt->order());
-
-
- return $table2;
- }
-}
-
-
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/modelmassedit.php b/w/class/modelmassedit.php
deleted file mode 100644
index e69de29..0000000
--- a/w/class/modelmassedit.php
+++ /dev/null
diff --git a/w/class/modelmedia.php b/w/class/modelmedia.php
deleted file mode 100644
index 14a1c4e..0000000
--- a/w/class/modelmedia.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-class Modelmedia extends Model
-{
-
- public function addmedia(array $file, $maxsize = 2 ** 24, $id)
- {
- $message = 'runing';
- $id = strtolower(strip_tags($id));
- $id = str_replace(' ', '_', $id);
- if (isset($file) and $file['media']['error'] == 0 and $file['media']['size'] < $maxsize) {
- $infosfichier = pathinfo($file['media']['name']);
- $extension_upload = $infosfichier['extension'];
- $extensions_autorisees = $this::MEDIA_EXTENSIONS;
- if (in_array($extension_upload, $extensions_autorisees)) {
- if (!file_exists($this::MEDIA_DIR . $id . '.' . $extension_upload)) {
-
- $extension_upload = strtolower($extension_upload);
- $uploadok = move_uploaded_file($file['media']['tmp_name'], $this::MEDIA_DIR . $id . '.' . $extension_upload);
- if ($uploadok) {
- $message = 'uploadok';
- } else {
- $message = 'uploaderror';
- }
- } else {
- $message = 'filealreadyexist';
-
- }
- }
- } else {
- $message = 'filetoobig';
-
- }
-
- return $message;
- }
-
-
- public function getmedia($entry, $dir)
- {
- $fileinfo = pathinfo($entry);
-
- $filepath = $fileinfo['dirname'] . '.' . $fileinfo['extension'];
-
- $donnees = array(
- 'id' => str_replace('.' . $fileinfo['extension'], '', $fileinfo['filename']),
- 'path' => $dir,
- 'extension' => $fileinfo['extension']
- );
-
-
-
- return new Media($donnees);
-
- }
-
- public function getlistermedia($dir, $type = "all")
- {
- if ($handle = opendir($dir)) {
- $list = [];
- while (false !== ($entry = readdir($handle))) {
- if ($entry != "." && $entry != "..") {
-
- $media = $this->getmedia($entry, $dir);
-
-
- $media->analyse();
-
- if (in_array($type, self::MEDIA_TYPES)) {
- if ($media->type() == $type) {
- $list[] = $media;
- }
- } else {
- $list[] = $media;
- }
-
-
- }
- }
- return $list;
- }
-
- return $list;
-
- }
-
-
-
-
-}
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/modelrender.php b/w/class/modelrender.php
deleted file mode 100644
index 53d1aca..0000000
--- a/w/class/modelrender.php
+++ /dev/null
@@ -1,277 +0,0 @@
-<?php
-
-class Modelrender extends Modelart
-{
- const SUMMARY = '%SUMMARY%';
-
-
- public function __construct()
- {
- parent::__construct();
- }
-
- public function renderhead(Art2 $art)
- {
-
- $head = $this->gethead($art);
- $this->write($art);
- return $head;
- }
-
- public function renderbody(Art2 $art)
- {
- $body = $this->getbody($this->gethtml($art), $this->getelements($art));
- $parsebody = $this->parser($art, $body);
- return $parsebody;
- }
-
-
-
- public function getelements(Art2 $art)
- {
- $elements = [];
- foreach (self::TEXT_ELEMENTS as $element) {
- if (isset($art->template('array')[$element])) {
- $templateid = $art->template('array')[$element];
- $tempalteart = $this->get($templateid);
- $text = $tempalteart->$element() . PHP_EOL . $art->$element();
- } else {
- $text = $art->$element();
- }
- $elements[$element] = PHP_EOL . '<' . $element . '>' . PHP_EOL . $this->markdown($text) . PHP_EOL . '</' . $element . '>' . PHP_EOL;
-
- }
-
- return $elements;
- }
-
- public function gethtml(Art2 $art)
- {
- if (isset($art->template('array')['html'])) {
- $templateid = $art->template('array')['html'];
- $tempalteart = $this->get($templateid);
- $html = $tempalteart->html() . PHP_EOL . $art->html();
- } else {
- $html = $art->html();
- }
- return $html;
- }
-
- public function getbody(string $html, array $elements)
- {
- $html = preg_replace_callback('~\%(SECTION|ASIDE|NAV|HEADER|FOOTER)\%~', function ($match) use ($elements) {
- return $elements[strtolower($match[1])];
- }, $html);
- return $html;
- }
-
- public function write(Art2 $art)
- {
- file_put_contents(Config::renderpath() . $art->id() . '.css', $art->css());
- file_put_contents(Config::renderpath() . $art->id() . '.quick.css', $art->quickcss());
- file_put_contents(Config::renderpath() . $art->id() . '.js', $art->javascript());
- }
-
- public function writetemplates(Art2 $art)
- {
- if (array_key_exists('css', $art->template('array'))) {
- $tempaltecssart = $this->get($art->template('array')['css']);
- file_put_contents(Config::renderpath() . $tempaltecssart->id() . '.css', $tempaltecssart->css());
- }
- if (array_key_exists('quickcss', $art->template('array'))) {
- $tempaltequickcssart = $this->get($art->template('array')['quickcss']);
- file_put_contents(Config::renderpath() . $tempaltequickcssart->id() . '.quick.css', $tempaltequickcssart->quickcss());
- }
- if (array_key_exists('javascript', $art->template('array'))) {
- $templatejsart = $this->get($art->template('array')['javascript']);
- file_put_contents(Config::renderpath() . $templatejsart->id() . '.js', $templatejsart->javascript());
- }
- }
-
-
- public function gethead(Art2 $art)
- {
-
- $head = '';
-
- $head .= '<meta charset="utf8" />' . PHP_EOL;
- $head .= '<title>'.$art->title() .'</title>' . PHP_EOL;
- $head .= '<meta name="description" content="'.$art->description() .'" />' . PHP_EOL;
- $head .= '<meta name="viewport" content="width=device-width" />' . PHP_EOL;
-
- if (isset($art->template('array')['quickcss'])) {
- $tempaltequickcssart = $art->template('array')['quickcss'];
- $head .= '<link href="' . Config::renderpath() . $tempaltequickcssart . '.quick.css" rel="stylesheet" />' . PHP_EOL;
- }
- $head .= '<link href="' . Config::renderpath() . $art->id() . '.quick.css" rel="stylesheet" />' . PHP_EOL;
- if (isset($art->template('array')['css'])) {
- $tempaltecssart = $art->template('array')['css'];
- $head .= '<link href="' . Config::renderpath() . $tempaltecssart . '.css" rel="stylesheet" />' . PHP_EOL;
- }
- $head .= '<link href="' . Config::renderpath() . $art->id() . '.css" rel="stylesheet" />' . PHP_EOL;
-
- if (isset($art->template('array')['javascript'])) {
- $templatejsart = $art->template('array')['javascript'];
- $head .= '<script src="' . Config::renderpath() . $templatejsart . '.js" async/></script>' . PHP_EOL;
- }
- $head .= '<script src="' . Config::renderpath() . $art->id() . '.js" async/></script>' . PHP_EOL;
-
- return $head;
-}
-
-public function elementsrender(Art2 $art)
-{
- foreach ($this->getelements($art) as $element => $text) {
- if (in_array($element, self::TEXT_ELEMENTS)) {
- $elements[$element] = $this->markdown($text);
- }
- }
- return $elements;
-}
-
-
-
-public function parser(Art2 $art, string $text)
-{
- $text = str_replace('%TITLE%', $art->title(), $text);
- $text = str_replace('%DESCRIPTION%', $art->description(), $text);
-
-
- $text = str_replace(self::SUMMARY, $this->sumparser($text), $text);
-
- $text = str_replace('href="=', 'href="?id=', $text);
-
- $text = $this->tooltip($art->linkfrom('array'), $text);
-
- $text = str_replace('href="http', ' class="external" target="_blank" href="http', $text);
- $text = str_replace('<img src="/', '<img src="./media/', $text);
-
- $text = $this->autourl($text);
-
- return $text;
-}
-
-
-public function autourl($text)
-{
- $text = preg_replace('#( |\R|>)(https?:\/\/((\S+)\.([^< ]+)))#', '$1<a href="$2" class="external" target="_blank">$3</a>', $text);
- return $text;
-}
-
-
-public function markdown($text)
-{
- //use Michelf\MarkdownExtra;
- $fortin = new Michelf\MarkdownExtra;
- // id in headers
- $fortin->header_id_func = function ($header) {
- return preg_replace('/[^\w]/', '', strtolower($header));
- };
- $fortin->hard_wrap = true;
- $text = $fortin->transform($text);
- return $text;
-}
-
-
-
-
-public function tooltip(array $linkfrom, string $text)
-{
- $descriptions = [];
- $artlist = $this->getlisterid($linkfrom);
- foreach ($artlist as $art) {
- $descriptions[$art->id()] = $art->description();
- }
-
- foreach ($linkfrom as $id) {
- if (isset($descriptions[$id])) {
- $linkfrom = 'href="?id=' . $id . '"';
- $titlelinkfrom = ' title="' . $descriptions[$id] . '" ' . $linkfrom;
- $text = str_replace($linkfrom, $titlelinkfrom, $text);
- }
- }
- return $text;
-}
-
-
-
-function sumparser($text)
-{
- preg_match_all('#<h([1-6]) id="(\w+)">(.+)</h[1-6]>#iU', $text, $out);
-
-
- $sum = [];
- foreach ($out[2] as $key => $value) {
- $sum[$value][$out[1][$key]] = $out[3][$key];
- }
-
-
- $sumstring = '';
- $last = 0;
- foreach ($sum as $title => $list) {
- foreach ($list as $h => $link) {
- if ($h > $last) {
- for ($i = 1; $i <= ($h - $last); $i++) {
- $sumstring .= '<ul>';
- }
- $sumstring .= '<li><a href="#' . $title . '">' . $link . '</a></li>';
- } elseif ($h < $last) {
- for ($i = 1; $i <= ($last - $h); $i++) {
- $sumstring .= '</ul>';
- }
- $sumstring .= '<li><a href="#' . $title . '">' . $link . '</a></li>';
- } elseif ($h = $last) {
- $sumstring .= '<li><a href="#' . $title . '">' . $link . '</a></li>';
- }
- $last = $h;
- }
- }
- for ($i = 1; $i <= ($last); $i++) {
- $sumstring .= '</ul>';
- }
- return $sumstring;
-}
-
-
-
- //tag auto menu
-
-
-public function autotaglist()
-{
- $pattern = "/%%(\w*)%%/";
- preg_match_all($pattern, $this->md(), $out);
- return $out[1];
-
-}
-
-public function autotaglistupdate($taglist)
-{
- foreach ($taglist as $tag => $artlist) {
- $replace = '<ul>';
- foreach ($artlist as $art) {
- $replace .= '<li><a href="?id=' . $art->id() . '" title="' . $art->description() . '">' . $art->title() . '</a></li>';
- }
- $replace .= '</ul>';
- $text = str_replace('%%' . $tag . '%%', $replace, $text);
- }
-}
-
-public function autotaglistcalc($taglist)
-{
- foreach ($taglist as $tag => $artlist) {
- foreach ($artlist as $art) {
- if (!in_array($art->id(), $this->linkfrom('array')) && $art->id() != $this->id()) {
- $this->linkfrom[] = $art->id();
- }
- }
- }
-}
-
-
-
-}
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/modeluser.php b/w/class/modeluser.php
deleted file mode 100644
index 899d1cc..0000000
--- a/w/class/modeluser.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-
-class Modeluser extends Model
-{
- const ADMIN = 10;
- const EDITOR = 3;
- const INVITE = 2;
- const READ = 1;
- const FREE = 0;
-
-
- public function writesession(User $user)
- {
- $_SESSION['user'] = ['level' => $user->level()];
- }
-
- public function readsession()
- {
- $userdatas = [];
- if(array_key_exists('user', $_SESSION)) {
- $userdatas = $_SESSION['user'];
- }
- $user = new User($userdatas);
- return $user;
- }
-
- public function login($pass)
- {
- $user = new User(['level' => $this->passlevel($pass)]);
- return $user;
- }
-
- public function passlevel($pass)
- {
- if (strip_tags($pass) == Config::admin()) {
- return $level = self::ADMIN;
- } elseif (strip_tags($pass) == Config::read()) {
- return $level = self::READ;
- } elseif (strip_tags($pass) == Config::editor()) {
- return $level = self::EDITOR;
- } elseif (strip_tags($pass) == Config::invite()) {
- return $level = self::INVITE;
- } else {
- return $level = self::FREE;
- }
- }
-
- public function logout()
- {
- $user = new User(['level' => self::FREE]);
- return $user;
- }
-}
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/opt.php b/w/class/opt.php
deleted file mode 100644
index f1cb4df..0000000
--- a/w/class/opt.php
+++ /dev/null
@@ -1,272 +0,0 @@
-<?php
-class Opt
-{
- private $sortby = 'id';
- private $order = 1;
- private $tagfilter = [];
- private $tagcompare = 'OR';
- private $secure = 4;
- private $linkto = ['min' => '0', 'max' => '0'];
- private $linkfrom = ['min' => '0', 'max' => '0'];
- private $col = ['id'];
- private $taglist = [];
- private $invert = 0;
-
- private $artvarlist;
-
- public function __construct(array $donnees = [])
- {
- $this->hydrate($donnees);
- }
-
- public function hydrate(array $donnees)
- {
- foreach ($donnees as $key => $value) {
- $method = 'set' . $key;
-
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
- }
-
-
- public function resetall()
- {
- $varlist = get_class_vars(__class__);
-
- foreach ($varlist as $var => $default) {
- $method = 'set' . $var;
- $this->$method($default);
- }
- }
-
- public function reset($var)
- {
- $varlist = get_class_vars(__class__);
- if(in_array($var, $varlist)) {
- $this->$var = $varlist[$var];
- }
- }
-
- public function submit()
- {
- if(isset($_GET['submit'])) {
- if ($_GET['submit'] == 'reset') {
- $_SESSION['opt'] = [];
- } elseif ($_GET['submit'] == 'filter') {
- $this->getall();
- }
- } else {
- $this->sessionall();
- }
- }
-
- public function getall()
- {
- $optlist = ['sortby', 'order', 'secure', 'tagcompare', 'tagfilter', 'invert'];
-
- foreach ($optlist as $method) {
- if (method_exists($this, $method)) {
- if(isset($_GET[$method])) {
- $setmethod = 'set'. $method;
- $this->$setmethod($_GET[$method]);
- } else {
- $this->reset($method);
- }
- $_SESSION['opt'][$method] = $this->$method();
- }
- }
- }
-
- public function sessionall()
- {
- if(isset($_SESSION['opt'])) {
- $this->hydrate($_SESSION['opt']);
- }
- }
-
-
-
- // _______________________________________________ G E T _______________________________________________
-
- public function sortby()
- {
- return $this->sortby;
- }
-
- public function order()
- {
- return $this->order;
- }
-
- public function secure()
- {
- return $this->secure;
- }
-
- public function tagfilter($type = 'array')
- {
- return $this->tagfilter;
- }
-
- public function tagcompare()
- {
- return $this->tagcompare;
- }
-
- public function linkto($type = 'array')
- {
- return $this->linkto;
- }
-
- public function linkfrom($type = 'array')
- {
- return $this->linkfrom;
- }
-
- public function col($type = 'array')
- {
- if ($type == 'string') {
- return implode(', ', $this->col);
- } else {
- return ($this->col);
- }
- }
-
- public function taglist()
- {
- return $this->taglist;
- }
-
- public function invert()
- {
- return $this->invert;
- }
-
- public function artvarlist()
- {
- return $this->artvarlist;
- }
-
-
- // __________________________________________________ S E T _____________________________________________
-
- public function setsortby($sortby)
- {
- if (is_string($sortby) && in_array($sortby, $this->artvarlist())) {
- $this->sortby = strtolower(strip_tags($sortby));
- }
- }
-
- public function setorder($order)
- {
- $order = intval($order);
- if (in_array($order, [-1, 0, 1])) {
- $this->order = $order;
- }
- }
-
- public function settagfilter($tagfilter)
- {
- if (!empty($tagfilter) && is_array($tagfilter)) {
- $tagfilterverif = [];
- foreach ($tagfilter as $tag) {
- if(array_key_exists($tag, $this->taglist)) {
- $tagfilterverif[] = $tag;
- }
- }
- $this->tagfilter = $tagfilterverif;
- }
- }
-
- public function settagcompare($tagcompare)
- {
- if (in_array($tagcompare, ['OR', 'AND'])) {
- $this->tagcompare = $tagcompare;
- }
- }
-
- public function setsecure($secure)
- {
- if ($secure >= 0 && $secure <= 5) {
- $this->secure = intval($secure);
- }
- }
-
- public function setlinkto($range)
- {
- $this->linkto = $range;
- }
-
- public function setlinkfrom($range)
- {
- $this->linkfrom = $range;
- }
-
- public function setlinktomin($min)
- {
- $this->linkto['min'] = intval($min);
- }
-
- public function setlinktomax($max)
- {
- $this->linkto['max'] = intval($max);
- }
-
- public function setlinkfrommin($min)
- {
- $this->linkfrom['min'] = intval($min);
- }
-
- public function setlinkfrommax($max)
- {
- $this->linkfrom['max'] = intval($max);
- }
-
- public function setcol($col)
- {
- if (is_array($col)) {
- $this->col = array_intersect($this->artvarlist(), $col);
- }
- }
-
-
- public function settaglist(array $artlist)
- {
- $taglist = [];
- foreach ($artlist as $art) {
- foreach ($art->tag('array') as $tag) {
- if (!array_key_exists($tag, $taglist)) {
- $taglist[$tag] = 1;
- } else {
- $taglist[$tag]++;
- }
- }
- }
- $taglistsorted = arsort($taglist);
- $this->taglist = $taglist;
- }
-
- public function setinvert(int $invert)
- {
- if ($invert == 0 || $invert == 1) {
- $this->invert = $invert;
- } else {
- $this->invert = 0;
- }
- }
-
-
- public function setartvarlist(array $artvarlist)
- {
- $this->artvarlist = $artvarlist;
- }
-
-
-}
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/quickcss.php b/w/class/quickcss.php
deleted file mode 100644
index dc7dbac..0000000
--- a/w/class/quickcss.php
+++ /dev/null
@@ -1,291 +0,0 @@
-<?php
-
-class Quickcss
-{
-
-
- private $active = [];
- private $values = [];
- private $units = [];
- private $new = [];
- private $jsoncss = [];
-
- private $quickcss = [];
-
- const COLOR = ['color', 'background-color', 'border-color', 'text-decoration-color'];
- const SIZE = ['width', 'height', 'margin', 'padding', 'border-radius', 'border-width', 'left', 'right', 'top', 'bottom'];
- const UNIQUE = ['background-image', 'opacity', 'font-size'];
-
- const OPTIONS = [
- 'text-align' => ['left', 'right', 'center', 'justify'],
- 'border-style' => ['solid', 'double', 'outset', 'ridge'],
- 'font-family' => ['serif', 'sans-serif', 'monospace', 'cursive', 'fantasy'],
- 'text-decoration-line' => ['none', 'underline', 'overline', 'line-through', 'underline overline'],
- 'display' => ['none', ]
- ];
-
-
- private static function getselect()
- {
- return array_keys(self::OPTIONS);
- }
-
- private static function getparams()
- {
- $params = array_merge(self::COLOR, self::SIZE, self::getselect(), self::UNIQUE);
- sort($params, SORT_STRING );
- return $params;
- }
-
- public function __construct($data)
- {
- $this->hydrate($data); }
-
- public function hydrate($data)
- {
- foreach ($data as $key => $value) {
- $method = 'set' . $key;
-
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
- }
-
- public function calc()
- {
- $quickcss = $this->intersect($this->values,$this->active);
- $quickcss = $this->merge($quickcss, $this->new);
- $quickcss = $this->addunits($quickcss, $this->units);
- $quickcss = $this->merge($this->jsoncss, $quickcss);
-
- $this->quickcss = $quickcss;
- }
-
-
-
- // _________________________________________ P O S T __________________________________________________
-
- public function setvalues($data)
- {
- if(is_array($data)) {
- $this->values = $data;
- }
- }
-
- public function setunits($data)
- {
- if(is_array($data)) {
- $this->units = $data;
- }
- }
-
- public function setactive($data)
- {
- if(is_array($data)) {
- $this->active = $data;
- }
- }
-
- public function setnew($data)
- {
- if (!empty($data['element']) && !empty($data['param']) && in_array($data['param'], self::getparams())) {
- $new = array($data['element'] => array($data['param'] => ''));
- $this->new = $new;
- }
- }
-
-
- public function setjson($jsoncss)
- {
- if(!empty($jsoncss) && is_string($jsoncss)) {
- $jsoncss = json_decode($jsoncss);
- if(is_array($jsoncss)) {
- $this->jsoncss = $jsoncss;
- } else {
- $this->jsoncss = [];
- }
- }
- }
-
-
- // _______________________________________ C A L C ___________________________________________________
-
- public function intersect($values, $active)
- {
- $intersect = array_intersect_key($values, $active);
-
- foreach ($intersect as $element => $css) {
- $intersect[$element] = array_intersect_key($values[$element], $active[$element]);
- }
- return $intersect;
- }
-
- public function merge($quickcss, $new)
- {
- $quickcss = array_merge_recursive($quickcss, $new);
- return $quickcss;
- }
-
- public function addunits($quickcss, $units)
- {
- foreach ($units as $element => $css) {
- foreach ($css as $param => $unit) {
- if (array_key_exists($element, $quickcss) && array_key_exists($param, $quickcss[$element])) {
- $quickcss[$element][$param] = $quickcss[$element][$param] . $unit;
- }
- }
- }
- return $quickcss;
- }
-
-
-
- // __________________________________________ C O M _________________________________________
-
- public function tocss()
- {
- $string = '';
- foreach ($this->quickcss as $element => $css) {
- $string .= PHP_EOL . $element . ' {';
- foreach ($css as $param => $value) {
- $string .= PHP_EOL . ' ' . $param . ': ' . $value . ';';
- }
- $string .= PHP_EOL . '}' . PHP_EOL;
- }
- return $string;
- }
-
- public function tojson()
- {
- return json_encode($this->quickcss);
- }
-
-
-
-
- // _____________________________________________ F O R M ____________________________________________
-
- public function form($action)
- {
- echo '<form action="' . $action . '" method="post">';
- echo '</br><input type="submit" value="submit">';
- $this->inputs($this->quickcss);
- echo '</br><input type="submit" value="submit">';
- echo '</form>';
-
- }
-
- public function inputs($quickcss)
- {
- echo '<h1>Add element</h1>';
-
- echo '<input type="text" name="new[element]" list="used">';
- echo '<datalist id="used">';
- foreach (array_keys($quickcss) as $element) {
- echo '<option value ="'.$element.'">';
- }
- echo '</datalist>';
-
- echo '<select name="new[param]">';
- foreach (self::getparams() as $param) {
- echo '<option value="' . $param . '">' . $param . '</option>';
- }
- echo '</select>';
-
- foreach ($quickcss as $element => $css) {
- echo '<h3>' . $element . '</h3>';
- foreach ($css as $param => $value) {
-
- echo '<div class="quicklabel">';
- echo '<input type="checkbox" name="active[' . $element . '][' . $param . ']" id="active[' . $element . '][' . $param . ']" checked>';
- echo '<label for="active[' . $element . '][' . $param . ']">' . $param . '</label>';
- echo '</div>';
-
- echo '<div class="quickinput">';
-
- if (in_array($param, self::COLOR)) {
- echo '<input type="color" name="values[' . $element . '][' . $param . ']" value="' . $quickcss[$element][$param] . '" id="values[' . $element . '][' . $param . ']">';
- }
-
- if (in_array($param, self::SIZE)) {
- $this->sizeinput($element, $param, $value);
- }
-
- if (in_array($param, self::getselect())) {
- $this->selectinput($element, $param, $value);
- }
-
- if (in_array($param, self::UNIQUE)) {
- $method = str_replace('-', '', $param) . 'input';
- if (method_exists($this, $method)) {
- $this->$method($element, $param, $value);
- }
- }
-
- echo '</div>';
- }
- }
-
-
- }
-
-
-
-
-
-
- // ____________________________________ I N P U T __________________________________
-
- public function sizeinput($element, $param, $value)
- {
- echo '<input type="number" name="values[' . $element . '][' . $param . ']" value="' . intval($value) . '" id="values[' . $element . '][' . $param . ']">';
-
- $unit = preg_replace('/\d/', '', $value);
- ?>
- <select name="units[<?= $element ?>][<?= $param ?>]" >
- <option value="px" <?= $unit == 'px' ? 'selected' : '' ?>>px</option>
- <option value="%" <?= $unit == '%' ? 'selected' : '' ?>>%</option>
- </select>
- <?php
-
- }
-
- public function fontsizeinput($element, $param, $value)
- {
- echo '<input type="number" name="values[' . $element . '][' . $param . ']" value="' . intval($value) . '" id="values[' . $element . '][' . $param . ']">';
-
- $unit = preg_replace('/\d/', '', $value);
- ?>
- <select name="units[<?= $element ?>][<?= $param ?>]" >
- <option value="px" <?= $unit == 'px' ? 'selected' : '' ?>>px</option>
- <option value="em" <?= $unit == 'em' ? 'selected' : '' ?>>em</option>
- </select>
- <?php
-
- }
-
- public function opacityinput($element, $param, $value)
- {
- echo '<input type="number" name="values[' . $element . '][' . $param . ']" value="' . $value . '" id="values[' . $element . '][' . $param . ']" step="0.1" min="0" max="1">';
- }
-
- public function selectinput($element, $param, $value)
- {
- echo '<select name="values[' . $element . '][' . $param . ']">';
- foreach (self::OPTIONS[$param] as $option) {
- if($option == $value) {
- echo '<option value="'.$option.'" selected>'.$option.'</option>';
- } else {
- echo '<option value="'.$option.'">'.$option.'</option>';
- }
- }
- echo '</select>';
- }
-
-
-}
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/record.php b/w/class/record.php
deleted file mode 100644
index e488383..0000000
--- a/w/class/record.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-class Record
-{
- private $id;
- private $path;
- private $extension;
- private $size;
- private $datetime;
- private $number;
-
-
-
-// _____________________________________________________ F U N ____________________________________________________
-
- public function __construct(array $donnees)
- {
- $this->hydrate($donnees);
- }
-
- public function hydrate(array $donnees)
- {
- foreach ($donnees as $key => $value) {
- $method = 'set' . $key;
-
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
- }
-
-
-
-// _________________________________________________ G E T ____________________________________________________
-
- public function id()
- {
- return $this->id;
- }
-
- public function path()
- {
- return $this->path;
- }
-
- public function extension()
- {
- return $this->extension;
- }
-
- public function size()
- {
- return $this->size;
- }
-
- public function datetime()
- {
- return $this->datetime;
- }
-
- public function number()
- {
- return $this->number;
- }
-
-// ___________________________________________________ S E T __________________________________________________
-
- public function setid($id)
- {
- if (strlen($id) < 100 and is_string($id)) {
- $this->id = strip_tags(strtolower($id));
- }
- }
-
- public function setpath($path)
- {
- if (strlen($path) < 40 and is_string($path)) {
- $this->path = strip_tags(strtolower($path));
- }
- }
-
- public function setextension($extension)
- {
- if (strlen($extension) < 7 and is_string($extension)) {
- $this->extension = strip_tags(strtolower($extension));
- }
- }
-
- public function setsize($size)
- {
- if (40 and is_int($size)) {
- $this->size = strip_tags(strtolower($size));
- }
- }
-
- public function setdatetime($datetime)
- {
- if (is_int($datetime)) {
- $this->datetime = strip_tags(strtolower($datetime));
- }
- }
-
- public function setnumber($number)
- {
- if (is_int($number)) {
- $this->number = strip_tags(strtolower($number));
- }
- }
-
-
-
-
-
-}
-
-?> \ No newline at end of file
diff --git a/w/class/route.php b/w/class/route.php
deleted file mode 100644
index cc2fe59..0000000
--- a/w/class/route.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-class Route
-{
- protected $id = null;
- protected $aff = null;
- protected $action = null;
- protected $redirect = null;
-
- const AFF = ['read', 'edit', 'admin', 'media'];
-
- public function __construct($vars)
- {
- $this->hydrate($vars);
- }
-
- public function hydrate($vars)
- {
- foreach ($vars as $var => $value) {
- $method = 'set' . $var;
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
- }
-
- public function toarray()
- {
- $array = [];
- if (!empty($this->id)) {
- $array[] = 'art';
- }
- if (!empty($this->aff)) {
- $array[] = 'aff='.$this->aff;
- }
- if (!empty($this->action)) {
- $array[] = 'action=' . $this->action;
- }
- if (!empty($this->redirect)) {
- $array[] = $this->redirect;
- }
-
-
- return $array;
- }
-
- function tostring()
- {
- return implode(' ', $this->toarray());
- }
-
-
-
- public function setid($id)
- {
- $this->id = $id;
- }
-
- public function setaff($aff)
- {
- $this->aff = $aff;
-
- }
-
- public function setaction($action)
- {
- $this->action = $action;
- }
-
- public function setredirect($redirect)
- {
- $this->redirect = $redirect;
- }
-
- public function id()
- {
- return $this->id;
- }
-}
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/router.php b/w/class/router.php
deleted file mode 100644
index 604fb84..0000000
--- a/w/class/router.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-
-class Router
-{
- protected $route;
-
- const ROUTES = [
- 'art' => ['art', 'read'],
- 'art aff=read' => ['art', 'read'],
- 'art aff=edit' => ['art', 'edit'],
- 'art aff=log' => ['art', 'log'],
- 'art action=update' => ['art', 'update'],
- 'art action=update home' => ['art', 'update', 'home'],
- 'art action=add' => ['art', 'add'],
- 'art action=delete' => ['art', 'delete'],
- 'aff=home action=massedit',
- 'aff=home' => ['home', 'desktop'],
- '' => ['home', 'desktop'],
- 'aff=home action=massedit' => ['home', 'massedit'],
- 'action=massedit' => ['home', 'massedit'],
- 'action=analyseall' => ['home', 'analyseall'],
- 'aff=home action=analyseall' => ['home', 'analyseall'],
- 'art action=login' => ['art', 'login', 'art'],
- 'home action=login' => ['home', 'login', 'home'],
- 'action=login' => ['home', 'login'],
- 'art action=logout' => ['art', 'logout', 'art'],
- 'home action=logout' => ['home', 'logout', 'home'],
- 'action=logout' => ['home', 'logout'],
- 'aff=db' => ['db', 'desktop'],
- 'aff=db action=add' => ['db', 'add'],
- 'aff=media' => ['media', 'desktop'],
- 'aff=media action=addmedia' => ['media', 'addmedia'],
- 'aff=admin' => ['admin', 'desktop'],
- 'aff=co' => ['connect', 'desktop'],
- ];
-
- public function __construct() {
- if($this->matchroute()) {
- $this->callmethod();
- } else {
- echo '<h1>404 Error</h1>';
- }
- }
-
- public function matchroute()
- {
- $this->route = new route($_GET);
- $match = array_key_exists($this->route->tostring(), self::ROUTES);
- return $match;
-
- }
-
- public function callmethod()
- {
- $method = self::ROUTES[$this->route->tostring()];
-
- $class = 'controller' . $method[0];
- $function = $method[1];
- $controller = new $class($this->route->id());
- $params = array_slice($method, 2);
- $controller->$function(...$params);
- }
-
-
-
-}
-
-
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/sleekdbw.php b/w/class/sleekdbw.php
deleted file mode 100644
index dd77752..0000000
--- a/w/class/sleekdbw.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-
-use SleekDB\SleekDB;
-
-
-class SleekDBw extends SleekDB
-{
-
- public function getStoreIdList()
- {
- $listPath = $this->storePath . 'data/';
- $lengh = strlen($listPath);
- $list = [];
- foreach (glob($listPath . '*.json') as $filename) {
- $list[] = substr(substr($filename, $lengh), 0, -5);
- }
- return $list;
- }
-
- public function getbyid($id)
- {
- return $this->getStoreDocumentById($id);
- }
-
- public function updatebyid($id, $data)
- {
- foreach ($data as $key => $value) {
- // Do not update the _id reserved index of a store.
- if ($key != '_id') {
- $data[$key] = $value;
- }
- }
- $storePath = $this->storePath . 'data/' . $id . '.json';
- if (file_exists($storePath)) {
- // Wait until it's unlocked, then update data.
- file_put_contents($storePath, json_encode($data), LOCK_EX);
- }
- // Check do we need to wipe the cache for this store.
- if ($this->deleteCacheOnCreate === true) $this->_emptyAllCache();
- return true;
- }
-
-
-
-
-
-
- // Writes an object in a store.
- protected function writeInStore($storeData)
- {
- // Cast to array
- $storeData = (array)$storeData;
- // Check if it has _id key
- if (empty($storeData['_id'])) throw new \Exception('Lack of id in this object');
- if (in_array($storeData['_id'], $this->getStoreIdList())) throw new \Exception('Id already used');
- // Add the system ID with the store data array.
- $id = $storeData['_id'];
- // Prepare storable data
- $storableJSON = json_encode($storeData);
- if ($storableJSON === false) throw new \Exception('Unable to encode the data array, please provide a valid PHP associative array');
- // Define the store path
- $storePath = $this->storePath . 'data/' . $id . '.json';
- if (!file_put_contents($storePath, $storableJSON)) {
- throw new \Exception("Unable to write the object file! Please check if PHP has write permission.");
- }
- return $storeData;
- }
-
-
- // Find store objects with conditions, sorting order, skip and limits.
- protected function findStoreDocuments()
- {
- $found = [];
- $storeIdList = $this->getStoreIdList();
- $searchRank = [];
- // Start collecting and filtering data.
- foreach ($storeIdList as $id) {
- // Collect data of current iteration.
- $data = $this->getStoreDocumentById($id);
- if (!empty($data)) {
- // Filter data found.
- if (empty($this->conditions)) {
- // Append all data of this store.
- $found[] = $data;
- } else {
- // Append only passed data from this store.
- $storePassed = true;
- // Iterate each conditions.
- foreach ($this->conditions as $condition) {
- // Check for valid data from data source.
- $validData = true;
- $fieldValue = '';
- try {
- $fieldValue = $this->getNestedProperty($condition['fieldName'], $data);
- } catch (\Exception $e) {
- $validData = false;
- $storePassed = false;
- }
- if ($validData === true) {
- // Check the type of rule.
- if ($condition['condition'] === '=') {
- // Check equal.
- if ($fieldValue != $condition['value']) $storePassed = false;
- } else if ($condition['condition'] === '!=') {
- // Check not equal.
- if ($fieldValue == $condition['value']) $storePassed = false;
- } else if ($condition['condition'] === '>') {
- // Check greater than.
- if ($fieldValue <= $condition['value']) $storePassed = false;
- } else if ($condition['condition'] === '>=') {
- // Check greater equal.
- if ($fieldValue < $condition['value']) $storePassed = false;
- } else if ($condition['condition'] === '<') {
- // Check less than.
- if ($fieldValue >= $condition['value']) $storePassed = false;
- } else if ($condition['condition'] === '<=') {
- // Check less equal.
- if ($fieldValue > $condition['value']) $storePassed = false;
- }
- }
- }
- // Check if current store is updatable or not.
- if ($storePassed === true) {
- // Append data to the found array.
- $found[] = $data;
- }
- }
- }
- }
- if (count($found) > 0) {
- // Check do we need to sort the data.
- if ($this->orderBy['order'] !== false) {
- // Start sorting on all data.
- $found = $this->sortArray($this->orderBy['field'], $found, $this->orderBy['order']);
- }
- // If there was text search then we would also sort the result by search ranking.
- if (!empty($this->searchKeyword)) {
- $found = $this->performSerach($found);
- }
- // Skip data
- if ($this->skip > 0) $found = array_slice($found, $this->skip);
- // Limit data.
- if ($this->limit > 0) $found = array_slice($found, 0, $this->limit);
- }
- return $found;
- }
-
-
-
- // Method to boot a store.
- protected function bootStore()
- {
- $store = trim($this->storeName);
- // Validate the store name.
- if (!$store || empty($store)) throw new \Exception('Invalid store name was found');
- // Prepare store name.
- if (substr($store, -1) !== '/') $store = $store . '/';
- // Store directory path.
- $this->storePath = $this->dataDirectory . $store;
- // Check if the store exists.
- if (!file_exists($this->storePath)) {
- // The directory was not found, create one with cache directory.
- if (!mkdir($this->storePath, 0777, true)) throw new \Exception('Unable to create the store path at ' . $this->storePath);
- // Create the cache directory.
- if (!mkdir($this->storePath . 'cache', 0777, true)) throw new \Exception('Unable to create the store\'s cache directory at ' . $this->storePath . 'cache');
- // Create the data directory.
- if (!mkdir($this->storePath . 'data', 0777, true)) throw new \Exception('Unable to create the store\'s data directory at ' . $this->storePath . 'data');
- // Check if PHP has write permission in that directory.
- if (!is_writable($this->storePath)) throw new \Exception('Store path is not writable at "' . $this->storePath . '." Please change store path permission.');
- // Finally check if the directory is readable by PHP.
- if (!is_readable($this->storePath)) throw new \Exception('Store path is not readable at "' . $this->storePath . '." Please change store path permission.');
- }
- }
-
-
-
-
-}
-
-?> \ No newline at end of file
diff --git a/w/class/user.php b/w/class/user.php
deleted file mode 100644
index 77d6ba2..0000000
--- a/w/class/user.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-class User
-{
- protected $level = 0;
-
- public function __construct($datas = []) {
- if(!empty($datas)) {
- $this->hydrate($datas);
- }
- }
-
- public function hydrate(array $datas = [])
- {
- foreach ($datas as $key => $value) {
- $method = 'set' . $key;
-
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
- }
-
- public function setlevel($level)
- {
- $this->level = $level;
- }
-
- public function level()
- {
- return $this->level;
- }
-
- public function isvisitor()
- {
- return $this->level === Modeluser::FREE;
- }
-
- public function canedit()
- {
- // a modifier en prenant compte du code invitation de l'article
- return $this->level >= Modeluser::EDITOR;
- }
-
- public function cancreate()
- {
- return $this->level >=Modeluser::EDITOR;
- }
-
- public function isadmin()
- {
- return $this->level === Modeluser::ADMIN;
- }
-}
-
-
-
-?> \ No newline at end of file
diff --git a/w/class/w.article.php b/w/class/w.article.php
deleted file mode 100644
index 2476353..0000000
--- a/w/class/w.article.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-if ($app->exist($_GET['id'])) {
-
- $art = $app->get($_GET['id']);
-
- if (isset($_GET['edit']) and $_GET['edit'] == 1 and $app->session() >= $app::EDITOR) {
- echo '<section class=edit>';
- $aff->edit($art, $app, $app->getlister(['id', 'title']), $config->fontsize(), $app->getlistermedia($app::MEDIA_DIR, 'image'));
- $aff->aside($app);
- echo '</section>';
- } else {
- echo '<section class="lecture">';
-
-
- $art->autotaglistupdate($app->taglist($app->getlister(['id', 'title', 'description', 'tag']), $art->autotaglist()));
-
-
- $aff->lecture($art, $app);
- echo '</section>';
-
- }
-} else {
- echo '<span class="alert">This article does not exist yet</span>';
-
- if ($app->session() >= $app::EDITOR) {
- echo '<form action="?id=' . $_GET['id'] . '&edit=1" method="post"><input type="hidden" name="action" value="new"><input type="submit" value="Create"></form>';
- }
-
-}
-
-?> \ No newline at end of file
diff --git a/w/class/w.home.php b/w/class/w.home.php
deleted file mode 100644
index 8ba8b44..0000000
--- a/w/class/w.home.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-
-$aff->header();
-
-echo '<section class="home">';
-
-
-if ($app->session() >= $app::EDITOR) {
-
- $app->bddinit($config);
-
- $opt = new Opt(Art2::classvarlist());
- $opt->setcol(['id', 'tag', 'linkfrom', 'contenu', 'description', 'title', 'datemodif', 'datecreation', 'secure']);
- $table = $app->getlisteropt($opt);
- $app->listcalclinkfrom($table);
- $opt->settaglist($table);
- $opt->submit();
-
-
-
-
-
-
-
-
-
-
-
- $opt->setcol(['id', 'tag', 'linkfrom', 'contenu', 'description', 'title', 'datemodif', 'datecreation', 'secure', 'linkto']);
-
-
- $aff->option($app, $opt);
-
- $filtertagfilter = $app->filtertagfilter($table, $opt->tagfilter(), $opt->tagcompare());
- $filtersecure = $app->filtersecure($table, $opt->secure());
-
- $filter = array_intersect($filtertagfilter, $filtersecure);
- $table2 = [];
- $table2invert = [];
- foreach ($table as $art) {
- if (in_array($art->id(), $filter)) {
- $table2[] = $art;
- } else {
- $table2invert[] = $art;
- }
-
-
- }
-
- if(!empty($opt->invert())) {
- $table2 = $table2invert;
- }
-
- $app->artlistsort($table2, $opt->sortby(), $opt->order());
-
-
- echo '<div id="flex">';
-
-
- $aff->home2table($app, $table2, $app->getlister());
-
-
-
-
- echo '<div id="map">';
- $aff->mapheader();
- if(isset($_GET['map'])) {
- $aff->mermaid($app->map($table2));
- }
- echo '</div>';
-
-
-
-
-
- echo '</div>';
-
-}
-
-
-
-echo '</section>';
-
-?> \ No newline at end of file
diff --git a/w/class/w.menu.php b/w/class/w.menu.php
deleted file mode 100644
index 8e89ed1..0000000
--- a/w/class/w.menu.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-
-if ($app->session() >= $app::EDITOR) {
-
- if ($_GET['aff'] == 'admin' && $app->session() >= $app::ADMIN) {
- echo '<section>';
- echo '<h1>Admin</h1>';
-
- $aff->admincss($config, $app);
- $aff->adminpassword($config);
- $aff->admindb($config);
- if ($app->setbdd($config)) {
- $status = "OK";
- } else {
- $status = "Not Connected";
- }
- $aff->admintable($config, $status, $app->tablelist($config->dbname()));
- $aff->admindisplay($config->color4());
-
- echo '</section>';
- } elseif ($_GET['aff'] == 'media') {
- echo '<h1>Media</h1>';
- echo '<section>';
- echo '<article>';
-
- $aff->addmedia($app);
- $aff->medialist($app->getlistermedia($app::MEDIA_DIR), $app::MEDIA_DIR);
-
- echo '</article>';
- echo '</section>';
-
- } elseif ($_GET['aff'] == 'record') {
- echo '<h1>Record</h1>';
- echo '<section>';
-
- $aff->recordlist($app);
-
- echo '</section>';
-
- } elseif ($_GET['aff'] == 'info') {
-
-
-
- } else {
-
- echo '<h1>Private</h1><p>You dont have the permission to access this page.</p>';
-
- }
-
-
-} else {
- echo '<h1>Private</h1><p>You should be connected to access this page.</p>';
-}
-
-?> \ No newline at end of file
diff --git a/w/fn/w.fn.php b/w/fn/w.fn.php
deleted file mode 100644
index 8bfdee8..0000000
--- a/w/fn/w.fn.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-function bddconnect($host, $bdname, $user, $password)
-{
- try {
- $bdd = new PDO('mysql:host=' . $host . ';dbname=' . $dbname . ';charset=utf8', $user, $password);
- } catch (Exeption $e) {
- die('Erreur : ' . $e->getMessage());
- }
- return $bdd;
-}
-
-
-function secure()
-{
- if (!isset($_SESSION['id'])) {
- header("location: ./");
- }
-}
-
-function head($title)
-{
- ?>
- <head>
- <meta charset="utf8" />
- <meta name="viexport" content="width=device-width" />
- <link href="./css/style.css" rel="stylesheet" />
- <title><?= $title ?></title>
- </head>
- <?php
-
-}
-
-function search($haystack, $debut, $fin)
-{
- $list = [];
-
- $indexdebut = strpos($haystack, $debut);
- if ($indexdebut !== false) {
- $indexdebut += strlen($debut);
- $indexfin = strpos($haystack, $fin, $indexdebut);
- if ($indexfin !== false) {
- array_push($list, substr($haystack, $indexdebut, $indexfin - $indexdebut));
- $haystack = substr($haystack, $indexfin);
- $list = array_merge($list, search($haystack, $debut, $fin));
- }
- }
- return $list;
-
-}
-
-function readablesize($bytes)
-{
-
- $num = 5;
- $location = 'tree';
- $format = ' %d %s';
-
-
-
- if ($bytes < 2 ** 10) {
- $num = $bytes;
- $unit = 'o';
- } elseif ($bytes < 2 ** 20) {
- $num = round($bytes / 2 ** 10, 1);
- $unit = 'Kio';
- } elseif ($bytes < 2 ** 30) {
- $num = round($bytes / 2 ** 20, 1);
- $unit = 'Mio';
- } elseif ($bytes < 2 ** 40) {
- $num = round($bytes / 2 ** 30, 1);
- $unit = 'Gio';
- }
-
- return sprintf($format, $num, $unit);
-}
-
-/* human readable date interval
- * @param DateInterval $diff - l'interval de temps
- * @return string
- */
-function hrdi(DateInterval $diff)
-{
- $str = "";
- if ($diff->y > 1) return $str . $diff->y . ' years';
- if ($diff->y == 1) return $str . ' 1 year and ' . $diff->m . ' months';
- if ($diff->m > 1) return $str . $diff->m . ' months';
- if ($diff->m == 1) return $str . ' 1 month and ' . $diff->d . ($diff->d > 1 ? ' days' : ' day');
- if ($diff->d > 1) return $str . $diff->d . ' days';
- if ($diff->d == 1) return $str . ' 1 day and ' . $diff->h . ($diff->h > 1 ? ' hours' : ' hour');
- if ($diff->h > 1) return $str . $diff->h . ' hours';
- if ($diff->h == 1) return $str . ' 1 hour and ' . $diff->i . ($diff->i > 1 ? ' minutes' : ' minute');
- if ($diff->i > 1) return $str . $diff->i . ' minutes';
- if ($diff->i == 1) return $str . ' 1 minute';
- return $str . ' a few secondes';
-}
-
-
-
-function arrayclean($input)
-{
- $output = [];
- foreach ($input as $key => $value) {
- if (is_array($value)) {
- $output[$key] = array_filter($value);
- } else {
- $output[$key] = $value;
- }
- }
- return $output;
-}
-
-
-
-
-function array_update($base, $new)
-{
- foreach ($base as $key => $value) {
- if (array_key_exists($key, $new)) {
- if (gettype($base[$key]) == gettype($new[$key])) {
- $base[$key] = $new[$key];
- }
- }
- }
- return $base;
-}
-
-function contains($needle, $haystack)
-{
- return strpos($haystack, $needle) !== false;
-}
-
-
-function str_clean(string $string)
-{
- return str_replace(' ', '_', strtolower(strip_tags($string)));
-}
-
-
-
-
-function changekey($array, $oldkey, $newkey)
-{
- if (!array_key_exists($oldkey, $array))
- return $array;
-
- $keys = array_keys($array);
- $keys[array_search($oldkey, $keys)] = $newkey;
-
- return array_combine($keys, $array);
-}
-
-
-
-
-?> \ No newline at end of file
diff --git a/w/view/templates/arthead.php b/w/view/templates/arthead.php
deleted file mode 100644
index b137c7f..0000000
--- a/w/view/templates/arthead.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<meta charset="utf8" />
-<meta name="viewport" content="width=device-width" />
-<link rel="shortcut icon" href="./media/logo.png" type="image/x-icon">
-<title><?= $title ?></title>
-<meta name="description" content="<?= $description ?>">
-<link rel="stylesheet" href="./css/soft.css"> \ No newline at end of file
diff --git a/w/view/templates/body.php b/w/view/templates/body.php
deleted file mode 100644
index e69de29..0000000
--- a/w/view/templates/body.php
+++ /dev/null
diff --git a/w/view/templates/connect.php b/w/view/templates/connect.php
deleted file mode 100644
index 3e2aeba..0000000
--- a/w/view/templates/connect.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php $this->layout('layout', ['title' => 'Connect', 'description' => 'connect']) ?>
-
-
-
-
-<?php $this->start('page') ?>
-
-<span>
-<?= $user->level() ?>
-</span>
-
-<?php if($user->isvisitor()) { ?>
-
-<form action="./?action=login" method="post">
-<input type="password" name="pass" id="loginpass" placeholder="password">
-<input type="submit" value="login">
-</form>
-
-
-<?php } else { ?>
-
-<form action="./?action=logout" method="post">
-<input type="submit" value="logout">
-</form>
-
-
-
-<?php } ?>
-
-<?php $this->stop() ?> \ No newline at end of file
diff --git a/w/view/templates/delete.php b/w/view/templates/delete.php
deleted file mode 100644
index be54451..0000000
--- a/w/view/templates/delete.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php $this->layout('layout', ['title' => 'delete', 'description' => 'delete']) ?>
-
-
-<?php $this->start('page') ?>
-
-
-<?php $this->insert('navart', ['user' => $user, 'art' => $art, 'artexist' => $artexist]) ?>
-
-<div>
-
-<h1>Delete</h1>
-
-<ul>
-<li>Id : <?= $art->title() ?></li>
-<li>Title : <?= $art->title() ?></li>
-<li>Article(s) linked to this one : <?= $art->linkto('sort') ?></li>
-<li>Article(s) linked from this one : <?= $art->linkfrom('sort') ?></li>
-<li>Number of edits : <?= $art->editcount() ?></li>
-</ul>
-
-<?php if (!empty($art->linkto())) { ?>
-
-<h2>Article linked to :</h2>
-
-<ul>
-<?php foreach ($art->linkto('array') as $linkto) {
- echo '<li><a href="./?id=' . $linkto . '">' . $linkto . '</a></li>';
-} ?>
-</ul>
-
-<?php
-} ?>
-
-</div>
-
-
-<form action="./?id=<?= $art->id() ?>&action=delete" method="post">
-<input type="hidden" name="deleteconfirm" value="true">
-<input type="submit" value="confirm delete">
-</form>
-
-
-
-<?php $this->stop() ?> \ No newline at end of file
diff --git a/w/view/templates/edit.php b/w/view/templates/edit.php
deleted file mode 100644
index 33d42f4..0000000
--- a/w/view/templates/edit.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php $this->layout('layout', ['title' => '✏ '.$art->title()]) ?>
-
-
-
-
-<?php $this->start('page') ?>
-
-<style>.tabs textarea{font-size: <?= Config::fontsize() ?>px}</style>
-
-<body>
-<section class="editor">
-
- <?php $this->insert('navart', ['user' => $user, 'art' => $art, 'artexist' => $artexist]) ?>
-
-
-
- <?php $this->insert('edittopbar', ['art' => $art]) ?>
-
- <div id="workspace">
-
- <?php $this->insert('editleftbar', ['art' => $art, 'tablist' => $tablist, 'artlist' => $artlist, 'showleftpanel' => $showleftpanel]) ?>
- <?php $this->insert('edittabs', ['tablist' => $tablist, 'opentab' => $art->interface()]) ?>
- <?php $this->insert('editrightbar', ['art' => $art, 'artlist' => $artlist, 'showrightpanel' => $showrightpanel]) ?>
-
- </div>
-
-
-<input type="hidden" name="id" value="<?= $art->id() ?>">
-
-</form>
-
-</section>
-</body>
-
-<?php $this->stop() ?> \ No newline at end of file
diff --git a/w/view/templates/edithelp.php b/w/view/templates/edithelp.php
deleted file mode 100644
index fee94c7..0000000
--- a/w/view/templates/edithelp.php
+++ /dev/null
@@ -1,27 +0,0 @@
-
- <h2>Help !</h2>
- <p>To save your article, press the HOME, UPDATE, or DISPLAY buttons. You can use the keyboard shortcuts as well.</p>
- <pre><span class="i">ALT + W</span> : home</pre>
- <pre><span class="i">ALT + X</span> : update</pre>
- <pre><span class="i">ALT + C</span> : display</pre>
- <h3>Markdown</h3>
- <p>The html section use <a href="https://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown encoding</a>. Actualy, W is using Michel Fortin's <a href="https://michelf.ca/projects/php-markdown/extra/" target="_blank">Markdown Extra</a>.</p>
- <h3>Links</h3>
- <pre>[text](=<span class="i">article_id</span>)</pre>
- <p>where article_id is the article's id you want to point to.</p>
- <h3>Images</h3>
- <pre>[altimage](/<span class="i">img_id.extension</span>)</pre>
- <p>Where img_id is the id of your image and its extension.</p>
- <h3>Shortcuts</h3>
- <pre>%TITLE%</pre>
- <p>Show the title of your article.</p>
- <pre>%DESCRIPTION%</pre>
- <p>Show the description of your article.</p>
- <pre>%SUMMARY%</pre>
- <p>Generate a <strong>summary</strong>, the list of all your head titles using #, ##, ###...</p>
- <pre>%%<span class="i">tag_name</span>%%</pre>
- <p>Generate a <strong>menu</strong>, a list of links to all articles under this tag.</p>
- <p>vv</p>
- <p>vv</p>
- <p>vv</p>
- <p></p> \ No newline at end of file
diff --git a/w/view/templates/editleftbar.php b/w/view/templates/editleftbar.php
deleted file mode 100644
index 7533599..0000000
--- a/w/view/templates/editleftbar.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<div id="leftbar">
- <input id="showleftpanel" name="workspace[showleftpanel]" value="1" class="toggle" type="checkbox" <?= $showleftpanel == true ? 'checked' : '' ?>>
- <label for="showleftpanel" class="toogle">◧</label>
- <div id="leftbarpanel" class="panel">
- <details id="editinfo" open>
- <summary>Infos</summary>
- <fieldset>
- <label for="title">title :</label>
- <input type="text" name="title" id="title" value="<?= $art->title(); ?>">
- <label for="description">Description :</label>
- <input type="text" name="description" id="description" value="<?= $art->description(); ?>">
- <label for="tag">Tag(s) :</label>
- <input type="text" name="tag" id="tag" value="<?= $art->tag('string'); ?>">
- <label for="secure">Privacy level :</label>
- <select name="secure" id="secure">
- <option value="0" <?= $art->secure() == 0 ? 'selected' : '' ?>>0</option>
- <option value="1" <?= $art->secure() == 1 ? 'selected' : '' ?>>1</option>
- <option value="2" <?= $art->secure() == 2 ? 'selected' : '' ?>>2</option>
- <option value="3" <?= $art->secure() == 3 ? 'selected' : '' ?>>3</option>
- </select>
- </fieldset>
- </details>
- <details>
- <summary>Advanced</summary>
- <fieldset>
- <h3>Template options</h3>
- <ul>
- <?php
- foreach ($tablist as $element => $value) {
- if(isset($art->template()[$element])) {
- $template = $art->template()[$element];
- } else {
- $template = '';
- }
- echo '<li>';
- echo '<label for="'.$element.'template">'.$element.'</label>';
- echo '<select name="template['.$element.']" id="'.$element.'template">';
- ?>
- <option value="" <?= $template === '' ? 'selected' : '' ?>>--no template--</option>
- <?php
- foreach ($artlist as $artid ) {
-
- ?>
- <option value="<?= $artid ?>" <?= $template === $artid ? 'selected' : '' ?>><?= $artid ?></option>
- <?php
- }
- echo '</select>';
- echo '</li>';
- }
-
-
- ?>
- </ul>
- </fieldset>
- </details>
- <details id="editcss" open>
- <summary>Quick CSS</summary>
-
- </details>
- <details>
- <summary>Help</summary>
- <div id="help">
- <?php $this->insert('edithelp') ?>
-
- </div>
- </details>
-
- </div>
-
-</div> \ No newline at end of file
diff --git a/w/view/templates/editrightbar.php b/w/view/templates/editrightbar.php
deleted file mode 100644
index 92d5f81..0000000
--- a/w/view/templates/editrightbar.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<div id="rightbar">
- <input id="showrightpanel" name="workspace[showrightpanel]" value="1" class="toggle" type="checkbox" <?= $showrightpanel == true ? 'checked' : '' ?>>
- <label for="showrightpanel" class="toogle">◧</label>
- <div id="rightbarpanel" class="panel">
- <details id="linkassist" open>
- <summary>Links</summary>
- <?php
- foreach ($artlist as $item ) {
- ?>
- <a href="?id=<?= $item ?>&aff=edit"><?= $item ?></a>
- <input type="text" value="[<?= $item ?>](=<?= $item ?>)">
- <?php
- }
-
- ?>
- </details>
-
- </div>
-
-</div> \ No newline at end of file
diff --git a/w/view/templates/edittabs.php b/w/view/templates/edittabs.php
deleted file mode 100644
index efb1650..0000000
--- a/w/view/templates/edittabs.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class="tabs">
-
-<?php
-foreach ($tablist as $key => $value) {
- echo '<div class="tab">';
- if ($key == $opentab) {
- echo '<input name="interface" type="radio" value="'.$key.'" id="tab' . $key . '" class="checkboxtab" checked>';
- } else {
- echo '<input name="interface" type="radio" value="'.$key.'" id="tab' . $key . '" class="checkboxtab">';
- }
- echo '<label for="tab' . $key . '">' . $key . '</label>';
- echo '<div class="content">';
- echo '<textarea name="' . $key . '" id="' . $key . '" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">' . $value . '</textarea>';
- echo '</div>';
- echo '</div>';
-}
-?>
-
-</div> \ No newline at end of file
diff --git a/w/view/templates/edittopbar.php b/w/view/templates/edittopbar.php
deleted file mode 100644
index 20c2d8b..0000000
--- a/w/view/templates/edittopbar.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<div id="topbar">
- <form id="delete" action="./" method="get">
- <input type="hidden" name="id" value="<?= $art->id() ?>">
- </form>
-
- <form action="?id=<?= $art->id() ?>&action=update" method="post" id="update">
-
- <span>
- <input type="submit" name="action" value="update" accesskey="x" form="update">
- </span>
-
-
- <span>
- <input type="submit" name="action" value="delete" form="delete">
- </span>
-
-
- <span>
- <a href="?id=<?= $art->id() ?>" target="_blank">👁</a>
- <a href="?id=<?= $art->id() ?>&aff=log" target="_blank">¶</a>
- </span>
- <span id="headid"><?= $art->id() ?></span>
-
-<span>
-
- <label for="fontsize">Font-size</label>
- <input type="number" name="fontsize" value="<?= Config::fontsize() ?>" id="fontsize">
-</span>
-</div> \ No newline at end of file
diff --git a/w/view/templates/home.php b/w/view/templates/home.php
deleted file mode 100644
index 2303f0f..0000000
--- a/w/view/templates/home.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php $this->layout('layout', ['title' => 'home']) ?>
-
-
-
-
-<?php $this->start('page') ?>
-
-
-<body>
-
- <?php $this->insert('navback', ['user' => $user]) ?>
-
-<?php if($user->canedit()) { ?>
-
-<section>
-
-<div>
-
-<form id="goto" action="./" method="get">
-<input type="text" name="id" placeholder="id" required>
-<input type="submit" name="aff" value="read">
-<input type="submit" name="aff" value="edit">
-<input type="submit" name="action" value="add">
-</form>
-
-
-<form action="./" method="get">
-<input type="submit" name="action" value="analyseall">
-</form>
-
-
-</div>
-
-
-<div id="flex">
-
-
- <?php $this->insert('homeopt', ['opt' => $opt]) ?>
-
-
-
-<div id="main">
-<h2>Articles</h2>
-<form action="./" method="post">
-
-
- <div id="massedit">
- <h3>Mass Edit</h3>
- <select name="massedit" required>
- <option value="public">set as public</option>
- <option value="private">set as private</option>
- <option value="not published">set as not published</option>
- <option value="erasetag">erase all tags</option>
- <option value="erasetemplate">erase template</option>
- <option value="delete">delete</option>
- </select>
-
- <input type="submit" name="massaction" value="do" onclick="confirmSubmit(event, 'Are you sure')" >
-
- <input type="text" name="targettag" placeholder="add tag">
- <input type="submit" name="massaction" value="add tag" onclick="confirmSubmit(event, 'Are you sure')" >
-
- <select name="masstemplate">
- <?php
- foreach ($table2 as $art) {
- echo '<option value="' . $art->id() . '">' . $art->id() . '</option>';
- }
- ?>
- </select>
-
- <input type="submit" name="massaction" value="set template" onclick="confirmSubmit(event, 'Are you sure')" >
-
- <input type="hidden" name="action" value="massedit">
- </div>
-
-
- <table id="home2table">
- <tr><th>x</th><th>id</th><th>edit</th><th>see</th><th>del</th><th>log</th><th>tag</th><th>summary</th><th>↘ to</th><th>↗ from</th><th>last modification</th><th>date of creation</th><th>privacy</th></tr>
- <?php foreach ($table2 as $item) { ?>
- <tr>
- <td><input type="checkbox" name="id[]" value="<?= $item->id() ?>" id="<?= $item->id() ?>"></td>
- <td><label title="<?= $item->title() ?>" for="<?= $item->id() ?>"><?= $item->id() ?></label></td>
- <td><a href="?id=<?= $item->id() ?>&aff=edit">✏</a></td>
- <td><a href="?id=<?= $item->id() ?>" target="_blank">👁</a></td>
- <td><a href="?id=<?= $item->id() ?>&action=delete" >🗑</a></td>
- <td><a href="?id=<?= $item->id() ?>&aff=log" target="_blank">¶</a></td>
- <td><?= $item->tag('sort') ?></td>
- <td><?= $item->description() ?></td>
- <td><?= $item->linkto('sort') ?></td>
- <td><?= $item->linkfrom('sort') ?></td>
- <td><?= $item->datemodif('hrdi') ?></td>
- <td><?= $item->datecreation('hrdi') ?></td>
- <td><?= $item->secure('string') ?></td>
- </tr>
-
- <?php }?>
- </table>
-</form>
-</div>
-</div>
-</section>
-
-<?php } ?>
-
-</body>
-
-
-
-<?php $this->stop() ?> \ No newline at end of file
diff --git a/w/view/templates/homeopt.php b/w/view/templates/homeopt.php
deleted file mode 100644
index cecb79b..0000000
--- a/w/view/templates/homeopt.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<div id="options">
-<h2>Options</h2>
-<form action="./" method="get" >
-<input type="submit" name="submit" value="filter">
-⬅<input type="submit" name="submit" value="reset">
-
-
- <!-- $this->optionsort($opt);
- $this->optionprivacy($opt);
- $this->optiontag($opt); -->
-
-<fieldset><legend>Sort</legend>
-<select name="sortby" id="sortby">
-<?php
-foreach ($opt->col('array') as $key => $col) {
- echo '<option value="' . $col . '" ' . ($opt->sortby() == $col ? "selected" : "") . '>' . $col . '</option>';
-}
-?>
-</select>
-</br>
-<input type="radio" id="asc" name="order" value="1" <?= $opt->order() == '1' ? "checked" : "" ?>/><label for="asc">ascending</label>
-</br>
-<input type="radio" id="desc" name="order" value="-1" <?= $opt->order() == '-1' ? "checked" : "" ?>/><label for="desc">descending</label>
-
-</fieldset>
-
-<fieldset><legend>Privacy</legend><ul>
-<li><input type="radio" id="4" name="secure" value="4"<?= $opt->secure() == 4 ? "checked" : "" ?>/><label for="4">all</label></li>
-<li><input type="radio" id="3" name="secure" value="3"<?= $opt->secure() == 3 ? "checked" : "" ?>/><label for="3">editor</label></li>
-<li><input type="radio" id="2" name="secure" value="2"<?= $opt->secure() == 2 ? "checked" : "" ?>/><label for="2">invite only</label></li>
-<li><input type="radio" id="1" name="secure" value="1"<?= $opt->secure() == 1 ? "checked" : "" ?>/><label for="1">private</label></li>
-<li><input type="radio" id="0" name="secure" value="0"<?= $opt->secure() == 0 ? "checked" : "" ?>/><label for="0">public</label></li>
-</ul></fieldset>
-
- <fieldset><legend>Tag</legend><ul>
-
-
-<input type="radio" id="OR" name="tagcompare" value="OR" ' . <?= $opt->tagcompare() == "OR" ? "checked" : "" ?> ><label for="OR">OR</label>
-<input type="radio" id="AND" name="tagcompare" value="AND" <?= $opt->tagcompare() == "AND" ? "checked" : "" ?>><label for="AND">AND</label>
-
-<?php
-$in = false;
-$out = false;
-$limit = 1;
-foreach ($opt->taglist() as $tagfilter => $count) {
-
- if ($count > $limit && $in == false) {
- echo '<details open><summary>>' . $limit . '</summary>';
- $in = true;
- }
- if ($count == $limit && $in == true && $out == false) {
- echo '</details><details><summary>' . $limit . '</summary>';
- $out = true;
- }
-
- if (in_array($tagfilter, $opt->tagfilter())) {
-
- echo '<li><input type="checkbox" name="tagfilter[]" id="' . $tagfilter . '" value="' . $tagfilter . '" checked /><label for="' . $tagfilter . '">' . $tagfilter . ' (' . $count . ')</label></li>';
- } else {
- echo '<li><input type="checkbox" name="tagfilter[]" id="' . $tagfilter . '" value="' . $tagfilter . '" /><label for="' . $tagfilter . '">' . $tagfilter . ' (' . $count . ')</label></li>';
- }
-}
-if ($in = true || $out = true) {
- echo '</details>';
-}
-?>
-
-</ul></fieldset>
-
- <?php
- if ($opt->invert() == 1) {
- echo '<input type="checkbox" name="invert" value="1" id="invert" checked>';
- } else {
- echo '<input type="checkbox" name="invert" value="1" id="invert">';
- }
- echo '<label for="invert">invert</></br>';
- ?>
-
-
-<input type="submit" name="submit" value="filter">
-⬅<input type="submit" name="submit" value="reset">
-
-</form>
-</div>
diff --git a/w/view/templates/layout.php b/w/view/templates/layout.php
deleted file mode 100644
index 263cca3..0000000
--- a/w/view/templates/layout.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf8" />
-
- <meta name="viewport" content="width=device-width" />
- <link rel="shortcut icon" href="./media/logo.png" type="image/x-icon">
- <title><?= $title ?></title>
- <link rel="stylesheet" href="./css/soft.css">
- <?=$this->section('customhead')?>
- <?=$this->section('arthead')?>
-
-</head>
-
-
-
-<?=$this->section('page')?>
-
-
-</html> \ No newline at end of file
diff --git a/w/view/templates/media.php b/w/view/templates/media.php
deleted file mode 100644
index 8b189d5..0000000
--- a/w/view/templates/media.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php $this->layout('base', ['title' => 'Media']) ?>
-
-<h1>Media</h1>
-<p>Hello, <?=$this->e($interface)?></p> \ No newline at end of file
diff --git a/w/view/templates/navart.php b/w/view/templates/navart.php
deleted file mode 100644
index b6a7219..0000000
--- a/w/view/templates/navart.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<style>
-.menu {
- all:initial;
- position: fixed;
- top: 0;
- right: 0;
- z-index: 10;
- background-color: var(--color1);
-}
-
-div#dropmenu {
- display: none;
-}
-
-.menu:hover div#dropmenu {
- display: block;
-}
-
-</style>
-
-
-<div class="menu" >
- <?= $user->level() ?>
- <div id="dropmenu">
-
- <ul>
-
- <li>
- <a class="button" href="./">home</a>
- </li>
-
-
-<?php if($user->isvisitor()) { ?>
-
- <li>
- <form action="./?action=login<?= $art->id() !== null ? '&id=' . $art->id() : '' ?>" method="post">
- <input type="password" name="pass" id="loginpass" placeholder="password">
- <input type="submit" value="login">
- </form>
- </li>
-
-<?php } else { ?>
-
- <li>
- <form action="./?action=logout<?= $art->id() !== null ? '&id=' . $art->id() : '' ?>" method="post">
- <input type="submit" value="logout">
- </form>
- </li>
-
-<?php } ?>
-
-
-<?php if($user->canedit() && $artexist) { ?>
-
- <li>
- <a class="button" href="?id=<?=$art->id() ?>" target="_blank">display</a>
- </li>
- <li>
- <a class="button" href="?id=<?=$art->id() ?>&aff=edit" >edit</a>
- </li>
-
-<?php } ?>
-
-
-<?php if ($user->canedit()) { ?>
-
- <li>
- <a class="button" href="?aff=media" >Media</a>
- </li>
-
-<?php } ?>
-
-<?php if($user->isadmin()) { ?>
-
- <li>
- <a class="button" href="?aff=admin" >Admin</a>
- </li>
-
-<?php } ?>
-
-
-
-
- </div>
-</div> \ No newline at end of file
diff --git a/w/view/templates/navback.php b/w/view/templates/navback.php
deleted file mode 100644
index ab8a4d4..0000000
--- a/w/view/templates/navback.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<div class="menu">
- <?= $user->level() ?>
- <div id="dropmenu">
-
- <ul>
-
- <li>
- <a class="button" href="./">home</a>
- </li>
-
-
-<?php if($user->isvisitor()) { ?>
-
- <li>
- <form action="./?action=login" method="post">
- <input type="password" name="pass" id="loginpass" placeholder="password">
- <input type="submit" value="login">
- </form>
- </li>
-
-<?php } else { ?>
-
- <li>
- <form action="./?action=logout" method="post">
- <input type="submit" value="logout">
- </form>
- </li>
-
-<?php } ?>
-
-
-
-
-<?php if ($user->canedit()) { ?>
-
- <li>
- <a class="button" href="?aff=media" >Media</a>
- </li>
-
-<?php } ?>
-
-<?php if($user->isadmin()) { ?>
-
- <li>
- <a class="button" href="?aff=admin" >Admin</a>
- </li>
-
-<?php } ?>
-
-
- </ul>
-
- </div>
-</div> \ No newline at end of file
diff --git a/w/view/templates/read.php b/w/view/templates/read.php
deleted file mode 100644
index 35b1e7d..0000000
--- a/w/view/templates/read.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php $this->layout('readerlayout') ?>
-
-<?php
-$this->start('head');
-
-if ($artexist) {
- if ($canread) {
- echo $head;
- } else {
- $this->insert('arthead', ['title' => $art->title(), 'description' => $art->description()]);
- }
-} else {
- $this->insert('arthead', ['title' => $art->id(), 'description' => $alertnotexist]);
-}
-
-
-
-$this->stop();
-?>
-
-
-
-
-
-
-
-
-
-<?php $this->start('page') ?>
-
- <body>
-
-
-
- <?php
- if ($readernav) {
- $this->insert('navart', ['user' => $user, 'art' => $art, 'artexist' => $artexist]);
- }
- ?>
-
-
-
- <?php
-
- if ($artexist) {
-
- if ($canread) {
- echo $body;
- } else {
- echo '<h1>'.$alertprivate.'</h1>';
- }
-
- } else {
- echo '<h1>' . $alertnotexist . '</h1>';
- if ($cancreate) {
- $this->insert('readcreate', ['id' => $art->id()]);
- }
- }
-
-
-
- ?>
-
-
- </body>
-
-<?php $this->stop() ?> \ No newline at end of file
diff --git a/w/view/templates/readart.php b/w/view/templates/readart.php
deleted file mode 100644
index e44877d..0000000
--- a/w/view/templates/readart.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<script>
-<?=$art->javascript() ?>
-</script>
-
-<body>
-
-<header>
-<?=$art->header()?>
-</header>
-
-<nav>
-<?=$art->nav()?>
-</nav>
-
-<aside>
-<?=$art->aside()?>
-</aside>
-
-<section>
-<?=$art->section()?>
-</section>
-
-<footer>
-<?=$art->footer()?>
-</footer>
diff --git a/w/view/templates/readcreate.php b/w/view/templates/readcreate.php
deleted file mode 100644
index dc36420..0000000
--- a/w/view/templates/readcreate.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<form action="./" method="get">
-<input type="hidden" name="id" value="<?= $id ?>">
-<input type="hidden" name="action" value="add">
-<input type="submit" value="create">
-</form> \ No newline at end of file
diff --git a/w/view/templates/readerlayout.php b/w/view/templates/readerlayout.php
deleted file mode 100644
index 51ab406..0000000
--- a/w/view/templates/readerlayout.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-
- <?=$this->section('head')?>
-
-
-</head>
-
-
-
-<?=$this->section('page')?>
-
-
-</html> \ No newline at end of file
diff --git a/w/w.index.php b/w/w.index.php
deleted file mode 100644
index d247c84..0000000
--- a/w/w.index.php
+++ /dev/null
@@ -1,365 +0,0 @@
-<?php
-
-// _____________________________________________________ R E Q U I R E ________________________________________________________________
-
-
-
-session_start();
-
-
-
-require(__DIR__.'/fn/w.fn.php');
-
-function class_autoloader($class)
-{
- require(__DIR__. DIRECTORY_SEPARATOR . 'class'. DIRECTORY_SEPARATOR . strtolower($class) . '.php');
-}
-
-
-
-
-
-require(__DIR__.'/../vendor/autoload.php');
-
-spl_autoload_register('class_autoloader');
-
-
-try {
- $router = new Router;
-
-} catch(Exception $e) {
- echo 'Exception reçue : ', $e->getMessage(), "\n";
-}
-
-
-
-
-
-
-exit;
-
-// ________________________________________________________ I N S T A L _________________________________________________
-
-$app = new App();
-$aff = new Aff();
-
-
-$config = $app->readconfig();
-if (!$config) {
- $message = 'config_file_error';
- echo $message;
- if (isset($_POST['config']) && $_POST['config'] == 'create') {
- $config = $app->createconfig($_POST);
- $app->savejson($config->tojson());
- header('Location: ./');
-
- } else {
- $aff->configform();
- }
- exit;
-}
-
-
-// _________________________________________________________ S E S ___________________________________________________________
-
-
-if (!isset($_SESSION['level'])) {
- $session = 0;
-} else {
- $session = $_SESSION['level'];
-}
-
-$app->setsession($session);
-
-
-
-
-// _______________________________________________________ A C T I O N __________________________________________________________________
-
-
-$router = new Router;
-
-
-
-
-
-if (isset($_POST['action'])) {
- switch ($_POST['action']) {
-
- case 'login':
- $_SESSION['level'] = $app->login($_POST['pass'], $config);
- if (isset($_GET['id'])) {
- header('Location: ?id=' . $_GET['id']);
- } else {
- header('Location: ./');
- }
- break;
-
- case 'logout':
- $_SESSION['level'] = $app->logout();
- if (isset($_GET['id'])) {
- header('Location: ?id=' . $_GET['id']);
- } else {
- header('Location: ./');
- }
- break;
-
- case 'addmedia':
- $message = $app->addmedia($_FILES, 2 ** 24, $_POST['id']);
- header('Location: ./?aff=media&message=' . $message);
- break;
-
-
-
- case 'editcss':
- file_put_contents($app::GLOBAL_CSS_DIR, $_POST['editcss']);
- header('Location: ./?aff=admin');
- break;
-
- case 'editconfig':
- $config->hydrate($_POST);
- $app->savejson($config->tojson());
- header('Location: ./?aff=admin');
- break;
-
-
- }
-}
-
-
-
-// _____________________________________________________ D A T A B A S E __________________________________________________________________
-
-if (isset($_POST['action'])) {
- $app->bddinit($config);
-
- switch ($_POST['action']) {
-
- case 'new':
- if (isset($_GET['id'])) {
- $art = new Art2($_GET);
- $art->reset();
- $app->add($art);
- header('Location: ?id=' . $_GET['id'] . '&edit=1');
- }
- break;
-
- case 'update':
- if ($app->exist($_GET['id'])) {
- $art = new Art2($_POST);
- $art->updatelinkfrom();
- $art->autotaglistcalc($app->taglist($app->getlister(['id', 'title', 'tag']), $art->autotaglist()));
- $app->update($art);
- if($config->fontsize() != $_POST['fontsize']) {
- $config->setfontsize($_POST['fontsize']);
- $app->savejson($config->tojson());
- }
- header('Location: ?id=' . $art->id() . '&edit=1&message='.$art->id().'_saved');
- }
- break;
-
- case 'display':
- if ($app->exist($_GET['id'])) {
- $art = new Art2($_POST);
- $art->updatelinkfrom();
- $art->autotaglistcalc($app->taglist($app->getlister(['id', 'title', 'tag']), $art->autotaglist()));
- $app->update($art);
- if($config->fontsize() != $_POST['fontsize']) {
- $config->setfontsize($_POST['fontsize']);
- $app->savejson($config->tojson());
- }
- header('Location: ?id=' . $art->id().'&message='.$art->id().'_saved');
- }
- break;
-
- case 'home':
- if ($app->exist($_GET['id'])) {
- $art = new Art2($_POST);
- $art->updatelinkfrom();
- $art->autotaglistcalc($app->taglist($app->getlister(['id', 'title', 'tag']), $art->autotaglist()));
- $app->update($art);
- if($config->fontsize() != $_POST['fontsize']) {
- $config->setfontsize($_POST['fontsize']);
- $app->savejson($config->tojson());
- }
- header('Location: ./?message='.$art->id().'_saved');
- }
- break;
-
- case 'delete':
- if ($app->exist($_GET['id'])) {
- $art = new Art2($_POST);
- $app->delete($art);
- header('Location: ?id=' . $art->id());
- }
- break;
-
- case 'massedit':
- if (isset($_POST['id'])) {
- foreach ($_POST['id'] as $id) {
- if ($app->exist($id)) {
- $art = $app->get($id);
-
- switch ($_POST['massaction']) {
- case 'do':
- switch ($_POST['massedit']) {
- case 'delete':
- $app->delete($art);
- break;
-
- case 'erasetag':
- $art->settag('');
- $app->update($art);
- break;
-
- case 'erasetemplate':
- $art->settemplate('');
- $app->update($art);
- break;
-
- case 'not published':
- $art->setsecure(2);
- $app->update($art);
- break;
-
- case 'private':
- $art->setsecure(1);
- $app->update($art);
- break;
-
- case 'public':
- $art->setsecure(0);
- $app->update($art);
- break;
- }
- break;
-
- case 'set template':
- if (isset($_POST['masstemplate'])) {
- $art->settemplate($_POST['masstemplate']);
- $app->update($art);
- }
- break;
-
- case 'add tag':
- if (isset($_POST['targettag'])) {
- $art = $app->get($id);
- $tagstring = strip_tags(trim(strtolower($_POST['targettag'])));
- $taglist = str_replace(' ', '', $tagstring);
- $taglist = explode(",", $taglist);
- foreach ($taglist as $tag) {
- if (!in_array($tag, $art->tag('array'))) {
- $newtaglist = $art->tag('array');
- array_push($newtaglist, $tag);
- $art->settag($newtaglist);
- }
- }
- $app->update($art);
- }
- break;
-
- }
-
-
-
-
- }
- header('Location: ./');
- }
- break;
- }
- }
-}
-
-
-
-
-
-if (isset($_POST['actiondb'])) {
- $app->setbdd($config);
-
- switch ($_POST['actiondb']) {
-
- case 'addtable':
- if (isset($_POST['tablename'])) {
- $message = $app->addtable($config->dbname(), $_POST['tablename']);
- header('Location: ./?aff=admin&message=' . $message);
- }
- break;
-
- case 'duplicatetable':
- $message = $app->tableduplicate($config->dbname(), $_POST['arttable'], $_POST['tablename']);
- header('Location: ./?aff=admin&message=' . $message);
- break;
-
- }
-}
-
-
-
-
-// _______________________________________________________ H E A D _____________________________________________________________
-
-if (isset($_GET['id'])) {
- $app->bddinit($config);
- if ($app->exist($_GET['id'])) {
- $art = $app->get($_GET['id']);
- if (!isset($_GET['edit'])) {
- $_GET['edit'] = 0;
- }
- $aff->arthead($art, $app::GLOBAL_CSS_DIR, $_GET['edit']);
- } else {
- // $aff->head($_GET['id'], '', 'white');
- $aff->noarthead($_GET['id'], $app::GLOBAL_CSS_DIR);
-
- }
-} elseif (isset($_GET['aff'])) {
- $aff->head($_GET['aff'], $_GET['aff'], $config->color4());
-} else {
- $aff->head('home', 'home', $config->color4());
-}
-
-
-
-
-
-
-
-// _____________________________________________________ A L E R T _______________________________________________________________
-
-if (isset($_GET['message'])) {
- echo '<span class="alert">' . $_GET['message'] . '</span>';
-}
-
-
-
-
-
-
-
-
-// ______________________________________________________ B O D Y _______________________________________________________________
-
-
-$aff->nav($app);
-
-if (array_key_exists('id', $_GET)) {
- $app->bddinit($config);
- include(__DIR__.'/controller/w.article.php');
-} elseif (array_key_exists('tag', $_GET)) {
- $app->bddinit($config);
- echo '<h4>' . $_GET['tag'] . '</h4>';
- $aff->tag($app->getlister(['id', 'title', 'description', 'tag']), $_GET['tag'], $app);
-} elseif (array_key_exists('linkfrom', $_GET)) {
- $app->bddinit($config);
- echo '<h4><a href="?id=' . $_GET['linkfrom'] . '">' . $_GET['linkfrom'] . '</a></h4>';
- $aff->linkfrom($app->getlister(['id', 'title', 'description', 'linkfrom']), $_GET['linkfrom'], $app);
-} elseif (array_key_exists('aff', $_GET)) {
- include(__DIR__.'/controller/w.menu.php');
-} else {
- include(__DIR__.'/controller/w.home.php');
-}
-
-
-
-?> \ No newline at end of file