diff options
author | vincent-peugnet <v.peugnet@free.fr> | 2019-01-09 01:01:47 +0100 |
---|---|---|
committer | vincent-peugnet <v.peugnet@free.fr> | 2019-01-09 01:01:47 +0100 |
commit | bed0dcccc88bd417876abd5238883b2b1cd5aafc (patch) | |
tree | 3313dc25a4c3fa3f6bfe4d8aa0ada7280db8a96f | |
parent | acdbc686630f523cee598a95415b515d531b2bde (diff) | |
download | wcms-bed0dcccc88bd417876abd5238883b2b1cd5aafc.tar.gz wcms-bed0dcccc88bd417876abd5238883b2b1cd5aafc.zip |
target blank internal or external option admin
-rw-r--r-- | app/class/art2.php | 2 | ||||
-rw-r--r-- | app/class/config.php | 73 | ||||
-rw-r--r-- | app/class/modelrender.php | 23 | ||||
-rw-r--r-- | app/view/templates/admin.php | 22 | ||||
-rw-r--r-- | app/view/templates/edittopbar.php | 2 | ||||
-rw-r--r-- | app/view/templates/homeopt.php | 3 | ||||
-rw-r--r-- | assets/css/home.css | 7 |
7 files changed, 61 insertions, 71 deletions
diff --git a/app/class/art2.php b/app/class/art2.php index 474531b..b4c0ff3 100644 --- a/app/class/art2.php +++ b/app/class/art2.php @@ -41,7 +41,7 @@ class Art2 const LEN = 255; - const LENTEXT = 20000; + const LENTEXT = 2**20; const SECUREMAX = 2; const LENCOULEUR = 7; const DEBUT = '(?id='; diff --git a/app/class/config.php b/app/class/config.php index f9ed8fd..c90f080 100644 --- a/app/class/config.php +++ b/app/class/config.php @@ -5,11 +5,6 @@ abstract class Config { protected static $arttable = 'mystore'; - protected static $domain; - protected static $admin; - protected static $editor = 'editor'; - protected static $invite; - protected static $read; protected static $color4; protected static $fontsize = 15; protected static $basepath = ''; @@ -21,6 +16,8 @@ abstract class Config protected static $showeditmenu = true; protected static $editsymbol = 'pen'; protected static $analytics = ''; + protected static $externallinkblank = true; + protected static $internallinkblank = false; @@ -83,31 +80,6 @@ abstract class Config 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; @@ -163,40 +135,23 @@ abstract class Config return self::$analytics; } - - -// __________________________________________ S E T ______________________________________ - - public static function setarttable($arttable) + public static function externallinkblank() { - self::$arttable = strip_tags($arttable); + return self::$externallinkblank; } - public static function setdomain($domain) + public static function internallinkblank() { - self::$domain = strip_tags($domain); + return self::$internallinkblank; } - public static function setadmin($admin) - { - if(is_string($admin) && strlen($admin) >= 4 && strlen($admin) <= 64) { - 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); - } +// __________________________________________ S E T ______________________________________ - public static function setread($read) + public static function setarttable($arttable) { - self::$read = strip_tags($read); + self::$arttable = strip_tags($arttable); } public static function setcolor4($color4) @@ -279,7 +234,17 @@ abstract class Config self::$analytics = $analytics; } } + + public static function setexternallinkblank($externallinkblank) + { + self::$externallinkblank = boolval($externallinkblank); + } + public static function setinternallinkblank($internallinkblank) + { + self::$internallinkblank = boolval($internallinkblank); + } + diff --git a/app/class/modelrender.php b/app/class/modelrender.php index 259ce1b..a6ed98b 100644 --- a/app/class/modelrender.php +++ b/app/class/modelrender.php @@ -7,6 +7,8 @@ class Modelrender extends Modelart protected $artlist; protected $linkfrom = []; protected $sum = []; + protected $internallinkblank = ''; + protected $externallinkblank = ''; const SUMMARY = '%SUMMARY%'; const REMPLACE_SELF_ELEMENT = false; @@ -18,6 +20,14 @@ class Modelrender extends Modelart $this->router = $router; $this->artlist = $this->getlister(); + + if(Config::internallinkblank()) { + $this->internallinkblank = ' target="blank" '; + } + + if(Config::externallinkblank()) { + $this->externallinkblank = ' target="blank" '; + } } public function uart($id) @@ -255,7 +265,7 @@ class Modelrender extends Modelart public function autourl($text) { - $text = preg_replace('#( |\R|>)(https?:\/\/((\S+)\.([^< ]+)))#', '$1<a href="$2" class="external" target="_blank">$3</a>', $text); + $text = preg_replace('#( |\R|>)(https?:\/\/((\S+)\.([^< ]+)))#', '$1<a href="$2" class="external" '. $this->externallinkblank .'>$3</a>', $text); return $text; } @@ -268,11 +278,12 @@ class Modelrender extends Modelart function ($matches) use ($rend, &$linkfrom) { $matchart = $rend->get($matches[1]); if (!$matchart) { - return 'href="' . $rend->uart($matches[1]) . '"" title="' . Config::existnot() . '" class="internal"'; + $link = 'href="' . $rend->uart($matches[1]) . '"" title="' . Config::existnot() . '" class="internal"' . $this->internallinkblank; } else { $linkfrom[] = $matchart->id(); - return 'href="' . $rend->uart($matches[1]) . $matches[2] . '" title="' . $matchart->description() . '" class="internal"'; + $link = 'href="' . $rend->uart($matches[1]) . $matches[2] . '" title="' . $matchart->description() . '" class="internal"' . $this->internallinkblank; } + return $link; }, $text ); @@ -289,10 +300,10 @@ class Modelrender extends Modelart function ($matches) use ($rend, &$linkfrom) { $matchart = $rend->get($matches[1]); if (!$matchart) { - return '<a href="' . $rend->uart($matches[1]) . '"" title="' . Config::existnot() . '" class="internal">' . $matches[1] . '</a>'; + return '<a href="' . $rend->uart($matches[1]) . '"" title="' . Config::existnot() . '" class="internal" '. $this->internallinkblank .' >' . $matches[1] . '</a>'; } else { $linkfrom[] = $matchart->id(); - return '<a href="' . $rend->uart($matches[1]) . $matches[2] . '" title="' . $matchart->description() . '" class="internal">' . $matchart->title() . '</a>'; + return '<a href="' . $rend->uart($matches[1]) . $matches[2] . '" title="' . $matchart->description() . '" class="internal" '. $this->internallinkblank .' >' . $matchart->title() . '</a>'; } }, $text @@ -457,7 +468,7 @@ class Modelrender extends Modelart } else { $actual = ''; } - $ul .= '<li><a href="' . $this->router->generate('artread/', ['art' => $item->id()]) . '" title="' . $item->description() . '" class="internal' . $actual . '" >' . $item->title() . '</a></li>' . PHP_EOL; + $ul .= '<li><a href="' . $this->router->generate('artread/', ['art' => $item->id()]) . '" title="' . $item->description() . '" class="internal' . $actual . '" '. $this->internallinkblank .' >' . $item->title() . '</a></li>' . PHP_EOL; } $ul .= '</ul>' . PHP_EOL; diff --git a/app/view/templates/admin.php b/app/view/templates/admin.php index 007ced4..4f03503 100644 --- a/app/view/templates/admin.php +++ b/app/view/templates/admin.php @@ -17,12 +17,6 @@ <input type="submit" value="Update configuration"> - <h2>Passwords</h2> - <label for="admin">Admin password</label> - <input type="password" name="admin" id="admin" value="<?= Config::admin() ?>"> - <label for="editor">Editor password</label> - <input type="password" name="editor" id="editor" value="<?= Config::editor() ?>"> - <h2>Page creation</h2> <label for="defaultart">Create new page BODY based on an already existing one</label> <select name="defaultart" id="defaultart"> @@ -44,14 +38,28 @@ } ?> + <div class="checkbox"> + <input type="hidden" name="externallinkblank" value="0"> + <input type="checkbox" name="externallinkblank" id="externallinkblank" value="1" <?= Config::externallinkblank() ? 'checked' : '' ?>> + <label for="externallinkblank">Open external links in new tab</label> + </div> + + <div class="checkbox"> + <input type="hidden" name="internallinkblank" value="0"> + <input type="checkbox" name="internallinkblank" id="internallinkblank" value="1" <?= Config::internallinkblank() ? 'checked' : '' ?>> + <label for="internallinkblank">Open internal links in new tab</label> + </div> + <h2>Editing</h2> <label for="existnot">Text to show when a page does not exist yet</label> <input type="text" name="existnot" id="existnot" value="<?= Config::existnot() ?>"> - <label for="showeditmenu">Show editor menu in top right corner of pages</label> + <div class="checkbox"> <input type="checkbox" name="showeditmenu" id="showeditmenu" <?= Config::showeditmenu() === true ? 'checked' : '' ?>> + <label for="showeditmenu">Show editor menu in top right corner of pages</label> + </div> <?php if(Config::showeditmenu() === true) { diff --git a/app/view/templates/edittopbar.php b/app/view/templates/edittopbar.php index c547572..d5d032b 100644 --- a/app/view/templates/edittopbar.php +++ b/app/view/templates/edittopbar.php @@ -9,7 +9,7 @@ <a href="<?= $this->url('home') ?>" class="icon" >⍇</a> </span> <span> - <input type="submit" value="update" accesskey="x" form="update"> + <input type="submit" value="update" accesskey="s" form="update"> </span> diff --git a/app/view/templates/homeopt.php b/app/view/templates/homeopt.php index f240d0a..a37e65b 100644 --- a/app/view/templates/homeopt.php +++ b/app/view/templates/homeopt.php @@ -23,8 +23,7 @@ foreach ($opt->col('array') as $key => $col) { <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="2" name="secure" value="2"<?= $opt->secure() == 2 ? "checked" : "" ?>/><label for="2">not published</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> diff --git a/assets/css/home.css b/assets/css/home.css index f9c0a99..41e00d9 100644 --- a/assets/css/home.css +++ b/assets/css/home.css @@ -84,6 +84,13 @@ main.admin input, select, textarea { max-width: 400px; } + +div.checkbox [type="checkbox"] { + display: inline-block; + width: auto; +} + + main.font input, select, textarea { display: block; } |