HM-Feedleser (Release-Version 1.08 / Plugin für WP)
Die auf dieser Seite veröffentlichten Code-Listings entsprechen weitestgehend den bereits vorgestellten Listings, wurden nur für die Verwendung als WordPress Plugin angepasst.
» Script für einen sicheren Feedreader...
Code der zum Plugin HM-Feedleser (Version 1.08 / WP)
gehörenden Dateien:
Demo unter: HM-Feedleser(bei www.woder-welten.com)
Download » Plugin für WordPress
Inhalt und Code der Datei feedleeser.php
<?php /*------------------------------------------------------------------------------------------------------------------ Plugin Name: HM-Feedleser Plugin URI: http://www.coder-welten.de/projekte/feedreader.htm Description: Ein Plugin fuer einen Feedleser, Einbindung und Auswahl erfolgt mit Short-Tags [feadlesershorts feedseite = "feed_01"] Author: Horst Müller Version: Release 1.08 Author URI: http://www.coder-welten.de Datum: 26. Februar 2014 License: GPL v2 und Lizenz für Software * PHP- und HTML-Code stehen unter der GNU General Public License (GPL) Version 2 * http://www.gnu.org/licenses/gpl-2.0.txt * Grafiken, JavaScript- und CSS-Code stehen unter der Lizenz für Software vom Verlag * http://www.coder-welten.de/projekte/lizenz-fuer-software.htm Copyright: © 2006/2014 - Verlag Horst Müller - Stendal ------------------------------------------------------------------------------------------------------------------- $hm_feedcss = Bei der Verwendung von bereits vorhandenen CSS Klassen und Style-Dateien sollte diese Variable auf "false" gesetzt werden. Falls die Datei feedstyle.css hingegen verwendet werden soll, muss die Einstellung bei "true" belassen werden. Nur die erste Variable $hm_feedcss editieren. Ein Beispiel: $hm_feedcss = true; /feedstyle.css wird in den Head eingebunden $hm_feedcss = false; /feedstyle.css wird nicht in den Head eingebunden ------------------------------------------------------------------------------------------------------------------- */ $hm_feedcss = true; /*------------------------------------------------------------------------------------------------------------------ Ende des editierbaren Bereiches: Ab hier sollte ohne einschlaegige Kenntnisse nichts mehr editiert werden. ------------------------------------------------------------------------------------------------------------------- */ if ($hm_feedcss == true) { function hm_binde_css_ein() { echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"".esc_url(plugins_url("/feedstyle.css", __FILE__))."\" />\n"; } add_action("wp_head", "hm_binde_css_ein"); } function hm_lade_Feedreader($atts) { /*-------------------------------------------------------------------------------------------------------------- Dieser User Agent ist fuer die Funktion getimagesize erforderlich, da im Gegensatz zur Funktion wp_remote_get keine Option fuer einen User Agent gesetzt werden kann. --------------------------------------------------------------------------------------------------------------- */ ini_set("user_agent", "Mozilla/5.0 (compatible; HM-Feedleser +".get_bloginfo("url").")"); $feedkla = "feedklasse.php"; // Seite mit der Feedklasse $feedset = "feedsettings.php"; // Seite mit den editierbaren Einstellungen $feedfor = "feedformular.php"; // Seite mit dem Feedformular und der Formular-Klasse $gebeaus = ""; $direkte = dirname(__FILE__).DIRECTORY_SEPARATOR; if (file_exists($direkte.$feedset)) { include_once $direkte.$feedset; } else {$gebeaus .= "Einige Einstellungen konnten nicht geladen werden!<br />\n"; } $pruefarr = (string) $atts["feedseite"]; if (array_key_exists($pruefarr, $feedarr)) { $seite = $feedarr[$pruefarr]; } else { $seite = $ersatz; // Hier wuerde ein Ersatzfeed geladen } /*-------------------------------------------------------------------------------------------------------------- Die Anzahl an Feeds pro Seite und die maximale Anzahl an Zeichen, falls ein von den allgemeinen Einstellungen abweichender Wert innerhalb eines Short-Tags notiert wurde. Kleiner 80 Zeichen wird nicht beruecksichtig. --------------------------------------------------------------------------------------------------------------- */ if (isset($atts["proseite"])) { $proseite = preg_replace("/[^0-9]/", "", $atts["proseite"]); if ($proseite >= 1) { $maximps = (int) $proseite; } } if (isset($atts["feedlaenge"])) { $feedlaenge = preg_replace("/[^0-9]/", "", $atts["feedlaenge"]); if ($feedlaenge >= 80) { $maxlang = (int) $feedlaenge; } } if (is_super_admin()) $blendein = true; if (is_user_logged_in() and $formuse == true) $blendein = true; if (isset($blendein) and $blendein == true) { if (file_exists($direkte.$feedfor)) { include_once $direkte.$feedfor; /*------------------------------------------------------------------------------------------------------ Erzeugen und Instanziieren des Objektes HM_Empfang_Message, falls das Formular mit $formu gleich true eingeblendet werden soll. -------------------------------------------------------------------------------------------------------- */ if (class_exists("HM_Empfang_Message")) { $vonform = new HM_Empfang_Message(); $vonform->domain = $seite; $seite = $vonform->pub_pruefe_Message(); } else {$gebeaus .= "Eine Klasse konnte nicht geladen werden!<br />\n"; } } else { $gebeaus .= "Formular konnte nicht geladen werden!<br />\n"; } } if (file_exists($direkte.$feedkla)) { include_once $direkte.$feedkla; if (class_exists("HM_FeedKlasse")) { $feedladen = new HM_FeedKlasse(); $feedladen->seite = $seite; // Die URI des zu ladenden Feeds oder der Name der Datei $feedladen->maxim = $maximps; // Maximale Anzahl der Ergebnisse pro Seite $feedladen->maxlg = $maxlang; // Die maximale Anzahl an Zeichen pro Feed $feedladen->descr = $bodescr; // Description anzeigen gleich "true" oder ausblenden gleich "false" $feedladen->conte = $boconte; // Content anzeigen gleich "true" oder ausblenden gleich "false" $feedladen->summa = $bosumma; // Summary anzeigen gleich "true" oder ausblenden gleich "false" $feedladen->linkt = $linktex; // Linktext fuer den unteren Link $feedladen->feedt = $feedtex; // Fuer den einleitenden Titel des Feeds, kann auch leer bleiben $gebeaus .= $feedladen->hm_liefere_Feed_Content(); } else {$gebeaus .= "Eine Klasse konnte nicht geladen werden!<br />\n"; } } else {$gebeaus .= $feedkla." konnte nicht geladen werden!<br />\n"; } return $gebeaus; } add_shortcode("feadlesershorts", "hm_lade_Feedreader"); ?>
Inhalt und Code der Datei feedformular.php
<?php /** * Das Formular und die Klasse HM_Empfang_Message fuer den HM-Feedleser * * @package HM-Feedleser * @since HM-Feedleser 1.08 */ $gebeaus .= "<div class=\"formle\">\n". "\x20\x20<form action=\"".esc_url($_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"])."\" method=\"post\">\n". "\t<input type=\"text\" name=\"abrufen\" size=\"60\" maxlength=\"120\" /><br />\n". "\t<input type=\"reset\" value=\" Reset \" />\n". "\t<input type=\"submit\" value=\" Abrufen \" />\n". "\x20\x20</form>\n". "</div>\n"; /*------------------------------------------------------------------------------------------------------------------ Ueberpruefung der vom Formular uebermittelten URL, wobei die Klasse und das Objekt nur benoetigt wird, falls das Formular eingeblendet werden soll. ------------------------------------------------------------------------------------------------------------------- */ class HM_Empfang_Message { private $dompath; public $domain; public function pub_pruefe_Message() { if (isset($_POST["abrufen"]) and !empty($_POST["abrufen"])) { $abrufen = trim($_POST["abrufen"]); $abrufen = preg_replace("/[^a-zA-Z0-9.:?&\/=_-]/", "", $abrufen); $httppos = stripos($abrufen, "http://"); if ($httppos === false) { $httpspos = stripos($abrufen, "https://"); if ($httpspos === false) { $abrufen = "http://".$abrufen; } } $this->dompath = $abrufen; return $this->dompath; } else { $this->dompath = $this->domain; return $this->dompath; } } } ?>
Inhalt und Code der Datei feedstyle.css
img.feedbild {float:left; margin:4px 15px 4px 0px; border-style:none} hr.fllinie {clear:both; margin-left:0px; margin-right:0px} div.formle {text-align:center} div.feedle {text-align:justify} a.feedll:link, a.feedll:visited {text-decoration:none; color:#A88314} a.feedll:hover,a.feedll:active {text-decoration:none; color:#004080} .ftitele {color:#684610; font-weight:normal} .flklein {font-size:10px; color:#808080} .flunten {text-align:left; font-size:12px; color:#808080} .flcopy {text-align:left; font-size:12px; color:#808080}