Home
Navigation
Impressum
Coder Welten - Programmierung und Optimierung
Feedreader: HM-Feedleser für WP

Code der zum Plugin gehörenden Dateien feedleeser.php, feedformular.php und feedstyle.css

HM-Feedleser (Release-Version 1.08 / Plugin für WP)

Vorstellung und Beschreibung des Plugins:

  1. Feedreader mit SimpleXML (Einführung und Vorstellung eines Scripts für einen sicheren Feedreader...)
  2. Feedreader File (Einzelheiten zum Code - Variante mit file_get_contents)
  3. Feedreader mit cURL (Code mit der cURL-Variante und ergänzende Hinweise)
  4. Zugehörige Dateien (Formular, Formular-Klasse und eine CSS-Dateie)
  5. Variante mit Feed-Klasse (zur leichteren Einbindung in HTML-Seiten, Version 1.06)
  6. Feed-Klasse und Methoden (nur für HM-Feedleser ab Version 1.06)
  7. Plugin für WordPress (Feedreader als Plugin für WordPress, Version 1.08)

Hinweis

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...

» Lizenz für Software

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&uuml;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}

Copyright © Verlag Horst Müller - Stendal - 2006 - Impressum - Datenschutz - Nutzungsbedingungen