Shopware Smarty Block if

In Smarty Templates können bei der Vererbung Blöcke nicht innerhalb einer if-Abfrage definiert werden. Folgender Code funktioniert nicht. Der entsprechende Block wird nicht überschrieben. Dabei ist das Freitetxtfeld attr20 im Shopware Backend als Checkbox definiert. Sie gibt an, ob der Preis ein Anfragepreis ist. ...  mehr lesen

Raspberry Pi Apache Webserver

Der Raspberry Pi kann in lokalen Netzen hervorragend als lokaler Raspberry Apache Webserver genutzt werden. Besonders im Zusammespiel mit PHP kann man so über einen Webbrowser z.B. Funksteckdosen oder Bewässerungssysteme schalten. Folgende Schritte sind notwendig um den Apache Webserver auf einem Raspberry Pi zu installieren.

sudo apt-get update
sudo apt-get install apache2 -y

Beim Aufruf von http://localhost sollte nun folgende Seite im Webbrowser erscheinen.

Starseite des Apache Webservers

Starseite des Apache Webservers

Damit ist der APache Webserver auf dem PI installiert und läuft. ...  mehr lesen

Shopware Plugin Css

Wenn man in einem Plugin CSS Code hinzufügen will, ist die einfachste Möglichkeit die CSS-Datei im Order PluginOrdner/Resources/frontend/css/*.css abzulegen. Wenn man nun das Template neu kompiliert, wird das CSS automatisch in Shopware eingebunden.

Das gleiche gilt für Javascript und Less Dateien. Diese müssen entsprechend im Ordner PluginOrdner/Resources/frontend/js/*.js und PluginOrdner/Resources/frontend/less/*.less abgelegt werden.

Der Nachteil ist, dass die Dateien global in Shopware eingebunden werden, unabhängig davon, ob das Plugin nur auf einer bestimmten Seite eingreift. Wenn man also im Plugin nur die Artikel Detailseite verändert, werden die Dateien auch auf der Startseite, dem Kontaktformular und allen anderen Seiten eingebunden. ...  mehr lesen

Raspberry Pi PHP

Wer auf seinem Raspberry eine Webserver betreibt, muss über kurz oder lang dynamische Seiten erstellen. Dafür wird eine Scriptsprache wie PHP benötigt. In diesem Artikel erkläre ich, wie man auf einem Raspberry Pi PHP installiert. Viele Benutzer verwenden den Raspberry Pi und Sachen zu schalten. Dafür möchten Sie eine Website auf dem Raspberry aufrufen, über die Sie den Status z.B. einer Funksteckdose sehen und diese auch schalten können. Dafür kann man PHP nutzen.

Installation

Bevor PHP und das Apache Modul von installiert werden, sollte der Apache Webserver bereits auf dem Pi installiert sein. Wenn das so ist, können Sie PHP mit folgendem Befehl installieren.

sudo apt-get install php libapache2-mod-php -y

Prüfen

Wenn der Befehl ohne Fehlermeldungen durchgelaufen ist, kann man mit einer einfachen php Datei prüfen, ob PHP auch läuft. Das Verzeicnis des Apache Webserver, aus dem er die angeforderten Dateien ausließt lautet /var/www/html. Erstellen Sie in diesem Verzeichnis eine neue Datei test.php mit folgendem Inhalt.

<?php phpinfo(); ?>

Diese Seite kann mit der URL http://localhost/test.php vom Raspberry Pi im Webbrowser aufrufen. Wenn Sie die Seite von einem externen Rechner aufrufen wollen, müssen Sie die IP-Adresse des Raspberry anstatt localhost eingeben. Die IP-Adresse des Raspberry erfahren Sie mit dem Befehl ifconfig. Wenn folgende Informationsseite erscheint, läuft PHP als Apache Modul auf dem Raspberry Pi.

Ausgabe PHP Info auf Raspberry Pi

Ausgabe PHP Info auf Raspberry Pi

Konfiguration

Um Befehle auf dem Rasberry mit den Funktionen exec() und shell_exec() ausführen zu können und damit GPIOs zu schalten, müssen Sie noch Berechtigungen anpassen. Die PHP Scripte werden unter dem Benutzer www-data ausgeführt.  Unter Raspbian Jessie (bei anderen Versionen weiß ich nicht, wie es konfiguriert ist) sind bestimmte Rechte notwendig, um GPIOs anzusprechen. Der Benutzer muss in der Gruppe gpio sein. Daher muss man dn Benutzer www-data noch der Gruppe gpio hinzufügen.

sudo usermod -aG gpio www-data

Wenn man shell Scripte aufrufen will, muss man auf die Berechtigungen achten. So kann der Benutzer www-data keine Scripte aufrufen, die vom Benutzer pi erstellt wurden und das Recht 744 haben. Auch den Befehl sudo in einem Shell Script zu benutzen, das man mit PHP ausführt, kann zu Komplikationen führen. Der Benutzer www-data hat per default keine Berechtigungen diesen Befehl zu nutzen. Dies kann man umgehen, in dem man den Benutzer www-data zur Gruppe sudo hinzufügt.

sudo usermod -aG sudo www-data

Beispiel

In diesem Beispiel wollen wir nun eine einfache LED am Raspberry per Webserver und PHP schalten. Die Schaltung mit dem Raspberry Pi sieht folgendermaßen aus.

Legen Sie nun eine Datei led.php mit folgendem Inhalt im Verzeichnis /var/www/html an.

<html> <head> <title>LED</title> </head> <body> LED schalten: <form method="get" action="led.php"> <input type="submit" value="ON" name="on"> <input type="submit" value="OFF" name="off"> </form> <?php shell_exec("/usr/local/bin/gpio -g mode 17 out"); if(isset($_GET['on'])){ shell_exec("/usr/local/bin/gpio -g write 17 1"); echo "LED ist an"; } else if(isset($_GET['off'])){ shell_exec("/usr/local/bin/gpio -g write 17 0"); echo "LED ist aus"; } ?> </body> </html> ...  mehr lesen