aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md42
-rw-r--r--class/class.aff.php20
-rw-r--r--class/class.app.php6
-rw-r--r--class/class.art.php32
-rw-r--r--public/w/index.php2
5 files changed, 94 insertions, 8 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4434f71
--- /dev/null
+++ b/README.md
@@ -0,0 +1,42 @@
+# W-CMS
+
+**W** is a CMS based on my way of thinking.
+
+It's a mix between a drive, wikipedia and a personnal blog. You can create articles very quickly and share them with other people or keep them for you and restricted people.
+
+
+- The user can never see the whole map of the website : no menu (never ever)
+- you can discover the website only by clicking on internal link, wiki style.
+- Each page can have is own style, so you don't realise it's exactly the same website when you navigate (no graphical identity) Each page is a kind of single website on his own. (Just like a mini internet)
+
+The code is very very light, it's a very quick and limited CMS.
+
+The project is ispired by the *web publishing function* in *google docs* that create quick temporary web page instead of sharing a A4 page. I think very few people are using it.
+
+
+There is 3 levels of privacy :
+
+0. public
+1. resctricted by reader code (read only)
+2. non published : admin only
+
+[Webpage of the project (in french)](http://vincent.club1.fr/w/?id=w)
+
+# M
+
+**M** is the media manager to be used with **W**. The purpose is to import images or sound, rename them, resize them or compress them very quickly online.
+
+# Technology
+
+- Pure PHP an MySQL only.
+- Use MarkDown to edit articles.
+- All the article use only basic GET information.
+
+# Versions
+
+## W
+
+- 2.1 : dynamic template : you can link a article to another to use the CSS parameters of the this one.
+
+## M
+
diff --git a/class/class.aff.php b/class/class.aff.php
index 61ee142..a62274e 100644
--- a/class/class.aff.php
+++ b/class/class.aff.php
@@ -42,7 +42,7 @@ class Aff
section a[target="_blank"] {
color: <?= $art->couleurlienblank() ?>;
}
- <?= $art->css() ?>
+ <?= $art->csstemplate($app) ?>
</style>
<section>
<h1><?= $art->titre() ?></h1>
@@ -55,7 +55,7 @@ class Aff
echo '</body>';
}
- public function edit(Art $art)
+ public function edit(Art $art, $list)
{
if ($this->session() >= self::$edit) {
@@ -82,6 +82,18 @@ class Aff
</details>
<details close>
<summary>CSS</summary>
+ <label for="template">Template :</label>
+ <select name="template" id="template">
+ <?php
+ foreach ($list as $item) {
+ if ($item['id'] == $art->template()) {
+ echo '<option value="' . $item['id'] . '" selected >' . $item['titre'] . '</option>';
+ } else {
+ echo '<option value="' . $item['id'] . '">' . $item['titre'] . '</option>';
+ }
+ }
+ ?>
+ </select>
<label for="css">Styles CSS :</label>
<textarea name="css" id="css"><?= $art->css(); ?></textarea>
<label for="couleurtext">Couleur du texte :</label>
@@ -299,7 +311,7 @@ public function head($title, $tool)
</br>
<?php
- if (isset($_GET['id']) and $app->exist($_GET['id'])) {
+ if (isset($_GET['id'])) {
if ($this->session() == 0) {
?>
<form action="?id=<?= $_GET['id'] ?>" method="post">
@@ -318,7 +330,7 @@ public function head($title, $tool)
</form>
<?php
- if ($this->session() == 2) {
+ if ($this->session() == 2 and $app->exist($_GET['id'])) {
?>
<a class="button" href="?id=<?= $_GET['id'] ?>" target="_blank">display</a>
</br>
diff --git a/class/class.app.php b/class/class.app.php
index 2a863dd..3fac66b 100644
--- a/class/class.app.php
+++ b/class/class.app.php
@@ -26,7 +26,7 @@ class App
$now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
- $q = $this->bdd->prepare('INSERT INTO art(id, titre, soustitre, intro, tag, datecreation, datemodif, css, html, secure, couleurtext, couleurbkg, couleurlien, couleurlienblank, lien) VALUES(:id, :titre, :soustitre, :intro, :tag, :datecreation, :datemodif, :css, :html, :secure, :couleurtext, :couleurbkg, :couleurlien, :couleurlienblank, :lien)');
+ $q = $this->bdd->prepare('INSERT INTO art(id, titre, soustitre, intro, tag, datecreation, datemodif, css, html, secure, couleurtext, couleurbkg, couleurlien, couleurlienblank, lien, template) VALUES(:id, :titre, :soustitre, :intro, :tag, :datecreation, :datemodif, :css, :html, :secure, :couleurtext, :couleurbkg, :couleurlien, :couleurlienblank, :lien, :template)');
$q->bindValue(':id', $art->id());
$q->bindValue(':titre', $art->titre());
@@ -43,6 +43,7 @@ class App
$q->bindValue(':couleurlien', $art->couleurlien());
$q->bindValue(':couleurlienblank', $art->couleurlienblank());
$q->bindValue(':lien', $art->lien('string'));
+ $q->bindValue(':template', $art->template());
$q->execute();
}
@@ -115,7 +116,7 @@ class App
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 WHERE id = :id');
+ $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());
$q->bindValue(':titre', $art->titre());
@@ -132,6 +133,7 @@ class App
$q->bindValue(':couleurlien', $art->couleurlien());
$q->bindValue(':couleurlienblank', $art->couleurlienblank());
$q->bindValue(':lien', $art->lien('string'));
+ $q->bindValue(':template', $art->template());
$q->execute();
}
diff --git a/class/class.art.php b/class/class.art.php
index 58653ca..2b03a7d 100644
--- a/class/class.art.php
+++ b/class/class.art.php
@@ -128,6 +128,22 @@ a:hover {}');
return $this->css;
}
+ 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();
+
+ }
+
+ }
+ return $temp . $this->css;
+ }
+
public function md()
{
return $this->html;
@@ -192,6 +208,11 @@ a:hover {}');
}
+ public function template()
+ {
+ return $this->template;
+ }
+
@@ -254,7 +275,7 @@ a:hover {}');
public function setcss($css)
{
- if (strlen($css) < self::LEN and is_string($css)) {
+ if (strlen($css) < self::LENHTML and is_string($css)) {
$this->css = strip_tags(trim(strtolower($css)));
}
}
@@ -316,6 +337,15 @@ a:hover {}');
}
}
+ public function settemplate($template)
+ {
+ $template = strip_tags($template);
+ if (strlen($template) == 0) {
+ $template = 'NULL';
+ }
+ $this->template = $template;
+ }
+
}
diff --git a/public/w/index.php b/public/w/index.php
index 695ce56..51bce0e 100644
--- a/public/w/index.php
+++ b/public/w/index.php
@@ -108,7 +108,7 @@ if (isset($_GET['id'])) {
$art = $app->get($_GET['id']);
if (isset($_GET['edit']) and $_GET['edit'] == 1) {
- $aff->edit($art);
+ $aff->edit($art, $app->lister());
$aff->template($art, $app->lister());
$aff->aside($app->lister());
} else {