dienste:wp_tkev

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
dienste:wp_tkev [31.12.2020 11:12] – Status-Anzeige-Code mit kleineren Icons und ohne Text ergänzt bernddienste:wp_tkev [28.12.2021 21:24] (aktuell) – [Tabelle] mape2k
Zeile 4: Zeile 4:
 Die Serverkonfiguration ist in [[dienste:bytecluster0002:wordpress]] dokumentiert, nachfolgend werden nur die innerhalb von Wordpress erfolgten Anpassungen/Plugins etc. aufgeführt. Die Serverkonfiguration ist in [[dienste:bytecluster0002:wordpress]] dokumentiert, nachfolgend werden nur die innerhalb von Wordpress erfolgten Anpassungen/Plugins etc. aufgeführt.
  
 +===== Wordpress User Enumeration =====
 +
 +In WordPress gibt es mehrere Stellen, an denen der Benutzername eines Kontos ausgelesen werden kann. Möchte man dies verhindern, müssen in der **functions.php** mehrere Filter ergänzt werden. Eine Anleitung dazu findet man auf [[https://blog.kulturbanause.de/2018/03/wordpress-user-enumeration-verhindern/|kultuberbanause.de]].
 +
 +**Im aktiven Weblog sind die Änderungen noch nicht eingebaut.**
 +
 +
 +===== wp-config.php =====
 +
 +==== Cache aktivieren ====
 +
 +Die nachfolgende Zeile muss vor ''require_once ABSPATH . 'wp-settings.php';'' eingefügt werden.
 +
 +<code php>define( 'WP_CACHE', true );</code>
 +
 +
 +===== functions.php =====
 +
 +==== erlaubte Dateitypen für Medien-Upload anpassen ====
 +
 +WordPress erlaubt im Standard nur eine begrenzte Auswahl an Dateitypen, welche in die Mediathek hochgeladen werden dürfen (siehe [[https://codex.wordpress.org/Uploading_Files]]). Die Liste der erlaubten Dateitypen kann über die functions.php angepasst werden ([[https://wp-guru.net/erlaubte-dateitypen-fuer-den-upload-in-die-mediengallerie-hinzufuegen/|Beispiel]]). Damit der nachfolgende Code Update-sicher bleibt, wird er als Snippet im Plugin "Code Snippets" angelegt.
 +
 +<code php>function dateitypen_bearbeiten($mime_types){
 +   $mime_types['zip'] = 'application/zip'; //.zip hinzufügen
 +   // unset($mime_types['pdf']); //.pdf entfernen
 +   return $mime_types;
 +}
 +add_filter('upload_mimes', 'dateitypen_bearbeiten', 1, 1);</code>
  
 ===== Template ===== ===== Template =====
  
-Das endgültige Template steht noch nicht fest.+==== User CSS ====
  
 +Verwendet wird aktuell das Template "Modern" mit folgenden CSS-Anpassungen...
  
-===== verwendete Plugins =====+<code css>#stc-unsubscribe-checkbox,#stc-all-categories,#stc_categories {width:1em;}
  
-^ Plugin        ^ Zweck                       ^  +#stc-subscribe-btn,#stc-unsubscribe-btn {border2px solid #D8D8D8;color:#6A6C6E}
-| [[https://de.wordpress.org/plugins/advanced-custom-fields/|Advanced Custom Fields]]   | Erlaubt die Definition zusätzlicher Felderauch abhängig von einzelnen Beiträgen. Wird für das Template "Modern" empfohlen. | +
-| [[https://de.wordpress.org/plugins/akismet/|Akismet Spam Protection]] | Ausfiltern von Kommentar-Spam, benötigt einen API-Key. Eine Datenschutz-freundlichere Alternative ohne externen Dienst wäre perspektivisch besser. | +
-| [[https://de.wordpress.org/plugins/classic-editor/|Classic Editor]] | Implementierung des alten Editors ohne WYSIWYG. | +
-| [[https://de.wordpress.org/plugins/jetpack/|Jetpack von wordpress.com]] | Zusätzliche Funktionen zur Weblog-Optimierung. Läuft größtenteils über die Server von Automattic, daher wären grundsätzlich lokal funktionierende Einzellösungen vorzuziehen, sofern verfügbar. |  +
-| [[https://de.wordpress.org/plugins/two-factor/|Two-Factor]] | 2-Faktor-Authentifizierung für Login | +
-| [[https://de.wordpress.org/plugins/two-factor/|Two-Factor]] | 2-Faktor-Authentifizierung für Login | +
-| [[https://de.wordpress.org/plugins/enhanced-text-widget/|Enhanced Text Widget]] | Wird für den Raumstatus in der Seitenleiste benötigt, da Wordpress standardmäßig keinen PHP-Code ausführt. | +
-| [[https://de.wordpress.org/plugins/contact-form-7/|Contact Form 7]] | Kontaktformular | +
-| [[https://de.wordpress.org/plugins/simple-yearly-archive/|Simple Yearly Archive]] | Übersichtsseite aller veröffentlichten Beiträge | +
-| [[https://de.wordpress.org/plugins/wp-githuber-md/|WP Githuber MD]] | Umfangreicher MarkDown-Editor mit Syntax-Highlighting und HTML-Preview innerhalb des Editors |+
  
 +.posts .entry {padding-left:1em;padding-right:1em}
 +
 +.sidebar .widget {padding: 1em;}
 +
 +.intro-title {
 +    font-size: 3rem;
 +    padding: 4% 0;
 +}
 +
 +.sidebar .widget input, .footer-widgets .widget input, .sidebar .widget select, .footer-widgets .widget select, .sidebar .widget textarea, .footer-widgets .widget textarea {
 +    -width: 100%;    
 +}
 +
 +.entry-content-container, .comments-area-inner, .site-info-inner, .footer-widgets {
 +    padding-bottom: 2rem;
 +}
 +
 +.attachment .entry-media, .entry-content-container, .comments-area-inner, .site-info-inner, .footer-widgets {
 +    padding-top: 2rem;
 +}
 +
 +.posts .entry-media {
 +    margin-left: -1em;
 +   margin-right: -1em;
 +    margin-bottom: 2.6244em;
 +}</code>
 +
 +==== Vorschaubilder ====
 +
 +Damit die Vorschaubilder zum Template passen, müssen unter Einstellungen/Medien die Größen der Bilder angepasst werden, die im Standard recht klein und quadratisch sind. Die Anpassungen entspricht den empfohlenen Bildgrößen, welche ebenfalls auf der Seite aufgeführt sind.
 +
 +  * Vorschaubilder: 420 x 0
 +  * Mittelgroß: 744 x 0
 +  * Groß: 1200 x 0
 +
 +===== verwendete Plugins =====
 +
 +^ Plugin                                                                                               ^ Zweck                                                                                                                                                                          ^
 +| [[https://de.wordpress.org/plugins/advanced-custom-fields/|Advanced Custom Fields]]                  | Erlaubt die Definition zusätzlicher Felder, auch abhängig von einzelnen Beiträgen. Wird für das Template "Modern" empfohlen.                                                   |
 +| [[https://de.wordpress.org/plugins/antispam-bee/|Antispam Bee]]                                      | Anti-Spam-Plugin als Alternative zu Akismet                                                                                                                                    |
 +| [[https://de.wordpress.org/plugins/cache-enabler/|Cache Enabler]]                                    | Cache verwalten und bei Bedarf löschen                                                                                                                                         |
 +| [[https://de.wordpress.org/plugins/classic-editor/|Classic Editor]]                                  | Implementierung des alten Editors ohne WYSIWYG.                                                                                                                                |
 +| [[https://de.wordpress.org/plugins/code-snippets/|Code Snippets]]                                    | erlaubt das einfügen von Codeblöcken in die functions.php ohne das man die Datei des Themes anpassen muss                                                                      |
 +| [[https://de.wordpress.org/plugins/contact-form-7/|Contact Form 7]]                                  | Kontaktformular                                                                                                                                                                |
 +| [[https://de.wordpress.org/plugins/contextual-related-posts/|Contextual Related Posts]]              | zeigt ähnliche Beiträge unter einem Artikel an                                                                                                                                 |
 +| [[https://de.wordpress.org/plugins/disable-remove-google-fonts/|Disable and Remove Google Fonts]]    | Deaktiviert die Einbindung von Google Fonts in ein Theme ohne das am Code etwas angepasst werden muss. Funktion hängt vom Theme ab, mit "Modern" scheint es zu passen.         |
 +| [[https://de.wordpress.org/plugins/email-subscribers/|Email Subscribers & Newsletters]]              | versendet E-Mail-Benachrichtigungen bei neuen Beiträgen an Abonennten, hat Double-Opt-In. Derzeit in der Seitenleiste, kann aber auch als eigene Seite genutzt werden.         |
 +| [[https://de.wordpress.org/plugins/enhanced-media-library/|Enhanced Media Library]]                  | Zusätzliche Funktionen für die Media-Bibliothek (z. B. Alben)                                                                                                                  |
 +| [[https://de.wordpress.org/plugins/enhanced-text-widget/|Enhanced Text Widget]]                      | Wird für den Raumstatus in der Seitenleiste benötigt, da Wordpress standardmäßig keinen PHP-Code ausführt.                                                                     |
 +| [[https://de.wordpress.org/plugins/ics-calendar/|ICS Calendar]]                                      | Stellt auf einer Seite einen Kalender mit Terminen dar. Schön an diesem Plugin ist die Möglichkeit, mehrere ICS in einem Kalender darstellen zu lassen.                        |
 +| [[https://de.wordpress.org/plugins/limit-login-attempts-reloaded/|Limit Login Attempts Reloaded]]    | Blockiert eine IP für x Minuten bei zu vielen falschen Logins.                                                                                                                 |
 +| [[https://de.wordpress.org/plugins/regenerate-thumbnails/|Regenerate Thumbnails]]                    | Erstellt neue Vorschaubilder, wenn man z. B. in den Media-Einstellungen die Auflösungen geändert hat. Kann normalerweise deaktiviert bleiben, wird nicht regelmäßig benötigt.  |
 +| [[https://de.wordpress.org/plugins/responsive-lightbox/|Responsive Lightbox & Gallery]]              | Lightbox für Bilder, damit diese in einem Hover aufgehen                                                                                                                       |
 +| [[https://de.wordpress.org/plugins/simple-yearly-archive/|Simple Yearly Archive]]                    | Übersichtsseite aller veröffentlichten Beiträge                                                                                                                                |
 +| [[https://de.wordpress.org/plugins/starbox/|Starbox]]                                                | erzeugt einen Autoren-Block unter jedem Artikel                                                                                                                                |
 +| [[https://de.wordpress.org/plugins/subscribe-to-comments-reloaded/|Subscribe To Comments Reloaded]]  | Besucher erhalten auf Wunsch eine E-Mail-Benachrichtigung bei neuen Kommentaren zu einem Artikel, Double-Opt-In ist aktiviert                                                  |
 +| [[https://de.wordpress.org/plugins/two-factor/|Two-Factor]]                                          | 2-Faktor-Authentifizierung für Login                                                                                                                                           |
 +| [[https://de.wordpress.org/plugins/wp-githuber-md/|WP Githuber MD]]                                  | Umfangreicher MarkDown-Editor mit Syntax-Highlighting und HTML-Preview innerhalb des Editors                                                                                   |
 +| [[https://de.wordpress.org/plugins/wp-mail-smtp/|WP Mail SMTP]]                                      | Wordpress SMTP-Unterstützung                                                                                                                                                   |
 +| [[https://de.wordpress.org/plugins/xml-sitemap-feed/|XML Sitemap & Google News]]                     | erzeugt XML-Sitemaps für bessere/schnellere Indexierung durch Suchmaschinen                                                                                                    |
  
 ===== Plugin-Konfiguration ===== ===== Plugin-Konfiguration =====
  
-==== Jetpack ====+==== ICS Calendar ==== 
 + 
 +Die meisten Funktionen bzw. die Ausgabe des Plugins lassen sich über Parameter im ShortCode der Seite steuern. Nachfolgend beispielhaft die Einbindung mit unseren beiden öffentlichen NextCloud-Kalendern von Bytespeicher und Makerspace. 
 + 
 +  [ics_calendar url="https://cloud.technikkultur-erfurt.de/remote.php/dav/public-calendars/62H5QIYTZJMRSB17?export https://cloud.technikkultur-erfurt.de/remote.php/dav/public-calendars/FW4LI1Y6AID0ZVC1?export" view="month" tz="Europe/Berlin" eventdesc="true" location="true" organizer="true" attach="true" title="false" pastdays="90" monthnav="both" color="#3399ff #ff6600" feedlabel="Bytespeicher|Makerspace" legendposition="below" legendstyle="inline"
 + 
 +**Wichtig:** Falls der Kalender nicht dargestellt wird, muss die PHP-Konfiguration geprüft werden! 
 + 
 +> Why isn’t my calendar loading? 
 +>  
 +> This may be due to your server’s configuration. This plugin requires either the PHP cURL extensions, or the allow_url_fopen PHP setting to be turned on. Check your PHP configuration or your server administrator if you think this may be the issue. 
 + 
 +==== Two Factor ==== 
 + 
 +Damit sich bei aktivierter 2FA Apps über die XMLRPC-API einloggen können, muss folgender Code in die functions.php gefügt werden: 
 + 
 +  add_filter( 'two_factor_user_api_login_enable', function( $enable ) { 
 +    // Allow API login when using an application password even with 2fa enabled. 
 +    if ( did_action( 'application_password_did_authenticate' ) ) { 
 +        return true; 
 +    } 
 +   
 +    return $enable; 
 +  } ); 
 + 
 +Um das Theme nicht anpassen zu müssen, wird der Code als Snippet im Plugin "Code Snippets" verwendet. 
 + 
 +==== Kontaktformular ==== 
 + 
 +Das Kontaktformular wird von "Contact Form 7" bereitgestellt. Die Einstellungen sind überwiegend auf Standard belassen, als Empfänger-E-Mail ist der Vereinsvorstand angegeben. 
 + 
 +=== Vorlage für Formular === 
 + 
 +Das Kontaktformular entspricht im Wesentlichen der Standardeinstellung, es wurde jedoch ein Frage-Feld ergänzt, welches vor dem Absenden beantwortet werden muss, um den ein oder anderen Spam-Bot abzuhalten. Groß-/Kleinschreibung ist für die Antworten nicht relevant. 
 + 
 +<code><label>Dein Name 
 +    [text* your-name] </label> 
 + 
 +<label>Deine E-Mail-Adresse 
 +    [email* your-email] </label> 
 + 
 +<label>Betreff 
 +    [text* your-subject] </label> 
 + 
 +<label>Deine Nachricht (optional) 
 +    [textarea your-message] </label> 
 + 
 +[quiz quiz-515 "In welcher Stadt befindet sich unser Verein?|xxx" "Wie heißt die Bundeshauptstadt von Deutschland?|Berlin" "Was fördert unser Verein?|xxx"
 + 
 +[submit "Senden"]</code> 
 + 
 +=== Honeypot gegen Spam === 
 + 
 +Sollte die Sicherheitsfrage zur Abwehr von Spammern nicht ausreichen, kann ggf. noch zusätzlich/alternativ das Plugin [[https://de.wordpress.org/plugins/contact-form-7-honeypot/|Contact Form 7 Honeypot]] getestet werden. Aktuell ist es nicht installiert. 
 + 
 +==== Übersichtsseite aller Artikel ==== 
 + 
 +Das Archiv wird von "Simple Yearly Archive" bereitgestellt. Die Einstellungen sind überwiegend auf Standard belassen, als Datumsformat ist "d.m." eingestellt. 
 + 
 +==== Cache Enabler ==== 
 + 
 +  *  Zwischengespeicherte Seiten mit gzip vorkomprimieren. **aktiviert**  
 + 
 +Alle anderen Einstellungen sind deaktiviert bzw. leer. 
 + 
 +==== Subscribe to Comments Reloaded ==== 
 + 
 +  * StCR Checkbox... **Ja** 
 +  * Sicher deinstallieren **Ja** 
 +  * Anfragen automatisch löschen **30** Tage 
 +  * Datumsformat **d M Y** 
 +  * StCR Position **Nein** 
 +  * Double Opt-In aktivieren **Ja** 
 +  * Autoren abonnieren **Nein** 
 +  * Aktiviere HTML E-Mails **Nein** 
 +  * Trackbacks senden **Nein** 
 +  * Verfolge alle Benachrichtigungen **Nein** 
 +  * Admin-Abonnement erlauben **Nein** 
 +  * BCC Admin bei Benachrichtigungen **Nein** 
 +  * "Font Awesome" aktivieren **Nein** 
 +  * Nur für Blog-Beiträge aktivieren **Ja** 
 +  * Nur für angemeldete Benutzer aktivieren **Nein** 
 +  * Cookies aktivieren **Ja** 
 +  * Challenge-Frage aktivieren **Nein** 
 +  * Challenge-Frage //egal// 
 +  * Challenge-Frage //egal// 
 +  * Eindeutiger StCR Schlüssel //automatisch erzeugt// 
 + 
 +==== XML-Sitemap ==== 
 + 
 +Die Sitemap wird vom Plugin "XML Sitemap & Google News" erzeugt. In den Einstellungen unter "Post Types" ist "Split by" auf "keine" eingestellt, Rest ist Standard. 
 + 
 +In den Wordpress-Einstellungen für "Schreiben" ist zu prüfen, dass die Ping-Services für Google und Bing/Yahoo aktiviert sind, damit beim Veröffentlichen von Beiträgen die geänderte Sitemap an die Suchmaschinen gemeldet wird für die Indexierung. 
 + 
 +==== Raumstatus ==== 
 + 
 +Für die Darstellung des Raumstatus in der Seitenleiste wird das Plugin "Advanced Text Widget" benötigt, da Wordpress standardmäßig keinen PHP-Code ausführt. 
 + 
 +Der Code für den Status sieht wie folgt aus. 
 +Die Größe der Logos lässt sich durch Änderung der Variable $cssMaxWidth anpassen. 
 + 
 +<code php> 
 +<?php 
 + 
 +// Spaces 
 +$spaces = [ 
 +    'Bytespeicher' => 'http://status.bytespeicher.org', 
 +    'Makerspace' => 'http://status.makerspace-erfurt.de', 
 +]; 
 + 
 +// Max width of icon (small = 100, large = 200) 
 +$cssMaxWidth = 100; 
 + 
 +// JSON path for URI 
 +$statusJsonPath = '/status-minimal.json'; 
 + 
 +// Create stream context with low timeout 
 +$context = stream_context_create([ 
 +    'http' => [ 
 +        'method' => "GET", 
 +        'timeout' => 1 
 +    ] 
 +]); 
 + 
 +// Check every space 
 +// No output on errors 
 +foreach ($spaces as $spaceName => $statusUrl) { 
 +    // Get minimal status from spacestatus webpage 
 +    $jsonContent = file_get_contents($statusUrl . $statusJsonPath, false, $context); 
 +    if ($jsonContent === false) { 
 +        // Status could not be received, skip it 
 +        continue; 
 +    } 
 + 
 +    // Decode JSON with max depth of 2 
 +    $jsonContent = json_decode($jsonContent, false, 2); 
 +    if (is_null($jsonContent) || !isset($jsonContent->open) || !isset($jsonContent->icon)) { 
 +        // JSON could not be decoded or entries missing 
 +        continue; 
 +    } 
 + 
 +    // Output spaces 
 +    $text = 'Der ' . $spaceName . ' ist ' . ($jsonContent->open === true ? 'offen' : 'geschlossen') . '!'; 
 +    echo '<a href=\'' . $statusUrl . '\'>'; 
 +    echo '<img src=\'' . $jsonContent->icon . '\' title=\'' . $text . '\' alt=\'Raumstatus des ' . $spaceName . '\' style=\'width:100%;max-width:' . $cssMaxWidth . 'px;\' />'; 
 +    echo '</a>'; 
 +
 + 
 +?></code> 
 + 
 +==== Jetpack (nicht mehr installiert) ====
  
 Wir verwenden nur die kostenlose Variante von Jetpack, daher sind nicht alle Funktionen nutzbar. Wir verwenden nur die kostenlose Variante von Jetpack, daher sind nicht alle Funktionen nutzbar.
Zeile 59: Zeile 288:
     * CSS-Anpassungsbereich optimieren **deaktiviert**     * CSS-Anpassungsbereich optimieren **deaktiviert**
   * Widgets   * Widgets
-    * Stelle zusätzliche Widgets wie Abonnementformulare und Twitter-Streams auf deiner Website zur Verfügung **aktiviert**+    * Stelle zusätzliche Widgets wie Abonnementformulare und Twitter-Streams auf deiner Website zur Verfügung **deaktiviert**
     * Aktiviere Steuerelemente zur Sichtbarkeit von Widgets... **deaktiviert**     * Aktiviere Steuerelemente zur Sichtbarkeit von Widgets... **deaktiviert**
   * Per E-Mail veröffentlichen **deaktiviert**   * Per E-Mail veröffentlichen **deaktiviert**
Zeile 73: Zeile 302:
  
   * Kommentare **alles deaktiviert**   * Kommentare **alles deaktiviert**
-  * Abonnements **alles aktiviert**+  * Abonnements **alles deaktiviert**
  
 === Traffic === === Traffic ===
  
-  * Ähnliche Beiträge **alles aktiviert**+  * Ähnliche Beiträge **alles deaktiviert**
   * WP.me-Kurzlinks **deaktiviert**   * WP.me-Kurzlinks **deaktiviert**
-  * Sitemaps **aktiviert**+  * Sitemaps **deaktiviert**
   * Website-Verifizierung **deaktiviert**   * Website-Verifizierung **deaktiviert**
  
-=== Statistiken ===+=== Module ohne eigene Konfigurationsseite ===
  
-Die Jetpack-Statistiken sind **deaktiviert**. Dies ist jedoch relativ schwer zu finden, da in der normalen Konfiguration nicht zu sehen, sondern nur im Debug-Menü (Fehlersuche). Der Direkt-Link für die Übersichtsseite mit allen Modulen lautet [[https://technikkultur-erfurt.de/wp-admin/admin.php?page=jetpack_modules]], hier kann man die "Website-Statistiken" deaktivieren+Mehrere Jetpack-Module können in der normalen Konfigurationsoberfläche nicht deaktiviert werden, sondern nur über die Modulübersicht zu finden. Der Direkt-Link lautet [[https://technikkultur-erfurt.de/wp-admin/admin.php?page=jetpack_modules]]. 
  
-===== Kontaktformular =====+  * Benachrichtigungen **deaktiviert** 
 +  * Kontaktformular **deaktiviert** 
 +  * Statistiken **deaktiviert**  
 +  * erweiterte Verbreitung **deaktiviert** 
 +  * JSON-API **deaktiviert**
  
-Das Kontaktformular wird von "Contact Form 7" bereitgestellt. Die Einstellungen sind überwiegend auf Standard belassen, als Empfänger-E-Mail ist der Vereinsvorstand angegeben. 
- 
-===== Übersichtsseite aller Artikel ===== 
- 
-Das Archiv wird von "Simple Yearly Archive" bereitgestellt. Die Einstellungen sind überwiegend auf Standard belassen, als Datumsformat ist "d.m." eingestellt. 
- 
- 
-===== Raumstatus ===== 
- 
-Für die Darstellung des Raumstatus in der Seitenleiste wird das Plugin "Advanced Text Widget" benötigt, da Wordpress standardmäßig keinen PHP-Code ausführt. 
- 
-Der Code für den Status sieht wie folgt aus: 
- 
-<code php> 
-<?php 
- 
-$ctx = stream_context_create(array(  
-    'http' => array(  
-        'timeout' => 1  
-        )  
-    )  
-);  
-$obj = json_decode(file_get_contents('http://status.bytespeicher.org/status.json', false, $ctx)); 
- 
-if (isset($obj->state->open) && $obj->state->open === true) { 
-    $f = $obj->state->icon->open; 
-    $text = "Der Bytespeicher ist offen!"; 
-} else { 
-    $f = $obj->state->icon->closed; 
-    $text = "Der Bytespeicher ist geschlossen!"; 
-} 
- 
-$f = str_replace('http://status.bytespeicher.org/', 'https://bytespeicher.org/status/', $f); 
- 
-echo "<p style='text-align:center;'><a target='_blank' href='http://status.bytespeicher.org/'><img src='$f' title='$text' alt='Raumstatus des Bytespeicher' style='width:100%;max-width:200px;' /></a>"; 
-echo '<br />'.$text."</p>";  
- 
- 
-$ctx = stream_context_create(array(  
-    'https' => array(  
-        'timeout' => 1  
-        )  
-    )  
-);  
-$obj = json_decode(file_get_contents('https://status.makerspace-erfurt.de/status.json', false, $ctx)); 
- 
-if (isset($obj->state->open) && $obj->state->open === true) { 
-    $f = $obj->icon->open; 
-    $text = "Der Makerspace ist offen!"; 
-} else { 
-    $f = $obj->icon->closed; 
-    $text = "Der Makerspace ist geschlossen!"; 
-} 
- 
-$f = str_replace('https://status.makerspace-erfurt.de/', 'https://status.makerspace-erfurt.de/', $f); 
- 
-echo "<p style='text-align:center;'><a target='_blank' href='https://status.makerspace-erfurt.de/'><img src='$f' title='$text' alt='Raumstatus' width='100px' style='width:100%;max-width:200px;' /></a><br />"; 
-echo $text."</p>";  
- 
-?></code> 
- 
-Alternativ-Code ohne Textausgabe und mit kleineren Icons: 
- 
-<code php> 
-<?php 
- 
-$ctx = stream_context_create(array(  
-    'http' => array(  
-        'timeout' => 1  
-        )  
-    )  
-);  
-$obj = json_decode(file_get_contents('http://status.bytespeicher.org/status.json', false, $ctx)); 
- 
-if (isset($obj->state->open) && $obj->state->open === true) { 
-    $f = $obj->state->icon->open; 
-    $text = "Der Bytespeicher ist offen!"; 
-} else { 
-    $f = $obj->state->icon->closed; 
-    $text = "Der Bytespeicher ist geschlossen!"; 
-} 
- 
-$f = str_replace('http://status.bytespeicher.org/', 'https://bytespeicher.org/status/', $f); 
- 
-echo "<a target='_blank' href='http://status.bytespeicher.org/'><img src='$f' title='$text' alt='Raumstatus des Bytespeicher' style='width:100%;max-width:100px;' /></a>"; 
- 
-$ctx = stream_context_create(array(  
-    'https' => array(  
-        'timeout' => 1  
-        )  
-    )  
-);  
-$obj = json_decode(file_get_contents('https://status.makerspace-erfurt.de/status.json', false, $ctx)); 
- 
-if (isset($obj->state->open) && $obj->state->open === true) { 
-    $f = $obj->icon->open; 
-    $text = "Der Makerspace ist offen!"; 
-} else { 
-    $f = $obj->icon->closed; 
-    $text = "Der Makerspace ist geschlossen!"; 
-} 
- 
-$f = str_replace('https://status.makerspace-erfurt.de/', 'https://status.makerspace-erfurt.de/', $f); 
- 
-echo "<a target='_blank' href='https://status.makerspace-erfurt.de/'><img src='$f' title='$text' alt='Raumstatus' width='200px' style='width:100%;max-width:100px;' /></a>"; 
- 
-?></code> 
  • dienste/wp_tkev.1609409525.txt.gz
  • Zuletzt geändert: 31.12.2020 11:12
  • von bernd