Es ist unbedingt erforderlich für die Sicherheit dieser Provinz, mit aller Sorgfalt den Gebrauch von Trommeln ... oder anderen lauten Instrumenten einzuschränken, die geeignet sind, zusammenzurufen oder Zeichen zu geben oder einander über bösartige Pläne zu benachrichtigen.
South Carolinas "Slave Act" Artikel 36 (1740)
Aufbau des Plugins
Das Plugin besteht aus den nötigsten Dateien. Wichtig ist (für mich) eine klare Trennung der Views vom Controller. Damit ist der ganze HTML und CSS-Code jeweils separat in einer Datei. Die Logik übernimmt die übergeordnete PHP-Datei.
trancelantic_random_citation
und die Haupt-Plugin-Datei trancelantic_random_citation.php
haben den gleichen Namen. Aus diesem Verzeichnis später einfach eine Zip-Datei mit denselben Namen trancelantic_random_citation.zip
als Installationspaket generieren. Abschließend die Zip-Datei im WordPress-Adminbereich hochladen und aktivieren.Aufbau der Views und der CSS
random.php
zeigt nur den Inhalt des Arrays $citation
an und packt ein bisschen HTML rings herum. Ist dieses Array leer, gibt es einen Hinweis. Bei Interesse bitte selber die Datei anschauen. Die css.php
macht den ganzen Spaß noch ein bisschen schicker. Sie wird final am Ende des Skripts mit eingehängt. Interessant wird aber erst die Plugin-Steuerung.Die Plugin-Steuerung
trancelantic_random_citation.php
übernimmt die Hauptsteuerung und wird von WordPress als einziges aufgerufen. Wenn mehr Dateien benötigt werden, muss man diese selber includen. WordPress benötigt ein paar Informationen, wie Name, Version und eine Beschreibung. Der Name der Haupt-Datei und der Eintrag Text Domain
müssen identische sein: Text Domain: trancelantic_random_citation
.defined('ABSPATH') or die
verhindert. So kann nur WordPress die Plugin-Logik ausführen.
defined('ABSPATH') or die("Thanks for visting");
/*
* Plugin Name: Trancelantic Random Citation
* Plugin URI: http://www.trancelantic.com
* Description: WordPress plugin to show random citation provided by Trancelantic Citation Database.
* Version: 1.0
* Author: Wilfried Katschmarz
* Author URI: http://www.trancelantic.com
* License: GPL2
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: trancelantic_random_citation
*/
Datenhaltung nach Singleton-Art
define('TLRC_URL', 'http://api.citations.trancelantic.com/');
/*
* Local stored random citation.
* Use always tlrc_get_random_citation() to trigger loading
*/
$tlrc_random_citation;
/*
* Will load random citation from url and store it local.
* If you have allready loaded a random citation you will get the local stored citation.
* On error you will get an empty array.
*/
function tlrc_get_random_citation()
{
global $tlrc_random_citation;
if (is_null($tlrc_random_citation))
{
$tlrc_random_citation = array();
$headers = @get_headers(TLRC_URL);
// Use condition to check the existence of URL
if ($headers && strpos($headers[0], '200'))
{
$json = file_get_contents(TLRC_URL);
$rawData = json_decode($json, true);
if (array_key_exists("Citation", $rawData))
{
$tlrc_random_citation = $rawData['Citation'];
}
}
}
return $tlrc_random_citation;
}
Views einbinden
tlrc_get_random_citation_view
übernimmt die Anzeige des Zitats. Wenn keine Argumente übergeben worden sind, dann wird die View angezeigt. Ist in den Argumenten der Eintrag key
vorhanden, wird der spezielle Wert ausgegeben (Zitat, Author oder Jahr).
/*
* Will show blockquote random citation view if no args defined.
* If arg contains key you will get specific citation data (citation, author or year).
*/
function tlrc_get_random_citation_view($arg)
{
$citation = tlrc_get_random_citation();
// Looking for key in arguments with content
if (is_array($arg) && array_key_exists('key', $arg) && $arg['key'] != '')
{
if (empty($citation))
{
return 'TLRC-Error: Cannot load random citation.
';
}
else
{
$key = $arg['key'];
if (array_key_exists($key, $citation))
{
return $citation[$key];
}
else
{
return 'TLRC-Error: Unknwon citation key ('.$key.').
';
}
}
}
else
{
// No arguments or missing key or empty key
ob_start();
include 'views/random.php';
return ob_get_clean();
}
}
/*
* Add Shortcode for tlrc_data.
*/
add_shortcode( 'tlrc_data', 'tlrc_show_random_citation' );
CSS-Datei einbinden
/*
* Will show css file for random citation.
*/
function tlrc_show_random_citation_css_view()
{
include 'views/css.php';
}
/*
* Hock css file on building header.
*/
add_action( 'wp_head', 'tlrc_show_random_citation_css_view' );
Shortcodes in WordPress veröffentlichen
[tlrc_data key="Citation"]
zeigt das Zitat.[tlrc_data key="Author"]
zeigt den Autor.[tlrc_data key="Year"]
zeigt zeigt das Jahr. South Carolinas "Slave Act" Artikel 36
1740
[tlrc_citation]
zeigt die View mit einfachen HTML-Blockquotes. Es ist unbedingt erforderlich für die Sicherheit dieser Provinz, mit aller Sorgfalt den Gebrauch von Trommeln ... oder anderen lauten Instrumenten einzuschränken, die geeignet sind, zusammenzurufen oder Zeichen zu geben oder einander über bösartige Pläne zu benachrichtigen.
South Carolinas "Slave Act" Artikel 36 (1740)