Einfache 302 Redirects zu anderer Webseite Andrei M. 25.11.2014

Einfache 302 (Status Found) Redirects bieten eine einfache Methode der Umleiten der Anfragen auf eine andere Webseite im Internet. Es ist besonders nützlich, wenn eine Website migriert wird.

Die in der Konfiguration vordefinierte Startseite wird beim Aufruff des Domain-Namens geöffnet.

 

Wenn man start_page_name als Startseite definiert ist, wird das Aufruf www.zapms.de auf die Seite www.zapms.de/start_page_name umgeleitet.

Jede Seite kann als URL im Menü-Manager definieren.

In dem Fall werden die beiden Aufrufe www.zapms.de or www.zapms.de/start_page_name auf die Seite http://my_new_domain umgeleitet werden.

- Hoch -

Darstellung der Navigation im ZAPms Andrei M. 14.09.2014

Die Struktur der Webseite dient als Basis für den Aufbau der Navigation. Nehmen wir das folgende Baumstruktur an:

About
Contact
Group A
-     Type AA
-     -     Product ABC
-     -     Product ABD
-     Type AB
Group B
-     Type BA
-     Type BB

Hauptmenü

Das Hauptmenü der Webseite enthält die Links zu der ersten Ebene des Baums:

 

Code des Templates für Hauptmenü:

{php}
showMenuFlat('menu-sample');
{/php}

<ul style="list-style-type:none;">
{section name=custom loop=$menu_list}
  {if $menu_list[custom].active>0 and $menu_list[custom].level==0}
  <li style="float:left;">
    <a href="{$menu_list[custom].name}" style="padding-left:20px;">{if $menu_list[custom].active==3} -> {/if}
    {$menu_list[custom].title}</a></li>
  {/if}
{/section}
</ul>
<div style="clear:both;"></div>

Breadcrumb-Menü

Das Breadcrumb Menü ist erforderlich, wenn die Struktur aus mehr als zwei Ebenen besteht:

Group A   Type AA   Product ABC

Code des Templates für Breadcrumb Menü:

{php}
showMenuFlat('menu-sample');
{/php}

{section name=custom loop=$path_list step=-1}
  {if $smarty.section.custom.index==0}
    {$path_list[custom].title}
  {else}
    <a href="{$path_list[custom].name}">{$path_list[custom].title}</a> &nbsp;
  {/if}
{/section}

Untermenü

Das Untermenü kann notwendig sein, wenn man z.b. die Unterpunkte einer bestimmten Menüebene braucht:

Code des Templates für Untermenü:

{php}
showMenuFlat('sample_group_a');
{/php}

<h1>Fixed Menu Types of Group A</h1>
<ul style="list-style-type:none;">
{section name=custom loop=$menu_list}
  {if $menu_list[custom].active>0 and $menu_list[custom].level==0}
    <li>
    <a href="{$menu_list[custom].name}"{if $menu_list[custom].active==3} style="font-width:bold;"{/if}>{$menu_list[custom].title}</a>
    </li>
  {/if}
{/section}
</ul>

Untermenü in der Form eines Baumes:

Code des Templates für Untermenü:

{php}
showMenuTree('menu-sample');
{/php}

<ul style="list-style-type:none;">
{assign var="clevel" value=1}
{section name=custom loop=$menu_list}
{if $menu_list[custom].active>1 and $menu_list[custom].level>0}
  {if $clevel>$menu_list[custom].level}
    {assign var="closes" value=$clevel-$menu_list[custom].level}
    {assign var="clevel" value=$menu_list[custom].level}
    {section name=iopens loop=$closes}
      </ul></li>
    {/section}
  {/if}
  <li>
  {if $clevel<$menu_list[custom].level}
    {assign var="clevel" value=$menu_list[custom].level}
     <ul style="list-style-type:none;"><li>
  {/if}
  <a href="{$menu_list[custom].name}"{if $menu_list[custom].active==3} style="font-width:bold;"{/if}>
  {$menu_list[custom].title}</a>
  </li>
{/if}
{/section}
</ul>

Im allgemeinen Fall liefert die Funktion für Aufruf des Menü-Baums ein Menü-Array zurück:

Name Title Id Parent Level Status
sample_about About 1094 1083 0 2
sample_contact Contact 1093 1083 0 2
sample_group_a Group A 1084 1083 0 2
sample_type_aa Type AA 1086 1084 1 2
sample_product_abc Product ABC 1090 1086 2 3
sample_product_abd Product ABD 1091 1086 2 2
sample_type_ab Type AB 1088 1084 1 2
sample_group_b Group B 1085 1083 0 2
sample_type_ba Type BA 1087 1085 1 1
sample_type_bb Type BB 1089 1085 1 1

wo status:
0 - disabled
1 - enabled
2 - displayed
3 - clicked

- Hoch -

Role der Struktur, Interfaces und Schablonen Andrei M. 08.09.2014

Die Struktur eines Produktes oder einer Dienstleistung wird über die Struktur der Webseite gespiegelt. Die Webseitenstruktur lässt sich in der Form eines Baumes oder einer Liste formalisieren.

Die Elemente der Struktur werden grafisch gestaltet. Ziel davon ist, die Wahrnehmung der Information zu erleichtern und eine GUI anzubieten.

Structure_Prototype.png

Wenn die grafische Darstellung einer Webseite als Bild vorbereit ist, ist es hilfreich, einen Prototyp in Form der HTML-Datei zu erstellen. Das Layout wird zeigen, wie gut die GUI seinen Zweck erfüllt.

Das fertige Layout der Prototypen wird in Teile aufgeteilt, um Redundanz zu vermeiden und die Wartung der Webseite zu vereinfachen. Solche Teile sind Schablonen genannt. Die Schablonen können einen Kopfteil, einen Behälter für die Inhalte oder die Menübehälter beinhalten.

Prototype_Menu.png

Die Schablonen und Inhalte sind auf die einzelne Elemente der Baumstruktur verlinkt, die als Menüpunkte auf der Webseite dargestellt werden. Die Inhalte sind in der Form von HTML-Dateien auf dem Server oder in einer Datenbank gespeichert.

Die Template-Dateien von zapms befinden sich im Ordner /files/templates/

site_default.tpl die Basis-Template enthält die Referenzen auf die Inhalte und die Menübehälter
menu_top.tplmenu_news.tpl enthalten die Funktionsaufrufe, um das Menü anzuzeigen
menu_download.tpl enthält den statischen Text mit Download-Links
menu_galery_about.tpl die Screenshots im Menübereich
menu_news.tpl ruft die News aus der Datenbank aus, um im Menübereich anzuzeigen
content_default.tpl zeigt die statische Inhalte
content_news.tpl ruft die News aus der Datenbank, um im Hauptbereich anzuzeigen

Statische Inhalte und Bilder befinden sich im Ordner /files/content/

sample_content.txt Beispieldatei mit statischen Inhalten.

- Hoch -

Auf Raspberry PI installieren Andrei M. 28.08.2014

Voraussetzungen

Zapms installieren

Zapms lokal entpacken und auf Raspberry Pi kopieren. Angenommen ihr Raspberry PI hat die IP-Adresse 192.168.0.1

scp -r /home/USER_NAME/zapms_for_raspberry_pi pi@192.168.0.1:/home/pi/Desktop/

Sich in den pi einloggen.

ssh pi@192.168.0.1

Zapms ins www Verzeichnis des Web Servers kopieren oder verschieben. Angenommen ein Owner für Verzeichnis www ist die Gruppe www-data (Einrichtung des Web Servers lighttpd).

sudo -g www-data cp -ru /home/pi/Desktop/zapms_for_raspberry_pi/* /var/www/

Die Berechtigungen vergeben

sudo chmod 777 /var/www/auth/ /var/www/include/ /var/www/files/ -R
sudo chmod 777 /var/www/zap/include/ /var/www/zap/cache/ /var/www/zap/templates/ /var/www/zap/templates_c/ -R

Datenbank erstellen.

mysql -p -u root
mysql> create database zapmsdb character set utf8 collate utf8_general_ci;
mysql> grant all privileges on zapmsdb.* to 'pi'@'localhost';
mysql> flush privileges;
mysql> quit;

Die Regel für das Modul Rewrite Rules definieren. Beispieldatei ist setup/lighttpd.conf.

sudo nano /etc/lighttpd/lighttpd.conf

Folgende Parameter überprüfen bzw. eingeben:

server.modules = (
...
"mod_rewrite",
...
)
...
index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
...
fastcgi.server = (".php"=>(("bin-path"=>"/usr/bin/php-cgi","socket"=>"/tmp/php.socket")))

# direct access is denied for bibliothek and images
$HTTP["url"] =~ "^/(auth|include|files/content/images/originals|zap/include)/" {

url.access-deny = ( "" )
server.error-handler-404 = "403"
}

# direct access is denied for modules
$HTTP["url"] =~ "^/(modules|zap/modules)" {
url.access-deny = ( "index.php" )
server.error-handler-404 = "403"
}

# rewrite urls
url.rewrite-if-not-file = (
"^/robots.txt" => "/robots.php",
"^/sitemap.xml" => "/sitemap.php",
"^/crossdomain.xml" => "/crossdomain.php",
"^/files/(.*)$" => "$0", # no restrictions for static content
"^/([^.?]*)$" => "index.php?m=$1", # default controller
"^/([^.?]*)?(.*)$" => "index.php?m=$1&$2", # other requests
"^/$" => "/index.php" # default page
)

Syntax verifizieren und Server neu starten

lighttpd -t -f /etc/lighttpd/lighttpd.conf
sudo service lighttpd restart

Im Internet-Browser ein Setup ausführen

http://192.168.0.1/setup/index.php

Ins Backend sich einloggen.

http://192.168.0.1/zap/index.php

 

Crontab einrichten (optional)

Crontab für täglichen Neustart einrichten.

sudo -u pi crontab -e

Täglich restarten lassen

# restart once a day
51 23 * * * sudo reboot -h

Autostart crontab einrichten.

sudo nano /etc/rc.local
--> add line before exit 0
/etc/init.d/cron start

Monitoring crontab.

sudo tail -f /var/log/syslog | grep CRON

- Hoch -

News


Downloads

zapms v1.6 (4,3 MB)


Live Demo

http://zapms.de/test/zap
Login: demo
Password: demo