From a59af203e2fceb268fcfac6cbaaea0a8b99eb3ef Mon Sep 17 00:00:00 2001 From: Fraenkiman Date: Thu, 1 Feb 2024 22:27:41 +0100 Subject: [PATCH 01/28] Inserts the DateChanger plugin and removes the second Akismet instance - Akismet is represented twice in FlatPress - once in the form of the Akismet plugin and once in the form of the Commentcenter plugin. - This PR removes the Akismet plugin and replaces it with the DateChanger plugin. - The Akismet plugin is given a place in the extra repo --- fp-defaults/plugins.conf.php | 9 +- fp-plugins/akismet/inc/Akismet.class.php | 391 ------------------ fp-plugins/akismet/lang/lang.cs-cz.php | 24 -- fp-plugins/akismet/lang/lang.da-dk.php | 23 -- fp-plugins/akismet/lang/lang.de-de.php | 23 -- fp-plugins/akismet/lang/lang.el-gr.php | 23 -- fp-plugins/akismet/lang/lang.en-us.php | 23 -- fp-plugins/akismet/lang/lang.es-es.php | 23 -- fp-plugins/akismet/lang/lang.fr-fr.php | 23 -- fp-plugins/akismet/lang/lang.it-it.php | 23 -- fp-plugins/akismet/lang/lang.ja-jp.php | 23 -- fp-plugins/akismet/lang/lang.nl-nl.php | 23 -- fp-plugins/akismet/lang/lang.pt-br.php | 23 -- fp-plugins/akismet/lang/lang.ru-ru.php | 23 -- fp-plugins/akismet/lang/lang.sl-si.php | 22 - fp-plugins/akismet/plugin.akismet.php | 84 ---- .../akismet/tpls/admin.plugin.akismet.tpl | 17 - fp-plugins/datechanger/doc_datechanger.txt | 9 + fp-plugins/datechanger/lang/lang.cs-cz.php | 7 + fp-plugins/datechanger/lang/lang.da-dk.php | 7 + fp-plugins/datechanger/lang/lang.de-de.php | 7 + fp-plugins/datechanger/lang/lang.el-gr.php | 7 + fp-plugins/datechanger/lang/lang.en-us.php | 7 + fp-plugins/datechanger/lang/lang.es-es.php | 7 + fp-plugins/datechanger/lang/lang.fr-fr.php | 7 + fp-plugins/datechanger/lang/lang.it-it.php | 7 + fp-plugins/datechanger/lang/lang.ja-jp.php | 7 + fp-plugins/datechanger/lang/lang.nl-nl.php | 7 + fp-plugins/datechanger/lang/lang.pt-br.php | 7 + fp-plugins/datechanger/lang/lang.ru-ru.php | 7 + fp-plugins/datechanger/lang/lang.sl-si.php | 7 + fp-plugins/datechanger/plugin.datechanger.php | 116 ++++++ 32 files changed, 220 insertions(+), 796 deletions(-) delete mode 100755 fp-plugins/akismet/inc/Akismet.class.php delete mode 100644 fp-plugins/akismet/lang/lang.cs-cz.php delete mode 100644 fp-plugins/akismet/lang/lang.da-dk.php delete mode 100644 fp-plugins/akismet/lang/lang.de-de.php delete mode 100644 fp-plugins/akismet/lang/lang.el-gr.php delete mode 100644 fp-plugins/akismet/lang/lang.en-us.php delete mode 100644 fp-plugins/akismet/lang/lang.es-es.php delete mode 100644 fp-plugins/akismet/lang/lang.fr-fr.php delete mode 100644 fp-plugins/akismet/lang/lang.it-it.php delete mode 100644 fp-plugins/akismet/lang/lang.ja-jp.php delete mode 100644 fp-plugins/akismet/lang/lang.nl-nl.php delete mode 100644 fp-plugins/akismet/lang/lang.pt-br.php delete mode 100644 fp-plugins/akismet/lang/lang.ru-ru.php delete mode 100644 fp-plugins/akismet/lang/lang.sl-si.php delete mode 100644 fp-plugins/akismet/plugin.akismet.php delete mode 100644 fp-plugins/akismet/tpls/admin.plugin.akismet.tpl create mode 100644 fp-plugins/datechanger/doc_datechanger.txt create mode 100644 fp-plugins/datechanger/lang/lang.cs-cz.php create mode 100644 fp-plugins/datechanger/lang/lang.da-dk.php create mode 100644 fp-plugins/datechanger/lang/lang.de-de.php create mode 100644 fp-plugins/datechanger/lang/lang.el-gr.php create mode 100644 fp-plugins/datechanger/lang/lang.en-us.php create mode 100644 fp-plugins/datechanger/lang/lang.es-es.php create mode 100644 fp-plugins/datechanger/lang/lang.fr-fr.php create mode 100644 fp-plugins/datechanger/lang/lang.it-it.php create mode 100644 fp-plugins/datechanger/lang/lang.ja-jp.php create mode 100644 fp-plugins/datechanger/lang/lang.nl-nl.php create mode 100644 fp-plugins/datechanger/lang/lang.pt-br.php create mode 100644 fp-plugins/datechanger/lang/lang.ru-ru.php create mode 100644 fp-plugins/datechanger/lang/lang.sl-si.php create mode 100644 fp-plugins/datechanger/plugin.datechanger.php diff --git a/fp-defaults/plugins.conf.php b/fp-defaults/plugins.conf.php index 7678b3e..9eb8a16 100755 --- a/fp-defaults/plugins.conf.php +++ b/fp-defaults/plugins.conf.php @@ -8,13 +8,10 @@ $fp_plugins = array( 'lightbox2', // fancy usable img overlay effect, needs jquery 'thumb', // creates thumbnails adding scale=NN% to [img] tags :) 'bbcode', // bbcode-style formatting; if you disable this - // you'll loose some features, but you will be able to use xhtml - // as a default - // 'syntaxhighlighter',//fancy js to color code + // you'll loose some features, but you will be able to use html + // as a default 'accessibleantispam', 'qspam', // quick spam filter - // 'akismet', // powerful antispam; requires you to have a wordpress api key - // open the plugin file to set your key 'adminarea', 'archives', // 'calendar', //time consuming, not really recommended :p @@ -29,6 +26,8 @@ $fp_plugins = array( 'favicon', 'commentcenter', 'mediamanager', + // 'datechanger' // Lets you change the publish date for (new) entries. 'gallerycaptions', 'photoswipe' ); +?> diff --git a/fp-plugins/akismet/inc/Akismet.class.php b/fp-plugins/akismet/inc/Akismet.class.php deleted file mode 100755 index b274b7c..0000000 --- a/fp-plugins/akismet/inc/Akismet.class.php +++ /dev/null @@ -1,391 +0,0 @@ -Usage: - * - * $akismet = new Akismet('http://www.example.com/blog/', 'aoeu1aoue'); - * $akismet->setCommentAuthor($name); - * $akismet->setCommentAuthorEmail($email); - * $akismet->setCommentAuthorURL($url); - * $akismet->setCommentContent($comment); - * $akismet->setPermalink('http://www.example.com/blog/alex/someurl/'); - * if($akismet->isCommentSpam()) - * // store the comment but mark it as spam (in case of a mis-diagnosis) - * else - * // store the comment normally - * - * - * @package akismet - * @name Akismet - * @version 0.2 - * @author Alex Potsides (converted to PHP4 by Bret Kuhns) - * @link http://www.achingbrain.net/ - */ -class Akismet { - - var $version = '0.2'; - - var $wordPressAPIKey; - - var $blogURL; - - var $comment; - - var $apiPort; - - var $akismetServer; - - var $akismetVersion; - - // This prevents some potentially sensitive information from being sent accross the wire. - var $ignore = array( - 'HTTP_COOKIE', - 'HTTP_X_FORWARDED_FOR', - 'HTTP_X_FORWARDED_HOST', - 'HTTP_MAX_FORWARDS', - 'HTTP_X_FORWARDED_SERVER', - 'REDIRECT_STATUS', - 'SERVER_PORT', - 'PATH', - 'DOCUMENT_ROOT', - 'SERVER_ADMIN', - 'QUERY_STRING', - 'PHP_SELF' - ); - - /** - * - * @throws Exception An exception is thrown if your API key is invalid. - * @param - * string Your WordPress API key. - * @param string $blogURL - * The URL of your blog. - */ - function __construct($blogURL, $wordPressAPIKey) { - $this->blogURL = $blogURL; - $this->wordPressAPIKey = $wordPressAPIKey; - - // Set some default values - $this->apiPort = 80; - $this->akismetServer = 'rest.akismet.com'; - $this->akismetVersion = '1.1'; - - // Start to populate the comment data - $this->comment ['blog'] = $blogURL; - $this->comment ['user_agent'] = $_SERVER ['HTTP_USER_AGENT']; - $this->comment ['referrer'] = $_SERVER ['HTTP_REFERER']; - - // This is necessary if the server PHP5 is running on has been set up to run PHP4 and - // PHP5 concurently and is actually running through a separate proxy al a these instructions: - // http://www.schlitt.info/applications/blog/archives/83_How_to_run_PHP4_and_PHP_5_parallel.html - // and http://wiki.coggeshall.org/37.html - // Otherwise the user_ip appears as the IP address of the PHP4 server passing the requests to the - // PHP5 one... - $this->comment ['user_ip'] = $_SERVER ['REMOTE_ADDR'] != getenv('SERVER_ADDR') ? $_SERVER ['REMOTE_ADDR'] : getenv('HTTP_X_FORWARDED_FOR'); - - // Check to see if the key is valid - $response = $this->http_post('key=' . $this->wordPressAPIKey . '&blog=' . $this->blogURL, $this->akismetServer, '/' . $this->akismetVersion . '/verify-key'); - - if ($response [1] != 'valid') { - // Whoops, no it's not. Throw an exception as we can't proceed without a valid API key. - trigger_error('Invalid API key. Please obtain one from http://wordpress.com/api-keys/', E_USER_ERROR); - } - } - - function http_post($request, $host, $path) { - $http_request = "POST " . $path . " HTTP/1.0\r\n" . // - "Host: " . $host . "\r\n" . // - "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n" . // - "Content-Length: " . strlen($request) . "\r\n" . // - "User-Agent: Akismet PHP5 Class " . $this->version . " | Akismet/1.11\r\n" . // - "\r\n" . // - $request; - - $socketWriteRead = new SocketWriteRead($host, $this->apiPort, $http_request); - $socketWriteRead->send(); - - return explode("\r\n\r\n", $socketWriteRead->getResponse(), 2); - } - - // Formats the data for transmission echo $sql; - function getQueryString() { - foreach ($_SERVER as $key => $value) { - if (!in_array($key, $this->ignore)) { - if ($key == 'REMOTE_ADDR') { - $this->comment [$key] = $this->comment ['user_ip']; - } else { - $this->comment [$key] = $value; - } - } - } - - $query_string = ''; - - foreach ($this->comment as $key => $data) { - - @$query_string .= $key . '=' . urlencode(stripslashes($data)) . '&'; - } - - return $query_string; - } - - /** - * Tests for spam. - * - * Uses the web service provided by {@link http://www.akismet.com Akismet} to see whether or not the submitted comment is spam. Returns a boolean value. - * - * @return bool True if the comment is spam, false if not - */ - function isSpam() { - $response = $this->http_post($this->getQueryString(), $this->wordPressAPIKey . '.rest.akismet.com', '/' . $this->akismetVersion . '/comment-check'); - - return ($response [1] == 'true'); - } - - /** - * Submit spam that is incorrectly tagged as ham. - * - * Using this function will make you a good citizen as it helps Akismet to learn from its mistakes. This will improve the service for everybody. - */ - function submitSpam() { - $this->http_post($this->getQueryString(), $this->wordPressAPIKey . '.' . $this->akismetServer, '/' . $this->akismetVersion . '/submit-spam'); - } - - /** - * Submit ham that is incorrectly tagged as spam. - * - * Using this function will make you a good citizen as it helps Akismet to learn from its mistakes. This will improve the service for everybody. - */ - function submitHam() { - $this->http_post($this->getQueryString(), $this->wordPressAPIKey . '.' . $this->akismetServer, '/' . $this->akismetVersion . '/submit-ham'); - } - - /** - * To override the user IP address when submitting spam/ham later on - * - * @param string $userip - * An IP address. Optional. - */ - function setUserIP($userip) { - $this->comment ['user_ip'] = $userip; - } - - /** - * To override the referring page when submitting spam/ham later on - * - * @param string $referrer - * The referring page. Optional. - */ - function setReferrer($referrer) { - $this->comment ['referrer'] = $referrer; - } - - /** - * A permanent URL referencing the blog post the comment was submitted to. - * - * @param string $permalink - * The URL. Optional. - */ - function setPermalink($permalink) { - $this->comment ['permalink'] = $permalink; - } - - /** - * The type of comment being submitted. - * - * May be blank, comment, trackback, pingback, or a made up value like "registration" or "wiki". - */ - function setType($commentType) { - $this->comment ['comment_type'] = $commentType; - } - - /** - * The name that the author submitted with the comment. - */ - function setAuthor($commentAuthor) { - $this->comment ['comment_author'] = $commentAuthor; - } - - /** - * The email address that the author submitted with the comment. - * - * The address is assumed to be valid. - */ - function setAuthorEmail($authorEmail) { - $this->comment ['comment_author_email'] = $authorEmail; - } - - /** - * The URL that the author submitted with the comment. - */ - function setAuthorURL($authorURL) { - $this->comment ['comment_author_url'] = $authorURL; - } - - /** - * The comment's body text. - */ - function setContent($commentBody) { - $this->comment ['comment_content'] = $commentBody; - } - - /** - * Defaults to 80 - */ - function setAPIPort($apiPort) { - $this->apiPort = $apiPort; - } - - /** - * Defaults to rest.akismet.com - */ - function setAkismetServer($akismetServer) { - $this->akismetServer = $akismetServer; - } - - /** - * Defaults to '1.1' - */ - function setAkismetVersion($akismetVersion) { - $this->akismetVersion = $akismetVersion; - } - -} - -/** - * Utility class used by Akismet - * - * This class is used by Akismet to do the actual sending and receiving of data. It opens a connection to a remote host, sends some data and the reads the response and makes it available to the calling program. - * - * The code that makes up this class originates in the Akismet WordPress plugin, which is {@link http://akismet.com/download/ available on the Akismet website}. - * - * N.B. It is not necessary to call this class directly to use the Akismet class. This is included here mainly out of a sense of completeness. - * - * @package akismet - * @name SocketWriteRead - * @version 0.1 - * @author Alex Potsides - * @link http://www.achingbrain.net/ - */ -class SocketWriteRead { - - var $host; - - var $port; - - var $request; - - var $response; - - var $responseLength; - - var $errorNumber; - - var $errorString; - - /** - * - * @param string $host - * The host to send/receive data. - * @param int $port - * The port on the remote host. - * @param string $request - * The data to send. - * @param int $responseLength - * The amount of data to read. Defaults to 1160 bytes. - */ - function __construct($host, $port, $request, $responseLength = 1160) { - $this->host = $host; - $this->port = $port; - $this->request = $request; - $this->responseLength = $responseLength; - $this->errorNumber = 0; - $this->errorString = ''; - } - - /** - * Sends the data to the remote host. - * - * @throws An exception is thrown if a connection cannot be made to the remote host. - */ - function send() { - $this->response = ''; - - $fs = fsockopen($this->host, $this->port, $this->errorNumber, $this->errorString, AKISMET_TIMEOUT); - - if ($this->errorNumber != 0) { - trigger_error('Error connecting to host: ' . $this->host . ' Error number: ' . $this->errorNumber . ' Error message: ' . $this->errorString, E_USER_ERROR); - } - - if ($fs !== false) { - @fwrite($fs, $this->request); - - while (!feof($fs)) { - $this->response .= fgets($fs, $this->responseLength); - } - - fclose($fs); - } - } - - /** - * Returns the server response text - * - * @return string - */ - function getResponse() { - return $this->response; - } - - /** - * Returns the error number - * - * If there was no error, 0 will be returned. - * - * @return int - */ - function getErrorNumber() { - return $this->errorNumber; - } - - /** - * Returns the error string - * - * If there was no error, an empty string will be returned. - * - * @return string - */ - function getErrorString() { - return $this->errorString; - } - -} -?> \ No newline at end of file diff --git a/fp-plugins/akismet/lang/lang.cs-cz.php b/fp-plugins/akismet/lang/lang.cs-cz.php deleted file mode 100644 index 5cf7fcb..0000000 --- a/fp-plugins/akismet/lang/lang.cs-cz.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Kľíč API není nastavený. Otevřte plugin a nastavte klíč API. Zaregistrujte sa na akismet.com a získejte nějaký.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Nastavení Akismet'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Nastavení Akismet', - 'description '=> 'Většině uživatelům, Akismet výrazně znižuje ' . // - 'nebo úplně eliminuje spam v komentářích a trackbacky na stránkách. ' . // - 'Pokud ještě nemáte účet na akismet.com, založte si ho ' . // - 'akismet.com/signup.', - 'apikey' => 'akismet.com API klíč', - 'whatis' => '(Co to je?)', - 'submit' => 'Uložit klíč API' -); - - $lang['admin']['plugin']['akismet']['msgs'] = array( - 1 => 'Klíč API uložený', - -1 => 'Klíč API je neplatný' -); - -?> \ No newline at end of file diff --git a/fp-plugins/akismet/lang/lang.da-dk.php b/fp-plugins/akismet/lang/lang.da-dk.php deleted file mode 100644 index 18564f4..0000000 --- a/fp-plugins/akismet/lang/lang.da-dk.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Ingen API-nøgle tilgængelig, indtast venligst denne for pluginet eller gå til akismet.com for at anmode om en gyldig API-nøgle ved at registrere dig.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Akismet Konfiguration'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Akismet Konfiguration', - 'description' => 'Med Akismet kan du reducere eller helt fjerne spam, ' . // - 'der når denne blog via kommentarer eller trackbacks. ' . // - 'Hvis du ikke har en Wordpress.com-konto endnu, kan du oprette en på ' . // - 'akismet.com/signup for at anmode om en API-nøgle.', - 'apikey' => 'Akismet API-nøgle', - 'whatis' => '(Hvad er en API-nøgle?)', - 'submit' => 'Gem API-nøgle' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'API-nøglen er blevet gemt', - -1 => 'API-nøglen er ikke gyldig' -); -?> diff --git a/fp-plugins/akismet/lang/lang.de-de.php b/fp-plugins/akismet/lang/lang.de-de.php deleted file mode 100644 index c12e314..0000000 --- a/fp-plugins/akismet/lang/lang.de-de.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Kein API Key vorhanden, bitte diesen für das Plugin eintragen oder auf akismet.com einen gültigen API Key durch Registrierung beantragen.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Akismet Konfiguration'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Akismet Konfiguration', - 'description'=>'Mit Akismet kann man Spam reduzieren ' . // - 'oder komplett eliminieren der durch Kommentare oder Trackbacks dieses Blog erreicht. ' . // - 'Wenn bis jetzt noch kein Akismet Account existiert, so kann man auf ' . // - 'akismet.com/signup einen anlegen um einen API key zu beantragen.', - 'apikey' => 'Akismet API Key', - 'whatis' => '(Was ist ein API Key?)', - 'submit' => 'API key speichern' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'Der API key wurde gespeichert', - -1 => 'Der API key ist nicht gültig' -); -?> diff --git a/fp-plugins/akismet/lang/lang.el-gr.php b/fp-plugins/akismet/lang/lang.el-gr.php deleted file mode 100644 index faae000..0000000 --- a/fp-plugins/akismet/lang/lang.el-gr.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Δεν έχει οριστεί κλειδί API. Ανοίξτε το πρόσθετο για να ρυθμίσετε το API κλειδί σας. Εγγραφείτε στο akismet.com για να λάβετε ένα.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Ρύθμιση του Akismet'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Ρύθμιση του Akismet', - 'description' => 'Για πολλούς ανθρώπους, το Akismet θα μειώσει αξιοσημείωτα ' . // - 'ή ακόμη και θα εξαλείψει πλήρως τα κακόβουλα αυτοματοποιημένα μηνύματα που δέχεται η ιστοσελίδα. ' . // - 'Εάν δεν έχετε ακόμη έναν λογαριασμό akismet.com, μπορείτε να δημιουργήσετε έναν στο ' . // - 'akismet.com/signup.', - 'apikey' => 'Akismet κλειδί API', - 'whatis' => '(Τι είναι αυτό;)', - 'submit' => 'Αποθήκευση κλειδιού API' - ); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'Το κλειδί API αποθηκεύτηκε', - -1 => 'Το κλειδί API δεν είναι έγκυρο' -); -?> diff --git a/fp-plugins/akismet/lang/lang.en-us.php b/fp-plugins/akismet/lang/lang.en-us.php deleted file mode 100644 index 2bc6f26..0000000 --- a/fp-plugins/akismet/lang/lang.en-us.php +++ /dev/null @@ -1,23 +0,0 @@ - 'API key not set. Open the plugin to set your API key. Register on akismet.com to get one.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Akismet Config'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Akismet Configuration', - 'description' => 'For many people, Akismet will greatly reduce ' . // - 'or even completely eliminate the comment and trackback spam you get on your site. ' . // - 'If you don\'t have a akismet.com account yet, you can get one at ' . // - 'akismet.com/signup.', - 'apikey' => 'Akismet API Key', - 'whatis' => '(What is an API key?)', - 'submit' => 'Save API key' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'API key saved', - -1 => 'API key is not valid' -); -?> diff --git a/fp-plugins/akismet/lang/lang.es-es.php b/fp-plugins/akismet/lang/lang.es-es.php deleted file mode 100644 index 4289706..0000000 --- a/fp-plugins/akismet/lang/lang.es-es.php +++ /dev/null @@ -1,23 +0,0 @@ - 'No se estableció la clave de API. Abra el Plugin para configurar su clave de API. Registrarse en akismet.com para conseguir uno.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Configuración de Akismet'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Configuración de Akismet', - 'description' => 'Para muchas personas, Akismet reducirá en gran medida ' . // - 'o incluso eliminar por completo el spam de comentarios y trackback que recibe en su sitio. ' . // - 'Si aún no tiene una cuenta de akismet.com, puede obtener una en ' . // - 'akismet.com/signup.', - 'apikey' => 'Akismet API Key', - 'whatis' => '(¿Que es esto?)', - 'submit' => 'Guardar clave de API' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'Clave de API guardada', - -1 => 'La clave de API no es válida' -); -?> \ No newline at end of file diff --git a/fp-plugins/akismet/lang/lang.fr-fr.php b/fp-plugins/akismet/lang/lang.fr-fr.php deleted file mode 100644 index 93d05a2..0000000 --- a/fp-plugins/akismet/lang/lang.fr-fr.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Clef API non définie. Configurez le plugin afin de configurer la clef API. Enregistrez vous sur akismet.com pour en obtenir une.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Configuration Akismet'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Configuration Akismet', - 'description' => 'La plupart du temps, Akismet va grandement ' . // - 'ou complètement éliminer les commentaires indésirables sur votre blog. ' . // - 'Si vous n\'avez pas de compte sur akismet.com, vous pouvez vous en créer un sur ' . // - 'akismet.com/signup.', - 'apikey' => 'Clef API akismet.com', - 'whatis' => '(Qu\'est-ce que c\'est?)', - 'submit' => 'Sauvegarder' -); - -$lang ['admin'] ['plugin'] ['akismet']['msgs'] = array( - 1 => 'Clef API sauvegardée', - -1 => 'Clef API non valide' -); -?> \ No newline at end of file diff --git a/fp-plugins/akismet/lang/lang.it-it.php b/fp-plugins/akismet/lang/lang.it-it.php deleted file mode 100644 index 95bbb6f..0000000 --- a/fp-plugins/akismet/lang/lang.it-it.php +++ /dev/null @@ -1,23 +0,0 @@ - 'La chiave API non è stata impostata. Esegui il plugin per impostare la chiave API. Registrati su akismet.com per riceverne una.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Configurazione di Akismet'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Configurazione di Akismet', - 'description' => 'Per molte persone, Akismet riduce enormemente ' . // - 'o perfino elimina completamente i commenti e i collegamenti traccianti di spam che compaiono sul proprio sito. ' . // - 'Se non hai ancora un profilo su akismet.com, puoi crearne uno su ' . // - 'akismet.com/signup.', - 'apikey' => 'Chiave API di akismet.com', - 'whatis' => '(What is this?)', - 'submit' => 'Salva chiave API' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'Chiave API salvata', - -1 => 'La chiave API non è valida' -); -?> diff --git a/fp-plugins/akismet/lang/lang.ja-jp.php b/fp-plugins/akismet/lang/lang.ja-jp.php deleted file mode 100644 index 5c37cc2..0000000 --- a/fp-plugins/akismet/lang/lang.ja-jp.php +++ /dev/null @@ -1,23 +0,0 @@ - 'API key not set. Open the plugin to set your API key. Register on akismet.com to get one.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Akismetの設定'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Akismetの設定', - 'description' => 'For many people, Akismet will greatly reduce ' . // - 'or even completely eliminate the comment and trackback spam you get on your site. ' . // - 'If you don\'t have a akismet.com account yet, you can get one at ' . // - 'akismet.com/signup.', - 'apikey' => 'Akismet API Key', - 'whatis' => '(What is this?)', - 'submit' => 'API keyを保存する' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'API keyを保存しました', - -1 => 'API key is not valid' -); -?> diff --git a/fp-plugins/akismet/lang/lang.nl-nl.php b/fp-plugins/akismet/lang/lang.nl-nl.php deleted file mode 100644 index 6996057..0000000 --- a/fp-plugins/akismet/lang/lang.nl-nl.php +++ /dev/null @@ -1,23 +0,0 @@ - 'API-sleutel niet ingesteld. Open de plug-in om jouw API-sleutel in te stellen. Registreer op akismet.com om een te krijgen.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Akismet Configuratie'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Akismet Configuratie', - 'description' => 'Voor veel mensen, Akismet zal sterk verminderen ' . // - 'of zelfs compleet elimineren de opmerkingen en trackback spam die je krijgy op je site. ' . // - 'Als je nog geen akismet.com-account hebt, kun je er een krijgen op ' . // - 'akismet.com/signup.', - 'apikey' => 'Akismet API Key', - 'whatis' => '(wat is dit?)', - 'submit' => 'Sla API key op' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'API key opgeslagen', - -1 => 'API key is niet geldig' -); -?> \ No newline at end of file diff --git a/fp-plugins/akismet/lang/lang.pt-br.php b/fp-plugins/akismet/lang/lang.pt-br.php deleted file mode 100644 index 028487e..0000000 --- a/fp-plugins/akismet/lang/lang.pt-br.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Chave da API não definida. Abra o plugin para definir sua chave de API. Registre-se no akismet.com para obter uma.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Akismet Configuração'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Configure o Akismet', - 'description' => 'Para muitas pessoas, o Akismet reduzirá bastante ' . // - 'ou até eliminará completamente o comentário e o spam de trackback que você recebe no seu site.' . // - 'Se você ainda não possui uma conta no akismet.com, pode obtê-la em ' . // - 'akismet.com/signup.', - 'apikey' => 'Akismet API Key', - 'whatis' => '(O que é isso?)', - 'submit' => 'Salvar a chave da API' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'A chave da API foi salva', - -1 => 'A chave da API não é válida' -); -?> diff --git a/fp-plugins/akismet/lang/lang.ru-ru.php b/fp-plugins/akismet/lang/lang.ru-ru.php deleted file mode 100644 index 76256e8..0000000 --- a/fp-plugins/akismet/lang/lang.ru-ru.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Не установлен API-ключ. Откройте плагин для установки API-ключа. Зарегистрируйтесь на сайте akismet.com чтобы получить его.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Конфигурация плагина Akismet'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Конфигурация плагина Akismet', - 'description' => 'Для многих Akismet значительно уменьшит ' . // - 'или даже полностью устранит спам в комментариях и трекбэках, который вы получаете на своем сайте. ' . // - 'Если у вас еще нет учетной записи akismet.com, вы можете получить ее на сайте ' . // - 'akismet.com/signup.', - 'apikey' => 'akismet.com API Key', - 'whatis' => '(Что это?)', - 'submit' => 'Сохранить API-ключ' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'API-ключ сохранен', - -1 => 'API-ключ не действителен' -); -?> \ No newline at end of file diff --git a/fp-plugins/akismet/lang/lang.sl-si.php b/fp-plugins/akismet/lang/lang.sl-si.php deleted file mode 100644 index cde1b90..0000000 --- a/fp-plugins/akismet/lang/lang.sl-si.php +++ /dev/null @@ -1,22 +0,0 @@ - 'API ključ ni nastavljen. Odpri vtičnik in nastavi svoj API ključ. Registriraj se na akismet.com, da ga pridobiš.' -); - -$lang ['admin'] ['plugin'] ['submenu'] ['akismet'] = 'Nastavitve Akismet-a'; - -$lang ['admin'] ['plugin'] ['akismet'] = array( - 'head' => 'Nastavitve Akismet-a', - 'description' => 'Za veliko ljudi bo Akismet zelo zmanjšal ali celo popolnoma odpravil komentarje in sledenje spamu na vaši spletni strani. ' . // - 'Če še nimate akismet.com računa, si ga lahko pridobite na ' . - 'akismet.com/signup.', - 'apikey' => 'Akismet API Ključ', - 'whatis' => '(Kaj je to?)', - 'submit' => 'Shrani API ključ' -); - -$lang ['admin'] ['plugin'] ['akismet'] ['msgs'] = array( - 1 => 'API ključ je bil shranjen', - -1 => 'API ključ ni veljaven' -); -?> diff --git a/fp-plugins/akismet/plugin.akismet.php b/fp-plugins/akismet/plugin.akismet.php deleted file mode 100644 index 81d1665..0000000 --- a/fp-plugins/akismet/plugin.akismet.php +++ /dev/null @@ -1,84 +0,0 @@ -setAuthor($contents ['name']); - $akismet->setAuthorEmail(isset($contents ['email']) ? $contents ['email'] : ''); - $akismet->setAuthorURL(isset($contents ['url']) ? $contents ['url'] : ''); - $akismet->setContent($contents ['content']); - - if ($v = $akismet->isSpam()) { - global $smarty; - $smarty->assign('error', array( - 'ERROR: Comment is invalid' - )); - return false; - } - return true; -} - -if (class_exists('AdminPanelAction')) { - - class admin_plugin_akismet extends AdminPanelAction { - - var $langres = 'plugin:akismet'; - - function setup() { - $this->smarty->assign('admin_resource', "plugin:akismet/admin.plugin.akismet"); - } - - function main() { - $akismetconf = plugin_getoptions('akismet'); - $this->smarty->assign('akismetconf', $akismetconf); - } - - function onsubmit($data = null) { - global $fp_config; - - if ($_POST ['wp-apikey']) { - - plugin_addoption('akismet', 'apikey', $_POST ['wp-apikey']); - plugin_saveoptions('akismet'); - - $this->smarty->assign('success', 1); - } else { - $this->smarty->assign('success', -1); - } - - return 2; - } - - } - - admin_addpanelaction('plugin', 'akismet', true); -} diff --git a/fp-plugins/akismet/tpls/admin.plugin.akismet.tpl b/fp-plugins/akismet/tpls/admin.plugin.akismet.tpl deleted file mode 100644 index 9bcaed1..0000000 --- a/fp-plugins/akismet/tpls/admin.plugin.akismet.tpl +++ /dev/null @@ -1,17 +0,0 @@ -

{$plang.head}

-

{$plang.description}

- -{include file="shared:errorlist.tpl"} - -
- -{html_form} - -

-

-

-

{$plang.whatis}

- -{/html_form} - -
\ No newline at end of file diff --git a/fp-plugins/datechanger/doc_datechanger.txt b/fp-plugins/datechanger/doc_datechanger.txt new file mode 100644 index 0000000..5d81f1d --- /dev/null +++ b/fp-plugins/datechanger/doc_datechanger.txt @@ -0,0 +1,9 @@ +Description +----------- +Lets you change the publish date for (new) entries. Therefore, it adds the edit interface with a date drop down menu. + +This plugin only works for new entries. Once published, the date cannot be changed again! + +About +----- +The DateChanger plugin was built by Edoardo Vacchi (NoWhereMan). diff --git a/fp-plugins/datechanger/lang/lang.cs-cz.php b/fp-plugins/datechanger/lang/lang.cs-cz.php new file mode 100644 index 0000000..5e7bd12 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.cs-cz.php @@ -0,0 +1,7 @@ + 'Změna času/datumu zveřejnění', + 'date' => 'Datum', + 'time' => 'Denní doba' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.da-dk.php b/fp-plugins/datechanger/lang/lang.da-dk.php new file mode 100644 index 0000000..002985b --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.da-dk.php @@ -0,0 +1,7 @@ + 'Ændre udgivelsestidspunkt/dato', + 'date' => 'Dato', + 'time' => 'Tid på dagen' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.de-de.php b/fp-plugins/datechanger/lang/lang.de-de.php new file mode 100644 index 0000000..5832196 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.de-de.php @@ -0,0 +1,7 @@ + 'Veröffentlichungszeit/-Datum ändern', + 'date' => 'Datum', + 'time' => 'Uhrzeit' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.el-gr.php b/fp-plugins/datechanger/lang/lang.el-gr.php new file mode 100644 index 0000000..281869f --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.el-gr.php @@ -0,0 +1,7 @@ + 'Αλλαγή ώρας/ημερομηνίας δημοσίευσης', + 'date' => 'ημερομηνία', + 'time' => 'Ώρα της ημέρας' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.en-us.php b/fp-plugins/datechanger/lang/lang.en-us.php new file mode 100644 index 0000000..45462f3 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.en-us.php @@ -0,0 +1,7 @@ + 'Change publication time/-date', + 'date' => 'Date', + 'time' => 'Time' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.es-es.php b/fp-plugins/datechanger/lang/lang.es-es.php new file mode 100644 index 0000000..fd71093 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.es-es.php @@ -0,0 +1,7 @@ + 'Cambiar la hora/fecha de publicación', + 'date' => 'Fecha', + 'time' => 'Hora del día' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.fr-fr.php b/fp-plugins/datechanger/lang/lang.fr-fr.php new file mode 100644 index 0000000..ecb2b79 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.fr-fr.php @@ -0,0 +1,7 @@ + 'Modifier l\'heure/la date de publication', + 'date' => 'Date', + 'time' => 'Heure' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.it-it.php b/fp-plugins/datechanger/lang/lang.it-it.php new file mode 100644 index 0000000..a058986 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.it-it.php @@ -0,0 +1,7 @@ + 'Modifica dell\'ora/data di pubblicazione', + 'date' => 'Data', + 'time' => 'Ora del giorno' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.ja-jp.php b/fp-plugins/datechanger/lang/lang.ja-jp.php new file mode 100644 index 0000000..9c893eb --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.ja-jp.php @@ -0,0 +1,7 @@ + '発行日時の変更', + 'date' => '日付', + 'time' => '時間帯' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.nl-nl.php b/fp-plugins/datechanger/lang/lang.nl-nl.php new file mode 100644 index 0000000..5cf5bc3 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.nl-nl.php @@ -0,0 +1,7 @@ + 'Publicatie tijd/datum wijzigen', + 'date' => 'Datum', + 'time' => 'Tijd van de dag' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.pt-br.php b/fp-plugins/datechanger/lang/lang.pt-br.php new file mode 100644 index 0000000..af84a98 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.pt-br.php @@ -0,0 +1,7 @@ + 'Alterar data/hora de publicação', + 'date' => 'Data', + 'time' => 'Hora do dia' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.ru-ru.php b/fp-plugins/datechanger/lang/lang.ru-ru.php new file mode 100644 index 0000000..c7da5e6 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.ru-ru.php @@ -0,0 +1,7 @@ + 'Изменить время/дату публикации', + 'date' => 'дата', + 'time' => 'Время суток' +); +?> diff --git a/fp-plugins/datechanger/lang/lang.sl-si.php b/fp-plugins/datechanger/lang/lang.sl-si.php new file mode 100644 index 0000000..b0ba958 --- /dev/null +++ b/fp-plugins/datechanger/lang/lang.sl-si.php @@ -0,0 +1,7 @@ + 'Sprememba časa/datuma objave', + 'date' => 'Datum', + 'time' => 'Čas dneva' +); +?> diff --git a/fp-plugins/datechanger/plugin.datechanger.php b/fp-plugins/datechanger/plugin.datechanger.php new file mode 100644 index 0000000..6542db3 --- /dev/null +++ b/fp-plugins/datechanger/plugin.datechanger.php @@ -0,0 +1,116 @@ +new entries via a drop-down menu. [Instructions] + * Version: 1.0.4 + * Author URI: https://www.flatpress.org + */ +if (!(basename($_SERVER ['PHP_SELF']) == 'admin.php' && // must be admin area + @$_GET ['p'] == 'entry' && // must be right panel + @$_GET ['action'] == 'write' && // must be right action + !(@$_POST ['timestamp'] || @$_REQUEST ['entry']))) // must be a new entry +return; + +function plugin_datechanger_toolbar() { + $time = time(); + + $h = date('H', $time); + $m = date('i', $time); + $s = date('s', $time); + + $Y = date('Y', $time); + $M = date('m', $time); + $D = date('d', $time); + + $lang = lang_load('plugin:datechanger'); // Multilingual support by Plugin + global $lang; // Multilingual support by FlatPress + + echo '
' . $lang ['admin'] ['plugin'] ['datechanger'] ['title'] . '

' . $lang ['admin'] ['plugin'] ['datechanger'] ['time'] . ': '; + + // set time + echo ':'; + + echo ':'; + + echo ' '; + + // set date + echo '' . $lang ['admin'] ['plugin'] ['datechanger'] ['date'] . ':  '; + + $mths = $lang ['date'] ['month']; + + echo ' '; + + echo ''; + + echo '

'; +} + +// Meh, {toolbar} no longer works with fp-1.3 dev -> #17 +//add_action('editor_toolbar', 'plugin_datechanger_toolbar', 0); +add_filter('simple_datechanger_form', 'plugin_datechanger_toolbar', 0); + + +function plugin_datechanger_check() { + if ((isset($_GET ['p']) && $_GET ['p'] != 'entry') || (isset($_GET ['action']) && $_GET ['action'] != 'write')) + return; + + if (empty($_POST)) + return; + + if (!empty($_POST ['date'])) + $date = $_POST ['date']; + else + return; + + foreach ($date as $v) { + if (!is_numeric($v)) + return; + else + $date [] = intval($v); + } + + list ($hour, $minute, $second, $day, $month, $year) = $date; + + $time = mktime($hour, $minute, $second, $month, $day, $year); + + $_POST ['timestamp'] = $time; +} + +add_action('init', 'plugin_datechanger_check'); +?> From da0534c50888cf7982eead84a5e62fc25341d4e9 Mon Sep 17 00:00:00 2001 From: Fraenkiman Date: Thu, 1 Feb 2024 22:38:39 +0100 Subject: [PATCH 02/28] Update plugin.datechanger.php --- fp-plugins/datechanger/plugin.datechanger.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fp-plugins/datechanger/plugin.datechanger.php b/fp-plugins/datechanger/plugin.datechanger.php index 6542db3..349869b 100644 --- a/fp-plugins/datechanger/plugin.datechanger.php +++ b/fp-plugins/datechanger/plugin.datechanger.php @@ -4,7 +4,7 @@ * Plugin URI: https://www.flatpress.org * Type: Block * Author: FlatPress - * Description: Allows to change the date and time for new entries via a drop-down menu. [Instructions] + * Description: Allows to change the date and time for new entries via a drop-down menu. Part of the standard distribution. [Instructions] * Version: 1.0.4 * Author URI: https://www.flatpress.org */ From d25dfb20dc0eeb291f513143007c67ef6c0dc9f4 Mon Sep 17 00:00:00 2001 From: Arvid Zimmermann Date: Sat, 3 Feb 2024 14:31:41 +0100 Subject: [PATCH 03/28] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e424ed8..e97a601 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -93,7 +93,7 @@ - Contact form: Admin notification mail is now localized ([#205](https://github.com/flatpressblog/flatpress/issues/205)) - Setup tries to determine local language automatically ([#197](https://github.com/flatpressblog/flatpress/issues/197), [#216](https://github.com/flatpressblog/flatpress/issues/216), [#262](https://github.com/flatpressblog/flatpress/issues/262)) - The HTML of the installer now has a lang attribute in the html start tag to specify the language. -- BBcode toolbar: Internationalized button titles translated to the end +- BBCode plugin: Localized toolbar button tooltips ## Bugfixes - Plugin management page: Removed empty warning messages box From 3ad9d0acfccc86b2d800563e91146dc124372bfa Mon Sep 17 00:00:00 2001 From: eagleman Date: Sat, 3 Feb 2024 21:20:10 +0100 Subject: [PATCH 04/28] Update lang.it-it.php Found and corrected a little typo. --- setup/lang/lang.it-it.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/lang/lang.it-it.php b/setup/lang/lang.it-it.php index 6e8141d..73937b3 100644 --- a/setup/lang/lang.it-it.php +++ b/setup/lang/lang.it-it.php @@ -117,7 +117,7 @@ Il modo predefinito dell\'aspetto e del contenuto dell\'articolo è [url=https:/ Inoltre supporta il contenuto indentato.[/code] -I tag img e url tag hanno inoltre delle opzioni speciali. Puoi saperne di più sul [url=https://wiki.flatpress.org/doc:plugins:bbcode target=_blank rel=external]Wiki di FlatPress[/url]. +I tag img e url hanno inoltre delle opzioni speciali. Puoi saperne di più sul [url=https://wiki.flatpress.org/doc:plugins:bbcode target=_blank rel=external]Wiki di FlatPress[/url]. [h4]Articoli e Pagine statiche[/h4] From 90d582e88c1db47963bcd38cf6e7b46336f9f8cc Mon Sep 17 00:00:00 2001 From: Fraenkiman Date: Sun, 4 Feb 2024 02:25:54 +0100 Subject: [PATCH 05/28] Use test file for result - The chmod octal value from the defaults.php file is used for the hint. This has the advantage that you do not have to adjust the 13 language files every time you make a change. - When restoring the file access rights, a test file in the fp-content directory is used to check whether it is writable. If failed, then -1 --- admin/panels/maintain/admin.maintain.php | 12 +++++++++++- fp-interface/lang/cs-cz/lang.admin.maintain.php | 5 +++-- fp-interface/lang/da-dk/lang.admin.maintain.php | 5 +++-- fp-interface/lang/de-de/lang.admin.maintain.php | 5 +++-- fp-interface/lang/el-gr/lang.admin.maintain.php | 5 +++-- fp-interface/lang/en-us/lang.admin.maintain.php | 7 ++++--- fp-interface/lang/es-es/lang.admin.maintain.php | 5 +++-- fp-interface/lang/fr-fr/lang.admin.maintain.php | 5 +++-- fp-interface/lang/it-it/lang.admin.maintain.php | 5 +++-- fp-interface/lang/ja-jp/lang.admin.maintain.php | 5 +++-- fp-interface/lang/nl-nl/lang.admin.maintain.php | 5 +++-- fp-interface/lang/pt-br/lang.admin.maintain.php | 5 +++-- fp-interface/lang/ru-ru/lang.admin.maintain.php | 5 +++-- fp-interface/lang/sl-si/lang.admin.maintain.php | 5 +++-- 14 files changed, 51 insertions(+), 28 deletions(-) diff --git a/admin/panels/maintain/admin.maintain.php b/admin/panels/maintain/admin.maintain.php index 44dd953..498c7d6 100755 --- a/admin/panels/maintain/admin.maintain.php +++ b/admin/panels/maintain/admin.maintain.php @@ -159,7 +159,17 @@ class admin_maintain_default extends AdminPanelAction { case 'restorechmods': { $this->smarty->assign('files', fs_chmod_recursive()); - $this->smarty->assign('success', 1); + + // Test whether writing is possible in the fp-content directory + $test_file = @fopen(CONTENT_DIR . 'chmod-test-file', "a+"); + if ($test_file) { + $this->smarty->assign('success', 1); + } else { + $this->smarty->assign('success', -1); + } + @fclose($test_file); + @unlink(CONTENT_DIR . 'chmod-test-file'); + return PANEL_NOREDIRECT; } case 'purgetplcache': diff --git a/fp-interface/lang/cs-cz/lang.admin.maintain.php b/fp-interface/lang/cs-cz/lang.admin.maintain.php index e838125..4ecab4e 100644 --- a/fp-interface/lang/cs-cz/lang.admin.maintain.php +++ b/fp-interface/lang/cs-cz/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Ukázat informace o PHP', 'opt5' => 'Zjistit aktualizace', - 'chmod_info' => 'Následující oprávnění nemůžou být resetované na 0776; pravděpodobně vlastník souborů není stejná osoba jako vlastník webu. ' . // + 'chmod_info' => 'Pokud se oprávnění souboru nepodařilo obnovit na ' . decoct(FILE_PERMISSIONS) . ', vlastník souboru pravděpodobně není stejný jako vlastník webového serveru.
' . // 'Případně můžete ignorovat toto oznámení.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Operace kompletní' + 1 => 'Operace kompletní', + -1 => 'Operace se nezdařila' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/da-dk/lang.admin.maintain.php b/fp-interface/lang/da-dk/lang.admin.maintain.php index 53cb1d4..f9768da 100644 --- a/fp-interface/lang/da-dk/lang.admin.maintain.php +++ b/fp-interface/lang/da-dk/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Vis PHP-information om webserveren', 'opt5' => 'Tjek for nye versioner', - 'chmod_info' => 'Filadgangsrettighederne kunne ikke være nulstilles til standardværdierne på 0776.' . // + 'chmod_info' => 'Hvis filrettighederne ikke kunne nulstilles til ' . decoct(FILE_PERMISSIONS) . ', er ejeren af filen sandsynligvis ikke den samme som ejeren af webserveren.
' . // 'Normalt kan du ignorere dette tip.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Handling udført.' + 1 => 'Handling udført.', + -1 => 'Handling mislukt.' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/de-de/lang.admin.maintain.php b/fp-interface/lang/de-de/lang.admin.maintain.php index c3c7b4f..f25844e 100644 --- a/fp-interface/lang/de-de/lang.admin.maintain.php +++ b/fp-interface/lang/de-de/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Zeige PHP-Informationen des Webservers', 'opt5' => 'Prüfe auf neue Versionen', - 'chmod_info' => 'Die Dateizugriffsrechte konnten nicht auf die Default Werte von 0776 zurückgesetzt werden. ' . // + 'chmod_info' => 'Wenn die Dateiberechtigungen nicht auf ' . decoct(FILE_PERMISSIONS) . ' zurückgesetzt werden konnten, ist wahrscheinlich der Eigentümer der Datei nicht derselbe wie der des Webservers.
' . // 'Normalerweise kann man diesen Hinweis ignorieren.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Aktion ausgeführt.' + 1 => 'Aktion ausgeführt.', + -1 => 'Aktion fehlgeschlagen.' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/el-gr/lang.admin.maintain.php b/fp-interface/lang/el-gr/lang.admin.maintain.php index 7f931b2..f92d4df 100644 --- a/fp-interface/lang/el-gr/lang.admin.maintain.php +++ b/fp-interface/lang/el-gr/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Εμφάνιση πληροφοριών σχετικά με την PHP', 'opt5' => 'Έλεγχος για αναβαθμίσεις', - 'chmod_info' => 'Τα ακόλουθα δικαιώματα αρχείων δεν μπόρεσαν να επανέλθουν σε 0776; πιθανότατα ο ιδιοκτήτης των αρχείων δεν είναι ο ίδιος με τον ιδιοκτήτη του διακομιστή. ' . // + 'chmod_info' => 'Αν τα δικαιώματα του αρχείου δεν μπόρεσαν να επανέλθουν σε ' . decoct(FILE_PERMISSIONS) . ', ο ιδιοκτήτης του αρχείου δεν είναι πιθανότατα ο ίδιος με τον ιδιοκτήτη του διακομιστή ιστού.
' . // 'Συνήθως αυτή η ειδοποίηση μπορεί να αγνοηθεί.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Η διαδικασία ολοκληρώθηκε' + 1 => 'Η διαδικασία ολοκληρώθηκε', + -1 => 'Η διαδικασία απέτυχε' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/en-us/lang.admin.maintain.php b/fp-interface/lang/en-us/lang.admin.maintain.php index 4209d2d..f0ef681 100755 --- a/fp-interface/lang/en-us/lang.admin.maintain.php +++ b/fp-interface/lang/en-us/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Show info about PHP', 'opt5' => 'Check for updates', - 'chmod_info' => 'The following file permissions could not be reset to 0776; probably file owner is not the same as the webserver\'s. ' . // - 'Usually you can ignore this notice.' + 'chmod_info' => 'If the file permissions could not be reset to ' . decoct(FILE_PERMISSIONS) . ', the owner of the file is probably not the same as the owner of the web server.
' . // + 'Normalement, tu peux ignorer cette remarque.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Operation completed' + 1 => 'Operation completed', + -1 => 'Operation failed' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/es-es/lang.admin.maintain.php b/fp-interface/lang/es-es/lang.admin.maintain.php index e720ca9..33b67fd 100644 --- a/fp-interface/lang/es-es/lang.admin.maintain.php +++ b/fp-interface/lang/es-es/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Mostrar información sobre PHP', 'opt5' => 'Buscar actualizaciones', - 'chmod_info' => 'Los siguientes permisos de archivo no pudieron ser reiniciados a 0776; probablemente el propietario del archivo no sea el mismo que el del servidor web. ' . // + 'chmod_info' => 'Si los permisos del archivo no se pudieron restablecer a ' . decoct(FILE_PERMISSIONS) . ', es probable que el propietario del archivo no sea el mismo que el del servidor web.
' . // 'Por lo general, puede ignorar este aviso.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Operación completada' + 1 => 'Operación completada', + -1 => 'Operación fallida' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/fr-fr/lang.admin.maintain.php b/fp-interface/lang/fr-fr/lang.admin.maintain.php index dbae116..441054f 100644 --- a/fp-interface/lang/fr-fr/lang.admin.maintain.php +++ b/fp-interface/lang/fr-fr/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Afficher info.php', 'opt5' => 'Vérifier les mises à jour', - 'chmod_info' => 'Les permissions de fichiers (chmod) ne sont peut-être pas à 0776; propriétaire du fichier peut-ê' . // + 'chmod_info' => 'Si les permissions du fichier n\'ont pas pu être remises à ' . decoct(FILE_PERMISSIONS) . ', il est probable que le propriétaire du fichier ne soit pas le même que celui du serveur web.
' . // 'tre différent du serveur web.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Opération effectuée' + 1 => 'Opération effectuée', + -1 => 'Échec de l\'opération' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/it-it/lang.admin.maintain.php b/fp-interface/lang/it-it/lang.admin.maintain.php index bacdba7..a84baf8 100644 --- a/fp-interface/lang/it-it/lang.admin.maintain.php +++ b/fp-interface/lang/it-it/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Visualizza informazioni su PHP', 'opt5' => 'Controllo aggiornamenti', - 'chmod_info' => 'I seguenti permessi dei file non possono essere ripristinati a 0776; probabilmente il proprietario non è lo stesso del server web. ' . // + 'chmod_info' => 'Se non è stato possibile reimpostare i permessi del file a ' . decoct(FILE_PERMISSIONS) . ', probabilmente il proprietario del file non è lo stesso del server web.
' . // 'Di solito puoi ignorare questo avviso.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Operazione completata con successo' + 1 => 'Operazione completata con successo', + -1 => 'Operazione non completata con successo' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/ja-jp/lang.admin.maintain.php b/fp-interface/lang/ja-jp/lang.admin.maintain.php index 825f208..cd02334 100644 --- a/fp-interface/lang/ja-jp/lang.admin.maintain.php +++ b/fp-interface/lang/ja-jp/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'PHP情報を表示します', 'opt5' => 'アップデートをチェックします', - 'chmod_info' => '次のファイルのパーミッションを 0776 にリセットできません; おそらく、ファイルの所有権者とウェブサーバの権限が異なるのでしょう。' . // + 'chmod_info' => 'ファイルのパーミッションを' . decoct(FILE_PERMISSIONS) . 'にリセットできなかった場合、ファイルの所有者がウェブサーバーの所有者と同じでない可能性があります。
' . // 'でも通常、この通知を無視することができます。' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => '作業を完了しました。' + 1 => '作業を完了しました。', + -1 => '操作が正常に完了しなかった。' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/nl-nl/lang.admin.maintain.php b/fp-interface/lang/nl-nl/lang.admin.maintain.php index 09d5d4a..cb157b0 100644 --- a/fp-interface/lang/nl-nl/lang.admin.maintain.php +++ b/fp-interface/lang/nl-nl/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Toon info over PHP', 'opt5' => 'Controleren op updates', - 'chmod_info' => 'De volgende bestandsmachtigingen kan niet worden teruggezet naar 0776; waarschijnlijk is de bestandseigenaar niet hetzelfde als de webserver\'s. ' . // + 'chmod_info' => 'Als de bestandsrechten niet konden worden teruggezet naar ' . decoct(FILE_PERMISSIONS) . ', is de eigenaar van het bestand waarschijnlijk niet dezelfde als de eigenaar van de webserver.
' . // 'Meestal kunt u deze kennisgeving negeren.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Operation completed' + 1 => 'Operation completed', + -1 => 'Operatie mislukt' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/pt-br/lang.admin.maintain.php b/fp-interface/lang/pt-br/lang.admin.maintain.php index 8109353..7a37806 100644 --- a/fp-interface/lang/pt-br/lang.admin.maintain.php +++ b/fp-interface/lang/pt-br/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Mostre as informações sobre o PHP', 'opt5' => 'Procure atualizações', - 'chmod_info' => 'As seguintes permissões de arquivo não puderam ser redefinidas para 0776; provavelmente o proprietário do arquivo não é o mesmo do servidor da web. ' . // + 'chmod_info' => 'Se não for possível redefinir as permissões do arquivo para ' . decoct(FILE_PERMISSIONS) . ', o proprietário do arquivo provavelmente não é o mesmo que o proprietário do servidor Web.
' . // 'Geralmente você pode ignorar este aviso.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Operação concluída' + 1 => 'Operação concluída', + -1 => 'Falha na operação' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/ru-ru/lang.admin.maintain.php b/fp-interface/lang/ru-ru/lang.admin.maintain.php index d1e308c..3663f78 100644 --- a/fp-interface/lang/ru-ru/lang.admin.maintain.php +++ b/fp-interface/lang/ru-ru/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Показать информацию о PHP', 'opt5' => 'Проверить наличие обновлений', - 'chmod_info' => 'Не удалось сбросить следующие права доступа к файлам на 0776; вероятно, владелец файла не совпадает с владельцем веб-сервера. ' . // + 'chmod_info' => 'Если права доступа к файлу не удалось сбросить на ' . decoct(FILE_PERMISSIONS) . ', владелец файла, вероятно, не совпадает с владельцем веб-сервера.
' . // 'Обычно это уведомление можно проигнорировать.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Операция выполнена' + 1 => 'Операция выполнена', + -1 => 'Операция не удалась' ); $lang ['admin'] ['maintain'] ['updates'] = array( diff --git a/fp-interface/lang/sl-si/lang.admin.maintain.php b/fp-interface/lang/sl-si/lang.admin.maintain.php index b37ddf7..996ef2a 100644 --- a/fp-interface/lang/sl-si/lang.admin.maintain.php +++ b/fp-interface/lang/sl-si/lang.admin.maintain.php @@ -11,12 +11,13 @@ $lang ['admin'] ['maintain'] ['default'] = array( 'opt4' => 'Prikaži informacije o PHP', 'opt5' => 'Preveri posodobitve', - 'chmod_info' => 'Naslednja dovoljenja za datoteke ni mogoče povrniti na 0776; verjetno lastnik datoteke ni isti kot spletne strežnik. ' . // + 'chmod_info' => 'Če pravic datoteke ni bilo mogoče ponastaviti na ' . decoct(FILE_PERMISSIONS) . ', lastnik datoteke verjetno ni isti kot lastnik spletnega strežnika.
' . // 'Običajno lahko to obvestilo prezrete.' ); $lang ['admin'] ['maintain'] ['default'] ['msgs'] = array( - 1 => 'Operacija je končana' + 1 => 'Operacija je končana', + -1 => 'Operacija ni uspela' ); $lang ['admin'] ['maintain'] ['updates'] = array( From 6f1672e81a9481f18bd29fcb162bb339276d11ad Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Sun, 4 Feb 2024 04:36:42 +0100 Subject: [PATCH 06/28] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e97a601..fcf2719 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -103,6 +103,7 @@ - Worked around strftime() marked as deprecated as of PHP 8.1 ([#92](https://github.com/flatpressblog/flatpress/issues/92)) - thx @bohwaz - Comments and contact form: Fixed error on sending mails with umlaut subjects ([#207](https://github.com/flatpressblog/flatpress/issues/207), [#209](https://github.com/flatpressblog/flatpress/issues/209)) - Added missing properties in order to prevent "Dynamic properties are deprecated" error under PHP 8.2 ([#115](https://github.com/flatpressblog/flatpress/issues/115)) +- Admin maintenance panel: Check file access rights after reset ## Security - Possible XSS prevented: Session cookie missed the "secure" and "httponly" flags From 10370896cbe71d0d62658b348cec2501a86b29e5 Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Sun, 4 Feb 2024 05:01:54 +0100 Subject: [PATCH 07/28] Update CHANGELOG.md --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fcf2719..61f8cd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - Gallery captions plugin added: Manages image captions for gallery images ([#108](https://github.com/flatpressblog/flatpress/issues/108)) - SEO Meta Tag Info plugin added: Manages SEO meta tags ([#145](https://github.com/flatpressblog/flatpress/issues/145)) - FlatPress Protect plugin added: Adds HTTP headers for hardening your blog ([#146](https://github.com/flatpressblog/flatpress/issues/146)) +- DateChanger plugin added: Allows you to change the publication date for (new) entries. ### Changes - jQuery plugin: Updated jQuery (3.5.1 => 3.6.1) and jQueryUI (1.12.1 => 1.13.2) @@ -25,7 +26,8 @@ - BBCode plugin: Added "h4" icon to editor toolbar ([#201](https://github.com/flatpressblog/flatpress/issues/201)) - BBCode plugin: Facebook-Video now uses the latest video player API and the lazy loading mechanism of the browser; also now has localized languages with language tag ([#252](https://github.com/flatpressblog/flatpress/issues/252)) - see also https://developers.facebook.com/docs/javascript/internationalization - BBCode plugin: Added optional "target" attribute to the "url" element - ([PR270](https://github.com/flatpressblog/flatpress/pull/270) by [@sjustesen](https://github.com/sjustesen)) -- Akismet and comment center plugin revised to enable a more understandable operation ([#273](https://github.com/flatpressblog/flatpress/issues/273)) +- Comment center plugin (Akismet) revised to enable a more understandable operation ([#273](https://github.com/flatpressblog/flatpress/issues/273)) +- Akismet-Pluin removed: is already included in the comment center plugin ### Bugfixes - LastCommentsAdmin plugin will not even attempt to delete or rebuild LastComments caches if LastComments plugin is not available ([#43](https://github.com/flatpressblog/flatpress/issues/43)) From 4df7b279908a9a26e44ea47ee3caa742047f02e3 Mon Sep 17 00:00:00 2001 From: Arvid Zimmermann Date: Sun, 4 Feb 2024 08:35:23 +0100 Subject: [PATCH 08/28] link to @eagleman added --- CONTRIBUTORS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 63efa11..5b7bdaa 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -24,7 +24,7 @@ Since 2018, FlatPress is taken care of by [Arvid Zimmermann](https://github.com/ - 🇫🇷 French: [Marc Thibeault](https://github.com/MarcThibeault) and Dimitri Soufflet, reworked by Gee - 🇩🇪 German: [Matthias Mauch (laborix)](http://www.aadmm.org/), reworked by Detlef - 🇬🇷 Greek: An unknown, since deleted GitHub user :( -- 🇮🇹 Italian: Giacomo Margarito +- 🇮🇹 Italian: [Giacomo Margarito](https://github.com/eagleman) - 🇯🇵 Japanese: [NORTH HILL WORK STUDIO](https://nhws.localinfo.jp/) - 🇷🇺 Russian: [Mark](https://github.com/cosmopolityan) - 🇪🇸 Spanish: karelv From ecd75c1e031a1ef2a0523b007f9f17a3cb5e5782 Mon Sep 17 00:00:00 2001 From: Fraenkiman Date: Sun, 4 Feb 2024 23:25:13 +0100 Subject: [PATCH 09/28] Closes #317 | Add RSS and Atom link - Shows the RSS and Atom feed in the header and activates the widget. - The buttons can be easily swapped via the upload manager --- fp-content/images/.thumbs/atom-white.png | Bin 0 -> 1209 bytes fp-content/images/.thumbs/atom.png | Bin 0 -> 1977 bytes fp-content/images/.thumbs/rss-white.png | Bin 0 -> 1185 bytes fp-content/images/.thumbs/rss.png | Bin 0 -> 1849 bytes fp-content/images/atom-white.png | Bin 0 -> 2203 bytes fp-content/images/atom.png | Bin 0 -> 3635 bytes fp-content/images/rss-white.png | Bin 0 -> 2030 bytes fp-content/images/rss.png | Bin 0 -> 3462 bytes fp-defaults/plugins.conf.php | 5 +- fp-interface/lang/cs-cz/lang.default.php | 5 +- fp-interface/lang/da-dk/lang.default.php | 5 +- fp-interface/lang/de-de/lang.default.php | 5 +- fp-interface/lang/el-gr/lang.default.php | 5 +- fp-interface/lang/en-us/lang.default.php | 5 +- fp-interface/lang/es-es/lang.default.php | 5 +- fp-interface/lang/fr-fr/lang.default.php | 5 +- fp-interface/lang/it-it/lang.default.php | 5 +- fp-interface/lang/ja-jp/lang.default.php | 5 +- fp-interface/lang/nl-nl/lang.default.php | 5 +- fp-interface/lang/pt-br/lang.default.php | 5 +- fp-interface/lang/ru-ru/lang.default.php | 5 +- fp-interface/lang/sl-si/lang.default.php | 5 +- .../leggero/flatmaas-rev/res/common.css | 6 +++ fp-interface/themes/leggero/header.tpl | 4 ++ .../themes/leggero/leggero-v2/res/common.css | 6 +++ .../themes/leggero/leggero/res/common.css | 6 +++ fp-plugins/feed/img/atom-white.png | Bin 0 -> 2203 bytes fp-plugins/feed/img/atom.png | Bin 0 -> 3635 bytes fp-plugins/feed/img/rss-white.png | Bin 0 -> 2030 bytes fp-plugins/feed/img/rss.png | Bin 0 -> 3462 bytes fp-plugins/feed/lang/lang.cs-cz.php | 7 +++ fp-plugins/feed/lang/lang.da-dk.php | 7 +++ fp-plugins/feed/lang/lang.de-de.php | 7 +++ fp-plugins/feed/lang/lang.el-gr.php | 7 +++ fp-plugins/feed/lang/lang.en-us.php | 7 +++ fp-plugins/feed/lang/lang.es-es.php | 7 +++ fp-plugins/feed/lang/lang.fr-fr.php | 7 +++ fp-plugins/feed/lang/lang.it-it.php | 7 +++ fp-plugins/feed/lang/lang.ja-jp.php | 7 +++ fp-plugins/feed/lang/lang.nl-nl.php | 7 +++ fp-plugins/feed/lang/lang.pt-br.php | 7 +++ fp-plugins/feed/lang/lang.ru-ru.php | 7 +++ fp-plugins/feed/lang/lang.sl-si.php | 7 +++ fp-plugins/feed/plugin.feed.php | 50 ++++++++++++++++++ fp-plugins/feed/res/feed.css | 4 ++ 45 files changed, 222 insertions(+), 15 deletions(-) create mode 100644 fp-content/images/.thumbs/atom-white.png create mode 100644 fp-content/images/.thumbs/atom.png create mode 100644 fp-content/images/.thumbs/rss-white.png create mode 100644 fp-content/images/.thumbs/rss.png create mode 100644 fp-content/images/atom-white.png create mode 100644 fp-content/images/atom.png create mode 100644 fp-content/images/rss-white.png create mode 100644 fp-content/images/rss.png create mode 100644 fp-plugins/feed/img/atom-white.png create mode 100644 fp-plugins/feed/img/atom.png create mode 100644 fp-plugins/feed/img/rss-white.png create mode 100644 fp-plugins/feed/img/rss.png create mode 100644 fp-plugins/feed/lang/lang.cs-cz.php create mode 100644 fp-plugins/feed/lang/lang.da-dk.php create mode 100644 fp-plugins/feed/lang/lang.de-de.php create mode 100644 fp-plugins/feed/lang/lang.el-gr.php create mode 100644 fp-plugins/feed/lang/lang.en-us.php create mode 100644 fp-plugins/feed/lang/lang.es-es.php create mode 100644 fp-plugins/feed/lang/lang.fr-fr.php create mode 100644 fp-plugins/feed/lang/lang.it-it.php create mode 100644 fp-plugins/feed/lang/lang.ja-jp.php create mode 100644 fp-plugins/feed/lang/lang.nl-nl.php create mode 100644 fp-plugins/feed/lang/lang.pt-br.php create mode 100644 fp-plugins/feed/lang/lang.ru-ru.php create mode 100644 fp-plugins/feed/lang/lang.sl-si.php create mode 100644 fp-plugins/feed/plugin.feed.php create mode 100644 fp-plugins/feed/res/feed.css diff --git a/fp-content/images/.thumbs/atom-white.png b/fp-content/images/.thumbs/atom-white.png new file mode 100644 index 0000000000000000000000000000000000000000..6f62f8bdf843b565e2857dfad0f0573fce73d29b GIT binary patch literal 1209 zcmV;q1V;ObP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1WrjrK~z{r-PdV| zR#hCw@#k^0TrthuYb+hj%rJT*E|`;$m4skKC=^Dewm_gkDMFDOxnvX;g`lE>2`QRU z(wG~Grcpt;CgGZp>$s23^!?uFoVwoTaeV3YgAe!4x%autx##@vom@;!P0dTVio@85 zxp)Fi!!G~J^@&8(m_Ha|&6WX4Ham4k-t>}Zt;db|Z0q0;Y!A|o$ zE%1$vA>W~K*wzCFY$W?pn(lzpSdDEs1P^Meu><8O2?uHe_q|^1ph;o>5om((q1~bA zIrI@4;$i$A+K%Beo(;c$5r4sJ*#$eL5k7%QIskUE*ES0A0gZ$YtufLa;Pz?h4)_i3 z*dQ#QgY(6aV7!255If;6ST~C04DN*&nLKi;gJG94X}?f|prKl7M*Q4Qz)LjD|p35av=V+@D;9boZ_>qW91 zyYU#h;SubGb>&8~pL0~Q?2L9v%fBh(;+>Lv3V&V`&vzS^VF6mfYfh$cCS~ak=!h8{ z_zgVh2}l(_pnVvQzyr@=+XF1^gl}1V;d&+(o<(f8z>b1-z>DyF7C(z)UAZOPq{oVd zIwt!<9%*&T=4PF^X}RS&iM^ zA43p}S!XyUVv0?HQ@8_8$)9Zq@%(ebu`P-wJq0Xo7T;EI-djkmDNgI`6gX4ctIW3M zcnWLSsb_eSE8w&+zJdl7R&!h6Ycrh+{K;>7vvg$n1nxvH9K~AH6|Z45=k{q^OnpT= zCDy^>*M#Nss4ZPF8}Fmkh9dbYI|6)?z6E}SRoHAnGK5&(hxjqHC^-aSeIk4^#$)(o zeA-{zkV*xbqaQBXK#Gk3VHB<(OjPHfGekwbFM_@<&fcWZ4=RDTqLs)-4 z#ZQQDC*$wjX9L_n8_(rA{SNV({Cg%!(jDLpIdqb+Zg0n@>ZpjLz;~?iNk0_YN^#W2 zdXSTth2%@o;&$2Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2Tn;uK~z{r-B)=` zlt&cb@7jyyMo#fUREo9MRy;uj1dY~ew5eA#YCNho)uc^HY;CP=Vzq~w1{$qKZN*ST zN<~F(6i);bO|*d40}-ssu?u^BSAX;E2ZHO-KeaEJ{bt_0nR)N`j+v!2DxHWMxm=c| zbedtCWJ$WA(a6=bPFJY)@+qB=eblOo{qKm%A3q{b>Cm({KJ_sEv9T28q*(T@Mw0x% zAEc3GTAg|2h-TUAvMg6n3{#w3a;`;XD*(u(LvviM=fFWJj9!1c`BIfKNr?3@X(Zkm zi0)ij6xX8lbJn#Az=lv2eRcZ0N`y0(76T!TaX5qkpd?ncme!|Nrk87 z^Q)H7mK$}$MVoC4kev7*qe0U7_xc9=v`Thch|}D*0_!{(oxY0m@y$?W+(@)p`|;+s z4@sY*==&7Q{D}yxqP1G9e(xN1(H{h3H_1!&fDjp3ivHa{}J0l_$vlI-?q zXIpD7*577~9&;#~x&*_cBwh%mb=n$Mr*9M;_IZNMwjIV8v5gaL@Z^f>TP5!#c>=sc zI49Y)KV8P?4O5Z|PT67WV6Y0&!ok0Zy(e}V0EQXLc13J(v1uKSSJzbYrGbZ*5W4`WEE zj@Ih-V<-_G#jv}u&c7f&Mo-3_gox^kb5}eDfMFW+K|w16Mvoh<3k)2E@p2q;0aGG? z7=h6G9sT#tE}hTBXCHe=v)pO`RjVw1I(0BwU3S^*sR6Pee2sAk!)f#3VRFmp;n6Uq z@lIciQD=C<3w81MK*+W0dj;j3Ui3bT^FKxN#~u`92P0&cCFYm&Fz%pol1cz6*xGn+ z8EY^UL;o5$vmP}q7i-o?qUfiJbrOwKp6wRGZ*AEw!N7);^2&VxWIWLP7;JJg_zPBR zdi$-LGl<-zqSJRcZ|~Kl|1^RE7qxzVHN4q8MV91&2(d&-;Oh|K1k@K2l>a+6a-g@20#?Ofye^1%~*7@qyBbgVba+CWX{yDe;E{Chpq)c zg(FPALb2&Qd>dMihZ4Npgvxt@^t~b?H+c<-n&cTVaFd3DN)&Y#?B}J9LO7?7rLH!> z6fv+7;NMi)gk+#mjWc9xL;X;d*NtSPi8#-Gzlk=4gtow*rC_>wUm=RJxTOGy@Js+? zHgf7{LHwwwQE7W**nzgE>!` z=NICuiOb9-*X0p(JHylpnJhe}v;b-=#-w<5wync>8k7#BR zV9ZF=2!o5=MdY1u8jZ-0M57UfJB*=Wsa*hI%n|_%z*)&zC^=o-$^+NLk=Fs&fwfq~bwwAN|2_AmIz>ry)wt06Y%s$g9kU$iI{X z`%no_;c>MK52*6QE`FljkQ2hrr;eN^)im3>0D9My;=377>EShYB`pmTI5_ zH^O4%;zi`)8H@vn46e#eNR>3wf7uAHOv%(g!ZLRE0g{&8NTc}|1H+Lbg`00000 LNkvXXu0mjf39YXn literal 0 HcmV?d00001 diff --git a/fp-content/images/.thumbs/rss-white.png b/fp-content/images/.thumbs/rss-white.png new file mode 100644 index 0000000000000000000000000000000000000000..7e80d0e9c9be6a8b58d52b4a7ba09185a59e606a GIT binary patch literal 1185 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 literal 0 HcmV?d00001 diff --git a/fp-content/images/atom-white.png b/fp-content/images/atom-white.png new file mode 100644 index 0000000000000000000000000000000000000000..2f3cc93d7c9887e3e4e8b0b1cf0abe611f54bcce GIT binary patch literal 2203 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 FV1jVq5Y_+y literal 0 HcmV?d00001 diff --git a/fp-content/images/rss-white.png b/fp-content/images/rss-white.png new file mode 100644 index 0000000000000000000000000000000000000000..9197c238f7b5c33c6e1eddc4d1531aa88c532318 GIT binary patch literal 2030 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 literal 0 HcmV?d00001 diff --git a/fp-defaults/plugins.conf.php b/fp-defaults/plugins.conf.php index 9eb8a16..33c9125 100755 --- a/fp-defaults/plugins.conf.php +++ b/fp-defaults/plugins.conf.php @@ -26,8 +26,9 @@ $fp_plugins = array( 'favicon', 'commentcenter', 'mediamanager', - // 'datechanger' // Lets you change the publish date for (new) entries. + 'datechanger', // Lets you change the publish date for (new) entries. 'gallerycaptions', - 'photoswipe' + 'photoswipe', + 'feed' // Shows the RSS and Atom feed in the header and activates the widget ); ?> diff --git a/fp-interface/lang/cs-cz/lang.default.php b/fp-interface/lang/cs-cz/lang.default.php index 15cbf29..a1ef1bd 100644 --- a/fp-interface/lang/cs-cz/lang.default.php +++ b/fp-interface/lang/cs-cz/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Přidej komentář', 'comment' => '1 komentář', - 'comments' => 'komentáře' + 'comments' => 'komentáře', + + 'rss' => 'Přihlásit se k odběru RSS feed', + 'atom' => 'Přihlásit se k odběru Atom feed' ); $lang ['search'] = array( diff --git a/fp-interface/lang/da-dk/lang.default.php b/fp-interface/lang/da-dk/lang.default.php index c5b914e..9987eae 100644 --- a/fp-interface/lang/da-dk/lang.default.php +++ b/fp-interface/lang/da-dk/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Tilføj kommentar', 'comment' => '1 Kommentar', - 'comments' => 'Kommentarer' + 'comments' => 'Kommentarer', + + 'rss' => 'Abonner på RSS-feed', + 'atom' => 'Abonner på Atom-feed' ); $lang ['search'] = array( diff --git a/fp-interface/lang/de-de/lang.default.php b/fp-interface/lang/de-de/lang.default.php index dcfd9ae..3e0bc18 100644 --- a/fp-interface/lang/de-de/lang.default.php +++ b/fp-interface/lang/de-de/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Kommentar hinzufügen', 'comment' => '1 Kommentar', - 'comments' => 'Kommentare' + 'comments' => 'Kommentare', + + 'rss' => 'RSS-Feed abonnieren', + 'atom' => 'Atom-Feed abonnieren' ); $lang ['search'] = array( diff --git a/fp-interface/lang/el-gr/lang.default.php b/fp-interface/lang/el-gr/lang.default.php index a7b10f3..a0b3972 100644 --- a/fp-interface/lang/el-gr/lang.default.php +++ b/fp-interface/lang/el-gr/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Προσθήκη σχολίου', 'comment' => '1 σχόλιο', - 'comments' => 'σχόλια' + 'comments' => 'σχόλια', + + 'rss' => 'Εγγραφείτε στο RSS Feed', + 'atom' => 'Εγγραφείτε στο Atom Feed' ); $lang ['search'] = array( diff --git a/fp-interface/lang/en-us/lang.default.php b/fp-interface/lang/en-us/lang.default.php index 6112c45..72a0552 100755 --- a/fp-interface/lang/en-us/lang.default.php +++ b/fp-interface/lang/en-us/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Add a comment', 'comment' => '1 comment', - 'comments' => 'comments' + 'comments' => 'comments', + + 'rss' => 'Subscribe RSS feed', + 'atom' => 'Subscribe Atom feed' ); $lang ['search'] = array( diff --git a/fp-interface/lang/es-es/lang.default.php b/fp-interface/lang/es-es/lang.default.php index 578d71a..22ce70b 100644 --- a/fp-interface/lang/es-es/lang.default.php +++ b/fp-interface/lang/es-es/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Agregar un Comentario', 'comment' => '1 comentario', - 'comments' => 'comentarios' + 'comments' => 'comentarios', + + 'rss' => 'Suscribirse a RSS Feed', + 'atom' => 'Suscribirse a Atom Feed' ); $lang ['search'] = array( diff --git a/fp-interface/lang/fr-fr/lang.default.php b/fp-interface/lang/fr-fr/lang.default.php index a21e4f4..fa2ca87 100644 --- a/fp-interface/lang/fr-fr/lang.default.php +++ b/fp-interface/lang/fr-fr/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Ajouter un commentaire', 'comment' => '1 commentaire', - 'comments' => 'commentaires' + 'comments' => 'commentaires', + + 'rss' => 'S\'abonner au flux RSS', + 'atom' => 'S\'abonner au flux Atom' ); $lang ['search'] = array( diff --git a/fp-interface/lang/it-it/lang.default.php b/fp-interface/lang/it-it/lang.default.php index 39339bc..65a6f24 100644 --- a/fp-interface/lang/it-it/lang.default.php +++ b/fp-interface/lang/it-it/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Aggiungi un commento', 'comment' => '1 commento', - 'comments' => 'commenti' + 'comments' => 'commenti', + + 'rss' => 'Iscriviti al feed RSS', + 'atom' => 'Iscriviti al feed Atom' ); $lang ['search'] = array( diff --git a/fp-interface/lang/ja-jp/lang.default.php b/fp-interface/lang/ja-jp/lang.default.php index 486d653..33322ce 100644 --- a/fp-interface/lang/ja-jp/lang.default.php +++ b/fp-interface/lang/ja-jp/lang.default.php @@ -20,7 +20,10 @@ $lang['main'] = array( 'nocomments' => 'コメントを追加する', 'comment' => '1コメントあります', - 'comments' => 'コメントあります' + 'comments' => 'コメントあります', + + 'rss' => 'RSSフィードを購読する', + 'atom' => 'Atomフィードを購読する' ); $lang['search'] = array( diff --git a/fp-interface/lang/nl-nl/lang.default.php b/fp-interface/lang/nl-nl/lang.default.php index 7b1e28e..92ef690 100644 --- a/fp-interface/lang/nl-nl/lang.default.php +++ b/fp-interface/lang/nl-nl/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Voeg een commentaar toe', 'comment' => '1 commentaar', - 'comments' => 'commentaren' + 'comments' => 'commentaren', + + 'rss' => 'Abonneren op RSS-feed', + 'atom' => 'Abonneren op Atom-feed' ); $lang ['search'] = array( diff --git a/fp-interface/lang/pt-br/lang.default.php b/fp-interface/lang/pt-br/lang.default.php index e96a132..de687ac 100644 --- a/fp-interface/lang/pt-br/lang.default.php +++ b/fp-interface/lang/pt-br/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Adicione comentário', 'comment' => '1 comentário', - 'comments' => 'comentários' + 'comments' => 'comentários', + + 'rss' => 'Assine o RSS Feed', + 'atom' => 'Assine o Atom Feed' ); $lang ['search'] = array( diff --git a/fp-interface/lang/ru-ru/lang.default.php b/fp-interface/lang/ru-ru/lang.default.php index 748d72d..f3e1640 100644 --- a/fp-interface/lang/ru-ru/lang.default.php +++ b/fp-interface/lang/ru-ru/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Добавить комментарий', 'comment' => '1 комментарий', - 'comments' => 'комментарии' + 'comments' => 'комментарии', + + 'rss' => 'Подписаться на RSS-канал', + 'atom' => 'Подписаться на Atom-канал' ); $lang ['search'] = array( diff --git a/fp-interface/lang/sl-si/lang.default.php b/fp-interface/lang/sl-si/lang.default.php index f025d23..9f4ade8 100644 --- a/fp-interface/lang/sl-si/lang.default.php +++ b/fp-interface/lang/sl-si/lang.default.php @@ -20,7 +20,10 @@ $lang ['main'] = array( 'nocomments' => 'Dodajte komentar', 'comment' => '1 komentar', - 'comments' => 'komentarji' + 'comments' => 'komentarji', + + 'rss' => 'Naročite se na vir RSS', + 'atom' => 'Naročite se na vir Atom' ); $lang ['search'] = array( diff --git a/fp-interface/themes/leggero/flatmaas-rev/res/common.css b/fp-interface/themes/leggero/flatmaas-rev/res/common.css index 8abf621..c74bea2 100755 --- a/fp-interface/themes/leggero/flatmaas-rev/res/common.css +++ b/fp-interface/themes/leggero/flatmaas-rev/res/common.css @@ -129,6 +129,12 @@ h1 { /* Title of the blog */ text-decoration: none } +#head a img.feed { + float: right; + margin: 0px !IMPORTANT; + height: 12px +} + h2 { /* Titles of the entry */ font-size: 1.4em; color: #333333; diff --git a/fp-interface/themes/leggero/header.tpl b/fp-interface/themes/leggero/header.tpl index 569875d..dac2175 100755 --- a/fp-interface/themes/leggero/header.tpl +++ b/fp-interface/themes/leggero/header.tpl @@ -11,6 +11,10 @@
diff --git a/fp-interface/themes/leggero/leggero-v2/res/common.css b/fp-interface/themes/leggero/leggero-v2/res/common.css index 5c5bffa..bea3345 100644 --- a/fp-interface/themes/leggero/leggero-v2/res/common.css +++ b/fp-interface/themes/leggero/leggero-v2/res/common.css @@ -180,6 +180,12 @@ h4 { font-size: 1.2em } margin: .5em 0 0 0 } +#head a img.feed { + float: right; + margin: 0px !IMPORTANT; + height: 16px +} + /* ===== DIV CONTAINER "MAIN" ===== */ #outer-container { position: relative; diff --git a/fp-interface/themes/leggero/leggero/res/common.css b/fp-interface/themes/leggero/leggero/res/common.css index 37cb221..387c50f 100644 --- a/fp-interface/themes/leggero/leggero/res/common.css +++ b/fp-interface/themes/leggero/leggero/res/common.css @@ -202,6 +202,12 @@ h4 { font-size: 1.2em } margin: .5em 0 1em 1.2em } +#head a img.feed { + float: right; + margin: 0px !IMPORTANT; + height: 16px +} + /* ===== DIV CONTAINER "MAIN" ===== */ #outer-container { diff --git a/fp-plugins/feed/img/atom-white.png b/fp-plugins/feed/img/atom-white.png new file mode 100644 index 0000000000000000000000000000000000000000..2f3cc93d7c9887e3e4e8b0b1cf0abe611f54bcce GIT binary patch literal 2203 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 FV1jVq5Y_+y literal 0 HcmV?d00001 diff --git a/fp-plugins/feed/img/rss-white.png b/fp-plugins/feed/img/rss-white.png new file mode 100644 index 0000000000000000000000000000000000000000..9197c238f7b5c33c6e1eddc4d1531aa88c532318 GIT binary patch literal 2030 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 literal 0 HcmV?d00001 diff --git a/fp-plugins/feed/lang/lang.cs-cz.php b/fp-plugins/feed/lang/lang.cs-cz.php new file mode 100644 index 0000000..6886f97 --- /dev/null +++ b/fp-plugins/feed/lang/lang.cs-cz.php @@ -0,0 +1,7 @@ + 'Přihlaste se k odběru na', + 'rss' => 'Přihlásit se k odběru RSS feed', + 'atom' => 'Přihlásit se k odběru Atom feed' +); +?> diff --git a/fp-plugins/feed/lang/lang.da-dk.php b/fp-plugins/feed/lang/lang.da-dk.php new file mode 100644 index 0000000..fc7e8fe --- /dev/null +++ b/fp-plugins/feed/lang/lang.da-dk.php @@ -0,0 +1,7 @@ + 'Abonnieren', + 'rss' => 'Abonner på RSS-feed', + 'atom' => 'Abonner på Atom-feed' +); +?> diff --git a/fp-plugins/feed/lang/lang.de-de.php b/fp-plugins/feed/lang/lang.de-de.php new file mode 100644 index 0000000..3da0c87 --- /dev/null +++ b/fp-plugins/feed/lang/lang.de-de.php @@ -0,0 +1,7 @@ + 'Abonnieren', + 'rss' => 'RSS-Feed abonnieren', + 'atom' => 'Atom-Feed abonnieren' +); +?> diff --git a/fp-plugins/feed/lang/lang.el-gr.php b/fp-plugins/feed/lang/lang.el-gr.php new file mode 100644 index 0000000..23c4b80 --- /dev/null +++ b/fp-plugins/feed/lang/lang.el-gr.php @@ -0,0 +1,7 @@ + 'Εγγραφείτε στην τροφοδοσία', + 'rss' => 'Εγγραφείτε στο RSS Feed', + 'atom' => 'Εγγραφείτε στο Atom Feed' +); +?> diff --git a/fp-plugins/feed/lang/lang.en-us.php b/fp-plugins/feed/lang/lang.en-us.php new file mode 100644 index 0000000..5e0e8b5 --- /dev/null +++ b/fp-plugins/feed/lang/lang.en-us.php @@ -0,0 +1,7 @@ + 'Subscribe', + 'rss' => 'Subscribe RSS feed', + 'atom' => 'Subscribe Atom feed' +); +?> diff --git a/fp-plugins/feed/lang/lang.es-es.php b/fp-plugins/feed/lang/lang.es-es.php new file mode 100644 index 0000000..2e2da56 --- /dev/null +++ b/fp-plugins/feed/lang/lang.es-es.php @@ -0,0 +1,7 @@ + 'Suscribirse al feed', + 'rss' => 'Suscribirse a RSS Feed', + 'atom' => 'Suscribirse a Atom Feed' +); +?> diff --git a/fp-plugins/feed/lang/lang.fr-fr.php b/fp-plugins/feed/lang/lang.fr-fr.php new file mode 100644 index 0000000..d76e202 --- /dev/null +++ b/fp-plugins/feed/lang/lang.fr-fr.php @@ -0,0 +1,7 @@ + 'S\'abonner à', + 'rss' => 'S\'abonner au flux RSS', + 'atom' => 'S\'abonner au flux Atom' +); +?> diff --git a/fp-plugins/feed/lang/lang.it-it.php b/fp-plugins/feed/lang/lang.it-it.php new file mode 100644 index 0000000..e3695ce --- /dev/null +++ b/fp-plugins/feed/lang/lang.it-it.php @@ -0,0 +1,7 @@ + 'Iscriviti al feed', + 'rss' => 'Iscriviti al feed RSS', + 'atom' => 'Iscriviti al feed Atom' +); +?> diff --git a/fp-plugins/feed/lang/lang.ja-jp.php b/fp-plugins/feed/lang/lang.ja-jp.php new file mode 100644 index 0000000..619680b --- /dev/null +++ b/fp-plugins/feed/lang/lang.ja-jp.php @@ -0,0 +1,7 @@ + 'フィードを購読する', + 'rss' => 'RSSフィードを購読する', + 'atom' => 'Atomフィードを購読する' +); +?> diff --git a/fp-plugins/feed/lang/lang.nl-nl.php b/fp-plugins/feed/lang/lang.nl-nl.php new file mode 100644 index 0000000..8e2bc21 --- /dev/null +++ b/fp-plugins/feed/lang/lang.nl-nl.php @@ -0,0 +1,7 @@ + 'Abonneren op feed', + 'rss' => 'Abonneren op RSS-feed', + 'atom' => 'Abonneren op Atom-feed' +); +?> diff --git a/fp-plugins/feed/lang/lang.pt-br.php b/fp-plugins/feed/lang/lang.pt-br.php new file mode 100644 index 0000000..449547a --- /dev/null +++ b/fp-plugins/feed/lang/lang.pt-br.php @@ -0,0 +1,7 @@ + 'Assinar o feed', + 'rss' => 'Assine o RSS Feed', + 'atom' => 'Assine o Atom Feed' +); +?> diff --git a/fp-plugins/feed/lang/lang.ru-ru.php b/fp-plugins/feed/lang/lang.ru-ru.php new file mode 100644 index 0000000..30ca0a4 --- /dev/null +++ b/fp-plugins/feed/lang/lang.ru-ru.php @@ -0,0 +1,7 @@ + 'Подписаться на фид', + 'rss' => 'Подписаться на RSS-канал', + 'atom' => 'Подписаться на Atom-канал' +); +?> diff --git a/fp-plugins/feed/lang/lang.sl-si.php b/fp-plugins/feed/lang/lang.sl-si.php new file mode 100644 index 0000000..9ee2452 --- /dev/null +++ b/fp-plugins/feed/lang/lang.sl-si.php @@ -0,0 +1,7 @@ + 'Naročite se na vir', + 'rss' => 'Naročite se na vir RSS', + 'atom' => 'Naročite se na vir Atom' +); +?> diff --git a/fp-plugins/feed/plugin.feed.php b/fp-plugins/feed/plugin.feed.php new file mode 100644 index 0000000..c246463 --- /dev/null +++ b/fp-plugins/feed/plugin.feed.php @@ -0,0 +1,50 @@ +widget menu. Part of the standard distribution. + */ + + +function plugin_feed_head() { // stytesheet-file + $pdir = plugin_geturl('feed'); + + echo ' + + + + '; +} + +function plugin_feed_widget() { + + $lang = lang_load('plugin:feed'); + $baseurl = BLOG_BASEURL; + $imgdir = IMAGES_DIR; + + $widget ['subject'] = $lang ['plugin'] ['feed'] ['subject']; + + $rss = $lang ['plugin'] ['feed'] ['rss']; + $atom = $lang ['plugin'] ['feed'] ['atom']; + + $widget ['content'] = ' + +
    +
  • + RSS + Atom +
  • +
+ + '; + + return $widget; +} + +register_widget('feed', 'RSS and Atom Feed', 'plugin_feed_widget'); // feed-widget +add_action('wp_head', 'plugin_feed_head'); // stytesheet-file +?> diff --git a/fp-plugins/feed/res/feed.css b/fp-plugins/feed/res/feed.css new file mode 100644 index 0000000..1aef077 --- /dev/null +++ b/fp-plugins/feed/res/feed.css @@ -0,0 +1,4 @@ +.feed-widget { + margin: 0px !IMPORTANT; + height: 16px; +} From b3046af06f83f8c72b4691088f59a51103ae3928 Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Sun, 4 Feb 2024 23:33:53 +0100 Subject: [PATCH 10/28] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61f8cd8..8836bfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - SEO Meta Tag Info plugin added: Manages SEO meta tags ([#145](https://github.com/flatpressblog/flatpress/issues/145)) - FlatPress Protect plugin added: Adds HTTP headers for hardening your blog ([#146](https://github.com/flatpressblog/flatpress/issues/146)) - DateChanger plugin added: Allows you to change the publication date for (new) entries. +- Feed plugin added: Shows the RSS and Atom feed in the header and activates the widget. The buttons can be easily swapped via the upload manager([#317](https://github.com/flatpressblog/flatpress/issues/317)) ### Changes - jQuery plugin: Updated jQuery (3.5.1 => 3.6.1) and jQueryUI (1.12.1 => 1.13.2) From b8412c5a1d0bfd37a9efc60cc2381bcdca4fe359 Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Sun, 4 Feb 2024 23:34:32 +0100 Subject: [PATCH 11/28] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8836bfd..08ca278 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ - SEO Meta Tag Info plugin added: Manages SEO meta tags ([#145](https://github.com/flatpressblog/flatpress/issues/145)) - FlatPress Protect plugin added: Adds HTTP headers for hardening your blog ([#146](https://github.com/flatpressblog/flatpress/issues/146)) - DateChanger plugin added: Allows you to change the publication date for (new) entries. -- Feed plugin added: Shows the RSS and Atom feed in the header and activates the widget. The buttons can be easily swapped via the upload manager([#317](https://github.com/flatpressblog/flatpress/issues/317)) +- Feed plugin added: Shows the RSS and Atom feed in the header and activates the widget. The buttons can be easily swapped via the upload manager ([#317](https://github.com/flatpressblog/flatpress/issues/317)) ### Changes - jQuery plugin: Updated jQuery (3.5.1 => 3.6.1) and jQueryUI (1.12.1 => 1.13.2) From ac381e756a4bcb56fd560f2959b2642c448135b4 Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Mon, 5 Feb 2024 01:36:43 +0100 Subject: [PATCH 12/28] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08ca278..0b7d352 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,7 +46,7 @@ - In the setup CSS, unused IDs, classes and incorrect references to fonts have been removed. - The installer header now shines in a simple FlatPress style. - Added missing language files for Greek, Spanish and French ([#214](https://github.com/flatpressblog/flatpress/issues/214)) - - The installer tries to write permissions to the fp-content directory recursively for owners and groups, which had to be done manually before. + - The installer tries to write permissions recursively for owners and groups, which had to be done manually before. ## Themes - Reworked "Leggero v2" style, Admin Area now responsive ([#259](https://github.com/flatpressblog/flatpress/issues/259)) From 0d05b37297e774e5bd69bf3837e774a3f9a42428 Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Mon, 5 Feb 2024 21:12:21 +0100 Subject: [PATCH 13/28] Update feed.css Overwrite removed --- fp-plugins/feed/res/feed.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fp-plugins/feed/res/feed.css b/fp-plugins/feed/res/feed.css index 1aef077..5c22689 100644 --- a/fp-plugins/feed/res/feed.css +++ b/fp-plugins/feed/res/feed.css @@ -1,4 +1,4 @@ .feed-widget { - margin: 0px !IMPORTANT; - height: 16px; + margin: 0px; + height: 16px } From f0d3eae17a90f2516bfec199386e14438fabdb7a Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Mon, 5 Feb 2024 21:23:33 +0100 Subject: [PATCH 14/28] Update common.css - Feed header: Overwrite removed, pixel size adapted to device types --- .../themes/leggero/leggero-v2/res/common.css | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/fp-interface/themes/leggero/leggero-v2/res/common.css b/fp-interface/themes/leggero/leggero-v2/res/common.css index bea3345..ec5f5fc 100644 --- a/fp-interface/themes/leggero/leggero-v2/res/common.css +++ b/fp-interface/themes/leggero/leggero-v2/res/common.css @@ -180,11 +180,6 @@ h4 { font-size: 1.2em } margin: .5em 0 0 0 } -#head a img.feed { - float: right; - margin: 0px !IMPORTANT; - height: 16px -} /* ===== DIV CONTAINER "MAIN" ===== */ #outer-container { @@ -245,6 +240,12 @@ h4 { font-size: 1.2em } width: 100%; height: 180px !IMPORTANT } + + #head a img.feed { + float: right; + margin: 0px; + height: 14px + } } @media (min-width: 768px) { /* Smartphone landscape and Tablet */ @@ -272,6 +273,8 @@ h4 { font-size: 1.2em } .bbcode_video.right { float: right !IMPORTANT; margin: 0.5em 0.5em 1em 1em } .bbcode_video.left { float: left !IMPORTANT; margin: 0.5em 1em 1em 0.5em } + + #head a img.feed { height: 16px } } @media (min-width: 1024px) { /* Laptop and small Desktop-PC */ @@ -358,6 +361,12 @@ h4 { font-size: 1.2em } } .bbcode_video.nofloat { text-align: center } + + #head a img.feed { + float: right; + margin: 0px; + height: 10px + } } #main p { line-height: 1.4em; margin-top: 1em } From 411c24392f944fb4c522ca6bdf8e7b77efd8017f Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Mon, 5 Feb 2024 22:35:50 +0100 Subject: [PATCH 15/28] Update common.css --- fp-interface/themes/leggero/leggero/res/common.css | 6 ------ 1 file changed, 6 deletions(-) diff --git a/fp-interface/themes/leggero/leggero/res/common.css b/fp-interface/themes/leggero/leggero/res/common.css index 387c50f..37cb221 100644 --- a/fp-interface/themes/leggero/leggero/res/common.css +++ b/fp-interface/themes/leggero/leggero/res/common.css @@ -202,12 +202,6 @@ h4 { font-size: 1.2em } margin: .5em 0 1em 1.2em } -#head a img.feed { - float: right; - margin: 0px !IMPORTANT; - height: 16px -} - /* ===== DIV CONTAINER "MAIN" ===== */ #outer-container { From 68ac939102d2dbff447816e201c4b8a3c900418a Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Mon, 5 Feb 2024 22:41:23 +0100 Subject: [PATCH 16/28] Update style.css - Feed header: Position aligned --- fp-interface/themes/leggero/leggero/res/style.css | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/fp-interface/themes/leggero/leggero/res/style.css b/fp-interface/themes/leggero/leggero/res/style.css index 3c91a96..e8320da 100644 --- a/fp-interface/themes/leggero/leggero/res/style.css +++ b/fp-interface/themes/leggero/leggero/res/style.css @@ -10,7 +10,7 @@ Author: NoWhereMan & drudo Version: 0.2 Module: style.css -last change: 2023-11-01 +last change: 2024-02-05 */ @@ -33,6 +33,13 @@ body { margin: 80px 0 10px 0 } text-align: left } +#head a img.feed { + float: right; + height: 16px; + position: relative; + top: -6.3em +} + /* 800er Bildschirme zum Beispiel iPad Hochformat */ @media (max-width: 768px) { @@ -95,6 +102,8 @@ body { margin: 80px 0 10px 0 } width: 100% } + #head a img.feed { display: none } + h1 { margin: 0; padding: 0.5em 0 0 0.2em From 673579e0357316ba88509504bb44f19f772ef7c5 Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Tue, 6 Feb 2024 01:13:51 +0100 Subject: [PATCH 17/28] Update common.css --- fp-interface/themes/leggero/flatmaas-rev/res/common.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fp-interface/themes/leggero/flatmaas-rev/res/common.css b/fp-interface/themes/leggero/flatmaas-rev/res/common.css index c74bea2..8c0ead9 100755 --- a/fp-interface/themes/leggero/flatmaas-rev/res/common.css +++ b/fp-interface/themes/leggero/flatmaas-rev/res/common.css @@ -416,3 +416,6 @@ form#search ul li:before { content: none } /* Calendar-widget */ #widget_calendar table.calendar { font-size: 90% } + +/* Feed-widget */ +.feed-widget { height: 14px !IMPORTANT; } From f9e3f481928c11a44c5a8908deee12ca1289df51 Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Tue, 6 Feb 2024 01:31:44 +0100 Subject: [PATCH 18/28] Update common.css --- fp-interface/themes/leggero/flatmaas-rev/res/common.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fp-interface/themes/leggero/flatmaas-rev/res/common.css b/fp-interface/themes/leggero/flatmaas-rev/res/common.css index 8c0ead9..0bcced2 100755 --- a/fp-interface/themes/leggero/flatmaas-rev/res/common.css +++ b/fp-interface/themes/leggero/flatmaas-rev/res/common.css @@ -418,4 +418,4 @@ form#search ul li:before { content: none } #widget_calendar table.calendar { font-size: 90% } /* Feed-widget */ -.feed-widget { height: 14px !IMPORTANT; } +.feed-widget { height: 12px !IMPORTANT; } From 77261028bc52fd94745665ccf98e98d26d213501 Mon Sep 17 00:00:00 2001 From: Frank Hochmuth Date: Tue, 6 Feb 2024 21:09:06 +0100 Subject: [PATCH 19/28] Update header.tpl Logic changed to: if feed plugin is deactivated, the feed buttons are displayed in the header. It is unlikely that the FlatPress user wants the buttons in the head and in the menu bar to be displayed at the same time. If the FlaPress user uses a different theme, he can still activate the plugin/widget. --- fp-interface/themes/leggero/header.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fp-interface/themes/leggero/header.tpl b/fp-interface/themes/leggero/header.tpl index dac2175..f84cb1a 100755 --- a/fp-interface/themes/leggero/header.tpl +++ b/fp-interface/themes/leggero/header.tpl @@ -11,7 +11,7 @@