diff options
Diffstat (limited to 'class')
-rw-r--r-- | class/class.aff.php | 105 | ||||
-rw-r--r-- | class/class.app.php | 71 | ||||
-rw-r--r-- | class/class.art.php | 10 | ||||
-rw-r--r-- | class/class.media.php | 110 |
4 files changed, 251 insertions, 45 deletions
diff --git a/class/class.aff.php b/class/class.aff.php index a62274e..3ae4662 100644 --- a/class/class.aff.php +++ b/class/class.aff.php @@ -17,7 +17,7 @@ class Aff public function lecture(Art $art, App $app) { - echo '<body class="lecture">'; + echo '<div class="lecture">'; if ($art->secure() == 1) { echo '<span class="alert"><h4>cet article est privé</h4></span>'; } @@ -28,6 +28,7 @@ class Aff if ($this->session() >= $art->secure()) { ?> <style type="text/css"> + <?= $art->csstemplate($app) ?> body{ background: <?= $art->couleurbkg() ?>; } @@ -42,17 +43,18 @@ class Aff section a[target="_blank"] { color: <?= $art->couleurlienblank() ?>; } - <?= $art->csstemplate($app) ?> </style> <section> + <header> <h1><?= $art->titre() ?></h1> <h6><?= $art->soustitre() ?></h6> + </header> <article><?= $art->html($app) ?></article> </section> <?php } - echo '</body>'; + echo '</div>'; } public function edit(Art $art, $list) @@ -60,7 +62,7 @@ class Aff if ($this->session() >= self::$edit) { ?> - <body class="edit"> + <div class="edit"> <section> <form action="?id=<?= $art->id() ?>" method="post"> <details close> @@ -85,11 +87,17 @@ class Aff <label for="template">Template :</label> <select name="template" id="template"> <?php + if ($art->template() == 'NULL') { + echo '<option value="" selected >Sans template</option>'; + } else { + echo '<option value="" >sans template</option>'; + } foreach ($list as $item) { - if ($item['id'] == $art->template()) { - echo '<option value="' . $item['id'] . '" selected >' . $item['titre'] . '</option>'; + + if ($item->id() == $art->template()) { + echo '<option value="' . $item->id() . '" selected >' . $item->titre() . '</option>'; } else { - echo '<option value="' . $item['id'] . '">' . $item['titre'] . '</option>'; + echo '<option value="' . $item->id() . '">' . $item->titre() . '</option>'; } } ?> @@ -117,7 +125,7 @@ class Aff <input type="submit" name="action" value="delete" onclick="confirmSubmit(event, 'Suppression de cet article')"> </form> </div> - </body> + </div> <?php @@ -125,23 +133,33 @@ class Aff } -public function template(Art $art, $list) +public function copy(Art $art, $list) { - echo '<div class="template">'; - echo '<form action="?id=' . $art->id() . '" method="post">'; - echo '<input type="hidden" name="action" value="template">'; - echo '<input type="hidden" name="id" value="' . $art->id() . '">'; - echo '<select name="template">'; - foreach ($list as $item) { - echo '<option value="' . $item['id'] . '">' . $item['titre'] . '</option>'; - } - echo '</select>'; ?> - <input type="submit" value="template" onclick="confirmSubmit(event, 'Ecraser le style CSS')"> + <div class="copy"> + <form action="?id=<?= $art->id() ?>&edit=1" method="post"> + <input type="hidden" name="action" value="copy"> + <input type="hidden" name="id" value="<?= $art->id() ?>"> + <select name="copy"> + <?php + foreach ($list as $item) { + echo '<option value="' . $item->id() . '">' . $item->titre() . '</option>'; + } + echo '</select>'; + ?> + <label for="checkcss">CSS</label> + <input type="checkbox" id="checkcss" name="css" value="true"> + <label for="checkcolor">Color</label> + <input type="checkbox" id="checkcolor" name="color" value="true"> + <label for="checkhtml">HTML</label> + <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')"> + </form> + </div> <?php -// echo '<input type="submit" value="template">'; - echo '</form>'; - echo '</div>'; + } public function head($title, $tool) @@ -149,7 +167,8 @@ public function head($title, $tool) ?> <head> <meta charset="utf8" /> - <meta name="viewport" content="width=device-width" /> + <meta name="viewport" content="width=device-width" /> + <link href="/css/stylebase.css" rel="stylesheet" /> <link href="/css/style<?= $tool ?>.css" rel="stylesheet" /> <title><?= $title ?></title> <script src="../rsc/js/app.js"></script> @@ -174,7 +193,7 @@ public function head($title, $tool) public function tag($getlist, $tag) { - echo '<body class="tag">'; + echo '<div class="tag">'; echo '<ul>'; foreach ($getlist as $item) { if (in_array($tag, $item->tag('array'))) { @@ -187,12 +206,12 @@ public function head($title, $tool) } } echo ' </ul> '; - echo ' </body> '; + echo ' </div> '; } public function lien($getlist, $lien) { - echo '<body class="lien">'; + echo '<div class="lien">'; echo '<ul>'; foreach ($getlist as $item) { if (in_array($lien, $item->lien('array'))) { @@ -205,7 +224,7 @@ public function head($title, $tool) } } echo ' </ul> '; - echo ' </body> '; + echo ' </div> '; } public function home($getlist) @@ -236,7 +255,7 @@ public function head($title, $tool) public function home2($getlist) { - echo '<body class="home">'; + echo '<div class="home">'; if ($this->session() >= 2) { echo '<ul>'; foreach ($getlist as $item) { @@ -253,38 +272,45 @@ public function head($title, $tool) } echo ' </ul> '; } - echo ' </body> '; + echo ' </div> '; } public function home2table($getlist) { - echo '<body class="home">'; + echo '<div class="home">'; echo '<section>'; echo '<h1>W</h1>'; $this->search(); if ($this->session() >= 2) { echo '<h1>Home</h1>'; echo '<table>'; - echo '<tr><th>titre</th><th>résumé</th><th>lien</th><th>edit</th></tr>'; + echo '<tr><th><a href="./?tri=titre">titre</a></th><th>résumé</th><th>lien from</th><th>lien to</th><th><a href="./?tri=datemodif&desc=DESC">dernière modif</a></th><th><a href="./?tri=datecreation&desc=DESC">date de création</a></th><th>edit</th></tr>'; foreach ($getlist as $item) { - $count = 0; + $liento = 0; + $lienfrom = 0; foreach ($getlist as $lien) { if (in_array($item->id(), $lien->lien('array'))) { - $count++; + $liento++; } } + foreach ($item->lien('array') as $count) { + $lienfrom++; + } echo '<tr>'; echo '<td><a href="?id=' . $item->id() . '">' . $item->titre() . '</a></td>'; echo '<td>' . $item->intro() . '</td>'; - echo '<td><a href="?lien=' . $item->id() . '">' . $count . '</a></td>'; + echo '<td>' . $lienfrom . '</td>'; + echo '<td><a href="?lien=' . $item->id() . '">' . $liento . '</a></td>'; + echo '<td>' . $item->datemodif('hrdi') . '</td>'; + echo '<td>' . $item->datecreation('hrdi') . '</td>'; echo '<td><a href="?id=' . $item->id() . '&edit=1">modifier</a></td>'; echo '</tr>'; } echo ' </table> '; } echo '</section>'; - echo ' </body> '; + echo ' </div> '; } public function aside($list) @@ -314,7 +340,7 @@ public function head($title, $tool) if (isset($_GET['id'])) { if ($this->session() == 0) { ?> - <form action="?id=<?= $_GET['id'] ?>" method="post"> + <form action="./?id=<?= $_GET['id'] ?>" method="post"> <input type="hidden" name="action" value="login"> <input type="password" name="pass" id="pass" placeholder="password"> <input type="submit" value="login"> @@ -324,7 +350,7 @@ public function head($title, $tool) } if ($this->session() >= 1) { ?> - <form action="?id=<?= $_GET['id'] ?>" method="post"> + <form action="./?id=<?= $_GET['id'] ?>" method="post"> <input type="hidden" name="action" value="logout"> <input type="submit" value="logout"> </form> @@ -372,13 +398,16 @@ public function head($title, $tool) if ($this->session() >= 2) { ?> + <details close> + <summary>Add Media</summary> <h1>Ajouter un media</h1> <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> + </form> + </details> <?php } diff --git a/class/class.app.php b/class/class.app.php index 3fac66b..8ca1b1f 100644 --- a/class/class.app.php +++ b/class/class.app.php @@ -68,15 +68,15 @@ class App } - public function getlister(array $selection, $tri) + public function getlister(array $selection = ['id', 'titre'], $tri = 'id', $desc = 'ASC') { $list = []; $option = ['datecreation', 'titre', 'id', 'intro', 'datemodif']; - if (is_array($selection) && is_string($tri) && strlen($tri) < 12 && in_array($tri, $option)) { + if (is_array($selection) && is_string($tri) && strlen($tri) < 16 && is_string($desc) && strlen($desc) < 5 && in_array($tri, $option)) { $selection = implode(", ", $selection); - $select = 'SELECT ' . $selection . ' FROM art ORDER BY ' . $tri; + $select = 'SELECT ' . $selection . ' FROM art ORDER BY ' . $tri . ' ' . $desc; $req = $this->bdd->query($select); while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) { $list[] = new Art($donnees); @@ -114,8 +114,6 @@ class App $now = new DateTimeImmutable(null, timezone_open("Europe/Paris")); $art->updatelien(); - var_dump($now); - $q = $this->bdd->prepare('UPDATE art SET titre = :titre, soustitre = :soustitre, intro = :intro, tag = :tag, datecreation = :datecreation, datemodif = :datemodif, css = :css, html = :html, secure = :secure, couleurtext = :couleurtext, couleurbkg = :couleurbkg, couleurlien = :couleurlien, couleurlienblank = :couleurlienblank, lien = :lien, template = :template WHERE id = :id'); $q->bindValue(':id', $art->id()); @@ -138,6 +136,11 @@ class App $q->execute(); } + + + +// __________________________________________ M E D ________________________________________________________ + public function addmedia(array $file, $maxsize, $id) { $maxsize = 2 ** 40; @@ -149,6 +152,7 @@ class App if (in_array($extension_upload, $extensions_autorisees)) { if (!file_exists('../media/' . $id . '.' . $extension_upload)) { + $extension_upload = strtolower($extension_upload); $uploadok = move_uploaded_file($file['media']['tmp_name'], '../media/' . $id . '.' . $extension_upload); if ($uploadok) { header('Location: ./?message=uploadok'); @@ -166,6 +170,63 @@ class App } } + + public function getmedia($entry) + { + $fileinfo = pathinfo($entry); + + $filepath = $fileinfo['dirname'] . '.' . $fileinfo['extension']; + + list($width, $height, $type, $attr) = getimagesize($filepath); + + echo 'filepath : ' . $filepath; + + $donnes = array( + 'id' => str_replace('.' . $fileinfo['extension'], '', $fileinfo['filename']), + 'path' => $fileinfo['dirname'], + 'extension' => $fileinfo['extension'] + ); + + + + return new Art($donnees); + + } + + public function getlistermedia($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, + 'width' => $width, + 'height' => $height + ); + + $list[] = new Media($donnees); + + } + } + return $list; + } + + return $list; + + } + + //_________________________________________________________ S E S ________________________________________________________ public function login($pass) diff --git a/class/class.art.php b/class/class.art.php index 2b03a7d..2b67611 100644 --- a/class/class.art.php +++ b/class/class.art.php @@ -20,6 +20,7 @@ class Art private $couleurlien; private $couleurlienblank; private $lien; + private $template; const LEN = 255; const LENHTML = 20000; @@ -64,6 +65,7 @@ a:hover {}'); $this->setcouleurlien('#000000'); $this->setcouleurlienblank('#000000'); $this->setlien(''); + $this->settemplate(''); } public function updatelien() @@ -110,6 +112,9 @@ a:hover {}'); return $this->datecreation->format('Y-m-d H:i:s'); } elseif ($option == 'date') { return $this->datecreation; + } elseif ($option == 'hrdi') { + $now = new DateTimeImmutable(null, timezone_open("Europe/Paris")); + return hrdi($this->datecreation->diff($now)); } } @@ -120,6 +125,9 @@ a:hover {}'); return $this->datemodif->format('Y-m-d H:i:s'); } elseif ($option == 'date') { return $this->datemodif; + } elseif ($option == 'hrdi') { + $now = new DateTimeImmutable(null, timezone_open("Europe/Paris")); + return hrdi($this->datemodif->diff($now)); } } @@ -167,6 +175,8 @@ a:hover {}'); $html = str_replace('href="http', ' class="external" target="_blank" href="http', $html); $html = str_replace('src="/', 'src="../media/', $html); + $html = str_replace('<iframe', '<div class="iframe"><div class="container"><iframe class="video" ', $html); + $html = str_replace('</iframe>', '</iframe></div></div>', $html); return $html; diff --git a/class/class.media.php b/class/class.media.php index e144776..e5056c9 100644 --- a/class/class.media.php +++ b/class/class.media.php @@ -3,14 +3,120 @@ class Media { private $id; + private $path; private $extension; private $type; private $size; - private $height; private $width; + private $height; -} +// _____________________________________________________ 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 type() + { + return $this->type; + } + + public function size() + { + return $this->size; + } + + public function width() + { + return $this->width; + } + + public function height() + { + return $this->height; + } + +// ___________________________________________________ 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 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)); + } + } + + + + + +} ?>
\ No newline at end of file |