wake-up-neo.com

Plugins oder Tutorials zur Anzeige von Daten aus SQL-DB auf WP-Seite?

Ich habe eine eigene Wetterstation auf einem Raspberry Pi 3 mit einem lokalen LAMP-Setup. Die Sensordaten werden in einer eigenen Datenbank gespeichert. Die Aufgabe für Wordpress ist nur, eine einfache (etwas) WYSIWYG-Möglichkeit zu haben, das Design der Anzeigeseite, die auf einem sekundären Pi angezeigt wird, unter Verwendung eines Vollbild-Browsers zu bearbeiten.

Ich brauche jetzt 3 "einzigartige" Funktionen, für die ich keine passende Lösung gefunden habe:

  1. Shortcodes für die neueste (Echtzeit-) Dateneingabe der Datenbank (wie Temperatur, Luftfeuchtigkeit, Windgeschwindigkeit, Regensensordaten, Regenmenge usw.), um die aktuelle Platzierung der Daten auf der Seite zu ändern.

  2. Ich benötige ein Admin-Backend (Plugin, Adminpanel-Eintrag, was auch immer), um entweder die neuesten Daten aus der Datenbank abzurufen oder einen festen Wert für den Fall eines Sensorfehlers oder für andere Situationen, in denen dies erforderlich ist, einzugeben. Wäre schön zu haben: Speichern der manuellen Einträge in der Datenbank und Auswahl eines Dropdown-Menüs. Nichts Besonderes, so etwas wie http://i.imgur.com/TbZMFMK.png

  3. eine "etwas" einfache Möglichkeit, neue Datenwerte hinzuzufügen (wenn ein neuer Sensor hinzugefügt wird)

Die Datenerfassung erfolgt mit Python-Schreibzugriff auf die Datenbank. Wäre es einfacher, wenn Python die Daten direkt in seine eigene Tabelle in die Wordpress-DB schreiben würde? Obwohl es vielleicht schon Software bei Plugins gibt, die das machen, was ich schon brauche?

Vielen Dank!

4
Phish

Dies ist eine ziemlich vage und breite Frage, aber ich werde es versuchen. Sie können den folgenden Code in ein Funktions-Plugin einfügen oder, wenn Sie ein Design ausführen, es in die functions.php-Datei Ihres Designs einfügen. (Natürlich müssen Sie SQL, Attribute usw. ändern - nur ein Proof of Concept)

add_shortcode( 'wpse_weather_data', 'wpse_weather_data_shortcode_cb' );
function wpse_weather_data_shortcode_cb( $atts ) {
    $atts = shortcode_atts( array(
        'fallbackValue' => '',
        'sensor' => 0
     ), $atts );

     extract( $atts );

     // Make the connection to a separate database using PHP. 
     // You might want to store these credentials as constants in wp-config.php 
     // to keep all the db credentials in one place.
     $db = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
     if ( !$db ) {
         return $fallbackValue;
     }

     // Make the query
     $query = "SELECT * FROM table_name WHERE sensor = {$sensor}";
     $result = mysqli_query($db, $query);
     if ( !$result ) {
         return $fallbackValue;
     }

     $row = mysqli_fetch_array($result);
     // Put the data on the page... FYI you have to return the data from a shortcode, not echo it.
}

Das Erstellen einer Optionsseite, das Speichern früherer Werte in einer Datenbank usw. würde den Rahmen dieses Forums sprengen, aber dies würde Ihnen den Einstieg erleichtern. Sie können es anpassen (gemäß Nummer 3), indem Sie dem Shortcode verschiedene Attribute hinzufügen. Hier können Sie beispielsweise zusätzliche Sensoren hinzufügen und einen Fallback-Wert angeben, indem Sie den Shortcode an einer beliebigen Stelle im Inhalt platzieren und wie folgt aufrufen: [wpse_weather_data sensor="0" fallbackValue="Could not fetch sensor data"]

Ich hoffe, das lenkt Sie in die richtige Richtung.

1
brianjohnhanna