From ade9edeb849803082856f7633194913ad4df93a0 Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Sun, 26 Apr 2020 21:03:08 +0200 Subject: Automatic code formatting --- .gitignore | 1 + .php_cs.dist | 15 + css.php | 10 +- ratatoeskr/backend.php | 1589 ++++++++++++++++-------------------- ratatoeskr/config.php | 6 +- ratatoeskr/frontend.php | 457 +++++------ ratatoeskr/languages.php | 372 ++++----- ratatoeskr/main.php | 55 +- ratatoeskr/setup/create_tables.php | 10 +- ratatoeskr/setup/setup.php | 52 +- ratatoeskr/sys/db.php | 22 +- ratatoeskr/sys/init_ste.php | 20 +- ratatoeskr/sys/models.php | 1162 +++++++++++++++----------- ratatoeskr/sys/plugin_api.php | 66 +- ratatoeskr/sys/pluginpackage.php | 163 ++-- ratatoeskr/sys/pwhash.php | 12 +- ratatoeskr/sys/textprocessors.php | 27 +- ratatoeskr/sys/translation.php | 29 +- ratatoeskr/sys/urlprocess.php | 97 ++- ratatoeskr/sys/utils.php | 66 +- ratatoeskr/translations/de.php | 4 +- ratatoeskr/translations/en.php | 4 +- session_doctor.php | 3 +- setup.php | 114 +-- 24 files changed, 2219 insertions(+), 2137 deletions(-) create mode 100644 .php_cs.dist diff --git a/.gitignore b/.gitignore index 620bfda..855df26 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ ratatoeskr/libs/markdown.php ratatoeskr/libs/kses.php ratatoeskr/libs/jquery.min.js ratatoeskr/config.php +.php_cs.cache diff --git a/.php_cs.dist b/.php_cs.dist new file mode 100644 index 0000000..b76f08e --- /dev/null +++ b/.php_cs.dist @@ -0,0 +1,15 @@ +notPath('/plugin_extradata/') + ->notPath('/templates/') + ->notPath('/libs/') + ->in(__DIR__); + +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR1' => true, + '@PSR2' => true, + 'array_syntax' => ['syntax' => 'short'], + ]) + ->setFinder($finder) +; diff --git a/css.php b/css.php index 466b103..a1ae6bc 100644 --- a/css.php +++ b/css.php @@ -11,16 +11,14 @@ require_once(dirname(__FILE__) . "/ratatoeskr/sys/models.php"); -if(!isset($_GET["name"])) +if (!isset($_GET["name"])) { die(); -try -{ +} +try { $style = Style::by_name($_GET["name"]); header("Content-Type: text/css; charset=UTF-8"); echo str_replace("%root%", ".", $style->code); -} -catch(DoesNotExistError $e) -{ +} catch (DoesNotExistError $e) { header("HTTP/1.1 404 Not Found"); header("Content-Type: text/plain; charset=UTF-8"); echo "404 - Not found."; diff --git a/ratatoeskr/backend.php b/ratatoeskr/backend.php index ac43f75..ab18ce1 100644 --- a/ratatoeskr/backend.php +++ b/ratatoeskr/backend.php @@ -15,22 +15,19 @@ require_once(dirname(__FILE__) . "/sys/textprocessors.php"); require_once(dirname(__FILE__) . "/sys/plugin_api.php"); require_once(dirname(__FILE__) . "/languages.php"); -$admin_grp = NULL; +$admin_grp = null; /* Mass creation of tags. */ function maketags($tagnames, $lang) { - $rv = array(); - foreach($tagnames as $tagname) - { - if(empty($tagname)) + $rv = []; + foreach ($tagnames as $tagname) { + if (empty($tagname)) { continue; - try - { - $tag = Tag::by_name($tagname); } - catch(DoesNotExistError $e) - { + try { + $tag = Tag::by_name($tagname); + } catch (DoesNotExistError $e) { $tag = Tag::create($tagname); $tag->title[$lang] = new Translation($tagname, ""); } @@ -39,27 +36,26 @@ function maketags($tagnames, $lang) return $rv; } -$backend_subactions = NULL; +$backend_subactions = null; function build_backend_subactions() { -global $backend_subactions, $pluginpages_handlers; + global $backend_subactions, $pluginpages_handlers; -$backend_subactions = url_action_subactions(array( - "_index" => url_action_alias(array("login")), - "index" => url_action_alias(array("login")), + $backend_subactions = url_action_subactions([ + "_index" => url_action_alias(["login"]), + "index" => url_action_alias(["login"]), /* _prelude guarantees that the user is logged in properly, so we do not have to care about that later, and sets some STE vars. */ - "_prelude" => function(&$data, $url_now, &$url_next) - { + "_prelude" => function (&$data, $url_now, &$url_next) { global $ratatoeskr_settings, $admin_grp, $ste, $languages; - if($admin_grp === NULL) + if ($admin_grp === null) { $admin_grp = Group::by_name("admins"); + } - $ste->vars["all_languages"] = array(); - $ste->vars["all_langcodes"] = array(); - foreach($languages as $code => $data) - { + $ste->vars["all_languages"] = []; + $ste->vars["all_langcodes"] = []; + foreach ($languages as $code => $data) { $ste->vars["all_languages"][$code] = $data["language"]; $ste->vars["all_langcodes"][] = $code; } @@ -68,162 +64,160 @@ $backend_subactions = url_action_subactions(array( /* Check authentification */ - if(isset($_SESSION["ratatoeskr_uid"])) - { - try - { + if (isset($_SESSION["ratatoeskr_uid"])) { + try { $user = User::by_id($_SESSION["ratatoeskr_uid"]); - if(($user->pwhash == $_SESSION["ratatoeskr_pwhash"]) and $user->member_of($admin_grp)) - { - if(empty($user->language)) - { + if (($user->pwhash == $_SESSION["ratatoeskr_pwhash"]) and $user->member_of($admin_grp)) { + if (empty($user->language)) { $user->language = $ratatoeskr_settings["default_language"]; $user->save(); } load_language($user->language); - if($url_next[0] == "login") - $url_next = array("content", "write"); + if ($url_next[0] == "login") { + $url_next = ["content", "write"]; + } $data["user"] = $user; - $ste->vars["user"] = array("id" => $user->get_id(), "name" => $user->username, "lang" => $user->language); + $ste->vars["user"] = ["id" => $user->get_id(), "name" => $user->username, "lang" => $user->language]; return; /* Authentification successful, continue */ - } - else + } else { unset($_SESSION["ratatoeskr_uid"]); - } - catch(DoesNotExistError $e) - { + } + } catch (DoesNotExistError $e) { unset($_SESSION["ratatoeskr_uid"]); } } load_language(); /* If we are here, user is not logged in... */ - $url_next = array("login"); + $url_next = ["login"]; }, - "login" => url_action_simple(function($data) - { + "login" => url_action_simple(function ($data) { global $ste, $admin_grp; - if(!empty($_POST["user"])) - { - try - { + if (!empty($_POST["user"])) { + try { $user = User::by_name($_POST["user"]); - if(!PasswordHash::validate($_POST["password"], $user->pwhash)) + if (!PasswordHash::validate($_POST["password"], $user->pwhash)) { throw new Exception(); - if(!$user->member_of($admin_grp)) + } + if (!$user->member_of($admin_grp)) { throw new Exception(); + } /* Login successful. */ $_SESSION["ratatoeskr_uid"] = $user->get_id(); $_SESSION["ratatoeskr_pwhash"] = $user->pwhash; load_language($user->language); $data["user"] = $user; - $ste->vars["user"] = array("id" => $user->get_id(), "name" => $user->username, "lang" => $user->language); - } - catch(Exception $e) - { - $ste->vars["login_failed"] = True; + $ste->vars["user"] = ["id" => $user->get_id(), "name" => $user->username, "lang" => $user->language]; + } catch (Exception $e) { + $ste->vars["login_failed"] = true; } - if(isset($data["user"])) - throw new Redirect(array("content", "write")); + if (isset($data["user"])) { + throw new Redirect(["content", "write"]); + } } echo $ste->exectemplate("/systemtemplates/backend_login.html"); }), - "logout" => url_action_simple(function($data) - { + "logout" => url_action_simple(function ($data) { unset($_SESSION["ratatoeskr_uid"]); unset($_SESSION["ratatoeskr_pwhash"]); load_language(); - throw new Redirect(array("login")); + throw new Redirect(["login"]); }), - "content" => url_action_subactions(array( - "write" => function(&$data, $url_now, &$url_next) - { + "content" => url_action_subactions([ + "write" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $textprocessors, $ratatoeskr_settings, $languages, $articleeditor_plugins; list($article, $editlang) = array_slice($url_next, 0); - if(!isset($editlang)) + if (!isset($editlang)) { $editlang = $data["user"]->language; - if(isset($article)) + } + if (isset($article)) { $ste->vars["article_editurl"] = urlencode($article) . "/" . urlencode($editlang); - else + } else { $ste->vars["article_editurl"] = ""; + } - $url_next = array(); + $url_next = []; $default_section = Section::by_id($ratatoeskr_settings["default_section"]); $ste->vars["section"] = "content"; $ste->vars["submenu"] = isset($article) ? "articles" : "newarticle"; - $ste->vars["textprocessors"] = array(); - foreach($textprocessors as $txtproc => $properties) - if($properties[1]) + $ste->vars["textprocessors"] = []; + foreach ($textprocessors as $txtproc => $properties) { + if ($properties[1]) { $ste->vars["textprocessors"][] = $txtproc; + } + } - $ste->vars["sections"] = array(); - foreach(Section::all() as $section) + $ste->vars["sections"] = []; + foreach (Section::all() as $section) { $ste->vars["sections"][] = $section->name; + } $ste->vars["article_section"] = $default_section->name; /* Check Form */ - $fail_reasons = array(); + $fail_reasons = []; - if(isset($_POST["save_article"])) - { - if(!Article::test_urlname($_POST["urlname"])) + if (isset($_POST["save_article"])) { + if (!Article::test_urlname($_POST["urlname"])) { $fail_reasons[] = $translation["invalid_urlname"]; - else + } else { $inputs["urlname"] = $_POST["urlname"]; - if(!Article::test_status(@$_POST["article_status"])) + } + if (!Article::test_status(@$_POST["article_status"])) { $fail_reasons[] = $translation["invalid_article_status"]; - else + } else { $inputs["article_status"] = (int) $_POST["article_status"]; - if(!isset($textprocessors[@$_POST["content_txtproc"]])) + } + if (!isset($textprocessors[@$_POST["content_txtproc"]])) { $fail_reasons[] = $translation["unknown_txtproc"]; - else + } else { $inputs["content_txtproc"] = $_POST["content_txtproc"]; - if(!isset($textprocessors[@$_POST["excerpt_txtproc"]])) + } + if (!isset($textprocessors[@$_POST["excerpt_txtproc"]])) { $fail_reasons[] = $translation["unknown_txtproc"]; - else + } else { $inputs["excerpt_txtproc"] = $_POST["excerpt_txtproc"]; - if(!empty($_POST["date"])) - { - if(($time_tmp = @DateTime::createFromFormat("Y-m-d H:i:s", @$_POST["date"])) === False) + } + if (!empty($_POST["date"])) { + if (($time_tmp = @DateTime::createFromFormat("Y-m-d H:i:s", @$_POST["date"])) === false) { $fail_reasons[] = $translation["invalid_date"]; - else + } else { $inputs["date"] = @$time_tmp->getTimestamp(); - } - else + } + } else { $inputs["date"] = time(); + } $inputs["allow_comments"] = !(empty($_POST["allow_comments"]) or ($_POST["allow_comments"] != "yes")); - try - { + try { $inputs["article_section"] = Section::by_name($_POST["section"]); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { $fail_reasons[] = $translation["unknown_section"]; } $inputs["title"] = $_POST["title"]; $inputs["content"] = $_POST["content"]; $inputs["excerpt"] = $_POST["excerpt"]; - $inputs["tags"] = array_filter(array_map("trim", explode(",", $_POST["tags"])), function($t) { return !empty($t); }); - if(isset($_POST["saveaslang"])) + $inputs["tags"] = array_filter(array_map("trim", explode(",", $_POST["tags"])), function ($t) { + return !empty($t); + }); + if (isset($_POST["saveaslang"])) { $editlang = $_POST["saveaslang"]; - } - else - { + } + } else { /* Call articleeditor plugins */ - $article = empty($article) ? NULL : Article::by_urlname($article); - foreach($articleeditor_plugins as $plugin) - call_user_func($plugin["fx"], $article, False); + $article = empty($article) ? null : Article::by_urlname($article); + foreach ($articleeditor_plugins as $plugin) { + call_user_func($plugin["fx"], $article, false); + } } function fill_article(&$article, $inputs, $editlang) @@ -239,144 +233,138 @@ $backend_subactions = url_action_subactions(array( $article->allow_comments = $inputs["allow_comments"]; } - if(empty($article)) - { + if (empty($article)) { /* New Article */ $ste->vars["pagetitle"] = $translation["new_article"]; - if(empty($fail_reasons) and isset($_POST["save_article"])) - { + if (empty($fail_reasons) and isset($_POST["save_article"])) { $article = Article::create($inputs["urlname"]); fill_article($article, $inputs, $editlang); /* Calling articleeditor plugins */ - $call_after_save = array(); - foreach($articleeditor_plugins as $plugin) - { - $result = call_user_func($plugin["fx"], $article, True); - if(is_string($result)) + $call_after_save = []; + foreach ($articleeditor_plugins as $plugin) { + $result = call_user_func($plugin["fx"], $article, true); + if (is_string($result)) { $fail_reasons[] = $result; - elseif($result !== NULL) + } elseif ($result !== null) { $call_after_save[] = $result; + } } - if(empty($fail_reasons)) - { - try - { + if (empty($fail_reasons)) { + try { $article->save(); - foreach($call_after_save as $cb) + foreach ($call_after_save as $cb) { call_user_func($cb, $article); + } $ste->vars["article_editurl"] = urlencode($article->urlname) . "/" . urlencode($editlang); $ste->vars["success"] = htmlesc($translation["article_save_success"]); - } - catch(AlreadyExistsError $e) - { + } catch (AlreadyExistsError $e) { $fail_reasons[] = $translation["article_name_already_in_use"]; } } } - } - else - { - try - { - if(!($article instanceof Article)) + } else { + try { + if (!($article instanceof Article)) { $article = Article::by_urlname($article); - } - catch(DoesNotExistError $e) - { + } + } catch (DoesNotExistError $e) { throw new NotFoundError(); } - if(empty($fail_reasons) and isset($_POST["save_article"])) - { + if (empty($fail_reasons) and isset($_POST["save_article"])) { fill_article($article, $inputs, $editlang); /* Calling articleeditor plugins */ - $call_after_save = array(); - foreach($articleeditor_plugins as $plugin) - { - $result = call_user_func($plugin["fx"], $article, True); - if(is_string($result)) + $call_after_save = []; + foreach ($articleeditor_plugins as $plugin) { + $result = call_user_func($plugin["fx"], $article, true); + if (is_string($result)) { $fail_reasons[] = $result; - elseif($result !== NULL) + } elseif ($result !== null) { $call_after_save[] = $result; + } } - if(empty($fail_reasons)) - { - try - { + if (empty($fail_reasons)) { + try { $article->save(); - foreach($call_after_save as $cb) - call_user_func($cb, $article); + foreach ($call_after_save as $cb) { + call_user_func($cb, $article); + } $ste->vars["article_editurl"] = urlencode($article->urlname) . "/" . urlencode($editlang); $ste->vars["success"] = htmlesc($translation["article_save_success"]); - } - catch(AlreadyExistsError $e) - { + } catch (AlreadyExistsError $e) { $fail_reasons[] = $translation["article_name_already_in_use"]; } } } - if(!isset($article->title[$editlang])) - { - $langs_available = array(); - foreach($article->title as $lang => $_) + if (!isset($article->title[$editlang])) { + $langs_available = []; + foreach ($article->title as $lang => $_) { $langs_available[] = $lang; + } $editlang = $langs_available[0]; } - foreach(array( + foreach ([ "urlname" => "urlname", "status" => "article_status", "timestamp" => "date", "allow_comments" => "allow_comments" - ) as $prop => $k_out) - { - if(!isset($inputs[$k_out])) + ] as $prop => $k_out) { + if (!isset($inputs[$k_out])) { $inputs[$k_out] = $article->$prop; + } } - if(!isset($inputs["title"])) + if (!isset($inputs["title"])) { $inputs["title"] = $article->title[$editlang]->text; - if(!isset($inputs["content"])) - { + } + if (!isset($inputs["content"])) { $translation_obj = $article->text[$editlang]; $inputs["content"] = $translation_obj->text; $inputs["content_txtproc"] = $translation_obj->texttype; } - if(!isset($inputs["excerpt"])) - { + if (!isset($inputs["excerpt"])) { $translation_obj = $article->excerpt[$editlang]; $inputs["excerpt"] = $translation_obj->text; $inputs["excerpt_txtproc"] = $translation_obj->texttype; } - if(!isset($inputs["article_section"])) + if (!isset($inputs["article_section"])) { $inputs["article_section"] = $article->get_section(); - if(!isset($inputs["tags"])) - $inputs["tags"] = array_map(function($tag) use ($editlang) { return $tag->name; }, $article->get_tags()); - $ste->vars["morelangs"] = array(); + } + if (!isset($inputs["tags"])) { + $inputs["tags"] = array_map(function ($tag) use ($editlang) { + return $tag->name; + }, $article->get_tags()); + } + $ste->vars["morelangs"] = []; $ste->vars["pagetitle"] = $article->title[$editlang]->text; - foreach($article->title as $lang => $_) - { - if($lang != $editlang) - $ste->vars["morelangs"][] = array("url" => urlencode($article->urlname) . "/$lang", "full" => "($lang) " . $languages[$lang]["language"]); + foreach ($article->title as $lang => $_) { + if ($lang != $editlang) { + $ste->vars["morelangs"][] = ["url" => urlencode($article->urlname) . "/$lang", "full" => "($lang) " . $languages[$lang]["language"]]; + } } } - if(!isset($inputs["date"])) + if (!isset($inputs["date"])) { $inputs["date"] = time(); - if(!isset($inputs["article_status"])) + } + if (!isset($inputs["article_status"])) { $inputs["article_status"] = ARTICLE_STATUS_LIVE; + } /* Push data back to template */ - if(isset($inputs["tags"])) + if (isset($inputs["tags"])) { $ste->vars["tags"] = implode(", ", $inputs["tags"]); - if(isset($inputs["article_section"])) + } + if (isset($inputs["article_section"])) { $ste->vars["article_section"] = $inputs["article_section"]->name; + } $ste->vars["editlang"] = $editlang; - foreach(array( + foreach ([ "urlname" => "urlname", "article_status" => "article_status", "title" => "title", @@ -386,41 +374,40 @@ $backend_subactions = url_action_subactions(array( "excerpt" => "excerpt", "date" => "date", "allow_comments" => "allow_comments" - ) as $k_in => $k_out) - { - if(isset($inputs[$k_in])) + ] as $k_in => $k_out) { + if (isset($inputs[$k_in])) { $ste->vars[$k_out] = $inputs[$k_in]; + } } /* Displaying article editor plugins */ - $ste->vars["displayed_plugins"] = array_map(function($x) { return array("label" => $x["label"], "template" => $x["template"]); }, array_filter($articleeditor_plugins, function($x) { return $x["display"]; })); + $ste->vars["displayed_plugins"] = array_map(function ($x) { + return ["label" => $x["label"], "template" => $x["template"]]; + }, array_filter($articleeditor_plugins, function ($x) { + return $x["display"]; + })); - if(!empty($fail_reasons)) + if (!empty($fail_reasons)) { $ste->vars["failed"] = $fail_reasons; + } echo $ste->exectemplate("/systemtemplates/content_write.html"); }, - "tags" => function(&$data, $url_now, &$url_next) - { + "tags" => function (&$data, $url_now, &$url_next) { global $translation, $languages, $ste, $rel_path_to_root; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "content"; $ste->vars["submenu"] = "tags"; $ste->vars["pagetitle"] = $translation["tags_overview"]; - if(isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) - { - foreach($_POST["tag_multiselect"] as $tagid) - { - try - { + if (isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) { + foreach ($_POST["tag_multiselect"] as $tagid) { + try { $tag = Tag::by_id($tagid); $tag->delete(); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } @@ -428,72 +415,61 @@ $backend_subactions = url_action_subactions(array( $ste->vars["success"] = $translation["tags_successfully_deleted"]; } - if(isset($_POST["save_changes"])) - { - $newlang = (!empty($_POST["new_language"])) ? $_POST["new_language"] : NULL; - $newtag = NULL; + if (isset($_POST["save_changes"])) { + $newlang = (!empty($_POST["new_language"])) ? $_POST["new_language"] : null; + $newtag = null; - if(!empty($_POST["newtagname"])) - { - if(!Tag::test_name(@$_POST["newtagname"])) + if (!empty($_POST["newtagname"])) { + if (!Tag::test_name(@$_POST["newtagname"])) { $ste->vars["error"] = $translation["invalid_tag_name"]; - else + } else { $newtag = $_POST["newtagname"]; + } } - if(($newlang !== NULL) and (!isset($languages[$newlang]))) - $newlang = NULL; - if($newtag !== NULL) - { - try - { + if (($newlang !== null) and (!isset($languages[$newlang]))) { + $newlang = null; + } + if ($newtag !== null) { + try { $newtag = Tag::create($newtag); - } - catch(AlreadyExistsError $e) - { - $newtag = NULL; + } catch (AlreadyExistsError $e) { + $newtag = null; } } - $translations = array(); - foreach($_POST as $k => $v) - { - if(preg_match('/tagtrans_(NEW|[a-z]{2})_(.*)/', $k, $matches) == 1) - { + $translations = []; + foreach ($_POST as $k => $v) { + if (preg_match('/tagtrans_(NEW|[a-z]{2})_(.*)/', $k, $matches) == 1) { $lang = ($matches[1] == "NEW") ? $newlang : $matches[1]; $tag = $matches[2]; - if($lang === NULL) + if ($lang === null) { continue; + } $translations[$tag][$lang] = $v; } } - foreach($translations as $tag => $langmap) - { - if($tag == "NEW") - { - if($newtag === NULL) + foreach ($translations as $tag => $langmap) { + if ($tag == "NEW") { + if ($newtag === null) { continue; + } $tag = $newtag; - } - else - { - try - { + } else { + try { $tag = Tag::by_id($tag); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } - foreach($langmap as $l => $text) - { - if(empty($text)) + foreach ($langmap as $l => $text) { + if (empty($text)) { unset($tag->title[$l]); - else + } else { $tag->title[$l] = new Translation($text, ""); + } } $tag->save(); @@ -502,59 +478,54 @@ $backend_subactions = url_action_subactions(array( $ste->vars["success"] = $translation["tags_successfully_edited"]; } - $ste->vars["alltags"] = array(); - $taglangs = array(); + $ste->vars["alltags"] = []; + $taglangs = []; $alltags = Tag::all(); - foreach($alltags as $tag) - { - $transls = array(); - foreach($tag->title as $l => $t) - { - if(!in_array($l, $taglangs)) + foreach ($alltags as $tag) { + $transls = []; + foreach ($tag->title as $l => $t) { + if (!in_array($l, $taglangs)) { $taglangs[] = $l; + } $transls[$l] = $t->text; } - $ste->vars["alltags"][] = array( + $ste->vars["alltags"][] = [ "id" => $tag->get_id(), "name" => $tag->name, "translations" => $transls - ); + ]; } $unused_langs = array_diff(array_keys($languages), $taglangs); - $ste->vars["all_tag_langs"] = array(); - foreach($taglangs as $l) + $ste->vars["all_tag_langs"] = []; + foreach ($taglangs as $l) { $ste->vars["all_tag_langs"][$l] = $languages[$l]["language"]; - $ste->vars["unused_languages"] = array(); - foreach($unused_langs as $l) + } + $ste->vars["unused_languages"] = []; + foreach ($unused_langs as $l) { $ste->vars["unused_languages"][$l] = $languages[$l]["language"]; + } echo $ste->exectemplate("/systemtemplates/tags_overview.html"); }, - "articles" => function(&$data, $url_now, &$url_next) - { + "articles" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "content"; $ste->vars["submenu"] = "articles"; $ste->vars["pagetitle"] = $translation["menu_articles"]; - if(isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) - { - foreach($_POST["article_multiselect"] as $article_urlname) - { - try - { + if (isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) { + foreach ($_POST["article_multiselect"] as $article_urlname) { + try { $article = Article::by_urlname($article_urlname); $article->delete(); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } @@ -565,190 +536,193 @@ $backend_subactions = url_action_subactions(array( $articles = Article::all(); /* Filtering */ - $filterquery = array(); - if(!empty($_GET["filter_urlname"])) - { + $filterquery = []; + if (!empty($_GET["filter_urlname"])) { $searchfor = strtolower($_GET["filter_urlname"]); - $articles = array_filter($articles, function($a) use ($searchfor) { return strpos(strtolower($a->urlname), $searchfor) !== False; }); + $articles = array_filter($articles, function ($a) use ($searchfor) { + return strpos(strtolower($a->urlname), $searchfor) !== false; + }); $filterquery[] = "filter_urlname=" . urlencode($_GET["filter_urlname"]); $ste->vars["filter_urlname"] = $_GET["filter_urlname"]; } - if(!empty($_GET["filter_tag"])) - { + if (!empty($_GET["filter_tag"])) { $searchfor = $_GET["filter_tag"]; - $articles = array_filter($articles, function($a) use ($searchfor) { foreach($a->get_tags() as $t) { if($t->name==$searchfor) return True; } return False; }); + $articles = array_filter($articles, function ($a) use ($searchfor) { + foreach ($a->get_tags() as $t) { + if ($t->name==$searchfor) { + return true; + } + } + return false; + }); $filterquery[] = "filter_tag=" . urlencode($searchfor); $ste->vars["filter_tag"] = $searchfor; } - if(!empty($_GET["filter_section"])) - { + if (!empty($_GET["filter_section"])) { $searchfor = $_GET["filter_section"]; - $articles = array_filter($articles, function($a) use ($searchfor) { return $a->get_section()->name == $searchfor; }); + $articles = array_filter($articles, function ($a) use ($searchfor) { + return $a->get_section()->name == $searchfor; + }); $filterquery[] = "filter_section=" . urlencode($searchfor); $ste->vars["filter_section"] = $searchfor; } $ste->vars["filterquery"] = implode("&", $filterquery); /* Sorting */ - if(isset($_GET["sort_asc"])) - { - switch($_GET["sort_asc"]) - { + if (isset($_GET["sort_asc"])) { + switch ($_GET["sort_asc"]) { case "date": $ste->vars["sortquery"] = "sort_asc=date"; - $ste->vars["sort_asc_date"] = True; - $ste->vars["sorting"] = array("dir" => "asc", "by" => "date"); - usort($articles, function($a, $b) { return intcmp($a->timestamp, $b->timestamp); }); + $ste->vars["sort_asc_date"] = true; + $ste->vars["sorting"] = ["dir" => "asc", "by" => "date"]; + usort($articles, function ($a, $b) { + return intcmp($a->timestamp, $b->timestamp); + }); break; case "section": $ste->vars["sortquery"] = "sort_asc=section"; - $ste->vars["sort_asc_section"] = True; - $ste->vars["sorting"] = array("dir" => "asc", "by" => "section"); - usort($articles, function($a, $b) { return strcmp($a->get_section()->name, $b->get_section()->name); }); + $ste->vars["sort_asc_section"] = true; + $ste->vars["sorting"] = ["dir" => "asc", "by" => "section"]; + usort($articles, function ($a, $b) { + return strcmp($a->get_section()->name, $b->get_section()->name); + }); break; case "urlname": $ste->vars["sortquery"] = "sort_asc=urlname"; + // no break default: - $ste->vars["sort_asc_urlname"] = True; - $ste->vars["sorting"] = array("dir" => "asc", "by" => "urlname"); - usort($articles, function($a, $b) { return strcmp($a->urlname, $b->urlname); }); + $ste->vars["sort_asc_urlname"] = true; + $ste->vars["sorting"] = ["dir" => "asc", "by" => "urlname"]; + usort($articles, function ($a, $b) { + return strcmp($a->urlname, $b->urlname); + }); break; } - } - elseif(isset($_GET["sort_desc"])) - { - switch($_GET["sort_desc"]) - { + } elseif (isset($_GET["sort_desc"])) { + switch ($_GET["sort_desc"]) { case "date": $ste->vars["sortquery"] = "sort_desc=date"; - $ste->vars["sort_desc_date"] = True; - $ste->vars["sorting"] = array("dir" => "desc", "by" => "date"); - usort($articles, function($a, $b) { return intcmp($b->timestamp, $a->timestamp); }); + $ste->vars["sort_desc_date"] = true; + $ste->vars["sorting"] = ["dir" => "desc", "by" => "date"]; + usort($articles, function ($a, $b) { + return intcmp($b->timestamp, $a->timestamp); + }); break; case "section": $ste->vars["sortquery"] = "sort_desc=section"; - $ste->vars["sort_desc_section"] = True; - $ste->vars["sorting"] = array("dir" => "desc", "by" => "section"); - usort($articles, function($a, $b) { return strcmp($b->get_section()->name, $a->get_section()->name); }); + $ste->vars["sort_desc_section"] = true; + $ste->vars["sorting"] = ["dir" => "desc", "by" => "section"]; + usort($articles, function ($a, $b) { + return strcmp($b->get_section()->name, $a->get_section()->name); + }); break; case "urlname": $ste->vars["sortquery"] = "sort_desc=urlname"; - $ste->vars["sort_desc_urlname"] = True; - $ste->vars["sorting"] = array("dir" => "desc", "by" => "urlname"); - usort($articles, function($a, $b) { return strcmp($b->urlname, $a->urlname); }); + $ste->vars["sort_desc_urlname"] = true; + $ste->vars["sorting"] = ["dir" => "desc", "by" => "urlname"]; + usort($articles, function ($a, $b) { + return strcmp($b->urlname, $a->urlname); + }); break; default: - $ste->vars["sort_asc_urlname"] = True; - $ste->vars["sorting"] = array("dir" => "asc", "by" => "urlname"); - usort($articles, function($a, $b) { return strcmp($a->urlname, $b->urlname); }); + $ste->vars["sort_asc_urlname"] = true; + $ste->vars["sorting"] = ["dir" => "asc", "by" => "urlname"]; + usort($articles, function ($a, $b) { + return strcmp($a->urlname, $b->urlname); + }); break; } - } - else - { - $ste->vars["sort_asc_urlname"] = True; - $ste->vars["sorting"] = array("dir" => "asc", "by" => "urlname"); - usort($articles, function($a, $b) { return strcmp($a->urlname, $b->urlname); }); + } else { + $ste->vars["sort_asc_urlname"] = true; + $ste->vars["sorting"] = ["dir" => "asc", "by" => "urlname"]; + usort($articles, function ($a, $b) { + return strcmp($a->urlname, $b->urlname); + }); } - $ste->vars["articles"] = array_map(function($article) { - $avail_langs = array(); - foreach($article->title as $lang => $_) + $ste->vars["articles"] = array_map(function ($article) { + $avail_langs = []; + foreach ($article->title as $lang => $_) { $avail_langs[] = $lang; + } sort($avail_langs); $a_section = $article->get_section(); - return array( + return [ "urlname" => $article->urlname, "languages" => $avail_langs, "date" => $article->timestamp, - "tags" => array_map(function($tag) { return $tag->name; }, $article->get_tags()), - "section" => array("id" => $a_section->get_id(), "name" => $a_section->name) - ); + "tags" => array_map(function ($tag) { + return $tag->name; + }, $article->get_tags()), + "section" => ["id" => $a_section->get_id(), "name" => $a_section->name] + ]; }, $articles); echo $ste->exectemplate("/systemtemplates/articles.html"); }, - "images" => function(&$data, $url_now, &$url_next) - { + "images" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root; list($imgid, $imageaction) = $url_next; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "content"; $ste->vars["submenu"] = "images"; $ste->vars["pagetitle"] = $translation["menu_images"]; - if(!empty($imgid) and is_numeric($imgid)) - { - try - { + if (!empty($imgid) and is_numeric($imgid)) { + try { $image = Image::by_id($imgid); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { throw new NotFoundError(); } - if(empty($imageaction)) + if (empty($imageaction)) { throw new NotFoundError(); - else - { - if(($imageaction == "markdown") or ($imageaction == "html") or ($imageaction == "ste")) - { + } else { + if (($imageaction == "markdown") or ($imageaction == "html") or ($imageaction == "ste")) { $ste->vars["pagetitle"] = $translation["generate_embed_code"]; $ste->vars["image_id"] = $image->get_id(); $ste->vars["markup_variant"] = $imageaction; - if(isset($_POST["img_alt"])) - { - if($imageaction == "markdown") + if (isset($_POST["img_alt"])) { + if ($imageaction == "markdown") { $ste->vars["embed_code"] = "![" . str_replace("]", "\\]", $_POST["img_alt"]) . "](%root%/images/" . str_replace(")", "\\)", urlencode($image->get_filename())) . ")"; - elseif($imageaction == "html") + } elseif ($imageaction == "html") { $ste->vars["embed_code"] = "get_filename())) . "\" alt=\"" . htmlesc($_POST["img_alt"]) . "\" />"; - elseif($imageaction == "ste") + } elseif ($imageaction == "ste") { $ste->vars["embed_code"] = "get_filename())) . "\" alt=\"" . htmlesc($_POST["img_alt"]) . "\" />"; + } } echo $ste->exectemplate("/systemtemplates/image_embed.html"); - } - else + } else { throw new NotFoundError(); + } } return; } /* Upload Form */ - if(isset($_POST["upload"])) - { - try - { + if (isset($_POST["upload"])) { + try { $image = Image::create((!empty($_POST["upload_name"])) ? $_POST["upload_name"] : $_FILES["upload_img"]["name"], $_FILES["upload_img"]["tmp_name"]); $image->save(); $ste->vars["success"] = $translation["upload_success"]; - } - catch(IOError $e) - { + } catch (IOError $e) { $ste->vars["error"] = $translation["upload_failed"]; - } - catch(UnknownFileFormat $e) - { + } catch (UnknownFileFormat $e) { $ste->vars["error"] = $translation["unknown_file_format"]; } } /* Mass delete */ - if(isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) - { - foreach($_POST["image_multiselect"] as $image_id) - { - try - { + if (isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) { + foreach ($_POST["image_multiselect"] as $image_id) { + try { $image = Image::by_id($image_id); $image->delete(); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } @@ -758,60 +732,54 @@ $backend_subactions = url_action_subactions(array( $images = Image::all(); - $ste->vars["images"] = array_map(function($img) { return array( + $ste->vars["images"] = array_map(function ($img) { + return [ "id" => $img->get_id(), "name" => $img->name, "file" => $img->get_filename() - ); }, $images); + ]; + }, $images); echo $ste->exectemplate("/systemtemplates/image_list.html"); }, - "comments" => function(&$data, $url_now, &$url_next) - { + "comments" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root; list($comment_id) = $url_next; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "content"; $ste->vars["submenu"] = "comments"; $ste->vars["pagetitle"] = $translation["menu_comments"]; /* Single comment? */ - if(!empty($comment_id)) - { - try - { + if (!empty($comment_id)) { + try { $comment = Comment::by_id($comment_id); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { throw new NotFoundError(); } - if(!$comment->read_by_admin) - { - $comment->read_by_admin = True; + if (!$comment->read_by_admin) { + $comment->read_by_admin = true; $comment->save(); } - if(isset($_POST["action_on_comment"])) - { - switch($_POST["action_on_comment"]) - { + if (isset($_POST["action_on_comment"])) { + switch ($_POST["action_on_comment"]) { case "delete": $comment->delete(); $ste->vars["success"] = $translation["comment_successfully_deleted"]; goto backend_content_comments_overview; break; case "make_visible": - $comment->visible = True; + $comment->visible = true; $comment->save(); $ste->vars["success"] = $translation["comment_successfully_made_visible"]; break; case "make_invisible": - $comment->visible = False; + $comment->visible = false; $comment->save(); $ste->vars["success"] = $translation["comment_successfully_made_invisible"]; break; @@ -834,45 +802,52 @@ $backend_subactions = url_action_subactions(array( backend_content_comments_overview: /* Perform an action on all selected comments */ - if(!empty($_POST["action_on_comments"])) - { - switch($_POST["action_on_comments"]) - { + if (!empty($_POST["action_on_comments"])) { + switch ($_POST["action_on_comments"]) { case "delete": - $commentaction = function($c) { $c->delete(); }; + $commentaction = function ($c) { + $c->delete(); + }; $ste->vars["success"] = $translation["comments_successfully_deleted"]; break; case "mark_read": - $commentaction = function($c) { $c->read_by_admin = True; $c->save(); }; + $commentaction = function ($c) { + $c->read_by_admin = true; + $c->save(); + }; $ste->vars["success"] = $translation["comments_successfully_marked_read"]; break; case "mark_unread": - $commentaction = function($c) { $c->read_by_admin = False; $c->save(); }; + $commentaction = function ($c) { + $c->read_by_admin = false; + $c->save(); + }; $ste->vars["success"] = $translation["comments_successfully_marked_unread"]; break; case "make_visible": - $commentaction = function($c) { $c->visible = True; $c->save(); }; + $commentaction = function ($c) { + $c->visible = true; + $c->save(); + }; $ste->vars["success"] = $translation["comments_successfully_made_visible"]; break; case "make_invisible": - $commentaction = function($c) { $c->visible = False; $c->save(); }; + $commentaction = function ($c) { + $c->visible = false; + $c->save(); + }; $ste->vars["success"] = $translation["comments_successfully_made_invisible"]; break; - default; + default: $ste->vars["error"] = $translation["unknown_action"]; break; } - if(isset($commentaction)) - { - foreach($_POST["comment_multiselect"] as $c_id) - { - try - { + if (isset($commentaction)) { + foreach ($_POST["comment_multiselect"] as $c_id) { + try { $comment = Comment::by_id($c_id); $commentaction($comment); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } @@ -882,175 +857,163 @@ $backend_subactions = url_action_subactions(array( $comments = Comment::all(); /* Filtering */ - $filterquery = array(); - if(!empty($_GET["filter_article"])) - { + $filterquery = []; + if (!empty($_GET["filter_article"])) { $searchfor = strtolower($_GET["filter_article"]); - $comments = array_filter($comments, function($c) use ($searchfor) { return strpos(strtolower($c->get_article()->urlname), $searchfor) !== False; }); + $comments = array_filter($comments, function ($c) use ($searchfor) { + return strpos(strtolower($c->get_article()->urlname), $searchfor) !== false; + }); $filterquery[] = "filter_article=" . urlencode($_GET["filter_article"]); $ste->vars["filter_article"] = $_GET["filter_article"]; } $ste->vars["filterquery"] = implode("&", $filterquery); /* Sorting */ - if(isset($_GET["sort_asc"])) - { + if (isset($_GET["sort_asc"])) { $sort_dir = 1; $sort_by = $_GET["sort_asc"]; - } - elseif(isset($_GET["sort_desc"])) - { + } elseif (isset($_GET["sort_desc"])) { $sort_dir = -1; $sort_by = $_GET["sort_desc"]; - } - else - { + } else { $sort_dir = 1; $sort_by = "was_read"; } - switch($sort_by) - { + switch ($sort_by) { case "language": - usort($comments, function($a, $b) use ($sort_dir) { return strcmp($a->get_language(), $b->get_language()) * $sort_dir; }); + usort($comments, function ($a, $b) use ($sort_dir) { + return strcmp($a->get_language(), $b->get_language()) * $sort_dir; + }); break; case "date": - usort($comments, function($a, $b) use ($sort_dir) { return intcmp($a->get_timestamp(), $b->get_timestamp()) * $sort_dir; }); + usort($comments, function ($a, $b) use ($sort_dir) { + return intcmp($a->get_timestamp(), $b->get_timestamp()) * $sort_dir; + }); break; case "was_read": default: - usort($comments, function($a, $b) use ($sort_dir) { return intcmp((int) $a->read_by_admin, (int) $b->read_by_admin) * $sort_dir; }); + usort($comments, function ($a, $b) use ($sort_dir) { + return intcmp((int) $a->read_by_admin, (int) $b->read_by_admin) * $sort_dir; + }); $sort_by = "was_read"; break; } $ste->vars["sortquery"] = "sort_" . ($sort_dir == 1 ? "asc" : "desc") . "=$sort_by"; - $ste->vars["sorting"] = array("dir" => ($sort_dir == 1 ? "asc" : "desc"), "by" => $sort_by); - $ste->vars["sort_" . ($sort_dir == 1 ? "asc" : "desc") . "_$sort_by"] = True; + $ste->vars["sorting"] = ["dir" => ($sort_dir == 1 ? "asc" : "desc"), "by" => $sort_by]; + $ste->vars["sort_" . ($sort_dir == 1 ? "asc" : "desc") . "_$sort_by"] = true; - $ste->vars["comments"] = array_map(function($c) { return array( + $ste->vars["comments"] = array_map(function ($c) { + return [ "id" => $c->get_id(), "visible" => $c->visible, "read_by_admin" => $c->read_by_admin, "article" => $c->get_article()->urlname, - "excerpt" => substr(str_replace(array("\r\n", "\n", "\r"), " ", $c->text), 0, 50), + "excerpt" => substr(str_replace(["\r\n", "\n", "\r"], " ", $c->text), 0, 50), "language" => $c->get_language(), "date" => $c->get_timestamp(), "author" => "\"{$c->author_name}\" <{$c->author_mail}>" - ); }, $comments); + ]; + }, $comments); echo $ste->exectemplate("/systemtemplates/comments_list.html"); } - )), - "design" => url_action_subactions(array( - "templates" => function(&$data, $url_now, &$url_next) - { + ]), + "design" => url_action_subactions([ + "templates" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root; list($template) = $url_next; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "design"; $ste->vars["submenu"] = "templates"; $ste->vars["pagetitle"] = $translation["menu_templates"]; - if(isset($template)) - { - if(preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $template) == 0) /* Prevent a possible LFI attack. */ + if (isset($template)) { + if (preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $template) == 0) { /* Prevent a possible LFI attack. */ throw new NotFoundError(); - if(!is_file(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/$template")) + } + if (!is_file(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/$template")) { throw new NotFoundError(); + } $ste->vars["template_name"] = $template; $ste->vars["template_code"] = file_get_contents(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/$template"); } /* Was there a delete request? */ - if(isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) - { - foreach($_POST["templates_multiselect"] as $tplname) - { - if(preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $tplname) == 0) /* Prevent a possible LFI attack. */ + if (isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) { + foreach ($_POST["templates_multiselect"] as $tplname) { + if (preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $tplname) == 0) { /* Prevent a possible LFI attack. */ continue; - if(is_file(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/$tplname")) + } + if (is_file(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/$tplname")) { @unlink(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/$tplname"); + } } $ste->vars["success"] = $translation["templates_successfully_deleted"]; } /* A write request? */ - if(isset($_POST["save_template"])) - { - if(preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $_POST["template_name"]) == 1) - { + if (isset($_POST["save_template"])) { + if (preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $_POST["template_name"]) == 1) { $ste->vars["template_name"] = $_POST["template_name"]; $ste->vars["template_code"] = $_POST["template_code"]; - try - { + try { \ste\transcompile(\ste\parse(\ste\precompile($_POST["template_code"]), $_POST["template_name"])); file_put_contents(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/" . $_POST["template_name"], $_POST["template_code"]); $ste->vars["success"] = $translation["template_successfully_saved"]; - } - catch(\ste\ParseCompileError $e) - { + } catch (\ste\ParseCompileError $e) { $e->rewrite($_POST["template_code"]); $ste->vars["error"] = $translation["could_not_compile_template"] . $e->getMessage(); } - } - else + } else { $ste->vars["error"] = $translation["invalid_template_name"]; + } } /* Get all templates */ - $ste->vars["templates"] = array(); + $ste->vars["templates"] = []; $tpldir = new DirectoryIterator(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates"); - foreach($tpldir as $fo) - { - if($fo->isFile()) + foreach ($tpldir as $fo) { + if ($fo->isFile()) { $ste->vars["templates"][] = $fo->getFilename(); + } } sort($ste->vars["templates"]); echo $ste->exectemplate("/systemtemplates/templates.html"); }, - "styles" => function(&$data, $url_now, &$url_next) - { + "styles" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root; list($style) = $url_next; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "design"; $ste->vars["submenu"] = "styles"; $ste->vars["pagetitle"] = $translation["menu_styles"]; - if(isset($style)) - { - try - { + if (isset($style)) { + try { $style = Style::by_name($style); $ste->vars["style_name"] = $style->name; $ste->vars["style_code"] = $style->code; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { throw new NotFoundError(); } } /* Was there a delete request? */ - if(isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) - { - foreach($_POST["styles_multiselect"] as $stylename) - { - try - { + if (isset($_POST["delete"]) and ($_POST["really_delete"] == "yes")) { + foreach ($_POST["styles_multiselect"] as $stylename) { + try { $style = Style::by_name($stylename); $style->delete(); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } @@ -1058,19 +1021,14 @@ $backend_subactions = url_action_subactions(array( } /* A write request? */ - if(isset($_POST["save_style"])) - { - if(Style::test_name($_POST["style_name"])) - { + if (isset($_POST["save_style"])) { + if (Style::test_name($_POST["style_name"])) { $ste->vars["style_name"] = $_POST["style_name"]; $ste->vars["style_code"] = $_POST["style_code"]; - try - { + try { $style = Style::by_name($_POST["style_name"]); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { $style = Style::create($_POST["style_name"]); } @@ -1078,45 +1036,41 @@ $backend_subactions = url_action_subactions(array( $style->save(); $ste->vars["success"] = $translation["style_successfully_saved"]; - } - else + } else { $ste->vars["error"] = $translation["invalid_style_name"]; + } } /* Get all styles */ - $ste->vars["styles"] = array_map(function($s) { return $s->name; }, Style::all()); + $ste->vars["styles"] = array_map(function ($s) { + return $s->name; + }, Style::all()); sort($ste->vars["styles"]); echo $ste->exectemplate("/systemtemplates/styles.html"); }, - "sections" => function(&$data, $url_now, &$url_next) - { + "sections" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root, $ratatoeskr_settings; list($style) = $url_next; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "design"; $ste->vars["submenu"] = "sections"; $ste->vars["pagetitle"] = $translation["menu_pagesections"]; /* New section? */ - if(isset($_POST["new_section"])) - { - try - { + if (isset($_POST["new_section"])) { + try { Section::by_name($_POST["section_name"]); $ste->vars["error"] = $translation["section_already_exists"]; - } - catch(DoesNotExistError $e) - { - if((preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $_POST["template"]) == 0) or (!is_file(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/{$_POST['template']}"))) + } catch (DoesNotExistError $e) { + if ((preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $_POST["template"]) == 0) or (!is_file(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/{$_POST['template']}"))) { $ste->vars["error"] = $translation["unknown_template"]; - else if(!Section::test_name($_POST["section_name"])) + } elseif (!Section::test_name($_POST["section_name"])) { $ste->vars["error"] = $translation["invalid_section_name"]; - else - { + } else { $section = Section::create($_POST["section_name"]); $section->template = $_POST["template"]; $section->title[$data["user"]->language] = new Translation($_POST["section_name"], ""); @@ -1127,188 +1081,161 @@ $backend_subactions = url_action_subactions(array( } /* Remove a style? */ - if(isset($_GET["rmstyle"]) and isset($_GET["rmfrom"])) - { - try - { + if (isset($_GET["rmstyle"]) and isset($_GET["rmfrom"])) { + try { $section = Section::by_name($_GET["rmfrom"]); $style = Style::by_name($_GET["rmstyle"]); $section->remove_style($style); $section->save(); $ste->vars["success"] = $translation["style_removed"]; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { } } /* Delete a section? */ - if(isset($_POST["delete"]) and (@$_POST["really_delete"] == "yes") and isset($_POST["section_select"])) - { - try - { + if (isset($_POST["delete"]) and (@$_POST["really_delete"] == "yes") and isset($_POST["section_select"])) { + try { $section = Section::by_name($_POST["section_select"]); - if($section->get_id() == $ratatoeskr_settings["default_section"]) + if ($section->get_id() == $ratatoeskr_settings["default_section"]) { $ste->vars["error"] = $translation["cannot_delete_default_section"]; - else - { + } else { $default_section = Section::by_id($ratatoeskr_settings["default_section"]); - foreach($section->get_articles() as $article) - { + foreach ($section->get_articles() as $article) { $article->set_section($default_section); $article->save(); } $section->delete(); $ste->vars["success"] = $translation["section_successfully_deleted"]; } - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { } } /* Make section default? */ - if(isset($_POST["make_default"]) and isset($_POST["section_select"])) - { - try - { + if (isset($_POST["make_default"]) and isset($_POST["section_select"])) { + try { $section = Section::by_name($_POST["section_select"]); $ratatoeskr_settings["default_section"] = $section->get_id(); $ste->vars["success"] = $translation["default_section_changed_successfully"]; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { } } /* Set template? */ - if(isset($_POST["set_template"]) and isset($_POST["section_select"])) - { - try - { + if (isset($_POST["set_template"]) and isset($_POST["section_select"])) { + try { $section = Section::by_name($_POST["section_select"]); - if((preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $_POST["set_template_to"]) == 0) or (!is_file(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/{$_POST['set_template_to']}"))) + if ((preg_match("/^[a-zA-Z0-9\\-_\\.]+$/", $_POST["set_template_to"]) == 0) or (!is_file(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates/{$_POST['set_template_to']}"))) { $ste->vars["error"] = $translation["unknown_template"]; - else - { + } else { $section->template = $_POST["set_template_to"]; $section->save(); $ste->vars["success"] = $translation["successfully_set_template"]; } - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { } } /* Adding a style? */ - if(isset($_POST["add_style"]) and isset($_POST["section_select"])) - { - try - { + if (isset($_POST["add_style"]) and isset($_POST["section_select"])) { + try { $section = Section::by_name($_POST["section_select"]); $style = Style::by_name($_POST["style_to_add"]); $section->add_style($style); $ste->vars["success"] = $translation["successfully_added_style"]; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { } } /* Set/unset title? */ - if(isset($_POST["set_title"]) and isset($_POST["section_select"])) - { - if(!isset($languages[$_POST["set_title_lang"]])) + if (isset($_POST["set_title"]) and isset($_POST["section_select"])) { + if (!isset($languages[$_POST["set_title_lang"]])) { $ste->vars["error"] = $translation["language_unknown"]; - else - { - try - { + } else { + try { $section = Section::by_name($_POST["section_select"]); - if(!empty($_POST["set_title_text"])) + if (!empty($_POST["set_title_text"])) { $section->title[$_POST["set_title_lang"]] = new Translation($_POST["set_title_text"], ""); - else if(isset($section->title[$_POST["set_title_lang"]])) + } elseif (isset($section->title[$_POST["set_title_lang"]])) { unset($section->title[$_POST["set_title_lang"]]); + } $section->save(); $ste->vars["success"] = $translation["successfully_set_section_title"]; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { } } } /* Get all templates */ - $ste->vars["templates"] = array(); + $ste->vars["templates"] = []; $tpldir = new DirectoryIterator(SITE_BASE_PATH . "/ratatoeskr/templates/src/usertemplates"); - foreach($tpldir as $fo) - { - if($fo->isFile()) + foreach ($tpldir as $fo) { + if ($fo->isFile()) { $ste->vars["templates"][] = $fo->getFilename(); + } } sort($ste->vars["templates"]); /* Get all styles */ - $ste->vars["styles"] = array_map(function($s) { return $s->name; }, Style::all()); + $ste->vars["styles"] = array_map(function ($s) { + return $s->name; + }, Style::all()); sort($ste->vars["styles"]); /* Get all sections */ $sections = Section::all(); - $ste->vars["sections"] = array_map(function($section) use ($ratatoeskr_settings) { - $titles = array(); - foreach($section->title as $l => $t) + $ste->vars["sections"] = array_map(function ($section) use ($ratatoeskr_settings) { + $titles = []; + foreach ($section->title as $l => $t) { $titles[$l] = $t->text; - return array( + } + return [ "name" => $section->name, "title" => $titles, "template" => $section->template, - "styles" => array_map(function($style) { return $style->name; }, $section->get_styles()), + "styles" => array_map(function ($style) { + return $style->name; + }, $section->get_styles()), "default" => ($section->get_id() == $ratatoeskr_settings["default_section"]) - ); + ]; }, $sections); echo $ste->exectemplate("/systemtemplates/sections.html"); } - )), - "admin" => url_action_subactions(array( - "settings" => function(&$data, $url_now, &$url_next) - { + ]), + "admin" => url_action_subactions([ + "settings" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root, $ratatoeskr_settings, $textprocessors; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "admin"; $ste->vars["submenu"] = "settings"; $ste->vars["pagetitle"] = $translation["menu_settings"]; - $ste->vars["textprocessors"] = array(); - foreach($textprocessors as $txtproc => $properties) - if($properties[1]) + $ste->vars["textprocessors"] = []; + foreach ($textprocessors as $txtproc => $properties) { + if ($properties[1]) { $ste->vars["textprocessors"][] = $txtproc; + } + } /* Toggle debugmode value? */ - if(isset($_POST["toggle_debugmode"])) - { - if(isset($ratatoeskr_settings["debugmode"]) and $ratatoeskr_settings["debugmode"]) - { - $ratatoeskr_settings["debugmode"] = False; + if (isset($_POST["toggle_debugmode"])) { + if (isset($ratatoeskr_settings["debugmode"]) and $ratatoeskr_settings["debugmode"]) { + $ratatoeskr_settings["debugmode"] = false; $ste->vars["success"] = $translation["debugmode_now_disabled"]; - } - else - { - $ratatoeskr_settings["debugmode"] = True; + } else { + $ratatoeskr_settings["debugmode"] = true; $ste->vars["success"] = $translation["debugmode_now_enabled"]; } } /* Save comment settings? */ - if(isset($_POST["save_comment_settings"])) - { - if(!in_array(@$_POST["comment_textprocessor"], $ste->vars["textprocessors"])) + if (isset($_POST["save_comment_settings"])) { + if (!in_array(@$_POST["comment_textprocessor"], $ste->vars["textprocessors"])) { $ste->vars["error"] = $translation["unknown_txtproc"]; - else - { + } else { $ratatoeskr_settings["comment_textprocessor"] = $_POST["comment_textprocessor"]; $ratatoeskr_settings["comment_visible_default"] = (isset($_POST["comment_auto_visible"]) and ($_POST["comment_auto_visible"] == "yes")); $ste->vars["success"] = $translation["comment_settings_successfully_saved"]; @@ -1316,36 +1243,31 @@ $backend_subactions = url_action_subactions(array( } /* Delete language? */ - if(isset($_POST["delete"]) and ($_POST["really_delete"] == "yes") and isset($_POST["language_select"])) - { - if($ratatoeskr_settings["default_language"] == $_POST["language_select"]) + if (isset($_POST["delete"]) and ($_POST["really_delete"] == "yes") and isset($_POST["language_select"])) { + if ($ratatoeskr_settings["default_language"] == $_POST["language_select"]) { $ste->vars["error"] = $translation["cannot_delete_default_language"]; - else - { - $ratatoeskr_settings["languages"] = array_filter($ratatoeskr_settings["languages"], function($l) { return $l != $_POST["language_select"]; }); + } else { + $ratatoeskr_settings["languages"] = array_filter($ratatoeskr_settings["languages"], function ($l) { + return $l != $_POST["language_select"]; + }); $ste->vars["success"] = $translation["language_successfully_deleted"]; } } /* Set default language */ - if(isset($_POST["make_default"]) and isset($_POST["language_select"])) - { - if(in_array($_POST["language_select"], $ratatoeskr_settings["languages"])) - { + if (isset($_POST["make_default"]) and isset($_POST["language_select"])) { + if (in_array($_POST["language_select"], $ratatoeskr_settings["languages"])) { $ratatoeskr_settings["default_language"] = $_POST["language_select"]; $ste->vars["success"] = $translation["successfully_set_default_language"]; } } /* Add a language */ - if(isset($_POST["add_language"])) - { - if(!isset($languages[$_POST["language_to_add"]])) + if (isset($_POST["add_language"])) { + if (!isset($languages[$_POST["language_to_add"]])) { $ste->vars["error"] = $translation["language_unknown"]; - else - { - if(!in_array($_POST["language_to_add"], $ratatoeskr_settings["languages"])) - { + } else { + if (!in_array($_POST["language_to_add"], $ratatoeskr_settings["languages"])) { $ls = $ratatoeskr_settings["languages"]; $ls[] = $_POST["language_to_add"]; $ratatoeskr_settings["languages"] = $ls; @@ -1357,39 +1279,35 @@ $backend_subactions = url_action_subactions(array( $ste->vars["debugmode_enabled"] = (isset($ratatoeskr_settings["debugmode"]) and $ratatoeskr_settings["debugmode"]); $ste->vars["comment_auto_visible"] = $ratatoeskr_settings["comment_visible_default"]; $ste->vars["comment_textprocessor"] = $ratatoeskr_settings["comment_textprocessor"]; - $ste->vars["used_langs"] = array_map(function ($l) use ($ratatoeskr_settings, $languages) { return array( + $ste->vars["used_langs"] = array_map(function ($l) use ($ratatoeskr_settings, $languages) { + return [ "code" => $l, "name" => $languages[$l]["language"], "default" => ($l == $ratatoeskr_settings["default_language"]) - );}, $ratatoeskr_settings["languages"]); + ]; + }, $ratatoeskr_settings["languages"]); echo $ste->exectemplate("/systemtemplates/settings.html"); }, - "users" => url_action_subactions(array( - "_index" => function(&$data, $url_now, &$url_next) - { + "users" => url_action_subactions([ + "_index" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root, $ratatoeskr_settings, $textprocessors; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "admin"; $ste->vars["submenu"] = "users"; $ste->vars["pagetitle"] = $translation["menu_users_groups"]; /* Add a new group? */ - if(isset($_POST["new_group"])) - { - if(empty($_POST["group_name"])) + if (isset($_POST["new_group"])) { + if (empty($_POST["group_name"])) { $ste->vars["error"] = $translation["empty_group_name"]; - else - { - try - { + } else { + try { Group::by_name($_POST["group_name"]); $ste->vars["error"] = $translation["group_already_exists"]; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { $group = Group::create($_POST["group_name"]); $ste->vars["success"] = $translation["successfully_created_group"]; } @@ -1397,19 +1315,14 @@ $backend_subactions = url_action_subactions(array( } /* Add a new user? */ - if(isset($_POST["new_user"])) - { - if(empty($_POST["username"])) + if (isset($_POST["new_user"])) { + if (empty($_POST["username"])) { $ste->vars["error"] = $translation["empty_username"]; - else - { - try - { + } else { + try { User::by_name($_POST["username"]); $ste->vars["error"] = $translation["user_already_exists"]; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { $group = User::create($_POST["username"], PasswordHash::create($_POST["initial_password"])); $ste->vars["success"] = $translation["successfully_created_user"]; } @@ -1417,129 +1330,112 @@ $backend_subactions = url_action_subactions(array( } /* Delete groups? */ - if(isset($_POST["delete_groups"]) and ($_POST["really_delete"] == "yes") and (!empty($_POST["groups_multiselect"]))) - { + if (isset($_POST["delete_groups"]) and ($_POST["really_delete"] == "yes") and (!empty($_POST["groups_multiselect"]))) { $deleted = 0; - foreach($_POST["groups_multiselect"] as $gid) - { - try - { + foreach ($_POST["groups_multiselect"] as $gid) { + try { $group = Group::by_id($gid); - if($group->name == "admins") - { + if ($group->name == "admins") { $ste->vars["error"] = $translation["cannot_delete_admin_group"]; - } - else - { + } else { $group->delete(); ++$deleted; } - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } - if($deleted > 0) + if ($deleted > 0) { $ste->vars["success"] = $translation["successfully_deleted_groups"]; + } } /* Delete users? */ - if(isset($_POST["delete_users"]) and ($_POST["really_delete"] == "yes") and (!empty($_POST["users_multiselect"]))) - { + if (isset($_POST["delete_users"]) and ($_POST["really_delete"] == "yes") and (!empty($_POST["users_multiselect"]))) { $deleted = 0; - foreach($_POST["users_multiselect"] as $uid) - { - if($uid == $data["user"]->get_id()) + foreach ($_POST["users_multiselect"] as $uid) { + if ($uid == $data["user"]->get_id()) { $ste->vars["error"] = $translation["cannot_delete_yourself"]; - else - { - try - { + } else { + try { $user = User::by_id($uid); $user->delete(); ++$deleted; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } } - if($deleted > 0) + if ($deleted > 0) { $ste->vars["success"] = $translation["successfully_deleted_users"]; + } } /* Get all groups */ - $ste->vars["groups"] = array_map(function($g) { return array( + $ste->vars["groups"] = array_map(function ($g) { + return [ "id" => $g->get_id(), "name" => $g->name - ); }, Group::all()); + ]; + }, Group::all()); /* Get all users */ - $ste->vars["users"] = array_map(function($u) { return array( + $ste->vars["users"] = array_map(function ($u) { + return [ "id" => $u->get_id(), "name" => $u->username, - "memberof" => array_map(function($g) { return $g->name; }, $u->get_groups()), + "memberof" => array_map(function ($g) { + return $g->name; + }, $u->get_groups()), "fullname" => $u->fullname, "mail" => $u->mail - ); }, User::all()); + ]; + }, User::all()); echo $ste->exectemplate("/systemtemplates/users.html"); }, - "u" => function(&$data, $url_now, &$url_next) - { + "u" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root, $admin_grp; - try - { + try { $user = User::by_id($url_next[0]); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { throw new NotFoundError(); } - $url_next = array(); + $url_next = []; $ste->vars["section"] = "admin"; $ste->vars["submenu"] = "users"; $ste->vars["pagetitle"] = $user->username; /* Modify data? */ - if(isset($_POST["change_data"])) - { + if (isset($_POST["change_data"])) { $user->fullname = $_POST["fullname"]; $user->mail = $_POST["mail"]; $user->language = $_POST["lang"]; - $current_groups = array_map(function($g) { return $g->get_id(); }, $user->get_groups()); - $new_groups = empty($_POST[groups_multiselect]) ? array() : $_POST["groups_multiselect"]; + $current_groups = array_map(function ($g) { + return $g->get_id(); + }, $user->get_groups()); + $new_groups = empty($_POST[groups_multiselect]) ? [] : $_POST["groups_multiselect"]; $groups_exclude = array_diff($current_groups, $new_groups); $groups_include = array_diff($new_groups, $current_groups); - foreach($groups_exclude as $gid) - { - try - { + foreach ($groups_exclude as $gid) { + try { $g = Group::by_id($gid); $g->exclude_user($user); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } - foreach($groups_include as $gid) - { - try - { + foreach ($groups_include as $gid) { + try { $g = Group::by_id($gid); $g->include_user($user); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } @@ -1550,70 +1446,62 @@ $backend_subactions = url_action_subactions(array( } /* New Password? */ - if(isset($_POST["new_password"])) - { + if (isset($_POST["new_password"])) { $pwhash = PasswordHash::create($_POST["password"]); $user->pwhash = $pwhash; - if($user->get_id() == $data["user"]->get_id()) + if ($user->get_id() == $data["user"]->get_id()) { $_SESSION["ratatoeskr_pwhash"] = $pwhash; + } $user->save(); $ste->vars["success"] = $translation["successfully_set_new_password"]; } /* Put data to STE */ - $ste->vars["u"] = array( + $ste->vars["u"] = [ "id" => $user->get_id(), "name" => $user->username, "fullname" => $user->fullname, "mail" => $user->mail, "lang" => $user->language - ); - $ste->vars["groups"] = array_map(function($g) use ($user) { return array( + ]; + $ste->vars["groups"] = array_map(function ($g) use ($user) { + return [ "id" => $g->get_id(), "name" => $g->name, "member" => $user->member_of($g) - ); }, Group::all()); + ]; + }, Group::all()); echo $ste->exectemplate("/systemtemplates/user.html"); } - )), - "repos" => function(&$data, $url_now, &$url_next) - { + ]), + "repos" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "admin"; $ste->vars["submenu"] = "repos"; $ste->vars["pagetitle"] = $translation["menu_plugin_repos"]; /* Add a repo? */ - if(isset($_POST["add_repo"])) - { - try - { + if (isset($_POST["add_repo"])) { + try { $repo = Repository::create($_POST["repo_baseurl"]); $ste->vars["success"] = $translation["successfully_added_repo"]; - } - catch(RepositoryUnreachableOrInvalid $e) - { + } catch (RepositoryUnreachableOrInvalid $e) { $ste->vars["error"] = $translation["repository_unreachable_or_invalid"]; } } /* Delete repos? */ - if(isset($_POST["delete_repos"]) and ($_POST["really_delete"] == "yes")) - { - foreach($_POST["repos_multiselect"] as $repo_id) - { - try - { + if (isset($_POST["delete_repos"]) and ($_POST["really_delete"] == "yes")) { + foreach ($_POST["repos_multiselect"] as $repo_id) { + try { $repo = Repository::by_id($repo_id); $repo->delete(); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } @@ -1621,83 +1509,69 @@ $backend_subactions = url_action_subactions(array( } /* Force refresh? */ - if(isset($_POST["force_repo_refresh"])) - { - $failed = array(); - foreach($_POST["repos_multiselect"] as $repo_id) - { - try - { + if (isset($_POST["force_repo_refresh"])) { + $failed = []; + foreach ($_POST["repos_multiselect"] as $repo_id) { + try { $repo = Repository::by_id($repo_id); - $repo->refresh(True); - } - catch(DoesNotExistError $e) - { + $repo->refresh(true); + } catch (DoesNotExistError $e) { continue; - } - catch(RepositoryUnreachableOrInvalid $e) - { + } catch (RepositoryUnreachableOrInvalid $e) { $failed[] = $repo->get_name(); } } $ste->vars["success"] = $translation["successfully_refreshed_repos"]; - if(!empty($failed)) + if (!empty($failed)) { $ste->vars["error"] = str_replace("[[REPOS]]", implode(", ", $failed), $translation["repo_refresh_failed_on"]); + } } /* Fill data */ $all_repos = Repository::all(); $ste->vars["repos"] = array_map( - function($r) - { - try - { - $r->refresh(); - } - catch(RepositoryUnreachableOrInvalid $e){} - return array( + function ($r) { + try { + $r->refresh(); + } catch (RepositoryUnreachableOrInvalid $e) { + } + return [ "id" => $r->get_id(), "name" => $r->get_name(), "description" => $r->get_description(), "baseurl" => $r->get_baseurl() - ); - }, $all_repos); + ]; + }, + $all_repos + ); echo $ste->exectemplate("/systemtemplates/repos.html"); } - )), - "plugin" => url_action_subactions(array( - "list" => function(&$data, $url_now, &$url_next) - { + ]), + "plugin" => url_action_subactions([ + "list" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root, $plugin_objs, $api_compat; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "plugins"; $ste->vars["submenu"] = "pluginlist"; $ste->vars["pagetitle"] = $translation["menu_pluginlist"]; /* Delete plugins? */ - if(isset($_POST["delete"]) and (($_POST["really_delete"] == "yes") or ($_POST["really_delete"] == "force")) and (!empty($_POST["plugins_multiselect"]))) - { - foreach($_POST["plugins_multiselect"] as $pid) - { - try - { + if (isset($_POST["delete"]) and (($_POST["really_delete"] == "yes") or ($_POST["really_delete"] == "force")) and (!empty($_POST["plugins_multiselect"]))) { + foreach ($_POST["plugins_multiselect"] as $pid) { + try { $plugin = Plugin::by_id($pid); - if($_POST["really_delete"] != "force") - { - if(!isset($plugin_objs[$pid])) - { + if ($_POST["really_delete"] != "force") { + if (!isset($plugin_objs[$pid])) { eval($plugin->code); $plugin_objs[$pid] = new $plugin->classname($pid); } $plugin_objs[$pid]->uninstall(); } $plugin->delete(); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } @@ -1706,96 +1580,84 @@ $backend_subactions = url_action_subactions(array( } /* Activate or deactivate plugins? */ - if((isset($_POST["activate"]) or isset($_POST["deactivate"])) and (!empty($_POST["plugins_multiselect"]))) - { - $api_incompat = array(); + if ((isset($_POST["activate"]) or isset($_POST["deactivate"])) and (!empty($_POST["plugins_multiselect"]))) { + $api_incompat = []; $newstatus = isset($_POST["activate"]); - foreach($_POST["plugins_multiselect"] as $pid) - { - try - { + foreach ($_POST["plugins_multiselect"] as $pid) { + try { $plugin = Plugin::by_id($pid); - if(!$plugin->installed) + if (!$plugin->installed) { continue; - if($newstatus and (!in_array($plugin->api, $api_compat))) - { + } + if ($newstatus and (!in_array($plugin->api, $api_compat))) { $api_incompat[] = $plugin->name . ("(ID: " . $plugin->get_id() . ")"); continue; } $plugin->active = $newstatus; $plugin->save(); - if($newstatus and (!isset($plugin_objs[$pid]))) - { + if ($newstatus and (!isset($plugin_objs[$pid]))) { eval($plugin->code); $plugin_objs[$pid] = new $plugin->classname($pid); $plugin_objs[$pid]->init(); } - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; } } $ste->vars["success"] = $translation[$newstatus ? "plugins_activated" : "plugins_deactivated"]; - if(!empty($api_incompat)) + if (!empty($api_incompat)) { $ste->vars["error"] = htmlesc(str_replace("[[PLUGINS]]", implode(", ", $api_incompat), $translation["could_not_activate_plugin_api_incompat"])); + } } - $stream_ctx = stream_context_create(array("http" => array("timeout" => 5))); + $stream_ctx = stream_context_create(["http" => ["timeout" => 5]]); /* Update plugins? */ - if(isset($_POST["update"]) and (!empty($_POST["plugins_multiselect"]))) - { - $updated = array(); - foreach($_POST["plugins_multiselect"] as $pid) - { - try - { + if (isset($_POST["update"]) and (!empty($_POST["plugins_multiselect"]))) { + $updated = []; + foreach ($_POST["plugins_multiselect"] as $pid) { + try { $plugin = Plugin::by_id($pid); - if(!empty($plugin->updatepath)) - { - $update_info = @unserialize(@file_get_contents($plugin->updatepath, False, $stream_ctx)); - if(is_array($update_info) and (($update_info["current-version"]+0) > ($plugin->versioncount+0))) - { - $pkg = PluginPackage::load(@file_get_contents($update_info["dl-path"], False, $stream_ctx)); + if (!empty($plugin->updatepath)) { + $update_info = @unserialize(@file_get_contents($plugin->updatepath, false, $stream_ctx)); + if (is_array($update_info) and (($update_info["current-version"]+0) > ($plugin->versioncount+0))) { + $pkg = PluginPackage::load(@file_get_contents($update_info["dl-path"], false, $stream_ctx)); $plugin->fill_from_pluginpackage($pkg); - $plugin->update = True; + $plugin->update = true; $plugin->save(); $updated[] = $plugin->name; } } - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { continue; - } - catch(InvalidPackage $e) - { + } catch (InvalidPackage $e) { continue; } } - if(empty($updated)) + if (empty($updated)) { $ste->vars["success"] = $translation["nothing_to_update"]; - else + } else { $ste->vars["success"] = str_replace("[[PLUGINS]]", implode(", ", $updated), $translation["successfully_updated_plugins"]); + } } /* Load plugin data */ $all_plugins = Plugin::all(); - $ste->vars["plugins"] = array(); - $api_incompat = array(); - foreach($all_plugins as $p) - { - if(!$p->installed) + $ste->vars["plugins"] = []; + $api_incompat = []; + foreach ($all_plugins as $p) { + if (!$p->installed) { continue; + } - if(!in_array($p->api, $api_compat)) + if (!in_array($p->api, $api_compat)) { $api_incompat[] = $p->name . ("(ID: " . $p->get_id() . ")"); + } - $ste->vars["plugins"][] = array( + $ste->vars["plugins"][] = [ "id" => $p->get_id(), "name" => $p->name, "versiontext" => $p->versiontext, @@ -1804,30 +1666,28 @@ $backend_subactions = url_action_subactions(array( "web" => $p->web, "author" => $p->author, "help" => !empty($p->help) - ); + ]; } - if(!empty($api_incompat)) + if (!empty($api_incompat)) { $ste->vars["notice"] = htmlesc(str_replace("[[PLUGINS]]", implode(", ", $api_incompat), $translation["plugins_incompat"])); + } echo $ste->exectemplate("/systemtemplates/pluginlist.html"); }, - "help" => function(&$data, $url_now, &$url_next) - { + "help" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root; - try - { + try { $plugin = Plugin::by_id($url_next[0]); - if(empty($plugin->help)) + if (empty($plugin->help)) { throw new NotFoundError(); - } - catch(DoesNotExistError $e) - { + } + } catch (DoesNotExistError $e) { throw new NotFoundError(); } - $url_next = array(); + $url_next = []; $ste->vars["section"] = "plugins"; $ste->vars["submenu"] = ""; @@ -1836,137 +1696,117 @@ $backend_subactions = url_action_subactions(array( echo $ste->exectemplate("/systemtemplates/pluginhelp.html"); }, - "install" => function(&$data, $url_now, &$url_next) - { + "install" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root, $api_compat; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "plugins"; $ste->vars["submenu"] = "installplugins"; $ste->vars["pagetitle"] = $translation["menu_plugininstall"]; $all_repos = Repository::all(); - foreach($all_repos as $repo) - { - try - { + foreach ($all_repos as $repo) { + try { $repo->refresh(); - } - catch(RepositoryUnreachableOrInvalid $e) - { + } catch (RepositoryUnreachableOrInvalid $e) { continue; } } - if(isset($_POST["installpackage"])) - { - if(is_uploaded_file($_FILES["pluginpackage"]["tmp_name"])) - { - try - { + if (isset($_POST["installpackage"])) { + if (is_uploaded_file($_FILES["pluginpackage"]["tmp_name"])) { + try { $package = PluginPackage::load(file_get_contents($_FILES["pluginpackage"]["tmp_name"])); unlink($_FILES["pluginpackage"]["tmp_name"]); - if(in_array($package->api, $api_compat)) - { + if (in_array($package->api, $api_compat)) { $plugin = Plugin::create(); $plugin->fill_from_pluginpackage($package); - $plugin->installed = False; - $plugin->active = False; + $plugin->installed = false; + $plugin->active = false; $plugin->save(); - $url_next = array("confirminstall", (string) $plugin->get_id()); + $url_next = ["confirminstall", (string) $plugin->get_id()]; return; - } - else + } else { $ste->vars["error"] = str_replace("[[API]]", $package->api, $translation["incompatible_plugin"]); - } - catch(InvalidPackage $e) - { + } + } catch (InvalidPackage $e) { $ste->vars["error"] = $translation["invalid_package"]; unlink($_FILES["pluginpackage"]["tmp_name"]); } - } - else + } else { $ste->vars["error"] = $translation["upload_failed"]; + } } - if(isset($_POST["search_in_repos"])) - { - $ste->vars["searchresults"] = array(); + if (isset($_POST["search_in_repos"])) { + $ste->vars["searchresults"] = []; $repos_to_scan = ($_POST["searchin"] == "*") ? $all_repos : Repository::by_id($_POST["searchin"]); $searchfor = strtolower($_POST["searchfor"]); - foreach($repos_to_scan as $repo) - { - foreach($repo->packages as $pkg) - { - if(empty($searchfor) or (strpos(strtolower($pkg[0]), $searchfor) !== False) or (strpos(strtolower($pkg[2]), $searchfor) !== False)) - $ste->vars["searchresults"][] = array( + foreach ($repos_to_scan as $repo) { + foreach ($repo->packages as $pkg) { + if (empty($searchfor) or (strpos(strtolower($pkg[0]), $searchfor) !== false) or (strpos(strtolower($pkg[2]), $searchfor) !== false)) { + $ste->vars["searchresults"][] = [ "name" => $pkg[0], "description" => $pkg[2], "reponame" => $repo->get_name(), "repoid" => $repo->get_id() - ); + ]; + } } } } - $ste->vars["repos"] = array_map(function($r) { return array( + $ste->vars["repos"] = array_map(function ($r) { + return [ "id" => $r->get_id(), "name" => $r->get_name() - ); }, $all_repos); + ]; + }, $all_repos); echo $ste->exectemplate("/systemtemplates/plugininstall.html"); }, - "repoinstall" => function(&$data, $url_now, &$url_next) - { + "repoinstall" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $rel_path_to_root; - $stream_ctx = stream_context_create(array("http" => array("timeout" => 5))); + $stream_ctx = stream_context_create(["http" => ["timeout" => 5]]); - try - { + try { $repo = Repository::by_id($_GET["repo"]); $pkg = $repo->download_package($_GET["pkg"]); $plugin = Plugin::create(); $plugin->fill_from_pluginpackage($pkg); - $plugin->installed = False; - $plugin->active = False; + $plugin->installed = false; + $plugin->active = false; $plugin->save(); - $url_next = array("confirminstall", (string) $plugin->get_id()); - } - catch(DoesNotExistError $e) - { + $url_next = ["confirminstall", (string) $plugin->get_id()]; + } catch (DoesNotExistError $e) { $ste->vars["error"] = $translation["package_or_repo_not_found"]; - $url_next = array("install"); - } - catch(InvalidPackage $e) - { + $url_next = ["install"]; + } catch (InvalidPackage $e) { $ste->vars["error"] = $translation["invalid_package"]; - $url_next = array("install"); + $url_next = ["install"]; } }, - "confirminstall" => function(&$data, $url_now, &$url_next) - { + "confirminstall" => function (&$data, $url_now, &$url_next) { global $ste, $translation, $languages, $rel_path_to_root; list($plugin_id) = $url_next; - $url_next = array(); + $url_next = []; $ste->vars["section"] = "plugins"; $ste->vars["submenu"] = "installplugins"; $ste->vars["pagetitle"] = $translation["menu_plugininstall"]; - try - { + try { $plugin = Plugin::by_id($plugin_id); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { throw new NotFoundError(); } - if($plugin->installed) + if ($plugin->installed) { throw new NotFoundError(); + } $ste->vars["plugin_id"] = $plugin->get_id(); $ste->vars["name"] = $plugin->name; @@ -1974,29 +1814,26 @@ $backend_subactions = url_action_subactions(array( $ste->vars["code"] = $plugin->code; $ste->vars["license"] = $plugin->license; - if(isset($_POST["yes"])) - { - $plugin->installed = True; + if (isset($_POST["yes"])) { + $plugin->installed = true; $plugin->save(); eval($plugin->code); $plugin_instance = new $plugin->classname($plugin->get_id()); $plugin_instance->install(); $ste->vars["success"] = $translation["plugin_installed_successfully"]; - $url_next = array("list"); + $url_next = ["list"]; return; } - if(isset($_POST["no"])) - { + if (isset($_POST["no"])) { $plugin->delete(); - $url_next = array("install"); + $url_next = ["install"]; return; } echo $ste->exectemplate("/systemtemplates/confirminstall.html"); } - )), + ]), "pluginpages" => url_action_subactions($pluginpages_handlers) -)); - +]); } diff --git a/ratatoeskr/config.php b/ratatoeskr/config.php index 51ec257..db2d6e5 100644 --- a/ratatoeskr/config.php +++ b/ratatoeskr/config.php @@ -1,8 +1,8 @@ $section->get_id(), "name" => $section->name, "title" => $section->title[$lang]->text, "__obj" => $section - ); + ]; } /* @@ -57,18 +57,15 @@ function section_transform_ste($section, $lang) */ function tag_transform_ste($tag, $lang) { - try - { - return array( + try { + return [ "id" => $tag->get_id(), "name" => $tag->name, "title" => $tag->title[$lang]->text, "__obj" => $tag - ); - } - catch(DoesNotExistError $e) - { - return False; + ]; + } catch (DoesNotExistError $e) { + return false; } } @@ -101,12 +98,13 @@ function article_transform_ste($article, $lang) { global $rel_path_to_root; - $languages = array(); + $languages = []; $a_section = $article->get_section(); - foreach($article->title as $language => $_) + foreach ($article->title as $language => $_) { $languages[$language] = "$rel_path_to_root/$language/{$a_section->name}/{$article->urlname}"; + } - return array( + return [ "id" => $article->get_id(), "urlname" => $article->urlname, "fullurl" => htmlesc("$rel_path_to_root/$lang/{$a_section->name}/{$article->urlname}"), @@ -117,11 +115,13 @@ function article_transform_ste($article, $lang) "status" => $article->status, "section" => section_transform_ste($a_section, $lang), "timestamp" => $article->timestamp, - "tags" => array_filter(array_map(function($tag) use ($lang) { return tag_transform_ste($tag, $lang); }, $article->get_tags())), + "tags" => array_filter(array_map(function ($tag) use ($lang) { + return tag_transform_ste($tag, $lang); + }, $article->get_tags())), "languages" => $languages, "comments_allowed" => $article->allow_comments, "__obj" => $article - ); + ]; } /* @@ -142,13 +142,13 @@ function comment_transform_ste($comment) { global $rel_path_to_root, $ratatoeskr_settings; - return array( + return [ "id" => $comment->get_id(), "text" => $comment->create_html(), "author" => htmlesc($comment->author_name), "timestamp" => $comment->get_timestamp(), "__obj" => $comment - ); + ]; } /* Register some tags for the template engine */ @@ -179,67 +179,65 @@ function comment_transform_ste($comment) * Returns: * All results from the tag content. */ -$ste->register_tag("articles_get", function($ste, $params, $sub) -{ +$ste->register_tag("articles_get", function ($ste, $params, $sub) { $lang = $ste->vars["language"]; - if(!isset($params["var"])) + if (!isset($params["var"])) { throw new \ste\RuntimeError("Parameter var is needed in article_get!"); + } - $criterias = array("langavail" => $lang, "onlyvisible" => True); - if(isset($params["id"])) + $criterias = ["langavail" => $lang, "onlyvisible" => true]; + if (isset($params["id"])) { $criterias["id"] = $params["id"]; - if(isset($params["urlname"])) + } + if (isset($params["urlname"])) { $criterias["urlname"]; - if(isset($params["status"])) + } + if (isset($params["status"])) { $criterias["status"] = $params["status"]; - if(isset($params["sectionvar"])) - { + } + if (isset($params["sectionvar"])) { $sectionvar = $ste->get_var_by_name($params["sectionvar"]); $criterias["section"] = $sectionvar["__obj"]; - } - else if(isset($params["section"])) - { - try - { + } elseif (isset($params["section"])) { + try { $criterias["section"] = Section::by_name($params["section"]); + } catch (DoesNotExistError $e) { } - catch(DoesNotExistError $e) {} } - if(isset($params["tagvar"])) - { + if (isset($params["tagvar"])) { $tagvar = $ste->get_var_by_name($params["tagvar"]); $criterias["tag"] = $tagvar["__obj"]; } - if(isset($params["tag"])) - { - try - { + if (isset($params["tag"])) { + try { $criterias["tag"] = Tag::by_name($params["tag"]); + } catch (DoesNotExistError $e) { } - catch(DoesNotExistError $e) {} } - $field = NULL; - $direction = NULL; - if(isset($params["sort"])) - { + $field = null; + $direction = null; + if (isset($params["sort"])) { list($field, $direction) = explode(" ", $params["sort"]); - if($direction === NULL) - $field = NULL; + if ($direction === null) { + $field = null; + } $direction = strtoupper($direction); } $result = Article::by_multi($criterias, $field, $direction, @$params["count"], @$params["skip"], @$params["perpage"], @$params["page"], $maxpage); - $result = array_map(function($article) use ($lang) { return article_transform_ste($article, $lang); }, $result); + $result = array_map(function ($article) use ($lang) { + return article_transform_ste($article, $lang); + }, $result); - if(isset($params["perpage"]) and isset($params["maxpage"])) + if (isset($params["perpage"]) and isset($params["maxpage"])) { $ste->set_var_by_name($params["maxpage"], $maxpage == 0 ? 1 : $maxpage); + } $output = ""; - foreach($result as $article) - { + foreach ($result as $article) { $ste->set_var_by_name($params["var"], $article); $output .= $sub($ste); } @@ -262,37 +260,40 @@ $ste->register_tag("articles_get", function($ste, $params, $sub) * Returns: * All results from the tag content. */ -$ste->register_tag("section_list", function($ste, $params, $sub) -{ +$ste->register_tag("section_list", function ($ste, $params, $sub) { global $ratatoeskr_settings; $lang = $ste->vars["language"]; $default_section = $ratatoeskr_settings["default_section"]; - if(!isset($params["var"])) + if (!isset($params["var"])) { throw new \ste\RuntimeException("Parameter var is needed in article_get!"); + } $result = Section::all(); - if(isset($params["exclude"])) - { + if (isset($params["exclude"])) { $exclude = explode(",", $params["exclude"]); - $result = array_filter($result, function($section) use ($exclude) { return !in_array($section->name, $exclude); }); + $result = array_filter($result, function ($section) use ($exclude) { + return !in_array($section->name, $exclude); + }); } - $result = array_filter($result, function($section) use ($default_section) { return $section->get_id() != $default_section; }); + $result = array_filter($result, function ($section) use ($default_section) { + return $section->get_id() != $default_section; + }); - $result = array_map(function($section) use ($lang) { return section_transform_ste($section, $lang); }, $result); + $result = array_map(function ($section) use ($lang) { + return section_transform_ste($section, $lang); + }, $result); - if($ste->evalbool($params["include_default"])) - { + if ($ste->evalbool($params["include_default"])) { $default = section_transform_ste(Section::by_id($default_section), $lang); array_unshift($result, $default); } $output = ""; - foreach($result as $section) - { + foreach ($result as $section) { $ste->set_var_by_name($params["var"], $section); $output .= $sub($ste); } @@ -309,27 +310,23 @@ $ste->register_tag("section_list", function($ste, $params, $sub) * Returns: * The number of comments. */ -$ste->register_tag("article_comments_count", function($ste, $params, $sub) -{ - if(!isset($params["article"])) +$ste->register_tag("article_comments_count", function ($ste, $params, $sub) { + if (!isset($params["article"])) { throw new \ste\RuntimeException("Need parameter 'article' in ste:article_comments_count."); - $tpl_article = $ste->get_var_reference($params["article"], False); + } + $tpl_article = $ste->get_var_reference($params["article"], false); $lang = $ste->vars["language"]; - if(isset($tpl_article["__obj"])) + if (isset($tpl_article["__obj"])) { $article = $tpl_article["__obj"]; - else - { - try - { + } else { + try { $article = Article::by_id(@$tpl_article["id"]); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { return 0; } } - $comments = $article->get_comments($lang, True); + $comments = $article->get_comments($lang, true); $tpl_article["__comments"] = $comments; return count($comments); }); @@ -350,44 +347,41 @@ $ste->register_tag("article_comments_count", function($ste, $params, $sub) * Returns: * All results from the tag content. */ -$ste->register_tag("article_comments", function($ste, $params, $sub) -{ - if(!isset($params["var"])) +$ste->register_tag("article_comments", function ($ste, $params, $sub) { + if (!isset($params["var"])) { throw new \ste\RuntimeException("Need parameter 'var' in ste:article_comments."); - if(!isset($params["article"])) + } + if (!isset($params["article"])) { throw new \ste\RuntimeException("Need parameter 'article' in ste:article_comments."); - $tpl_article = $ste->get_var_reference($params["article"], False); + } + $tpl_article = $ste->get_var_reference($params["article"], false); $lang = $ste->vars["language"]; - if(isset($tpl_article["__comments"])) + if (isset($tpl_article["__comments"])) { $comments = $tpl_article["__comments"]; - else - { - if(isset($tpl_article["__obj"])) + } else { + if (isset($tpl_article["__obj"])) { $article = $tpl_article["__obj"]; - else - { - try - { + } else { + try { $article = Article::by_id(@$tpl_article["id"]); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { return ""; } } - $comments = $article->get_comments($lang, True); + $comments = $article->get_comments($lang, true); } $sortdir = (@$params["sort"] == "desc") ? -1 : 1; - usort($comments, function($a,$b) use ($sortdir) { return intcmp($a->get_timestamp(), $b->get_timestamp()) * $sortdir; }); + usort($comments, function ($a, $b) use ($sortdir) { + return intcmp($a->get_timestamp(), $b->get_timestamp()) * $sortdir; + }); $comments = array_map("comment_transform_ste", $comments); $output = ""; - foreach($comments as $comment) - { + foreach ($comments as $comment) { $ste->set_var_by_name($params["var"], $comment); $output .= $sub($ste); } @@ -424,50 +418,46 @@ $ste->register_tag("article_comments", function($ste, $params, $sub) * See Also: * The "prevcomment" field in <$current>. */ -$ste->register_tag("comment_form", function($ste, $params, $sub) -{ +$ste->register_tag("comment_form", function ($ste, $params, $sub) { global $translation; - if(!isset($params["article"])) + if (!isset($params["article"])) { throw new \ste\RuntimeException("Need parameter 'article' in ste:comment_form."); - $tpl_article = $ste->get_var_reference($params["article"], False); + } + $tpl_article = $ste->get_var_reference($params["article"], false); - if(isset($tpl_article["__obj"])) - $article = $tpl_article["__obj"]; - else - { - try - { + if (isset($tpl_article["__obj"])) { + $article = $tpl_article["__obj"]; + } else { + try { $article = Article::by_id(@$tpl_article["id"]); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { return ""; } } - if(!$article->allow_comments) + if (!$article->allow_comments) { return ""; + } /* A token protects from double sending of the same form and is also a simple protection from stupid spambots. */ - $token = uniqid("", True); + $token = uniqid("", true); $_SESSION["ratatoeskr_comment_tokens"][$token] = time(); $form_header = "
"; $previewbtn = $ste->evalbool(@$params["previewbtn"]) ? " " : ""; - if($ste->evalbool(@$params["default"])) + if ($ste->evalbool(@$params["default"])) { $form_body = "

{$translation["comment_form_name"]}:

{$translation["comment_form_mail"]}:

{$translation["comment_form_text"]}:

$previewbtn

"; - else - { - $ste->vars["current"]["oldcomment"] = array( + } else { + $ste->vars["current"]["oldcomment"] = [ "name" => @$_POST["author_name"], "mail" => @$_POST["author_mail"], "text" => @$_POST["comment_text"] - ); + ]; $form_body = $sub($ste); unset($ste->vars["current"]["oldcomment"]); } @@ -494,16 +484,18 @@ $ste->register_tag("comment_form", function($ste, $params, $sub) * A Link to the previous / next page. */ -$ste->register_tag("page_prev", function($ste, $params, $sub) -{ +$ste->register_tag("page_prev", function ($ste, $params, $sub) { global $translation; - if(!isset($params["current"])) + if (!isset($params["current"])) { throw new \ste\RuntimeException("Need parameter 'current' in ste:page_prev."); - if(!isset($params["maxpage"])) + } + if (!isset($params["maxpage"])) { throw new \ste\RuntimeException("Need parameter 'maxpage' in ste:page_prev."); + } - if($params["current"] == 1) + if ($params["current"] == 1) { return ""; + } parse_str(parse_url($_SERVER["REQUEST_URI"], PHP_URL_QUERY), $query); $query["page"] = $params["current"] - 1; @@ -511,16 +503,18 @@ $ste->register_tag("page_prev", function($ste, $params, $sub) return "" . (($ste->evalbool(@$params["default"])) ? $translation["page_prev"] : $sub($ste)) . ""; }); -$ste->register_tag("page_next", function($ste, $params, $sub) -{ +$ste->register_tag("page_next", function ($ste, $params, $sub) { global $translation; - if(!isset($params["current"])) + if (!isset($params["current"])) { throw new \ste\RuntimeException("Need parameter 'current' in ste:page_next."); - if(!isset($params["maxpage"])) + } + if (!isset($params["maxpage"])) { throw new \ste\RuntimeException("Need parameter 'maxpage' in ste:page_next."); + } - if($params["current"] == $params["maxpage"]) + if ($params["current"] == $params["maxpage"]) { return ""; + } parse_str(parse_url($_SERVER["REQUEST_URI"], PHP_URL_QUERY), $query); $query["page"] = $params["current"] + 1; @@ -546,44 +540,39 @@ $ste->register_tag("page_next", function($ste, $params, $sub) * Returns: * All results from the tag content. */ -$ste->register_tag("languages", function($ste, $params, $sub) -{ +$ste->register_tag("languages", function ($ste, $params, $sub) { global $languages, $ratatoeskr_settings, $rel_path_to_root; - if(!isset($params["var"])) + if (!isset($params["var"])) { throw new Exception("Need parameter 'var' in ste:languages."); + } - $langs = array(); - if(isset($ste->vars["current"]["article"])) - { - if(isset($ste->vars["current"]["article"]["__obj"])) + $langs = []; + if (isset($ste->vars["current"]["article"])) { + if (isset($ste->vars["current"]["article"]["__obj"])) { $article = $ste->vars["current"]["article"]["__obj"]; - else - { - try - { + } else { + try { $article = Article::by_id($ste->vars["current"]["article"]["id"]); + } catch (DoesNotExistError $e) { } - catch(DoesNotExistError $e) {} } - foreach($article->title as $lang => $_) + foreach ($article->title as $lang => $_) { $langs[] = $lang; - } - else - { - - foreach($ratatoeskr_settings["languages"] as $lang) + } + } else { + foreach ($ratatoeskr_settings["languages"] as $lang) { $langs[] = $lang; + } } $output = ""; - foreach($langs as $lang) - { - $ste->set_var_by_name($params["var"], array( + foreach ($langs as $lang) { + $ste->set_var_by_name($params["var"], [ "short" => $lang, "fullname" => htmlesc($languages[$lang]["language"]), "url" => htmlesc("$rel_path_to_root/$lang/" . implode("/", array_slice($ste->vars["current"]["url_fragments"], 1))) - )); + ]); $output .= $sub($ste); } return $output; @@ -599,44 +588,36 @@ $ste->register_tag("languages", function($ste, $params, $sub) * Returns: * The current styles (either linked or embedded) */ -$ste->register_tag("styles_load", function($ste, $params, $sub) -{ +$ste->register_tag("styles_load", function ($ste, $params, $sub) { global $rel_path_to_root; - if(isset($params["mode"]) and (($params["mode"] == "embed") or ($params["mode"] == "link"))) + if (isset($params["mode"]) and (($params["mode"] == "embed") or ($params["mode"] == "link"))) { $mode = $params["mode"]; - else + } else { $mode = "link"; + } - if($mode == "embed") - { + if ($mode == "embed") { $output = ""; - if(isset($ste->vars["current"]["__style_objs"])) - { - foreach($ste->vars["current"]["__style_objs"] as $style) + if (isset($ste->vars["current"]["__style_objs"])) { + foreach ($ste->vars["current"]["__style_objs"] as $style) { $output .= "/* Style: {$style->name} */\n" . $style->code . "\n"; - } - else - { - foreach($ste->vars["current"]["styles"] as $stylename) - { - try - { + } + } else { + foreach ($ste->vars["current"]["styles"] as $stylename) { + try { $style = Style::by_name($stylename); $output .= "/* Style: $stylename */\n" . str_replace("%root%", $rel_path_to_root, $style->code) . "\n"; - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { $output .= "/* Warning: Failed to load style: $stylename */\n"; } } } $output = ""; - } - else - { + } else { $output = ""; - foreach($ste->vars["current"]["styles"] as $stylename) + foreach ($ste->vars["current"]["styles"] as $stylename) { $output .= "\n"; + } } return $output; }); @@ -651,24 +632,24 @@ $ste->register_tag("styles_load", function($ste, $params, $sub) * Returns: * A HTML title tag that describes the current (sub)page. */ -$ste->register_tag("title", function($ste, $params, $sub) -{ +$ste->register_tag("title", function ($ste, $params, $sub) { $pagetitle = $sub($ste); - if(isset($ste->vars["current"]["article"])) + if (isset($ste->vars["current"]["article"])) { return "" . htmlesc($ste->vars["current"]["article"]["title"]) . " – $pagetitle" . ""; - if(isset($ste->vars["current"]["section"])) + } + if (isset($ste->vars["current"]["section"])) { return "" . htmlesc($ste->vars["current"]["section"]["title"]) . " – $pagetitle" . ""; + } return "$pagetitle"; }); function make_on_anything_tag($field) { - return function($ste, $params, $sub) use ($field) - { - if($ste->evalbool(@$ste->vars["current"][$field])) - { - if(!empty($params["var"])) + return function ($ste, $params, $sub) use ($field) { + if ($ste->evalbool(@$ste->vars["current"][$field])) { + if (!empty($params["var"])) { $ste->set_var_by_name($params["var"], $ste->vars["current"][$field]); + } return $sub($ste); } }; @@ -734,27 +715,32 @@ $ste->register_tag("on_section", make_on_anything_tag("section")); * The short form (e.g. "en" for English, "de" for German, ...) of the current language. */ -$comment_validators = array( - function() /* Basic validator. Checks, if all mandatory fields are set and if the form token is okay. Also provides some stupid spambot protection... */ - { +$comment_validators = [ + function () /* Basic validator. Checks, if all mandatory fields are set and if the form token is okay. Also provides some stupid spambot protection... */ { global $translation; - if(empty($_POST["author_name"])) + if (empty($_POST["author_name"])) { throw new CommentRejected($translation["author_name_missing"]); - if(empty($_POST["author_mail"])) + } + if (empty($_POST["author_mail"])) { throw new CommentRejected($translation["author_email_missing"]); - if(empty($_POST["comment_text"])) + } + if (empty($_POST["comment_text"])) { throw new CommentRejected($translation["comment_text_missing"]); - if(!isset($_POST["comment_token"])) + } + if (!isset($_POST["comment_token"])) { throw new CommentRejected($translation["comment_form_invalid"]); - if(!isset($_SESSION["ratatoeskr_comment_tokens"][$_POST["comment_token"]])) + } + if (!isset($_SESSION["ratatoeskr_comment_tokens"][$_POST["comment_token"]])) { throw new CommentRejected($translation["comment_form_invalid"]); - if(time() - $_SESSION["ratatoeskr_comment_tokens"][$_POST["comment_token"]] < 10) /* Comment filled in in under 10 seconds? Most likely a spambot. */ + } + if (time() - $_SESSION["ratatoeskr_comment_tokens"][$_POST["comment_token"]] < 10) { /* Comment filled in in under 10 seconds? Most likely a spambot. */ throw new CommentRejected($translation["comment_too_fast"]); + } unset($_SESSION["ratatoeskr_comment_tokens"][$_POST["comment_token"]]); } -); +]; -$on_comment_store = array(); +$on_comment_store = []; /* * Function: frontend_url_handler @@ -762,14 +748,14 @@ $on_comment_store = array(); function frontend_url_handler(&$data, $url_now, &$url_next) { global $ste, $ratatoeskr_settings, $languages, $metasections, $comment_validators, $on_comment_store; - $path = array_merge(array($url_now), $url_next); - $url_next = array(); + $path = array_merge([$url_now], $url_next); + $url_next = []; /* If no language or an invalid language was given, fix it. */ - if((count($path) == 0) or (!isset($languages[$path[0]]))) - { - if(count($path > 0)) + if ((count($path) == 0) or (!isset($languages[$path[0]]))) { + if (count($path > 0)) { array_shift($path); + } array_unshift($path, $ratatoeskr_settings["default_language"]); } @@ -779,80 +765,63 @@ function frontend_url_handler(&$data, $url_now, &$url_next) $ste->vars["language"] = $lang; load_language($languages[$lang]["translation_exist"] ? $lang : "en"); /* English is always available */ - if(count($path) != 0) + if (count($path) != 0) { $section_name = array_shift($path); - else - $section_name = NULL; + } else { + $section_name = null; + } - if($section_name == "_tags") - { - try - { + if ($section_name == "_tags") { + try { $tag = Tag::by_name(array_shift($path)); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { throw new NotFoundError(); } $ste->vars["current"]["tag"] = tag_transform_ste($tag, $lang); - } - else - { - if($section_name === NULL) + } else { + if ($section_name === null) { $section = Section::by_id($ratatoeskr_settings["default_section"]); - else - { - try - { + } else { + try { $section = Section::by_name($section_name); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { throw new NotFoundError(); } } - if(count($path)== 0) + if (count($path)== 0) { $ste->vars["current"]["section"] = section_transform_ste($section, $lang); - else - { - try - { + } else { + try { $article = Article::by_urlname(array_shift($path)); - } - catch(DoesNotExistError $e) - { + } catch (DoesNotExistError $e) { throw new NotFoundError(); } $ste->vars["current"]["article"] = article_transform_ste($article, $lang); - if(isset($_GET["comment"])) - { - if(isset($_POST["preview_comment"])) + if (isset($_GET["comment"])) { + if (isset($_POST["preview_comment"])) { $ste->vars["current"]["comment_prev"] = Comment::htmlize_comment_text($_POST["comment_text"]); - else if(isset($_POST["post_comment"])) - { - $rejected = False; - try - { - foreach($comment_validators as $validator) + } elseif (isset($_POST["post_comment"])) { + $rejected = false; + try { + foreach ($comment_validators as $validator) { call_user_func($validator); - } - catch(CommentRejected $e) - { + } + } catch (CommentRejected $e) { $ste->vars["current"]["comment_fail"] = htmlesc($e->getMessage()); - $rejected = True; + $rejected = true; } - if(!$rejected) - { + if (!$rejected) { $comment = Comment::create($article, $lang); $comment->author_name = $_POST["author_name"]; $comment->author_mail = $_POST["author_mail"]; $comment->text = $_POST["comment_text"]; $comment->save(); $ste->vars["current"]["commented"] = "Yes"; - foreach($on_comment_store as $ocs_fx) + foreach ($on_comment_store as $ocs_fx) { call_user_func($ocs_fx, $comment); + } } } } @@ -861,11 +830,11 @@ function frontend_url_handler(&$data, $url_now, &$url_next) $ste->vars["current"]["page"] = (isset($_GET["page"]) and is_numeric($_GET["page"])) ? $_GET["page"] : 1; - if(!isset($section)) + if (!isset($section)) { $section = Section::by_id($ratatoeskr_settings["default_section"]); + } - foreach($section->get_styles() as $style) - { + foreach ($section->get_styles() as $style) { $ste->vars["current"]["styles"][] = $style->name; $ste->vars["current"]["__style_objs"][] = $style; } @@ -879,4 +848,6 @@ function frontend_url_handler(&$data, $url_now, &$url_next) * See Also: * */ -class CommentRejected extends Exception {} +class CommentRejected extends Exception +{ +} diff --git a/ratatoeskr/languages.php b/ratatoeskr/languages.php index 31b504e..2c31aa4 100644 --- a/ratatoeskr/languages.php +++ b/ratatoeskr/languages.php @@ -17,189 +17,189 @@ * Source: * http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes */ -$languages = array( - "aa" => array("language" => "Afaraf", "translation_exist" => False), - "ab" => array("language" => "аҧсуа", "translation_exist" => False), - "ae" => array("language" => "avesta", "translation_exist" => False), - "af" => array("language" => "Afrikaans", "translation_exist" => False), - "ak" => array("language" => "Akan", "translation_exist" => False), - "am" => array("language" => "አማርኛ", "translation_exist" => False), - "an" => array("language" => "Aragonés", "translation_exist" => False), - "ar" => array("language" => "العربية", "translation_exist" => False), - "as" => array("language" => "অসমীয়া", "translation_exist" => False), - "av" => array("language" => "авар мацӀ, магӀарул мацӀ", "translation_exist" => False), - "ay" => array("language" => "aymar aru", "translation_exist" => False), - "az" => array("language" => "azərbaycan dili", "translation_exist" => False), - "ba" => array("language" => "башҡорт теле", "translation_exist" => False), - "be" => array("language" => "Беларуская", "translation_exist" => False), - "bg" => array("language" => "български език", "translation_exist" => False), - "bh" => array("language" => "भोजपुरी", "translation_exist" => False), - "bi" => array("language" => "Bislama", "translation_exist" => False), - "bm" => array("language" => "bamanankan", "translation_exist" => False), - "bn" => array("language" => "বাংলা", "translation_exist" => False), - "bo" => array("language" => "བོད་ཡིག", "translation_exist" => False), - "br" => array("language" => "brezhoneg", "translation_exist" => False), - "bs" => array("language" => "bosanski jezik", "translation_exist" => False), - "ca" => array("language" => "Català", "translation_exist" => False), - "ce" => array("language" => "нохчийн мотт", "translation_exist" => False), - "ch" => array("language" => "Chamoru", "translation_exist" => False), - "co" => array("language" => "corsu, lingua corsa", "translation_exist" => False), - "cr" => array("language" => "ᓀᐦᐃᔭᐍᐏᐣ", "translation_exist" => False), - "cs" => array("language" => "česky, čeština", "translation_exist" => False), - "cu" => array("language" => "ѩзыкъ словѣньскъ", "translation_exist" => False), - "cv" => array("language" => "чӑваш чӗлхи", "translation_exist" => False), - "cy" => array("language" => "Cymraeg", "translation_exist" => False), - "da" => array("language" => "dansk", "translation_exist" => False), - "de" => array("language" => "Deutsch", "translation_exist" => True), - "dv" => array("language" => "ދިވެހި", "translation_exist" => False), - "dz" => array("language" => "རྫོང་ཁ", "translation_exist" => False), - "ee" => array("language" => "Eʋegbe", "translation_exist" => False), - "el" => array("language" => "Ελληνικά", "translation_exist" => False), - "en" => array("language" => "English", "translation_exist" => True), - "eo" => array("language" => "Esperanto", "translation_exist" => False), - "es" => array("language" => "español, castellano", "translation_exist" => False), - "et" => array("language" => "eesti, eesti keel", "translation_exist" => False), - "eu" => array("language" => "euskara, euskera", "translation_exist" => False), - "fa" => array("language" => "فارسی", "translation_exist" => False), - "ff" => array("language" => "Fulfulde, Pulaar, Pular", "translation_exist" => False), - "fi" => array("language" => "suomi, suomen kieli", "translation_exist" => False), - "fj" => array("language" => "vosa Vakaviti", "translation_exist" => False), - "fo" => array("language" => "føroyskt", "translation_exist" => False), - "fr" => array("language" => "français, langue française", "translation_exist" => False), - "fy" => array("language" => "Frysk", "translation_exist" => False), - "ga" => array("language" => "Gaeilge", "translation_exist" => False), - "gd" => array("language" => "Gàidhlig", "translation_exist" => False), - "gl" => array("language" => "Galego", "translation_exist" => False), - "gn" => array("language" => "Avañe'ẽ", "translation_exist" => False), - "gu" => array("language" => "ગુજરાતી", "translation_exist" => False), - "gv" => array("language" => "Gaelg, Gailck", "translation_exist" => False), - "ha" => array("language" => "Hausa, هَوُسَ", "translation_exist" => False), - "he" => array("language" => "עברית", "translation_exist" => False), - "hi" => array("language" => "हिन्दी, हिंदी", "translation_exist" => False), - "ho" => array("language" => "Hiri Motu", "translation_exist" => False), - "hr" => array("language" => "hrvatski", "translation_exist" => False), - "ht" => array("language" => "Kreyòl ayisyen", "translation_exist" => False), - "hu" => array("language" => "Magyar", "translation_exist" => False), - "hy" => array("language" => "Հայերեն", "translation_exist" => False), - "hz" => array("language" => "Otjiherero", "translation_exist" => False), - "ia" => array("language" => "Interlingua", "translation_exist" => False), - "id" => array("language" => "Bahasa Indonesia", "translation_exist" => False), - "ie" => array("language" => "Originally called ", "translation_exist" => False), - "ig" => array("language" => "Asụsụ Igbo", "translation_exist" => False), - "ii" => array("language" => "ꆈꌠ꒿ Nuosuhxop", "translation_exist" => False), - "ik" => array("language" => "Iñupiaq, Iñupiatun", "translation_exist" => False), - "io" => array("language" => "Ido", "translation_exist" => False), - "is" => array("language" => "Íslenska", "translation_exist" => False), - "it" => array("language" => "Italiano", "translation_exist" => False), - "iu" => array("language" => "ᐃᓄᒃᑎᑐᑦ", "translation_exist" => False), - "ja" => array("language" => "日本語 (にほんご)", "translation_exist" => False), - "jv" => array("language" => "basa Jawa", "translation_exist" => False), - "ka" => array("language" => "ქართული", "translation_exist" => False), - "kg" => array("language" => "KiKongo", "translation_exist" => False), - "ki" => array("language" => "Gĩkũyũ", "translation_exist" => False), - "kj" => array("language" => "Kuanyama", "translation_exist" => False), - "kk" => array("language" => "Қазақ тілі", "translation_exist" => False), - "kl" => array("language" => "kalaallisut, kalaallit oqaasii", "translation_exist" => False), - "km" => array("language" => "ភាសាខ្មែរ", "translation_exist" => False), - "kn" => array("language" => "ಕನ್ನಡ", "translation_exist" => False), - "ko" => array("language" => "한국어 (韓國語), 조선어 (朝鮮語)", "translation_exist" => False), - "kr" => array("language" => "Kanuri", "translation_exist" => False), - "ks" => array("language" => "कश्मीरी, كشميري‎", "translation_exist" => False), - "ku" => array("language" => "Kurdî, كوردی‎", "translation_exist" => False), - "kv" => array("language" => "коми кыв", "translation_exist" => False), - "kw" => array("language" => "Kernewek", "translation_exist" => False), - "ky" => array("language" => "кыргыз тили", "translation_exist" => False), - "la" => array("language" => "latine, lingua latina", "translation_exist" => False), - "lb" => array("language" => "Lëtzebuergesch", "translation_exist" => False), - "lg" => array("language" => "Luganda", "translation_exist" => False), - "li" => array("language" => "Limburgs", "translation_exist" => False), - "ln" => array("language" => "Lingála", "translation_exist" => False), - "lo" => array("language" => "ພາສາລາວ", "translation_exist" => False), - "lt" => array("language" => "lietuvių kalba", "translation_exist" => False), - "lu" => array("language" => "Luba-Katanga", "translation_exist" => False), - "lv" => array("language" => "latviešu valoda", "translation_exist" => False), - "mg" => array("language" => "Malagasy fiteny", "translation_exist" => False), - "mh" => array("language" => "Kajin M̧ajeļ", "translation_exist" => False), - "mi" => array("language" => "te reo Māori", "translation_exist" => False), - "mk" => array("language" => "македонски јазик", "translation_exist" => False), - "ml" => array("language" => "മലയാളം", "translation_exist" => False), - "mn" => array("language" => "монгол", "translation_exist" => False), - "mr" => array("language" => "मराठी", "translation_exist" => False), - "ms" => array("language" => "bahasa Melayu, بهاس ملايو‎", "translation_exist" => False), - "mt" => array("language" => "Malti", "translation_exist" => False), - "my" => array("language" => "ဗမာစာ", "translation_exist" => False), - "na" => array("language" => "Ekakairũ Naoero", "translation_exist" => False), - "nb" => array("language" => "Norsk bokmål", "translation_exist" => False), - "nd" => array("language" => "isiNdebele", "translation_exist" => False), - "ne" => array("language" => "नेपाली", "translation_exist" => False), - "ng" => array("language" => "Owambo", "translation_exist" => False), - "nl" => array("language" => "Nederlands, Vlaams", "translation_exist" => False), - "nn" => array("language" => "Norsk nynorsk", "translation_exist" => False), - "no" => array("language" => "Norsk", "translation_exist" => False), - "nr" => array("language" => "isiNdebele", "translation_exist" => False), - "nv" => array("language" => "Diné bizaad, Dinékʼehǰí", "translation_exist" => False), - "ny" => array("language" => "chiCheŵa, chinyanja", "translation_exist" => False), - "oc" => array("language" => "Occitan", "translation_exist" => False), - "oj" => array("language" => "ᐊᓂᔑᓈᐯᒧᐎᓐ", "translation_exist" => False), - "om" => array("language" => "Afaan Oromoo", "translation_exist" => False), - "or" => array("language" => "ଓଡ଼ିଆ", "translation_exist" => False), - "os" => array("language" => "ирон æвзаг", "translation_exist" => False), - "pa" => array("language" => "ਪੰਜਾਬੀ, پنجابی‎", "translation_exist" => False), - "pi" => array("language" => "पाऴि", "translation_exist" => False), - "pl" => array("language" => "polski", "translation_exist" => False), - "ps" => array("language" => "پښتو", "translation_exist" => False), - "pt" => array("language" => "Português", "translation_exist" => False), - "qu" => array("language" => "Runa Simi, Kichwa", "translation_exist" => False), - "rm" => array("language" => "rumantsch grischun", "translation_exist" => False), - "rn" => array("language" => "Ikirundi", "translation_exist" => False), - "ro" => array("language" => "română", "translation_exist" => False), - "ru" => array("language" => "русский язык", "translation_exist" => False), - "rw" => array("language" => "Ikinyarwanda", "translation_exist" => False), - "sa" => array("language" => "संस्कृतम्", "translation_exist" => False), - "sc" => array("language" => "sardu", "translation_exist" => False), - "sd" => array("language" => "yângâ tî sängö", "translation_exist" => False), - "se" => array("language" => "Davvisámegiella", "translation_exist" => False), - "sg" => array("language" => "yângâ tî sängö", "translation_exist" => False), - "si" => array("language" => "සිංහල", "translation_exist" => False), - "sk" => array("language" => "slovenčina", "translation_exist" => False), - "sl" => array("language" => "slovenščina", "translation_exist" => False), - "sm" => array("language" => "gagana fa'a Samoa", "translation_exist" => False), - "sn" => array("language" => "chiShona", "translation_exist" => False), - "so" => array("language" => "Soomaaliga, af Soomaali", "translation_exist" => False), - "sq" => array("language" => "Shqip", "translation_exist" => False), - "sr" => array("language" => "српски језик", "translation_exist" => False), - "ss" => array("language" => "SiSwati", "translation_exist" => False), - "st" => array("language" => "Sesotho", "translation_exist" => False), - "su" => array("language" => "Basa Sunda", "translation_exist" => False), - "sv" => array("language" => "svenska", "translation_exist" => False), - "sw" => array("language" => "Kiswahili", "translation_exist" => False), - "ta" => array("language" => "தமிழ்", "translation_exist" => False), - "te" => array("language" => "తెలుగు", "translation_exist" => False), - "tg" => array("language" => " тоҷикӣ, toğikī, تاجیکی‎", "translation_exist" => False), - "th" => array("language" => "ไทย", "translation_exist" => False), - "ti" => array("language" => "ትግርኛ", "translation_exist" => False), - "tk" => array("language" => "Türkmen, Түркмен", "translation_exist" => False), - "tl" => array("language" => "Wikang Tagalog", "translation_exist" => False), - "tn" => array("language" => "Setswana", "translation_exist" => False), - "to" => array("language" => "faka Tonga", "translation_exist" => False), - "tr" => array("language" => "Türkçe", "translation_exist" => False), - "ts" => array("language" => "Xitsonga", "translation_exist" => False), - "tt" => array("language" => "татарча, tatarça, تاتارچا‎", "translation_exist" => False), - "tw" => array("language" => "Twi", "translation_exist" => False), - "ty" => array("language" => "Reo Tahiti", "translation_exist" => False), - "ug" => array("language" => "Uyƣurqə, ئۇيغۇرچە‎", "translation_exist" => False), - "uk" => array("language" => "українська", "translation_exist" => False), - "ur" => array("language" => "اردو", "translation_exist" => False), - "uz" => array("language" => "O'zbek, Ўзбек, أۇزبېك‎", "translation_exist" => False), - "ve" => array("language" => "Tshivenḓa", "translation_exist" => False), - "vi" => array("language" => "Tiếng Việt", "translation_exist" => False), - "vo" => array("language" => "Volapük", "translation_exist" => False), - "wa" => array("language" => "Walon", "translation_exist" => False), - "wo" => array("language" => "Wollof", "translation_exist" => False), - "xh" => array("language" => "isiXhosa", "translation_exist" => False), - "yi" => array("language" => "ייִדיש", "translation_exist" => False), - "yo" => array("language" => "Yorùbá", "translation_exist" => False), - "za" => array("language" => "Saɯ cueŋƅ, Saw cuengh", "translation_exist" => False), - "zh" => array("language" => "中文, 汉语, 漢語", "translation_exist" => False), - "zu" => array("language" => "isiZulu", "translation_exist" => False) -); +$languages = [ + "aa" => ["language" => "Afaraf", "translation_exist" => false], + "ab" => ["language" => "аҧсуа", "translation_exist" => false], + "ae" => ["language" => "avesta", "translation_exist" => false], + "af" => ["language" => "Afrikaans", "translation_exist" => false], + "ak" => ["language" => "Akan", "translation_exist" => false], + "am" => ["language" => "አማርኛ", "translation_exist" => false], + "an" => ["language" => "Aragonés", "translation_exist" => false], + "ar" => ["language" => "العربية", "translation_exist" => false], + "as" => ["language" => "অসমীয়া", "translation_exist" => false], + "av" => ["language" => "авар мацӀ, магӀарул мацӀ", "translation_exist" => false], + "ay" => ["language" => "aymar aru", "translation_exist" => false], + "az" => ["language" => "azərbaycan dili", "translation_exist" => false], + "ba" => ["language" => "башҡорт теле", "translation_exist" => false], + "be" => ["language" => "Беларуская", "translation_exist" => false], + "bg" => ["language" => "български език", "translation_exist" => false], + "bh" => ["language" => "भोजपुरी", "translation_exist" => false], + "bi" => ["language" => "Bislama", "translation_exist" => false], + "bm" => ["language" => "bamanankan", "translation_exist" => false], + "bn" => ["language" => "বাংলা", "translation_exist" => false], + "bo" => ["language" => "བོད་ཡིག", "translation_exist" => false], + "br" => ["language" => "brezhoneg", "translation_exist" => false], + "bs" => ["language" => "bosanski jezik", "translation_exist" => false], + "ca" => ["language" => "Català", "translation_exist" => false], + "ce" => ["language" => "нохчийн мотт", "translation_exist" => false], + "ch" => ["language" => "Chamoru", "translation_exist" => false], + "co" => ["language" => "corsu, lingua corsa", "translation_exist" => false], + "cr" => ["language" => "ᓀᐦᐃᔭᐍᐏᐣ", "translation_exist" => false], + "cs" => ["language" => "česky, čeština", "translation_exist" => false], + "cu" => ["language" => "ѩзыкъ словѣньскъ", "translation_exist" => false], + "cv" => ["language" => "чӑваш чӗлхи", "translation_exist" => false], + "cy" => ["language" => "Cymraeg", "translation_exist" => false], + "da" => ["language" => "dansk", "translation_exist" => false], + "de" => ["language" => "Deutsch", "translation_exist" => true], + "dv" => ["language" => "ދިވެހި", "translation_exist" => false], + "dz" => ["language" => "རྫོང་ཁ", "translation_exist" => false], + "ee" => ["language" => "Eʋegbe", "translation_exist" => false], + "el" => ["language" => "Ελληνικά", "translation_exist" => false], + "en" => ["language" => "English", "translation_exist" => true], + "eo" => ["language" => "Esperanto", "translation_exist" => false], + "es" => ["language" => "español, castellano", "translation_exist" => false], + "et" => ["language" => "eesti, eesti keel", "translation_exist" => false], + "eu" => ["language" => "euskara, euskera", "translation_exist" => false], + "fa" => ["language" => "فارسی", "translation_exist" => false], + "ff" => ["language" => "Fulfulde, Pulaar, Pular", "translation_exist" => false], + "fi" => ["language" => "suomi, suomen kieli", "translation_exist" => false], + "fj" => ["language" => "vosa Vakaviti", "translation_exist" => false], + "fo" => ["language" => "føroyskt", "translation_exist" => false], + "fr" => ["language" => "français, langue française", "translation_exist" => false], + "fy" => ["language" => "Frysk", "translation_exist" => false], + "ga" => ["language" => "Gaeilge", "translation_exist" => false], + "gd" => ["language" => "Gàidhlig", "translation_exist" => false], + "gl" => ["language" => "Galego", "translation_exist" => false], + "gn" => ["language" => "Avañe'ẽ", "translation_exist" => false], + "gu" => ["language" => "ગુજરાતી", "translation_exist" => false], + "gv" => ["language" => "Gaelg, Gailck", "translation_exist" => false], + "ha" => ["language" => "Hausa, هَوُسَ", "translation_exist" => false], + "he" => ["language" => "עברית", "translation_exist" => false], + "hi" => ["language" => "हिन्दी, हिंदी", "translation_exist" => false], + "ho" => ["language" => "Hiri Motu", "translation_exist" => false], + "hr" => ["language" => "hrvatski", "translation_exist" => false], + "ht" => ["language" => "Kreyòl ayisyen", "translation_exist" => false], + "hu" => ["language" => "Magyar", "translation_exist" => false], + "hy" => ["language" => "Հայերեն", "translation_exist" => false], + "hz" => ["language" => "Otjiherero", "translation_exist" => false], + "ia" => ["language" => "Interlingua", "translation_exist" => false], + "id" => ["language" => "Bahasa Indonesia", "translation_exist" => false], + "ie" => ["language" => "Originally called ", "translation_exist" => false], + "ig" => ["language" => "Asụsụ Igbo", "translation_exist" => false], + "ii" => ["language" => "ꆈꌠ꒿ Nuosuhxop", "translation_exist" => false], + "ik" => ["language" => "Iñupiaq, Iñupiatun", "translation_exist" => false], + "io" => ["language" => "Ido", "translation_exist" => false], + "is" => ["language" => "Íslenska", "translation_exist" => false], + "it" => ["language" => "Italiano", "translation_exist" => false], + "iu" => ["language" => "ᐃᓄᒃᑎᑐᑦ", "translation_exist" => false], + "ja" => ["language" => "日本語 (にほんご)", "translation_exist" => false], + "jv" => ["language" => "basa Jawa", "translation_exist" => false], + "ka" => ["language" => "ქართული", "translation_exist" => false], + "kg" => ["language" => "KiKongo", "translation_exist" => false], + "ki" => ["language" => "Gĩkũyũ", "translation_exist" => false], + "kj" => ["language" => "Kuanyama", "translation_exist" => false], + "kk" => ["language" => "Қазақ тілі", "translation_exist" => false], + "kl" => ["language" => "kalaallisut, kalaallit oqaasii", "translation_exist" => false], + "km" => ["language" => "ភាសាខ្មែរ", "translation_exist" => false], + "kn" => ["language" => "ಕನ್ನಡ", "translation_exist" => false], + "ko" => ["language" => "한국어 (韓國語), 조선어 (朝鮮語)", "translation_exist" => false], + "kr" => ["language" => "Kanuri", "translation_exist" => false], + "ks" => ["language" => "कश्मीरी, كشميري‎", "translation_exist" => false], + "ku" => ["language" => "Kurdî, كوردی‎", "translation_exist" => false], + "kv" => ["language" => "коми кыв", "translation_exist" => false], + "kw" => ["language" => "Kernewek", "translation_exist" => false], + "ky" => ["language" => "кыргыз тили", "translation_exist" => false], + "la" => ["language" => "latine, lingua latina", "translation_exist" => false], + "lb" => ["language" => "Lëtzebuergesch", "translation_exist" => false], + "lg" => ["language" => "Luganda", "translation_exist" => false], + "li" => ["language" => "Limburgs", "translation_exist" => false], + "ln" => ["language" => "Lingála", "translation_exist" => false], + "lo" => ["language" => "ພາສາລາວ", "translation_exist" => false], + "lt" => ["language" => "lietuvių kalba", "translation_exist" => false], + "lu" => ["language" => "Luba-Katanga", "translation_exist" => false], + "lv" => ["language" => "latviešu valoda", "translation_exist" => false], + "mg" => ["language" => "Malagasy fiteny", "translation_exist" => false], + "mh" => ["language" => "Kajin M̧ajeļ", "translation_exist" => false], + "mi" => ["language" => "te reo Māori", "translation_exist" => false], + "mk" => ["language" => "македонски јазик", "translation_exist" => false], + "ml" => ["language" => "മലയാളം", "translation_exist" => false], + "mn" => ["language" => "монгол", "translation_exist" => false], + "mr" => ["language" => "मराठी", "translation_exist" => false], + "ms" => ["language" => "bahasa Melayu, بهاس ملايو‎", "translation_exist" => false], + "mt" => ["language" => "Malti", "translation_exist" => false], + "my" => ["language" => "ဗမာစာ", "translation_exist" => false], + "na" => ["language" => "Ekakairũ Naoero", "translation_exist" => false], + "nb" => ["language" => "Norsk bokmål", "translation_exist" => false], + "nd" => ["language" => "isiNdebele", "translation_exist" => false], + "ne" => ["language" => "नेपाली", "translation_exist" => false], + "ng" => ["language" => "Owambo", "translation_exist" => false], + "nl" => ["language" => "Nederlands, Vlaams", "translation_exist" => false], + "nn" => ["language" => "Norsk nynorsk", "translation_exist" => false], + "no" => ["language" => "Norsk", "translation_exist" => false], + "nr" => ["language" => "isiNdebele", "translation_exist" => false], + "nv" => ["language" => "Diné bizaad, Dinékʼehǰí", "translation_exist" => false], + "ny" => ["language" => "chiCheŵa, chinyanja", "translation_exist" => false], + "oc" => ["language" => "Occitan", "translation_exist" => false], + "oj" => ["language" => "ᐊᓂᔑᓈᐯᒧᐎᓐ", "translation_exist" => false], + "om" => ["language" => "Afaan Oromoo", "translation_exist" => false], + "or" => ["language" => "ଓଡ଼ିଆ", "translation_exist" => false], + "os" => ["language" => "ирон æвзаг", "translation_exist" => false], + "pa" => ["language" => "ਪੰਜਾਬੀ, پنجابی‎", "translation_exist" => false], + "pi" => ["language" => "पाऴि", "translation_exist" => false], + "pl" => ["language" => "polski", "translation_exist" => false], + "ps" => ["language" => "پښتو", "translation_exist" => false], + "pt" => ["language" => "Português", "translation_exist" => false], + "qu" => ["language" => "Runa Simi, Kichwa", "translation_exist" => false], + "rm" => ["language" => "rumantsch grischun", "translation_exist" => false], + "rn" => ["language" => "Ikirundi", "translation_exist" => false], + "ro" => ["language" => "română", "translation_exist" => false], + "ru" => ["language" => "русский язык", "translation_exist" => false], + "rw" => ["language" => "Ikinyarwanda", "translation_exist" => false], + "sa" => ["language" => "संस्कृतम्", "translation_exist" => false], + "sc" => ["language" => "sardu", "translation_exist" => false], + "sd" => ["language" => "yângâ tî sängö", "translation_exist" => false], + "se" => ["language" => "Davvisámegiella", "translation_exist" => false], + "sg" => ["language" => "yângâ tî sängö", "translation_exist" => false], + "si" => ["language" => "සිංහල", "translation_exist" => false], + "sk" => ["language" => "slovenčina", "translation_exist" => false], + "sl" => ["language" => "slovenščina", "translation_exist" => false], + "sm" => ["language" => "gagana fa'a Samoa", "translation_exist" => false], + "sn" => ["language" => "chiShona", "translation_exist" => false], + "so" => ["language" => "Soomaaliga, af Soomaali", "translation_exist" => false], + "sq" => ["language" => "Shqip", "translation_exist" => false], + "sr" => ["language" => "српски језик", "translation_exist" => false], + "ss" => ["language" => "SiSwati", "translation_exist" => false], + "st" => ["language" => "Sesotho", "translation_exist" => false], + "su" => ["language" => "Basa Sunda", "translation_exist" => false], + "sv" => ["language" => "svenska", "translation_exist" => false], + "sw" => ["language" => "Kiswahili", "translation_exist" => false], + "ta" => ["language" => "தமிழ்", "translation_exist" => false], + "te" => ["language" => "తెలుగు", "translation_exist" => false], + "tg" => ["language" => " тоҷикӣ, toğikī, تاجیکی‎", "translation_exist" => false], + "th" => ["language" => "ไทย", "translation_exist" => false], + "ti" => ["language" => "ትግርኛ", "translation_exist" => false], + "tk" => ["language" => "Türkmen, Түркмен", "translation_exist" => false], + "tl" => ["language" => "Wikang Tagalog", "translation_exist" => false], + "tn" => ["language" => "Setswana", "translation_exist" => false], + "to" => ["language" => "faka Tonga", "translation_exist" => false], + "tr" => ["language" => "Türkçe", "translation_exist" => false], + "ts" => ["language" => "Xitsonga", "translation_exist" => false], + "tt" => ["language" => "татарча, tatarça, تاتارچا‎", "translation_exist" => false], + "tw" => ["language" => "Twi", "translation_exist" => false], + "ty" => ["language" => "Reo Tahiti", "translation_exist" => false], + "ug" => ["language" => "Uyƣurqə, ئۇيغۇرچە‎", "translation_exist" => false], + "uk" => ["language" => "українська", "translation_exist" => false], + "ur" => ["language" => "اردو", "translation_exist" => false], + "uz" => ["language" => "O'zbek, Ўзбек, أۇزبېك‎", "translation_exist" => false], + "ve" => ["language" => "Tshivenḓa", "translation_exist" => false], + "vi" => ["language" => "Tiếng Việt", "translation_exist" => false], + "vo" => ["language" => "Volapük", "translation_exist" => false], + "wa" => ["language" => "Walon", "translation_exist" => false], + "wo" => ["language" => "Wollof", "translation_exist" => false], + "xh" => ["language" => "isiXhosa", "translation_exist" => false], + "yi" => ["language" => "ייִדיש", "translation_exist" => false], + "yo" => ["language" => "Yorùbá", "translation_exist" => false], + "za" => ["language" => "Saɯ cueŋƅ, Saw cuengh", "translation_exist" => false], + "zh" => ["language" => "中文, 汉语, 漢語", "translation_exist" => false], + "zu" => ["language" => "isiZulu", "translation_exist" => false] +]; diff --git a/ratatoeskr/main.php b/ratatoeskr/main.php index cbeeb29..7599231 100644 --- a/ratatoeskr/main.php +++ b/ratatoeskr/main.php @@ -10,8 +10,9 @@ */ require_once(dirname(__FILE__) . "/config.php"); -if(!CONFIG_FILLED_OUT) +if (!CONFIG_FILLED_OUT) { die("Config file not filled out!"); +} require_once(dirname(__FILE__) . "/sys/db.php"); require_once(dirname(__FILE__) . "/sys/models.php"); @@ -22,21 +23,19 @@ require_once(dirname(__FILE__) . "/sys/plugin_api.php"); require_once(dirname(__FILE__) . "/frontend.php"); require_once(dirname(__FILE__) . "/backend.php"); -$plugin_objs = array(); +$plugin_objs = []; function ratatoeskr() { global $ste; - try - { + try { _ratatoeskr(); - } - catch(Exception $e) - { + } catch (Exception $e) { header("HTTP/1.1 500 Internal Server Error"); $ste->vars["title"] = "500 Internal Server Error"; - if(__DEBUG__) + if (__DEBUG__) { $ste->vars["details"] = $e->__toString(); + } echo $ste->exectemplate("/systemtemplates/error.html"); } } @@ -45,33 +44,32 @@ function _ratatoeskr() { global $backend_subactions, $ste, $url_handlers, $ratatoeskr_settings, $plugin_objs, $api_compat; - $ts_start = microtime(True); + $ts_start = microtime(true); session_start(); db_connect(); clean_database(); - if(isset($ratatoeskr_settings["debugmode"]) and $ratatoeskr_settings["debugmode"]) - define("__DEBUG__", True); + if (isset($ratatoeskr_settings["debugmode"]) and $ratatoeskr_settings["debugmode"]) { + define("__DEBUG__", true); + } - if(PLUGINS_ENABLED) - { - $activeplugins = array_filter(Plugin::all(), function($plugin) { return $plugin->active; }); - foreach($activeplugins as $plugin) - { - if(!in_array($plugin->api, $api_compat)) - { - $plugin->active = False; + if (PLUGINS_ENABLED) { + $activeplugins = array_filter(Plugin::all(), function ($plugin) { + return $plugin->active; + }); + foreach ($activeplugins as $plugin) { + if (!in_array($plugin->api, $api_compat)) { + $plugin->active = false; $plugin->save(); continue; } eval($plugin->code); $plugin_obj = new $plugin->classname($plugin->get_id()); - if($plugin->update) - { + if ($plugin->update) { $plugin_obj->update(); - $plugin->update = False; + $plugin->update = false; $plugin->save(); } $plugin_obj->init(); @@ -85,8 +83,7 @@ function _ratatoeskr() register_url_handler("_index", "frontend_url_handler"); register_url_handler("index", "frontend_url_handler"); register_url_handler("backend", $backend_subactions); - register_url_handler("_notfound", url_action_simple(function($data) - { + register_url_handler("_notfound", url_action_simple(function ($data) { global $ste; header("HTTP/1.1 404 Not Found"); $ste->vars["title"] = "404 Not Found"; @@ -95,17 +92,17 @@ function _ratatoeskr() })); $urlpath = explode("/", @$_GET["action"]); - $rel_path_to_root = implode("/", array_merge(array("."), array_repeat("..", count($urlpath) - 1))); + $rel_path_to_root = implode("/", array_merge(["."], array_repeat("..", count($urlpath) - 1))); $GLOBALS["rel_path_to_root"] = $rel_path_to_root; - $data = array("rel_path_to_root" => $rel_path_to_root); + $data = ["rel_path_to_root" => $rel_path_to_root]; $ste->vars["rel_path_to_root"] = $rel_path_to_root; url_process($urlpath, $url_handlers, $data); - if(PLUGINS_ENABLED) - { - foreach($plugin_objs as $plugin_obj) + if (PLUGINS_ENABLED) { + foreach ($plugin_objs as $plugin_obj) { $plugin_obj->atexit(); + } } $ratatoeskr_settings->save(); } diff --git a/ratatoeskr/setup/create_tables.php b/ratatoeskr/setup/create_tables.php index 9b330fe..4898e84 100644 --- a/ratatoeskr/setup/create_tables.php +++ b/ratatoeskr/setup/create_tables.php @@ -1,7 +1,8 @@ vars["rel_path_to_root"] = $rel_path_to_root; -$ste->vars["translations"] = array(); -foreach($languages as $langcode => $langinfo) -{ - if($langinfo["translation_exist"]) +$ste->vars["translations"] = []; +foreach ($languages as $langcode => $langinfo) { + if ($langinfo["translation_exist"]) { $ste->vars["translations"][$langcode] = $langinfo["language"]; + } } -if(isset($_GET["lang"]) and (@$languages[$_GET["lang"]]["translation_exist"])) -{ +if (isset($_GET["lang"]) and (@$languages[$_GET["lang"]]["translation_exist"])) { load_language($_GET["lang"]); $lang = $_GET["lang"]; $ste->vars["lang"] = $_GET["lang"]; -} -else +} else { die($ste->exectemplate("/systemtemplates/setup_select_lang.html")); +} -if(isset($_POST["apply_setup"])) -{ - if(empty($_POST["admin_username"]) or empty($_POST["admin_init_password"])) +if (isset($_POST["apply_setup"])) { + if (empty($_POST["admin_username"]) or empty($_POST["admin_init_password"])) { $ste->vars["error"] = $translation["admin_data_must_be_filled_out"]; - else - { + } else { $config["mysql"]["server"] = $_POST["mysql_host"]; $config["mysql"]["db"] = $_POST["mysql_database"]; $config["mysql"]["user"] = $_POST["mysql_user"]; $config["mysql"]["passwd"] = $_POST["mysql_password"]; $config["mysql"]["prefix"] = $_POST["table_prefix"]; - try - { + try { db_connect(); create_mysql_tables(); @@ -49,12 +45,12 @@ if(isset($_POST["apply_setup"])) require_once(dirname(__FILE__) . "/../sys/models.php"); $ratatoeskr_settings["default_language"] = $lang; - $ratatoeskr_settings["comment_visible_defaut"] = True; - $ratatoeskr_settings["allow_comments_default"] = True; + $ratatoeskr_settings["comment_visible_defaut"] = true; + $ratatoeskr_settings["allow_comments_default"] = true; $ratatoeskr_settings["comment_textprocessor"] = "Markdown"; - $ratatoeskr_settings["languages"] = $lang == "en" ? array("en") : array($lang, "en"); + $ratatoeskr_settings["languages"] = $lang == "en" ? ["en"] : [$lang, "en"]; $ratatoeskr_settings["last_db_cleanup"] = time(); - $ratatoeskr_settings["debugmode"] = False; + $ratatoeskr_settings["debugmode"] = false; $style = Style::create("default"); $style->code = <<