aboutsummaryrefslogtreecommitdiff
path: root/class
diff options
context:
space:
mode:
Diffstat (limited to 'class')
-rw-r--r--class/class.w.aff.php65
-rw-r--r--class/class.w.app.php62
-rw-r--r--class/class.w.art.php12
-rw-r--r--class/class.w.config.php3
-rw-r--r--class/class.w.opt.php45
5 files changed, 140 insertions, 47 deletions
diff --git a/class/class.w.aff.php b/class/class.w.aff.php
index 9f1177a..198f61e 100644
--- a/class/class.w.aff.php
+++ b/class/class.w.aff.php
@@ -162,7 +162,7 @@ class Aff
</form>
<div id="submit">
<input type="submit" name="action" value="update" accesskey="s" onclick="document.getElementById('artedit').submit();" form="artedit">
- <input type="submit" name="action" value="delete" onclick="confirmSubmit(event, 'Suppression de cet article', 'artedit')" form="artedit">
+ <input type="submit" name="action" value="delete" onclick="confirmSubmit(event, 'Delete this article', 'artedit')" form="artedit">
</div>
@@ -197,7 +197,7 @@ public function copy(Art $art, $list)
<input type="checkbox" id="checkhtml" name="html" value="true">
<label for="checktemplate">template</label>
<input type="checkbox" id="checktemplate" name="template" value="true">
- <input type="submit" value="copy" onclick="confirmSubmit(event, 'Ecraser ces valeurs')">
+ <input type="submit" value="copy" onclick="confirmSubmit(event, 'Erase values')">
</fieldset>
</form>
</div>
@@ -313,13 +313,27 @@ public function header()
public function home2table(App $app, $getlist)
{
+ echo '<form action="./" method="post">';
+ ?>
+ <div id="massedit">
+ <select name="massedit" required>
+ <option value="delete">delete</option>
+ <option value="0">set as public</option>
+ <option value="1">set as private</option>
+ <option value="2">set as not published</option>
+ </select>
+ <input type="submit" value="submit" 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>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>⚙ edit</th></tr>';
+ 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>⚙ edit</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() . '">' . $item->titre() . '</a></td>';
echo '<td>' . $item->tag('sort') . '</td>';
echo '<td>' . $item->intro() . '</td>';
@@ -332,6 +346,7 @@ public function home2table(App $app, $getlist)
echo '</tr>';
}
echo ' </table> ';
+ echo ' </form> ';
}
}
@@ -340,15 +355,19 @@ public function option(App $app, Opt $opt)
if ($app->session() >= $app::EDITOR) {
echo '<div id="options"><form action="./" method="get" >';
+ echo '<input type="submit" name="submit" value="filter">';
+ echo '⬅<input type="submit" name="submit" value="reset">';
+
- $this->optiontag($opt);
- $this->optionprivacy($opt);
$this->optionsort($opt);
+ $this->optionprivacy($opt);
+ $this->optiontag($opt);
- echo '<input type=submit value="show">';
+ echo '<input type="submit" name="submit" value="filter">';
+ echo '⬅<input type="submit" name="submit" value="reset">';
echo '</form></div>';
@@ -360,13 +379,34 @@ public function optiontag(Opt $opt)
{
echo '<fieldset><legend>Tag</legend><ul>';
- foreach ($opt->taglist() as $tagor => $count) {
- if (in_array($tagor, $opt->tagor())) {
- echo '<li><input type="checkbox" name="tagor[]" id="' . $tagor . '" value="' . $tagor . '" checked /><label for="' . $tagor . '">' . $tagor . ' (' . $count . ')</label></li>';
+
+ 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>';
+
+ $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="tagor[]" id="' . $tagor . '" value="' . $tagor . '" /><label for="' . $tagor . '">' . $tagor . ' (' . $count . ')</label></li>';
+ 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>';
}
@@ -389,7 +429,9 @@ public function optionsort(Opt $opt)
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>';
@@ -469,7 +511,7 @@ public function nav($app)
echo '<a class="button" href="?id=' . $_GET['id'] . '&edit=1" >edit</a>';
}
}
- if ($app->session() >= $app::EDITOR && !isset($_GET['id'])) {
+ 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) {
@@ -827,6 +869,7 @@ public function nav($app)
+
//______________________________________________________ S E T _________________________________________________
public function setsession($session)
diff --git a/class/class.w.app.php b/class/class.w.app.php
index efb8986..5e1ddb0 100644
--- a/class/class.w.app.php
+++ b/class/class.w.app.php
@@ -37,25 +37,52 @@ class App
} catch (PDOException $e) {
$caught = false;
echo '<h1>Error 500, database offline</h1>';
- echo '<p><a href=".">Homepage for admin login</a> (connect on the top right side)</p>';
- if ($this->session() >= 3) {
+ if ($this->session() >= self::EDITOR) {
echo '<p>Error : ' . $e->getMessage() . '</p>';
- if ($this->session() == 10) {
+ 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;
}
- if ($caught) {
- $this->arttable = $config->arttable();
- }
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 ____________________________________
@@ -206,7 +233,6 @@ class App
public function getlisteropt(Opt $opt)
{
-
$artlist = [];
$select = 'SELECT ' . $opt->col('string') . ' FROM ' . $this->arttable;
@@ -252,15 +278,24 @@ class App
- public function filtertagor(array $artlist, array $tagchecked)
+ public function filtertagfilter(array $artlist, array $tagchecked, $tagcompare = 'OR')
{
$filteredlist = [];
foreach ($artlist as $art) {
- if (!empty(array_intersect($art->tag('array'), $tagchecked))) {
- $filteredlist[] = $art->id();
- } elseif (empty($tagchecked)) {
+ 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;
@@ -311,9 +346,6 @@ class App
public function tableexist($dbname, $tablename)
{
- var_dump($dbname);
- var_dump($tablename);
-
$req = $this->bdd->prepare('SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = :dbname AND
@@ -341,7 +373,7 @@ class App
$arttables = [];
foreach ($donnees as $table) {
- $arttables[] = $table['Tables_in_wcms'];
+ $arttables[] = $table['Tables_in_' . $dbname];
}
return $arttables;
diff --git a/class/class.w.art.php b/class/class.w.art.php
index d757e0d..ffdb670 100644
--- a/class/class.w.art.php
+++ b/class/class.w.art.php
@@ -73,7 +73,7 @@ class Art
public function updatelien()
{
- $this->lien = search($this->md(), self::DEBUT, self::FIN);
+ $this->lien = search($this->md(true), self::DEBUT, self::FIN);
}
public static function classvarlist()
@@ -179,9 +179,14 @@ class Art
return $temp . $this->css;
}
- public function md()
+ public function md($expand = false)
{
- return $this->html;
+ if($expand == true) {
+ $md = str_replace('](=', '](?id=', $this->html);
+ } else {
+ $md = $this->html;
+ }
+ return $md;
}
public function html(App $app)
@@ -200,6 +205,7 @@ class Art
$html = str_replace($lien, $titlelien, $html);
}
+ $html = str_replace('href="=', 'href="?id=', $html);
$html = str_replace('href="http', ' class="external" target="_blank" href="http', $html);
$html = str_replace('<img src="/', '<img src="../media/', $html);
$html = str_replace('<iframe', '<div class="iframe"><div class="container"><iframe class="video" ', $html);
diff --git a/class/class.w.config.php b/class/class.w.config.php
index 4a63f86..839bf77 100644
--- a/class/class.w.config.php
+++ b/class/class.w.config.php
@@ -99,6 +99,8 @@ class Config
return $this->cssread;
}
+
+
// __________________________________________ S E T ______________________________________
public function sethost($host)
@@ -156,6 +158,7 @@ class Config
$this->cssread = strip_tags($cssread);
}
+
}
diff --git a/class/class.w.opt.php b/class/class.w.opt.php
index 76b3905..fc71312 100644
--- a/class/class.w.opt.php
+++ b/class/class.w.opt.php
@@ -2,8 +2,9 @@
class Opt
{
private $sortby = 'id';
- private $order = '1';
- private $tagor = [];
+ private $order = 1;
+ private $tagfilter = [];
+ private $tagcompare = 'OR';
private $secure = 4;
private $liento = ['min' => '0', 'max' => '0'];
private $lienfrom = ['min' => '0', 'max' => '0'];
@@ -65,9 +66,14 @@ class Opt
return $this->secure;
}
- public function tagor($type = 'array')
+ public function tagfilter($type = 'array')
{
- return $this->tagor;
+ return $this->tagfilter;
+ }
+
+ public function tagcompare()
+ {
+ return $this->tagcompare;
}
public function liento($type = 'array')
@@ -117,16 +123,23 @@ class Opt
}
}
- public function settagor($tagor)
+ public function settagfilter($tagfilter)
{
- if (is_array($tagor)) {
- // $tagorlist = [];
- // foreach ($tagor as $tag) {
+ if (is_array($tagfilter)) {
+ // $tagfilterlist = [];
+ // foreach ($tagfilter as $tag) {
// if (array_key_exists($tag, $this->taglist())) {
- // $tagorlist[] = $tag;
+ // $tagfilterlist[] = $tag;
// }
// }
- $this->tagor = $tagor;
+ $this->tagfilter = $tagfilter;
+ }
+ }
+
+ public function settagcompare($tagcompare)
+ {
+ if(in_array($tagcompare, ['OR', 'AND'])) {
+ $this->tagcompare = $tagcompare;
}
}
@@ -137,18 +150,14 @@ class Opt
}
}
- public function setliento($n0, $n1)
+ public function setliento($range)
{
- $stock = [intval($n1), intval($n2)];
- $sorted = asort($stock);
- $this->liento = ['min' => $stock[0], 'max' => $stock[1]];
+ $this->liento = $range;
}
- public function setlienfrom($n0, $n1)
+ public function setlienfrom($range)
{
- $stock = [intval($n1), intval($n2)];
- $sorted = asort($stock);
- $this->lienfrom = ['min' => $stock[0], 'max' => $stock[1]];
+ $this->lienfrom = $range;
}
public function setlientomin($min)