Sie sind hier:
Startseite
Willkommen bei PowerSite
Sie sehen hier nicht PowerCMS im Einsatz sondern die Entwicklungsarbeit vom Framework PowerSite in der Version 2 Smarty - es ist eine noch nicht fertige Neuentwicklung.
PowerSite richtet sich an Webesigner, Programmierer und interessierte Laien.
Ob es nun auf die schnelle ein erstklassiges dynamisches Bussinessweb sein soll oder ein Portal , ein Shop oder auch nur ein Backend - mit POwerSite ist die Basis für eine derartige Realisierung gegeben.
Bei erweitertem Einsatz erspart man sich eine Menge Entwicklerarbeit.
Ein normales Web ist ratz fatz aufgesetzt.
Im Vergleich zu den eingestellten Vorversionen gibt es diverse Änderungen.
- Einsatz von Smarty 3
- Nutzung von Smarty Cache
- Komplette Änderung der Datenstruktur für die Menüs
- Einsatz von URI Data Techniken in CSS und Inhalten.
- Bedingte Compilierung der CSS
- Einfachere Löschmöglichkeit des Caches für Entwicklungsarbeiten.
- Komplett neue und einfachere Verzeichnisstruktur
- Sprachdateien über Smarty Configs
- Beliebig viele Inhaltsblöcke, die sich allein aus deren Existenz definieren.
- Globs - globale Inhaltsblöcke.
- Automatische Includeschnittstelle für eigene Scripte
- Sehr hohe Geschwindigkeit und sehr geringer RAM Verbrauch.
- E_STRICT
Uri Data
Damit wird ein enormer Pagespeed mit aktuellen Browsern erzeugt.
Bedingte Compilierung der CSS
Sie haben die Möglichkeit nur die CSS zu filtern die für die aktuelle Seite benötigt wird - hohe Steigerung beim Pagespeed.
Sprachdateien über Smarty Configs
Sie können für jede Sprache beliebige Sprachbestandteile definieren und gezielt nutzen.
Beliebig viele Inhaltsblöcke pro Seite
Alles was die Dateiendung .mein_alias_name trägt und im Contentverzeichnis liegt wird Smarty zugwiesen und kann dann in Templates oder Inhalten eingesetzt werden.
Lautet ein Blockname z.B. block1.home dann wird dieser unter dem Namen block1 bei Smarty geführt werden.
Damit lassen sich ganz bequem Aufteilungen auch innerhalb kompliziertes DIV's vornehmen und zwar je nach der Existenz von Blocken.
Beispiel:
{if $block2 and $block3 and $block4}
<div id="feature">
<div class="small-post"> {$block2}</div>
<div class="small-post"> {$block3}</div>
<div class="small-post"> {$block4}</div>
</div>
<div class="x"></div>
{elseif $block2 and $block3}
<div id="feature">
<div class="small-post2"> {$block2}</div>
<div class="small-post2"> {$block3}</div>
</div>
<div class="x"></div>
{else}
<div id="feature"> {$block2}</div>
<div class="x"></div>
{/if}
Das ist übrigens eine Technik die aus unserem Titel PowerCMS wohl bekannt sind.
Globs - globale Inhaltsblöcke
Unabhängig von der Sprache erstellte Globs die ihrerseits z.B. Plugins beinhalten können - sind sehr universelle Träger ganzer Funktionsgruppen oder Inhalte.
Automatische Includeschnittstelle für eigene Scripte
Damit können Sie das System zu was auch immer erweitern und die bereits vorhandenen Ressoucen wie Session, PiDatabase, Smarty etc. direkt nutzen.
So ist es leicht ein Portal, ein Shop oder auch nur ein spezielles ausgefeiltes System zu erstellen.
Sehr hohe Geschwindigkeit und sehr geringer RAM Verbrauch.
Bei diesen Dingen waren bereits die Vorgängerversionen kaum zu schlagen und das bleibt auch so.
Sie haben extreme Reserven auch für hammerharte Anwendungen zur Verfügung.
E_STRICT
Die PHP -- Programmierung unter E_STRICT Bedingungen ist Hausstandard und bedeutet für Sie die Gewissheit zu haben das dieses System technisch höchst anspruchsvoll und sauber programmiert wurde.
Entwickelt wird unter PHP 5.3.3 E_STRICT - Lauffähigkeit erfordert PHP 5.2 - je höher die Version, desto besser.
Subnavigation
PowerSite ist ideal zum schnellen Aufbau zielgerichteter voll dynamischer Anwendungen.
Das Systemsteuerung besteht im aus einer einzigen PHP Datei, der index.php.
PowerSite ist nicht neu wurde hier aus bestimmten Gründen komplett neu entwickelt und dabei Erfahrungen aus den Vorversionen verarbeitet.
Trotz des Singlescripts können die damit erstellbaren Anwendungen enorm mächtig sein.
Pseudo Clean Url's
Wie mit PowerCMS können Url's gebildet werden die wie Pretty Url's aussehen aber dynamische sind.
Einfacher Aufbau der Menüdatei
Der Aufbau der Menüdatei hat sich im Vergleich zu den Altversionen erhebllich vereinfacht und wurde zudem erweitert.
Ein Beispielauszug.
.c|Startseite|home|titel=hallo
.c|Smarty3|smarty|beatle=
..c|Vorteile|smarty2|beta
.l|Forum|http://powercms.org
Die Punkte bestimmen die Hierarchie wie auch die Zuordnung der Subbestandteile.
Hier ist z.B. der Menüpunkt Vorteile ein Unterpunkt von Smarty3.
Diese Technik ermöglicht eine einfach auszuführende Verschiebung der Menüpunkte.
Der Buchstabe im ersten Abschnitt bestimmt die Inhaltstype:
- c für content
- s für separator
- l für link
- Andere Markierungen werden ignoriert bzw. erhalten die Type content, hat man nur Inhalte der Type content genügen die Punkte.
Danach erfolgt der Menütext und der Content_alias.
Danach können noch beliebig viele Eigendefinitionen folgen nach dem Schema varname=varinhalt, immer getrennt mit dem | Zeichen.
Fehlt ein Teil bzw. hat keinen Inhalt wird der Eintrag ignoriert.
Insegesamt ein großer Entwurf, der es einem möglich macht z.B.auch solche Menüs zu entwerfen die spezielle Images pro Eintrag erfordern.
Musterkonfiguration
Die Konfiguration ist ein Bestandteil der index.php.
// Anpassen
$config['db_hostname'] = '';
// Anpassen
$config['db_username'] = '';
// Anpassen
$config['db_password'] = '';
// Anpassen
$config['db_name'] = '';
// Anpassen
$config['db_prefix'] = '';
$config['debug'] = false;
//auf false setzen, wenn das Web produktiv fertig ist = schneller
$config['smarty_compile_check'] = true;
// wenn es keine Probleme macht auf true setzen = schneller ansonsten false verwenden !
$config['smarty_use_sub_dir'] = false;
$config['smarty_supercache'] = true;
$config['use_smarty_php_tags'] = true;
$config['use_smarty_php_templates'] = true;
$config['smarty_cache_lifetime']=1800;
//Bei der Installation in die Root leer lassen, ansonsten /Verzeichnisname
$config['dir'] = '';
$config['root_url'] = "http://" . $_SERVER['SERVER_NAME'] . $config['dir'];
$config['root_path'] = realpath(dirname(__FILE__));
$config['query_var'] = 'seite';
$config['images'] = $config['root_path'] . "/images";
$config['kick'] = 'sprache';
$config['sprachen'] = array('de');
$config['def_sprache'] = 'de';
$config['contenttype'] = 'text/html;';
$config['content'] = 'content';
$config['zeitzone'] = 'Europe/Berlin';
$config['defaultseite'] = 'home';
$config['delcachepw'] = 'StarkesPasswortverwenden';
$config['sessionname'] = '';
Sind db_hostname,db_username,db_password,db_name und db_prefix gesetzt wird PiDatabase automatisch geladen und man kann den Mysqlzugang über die Variable $db nutzen.
smarty_compile_check ist im Standard auf true und sorgt dafür das Templates (und da zählen sämtliche Inhalte dazu) auf Veränderungen geprüft werden um sie nach Bedarf neu zu compilieren.
False bedeutet einen Zeitgewinn der sich aber normal im Bereich von Millisekunden halten wird.
Ich empfehle true zu belassen, da damit jegiche Änderungen sofort aktualisiert werden.
smarty_use_sub_dir ist im Stnadard auf false, bei true würde Smatzy automatisch Unterverzeichnisse anlegen.
Der Ablauf wird dann etwas schneller, kann aber auf manchen Servern zu Rechtekollisionen führen. Also ausprobieren.
smarty_supercache , bei true wird Smartycache eingesetzt bei false nicht.True bringt teils deutliche Geschwindigkeitsvorteile.
Da man bei Smarty 3 den Cache sehr feinfühlig steuern kann empfehle ich den Einsatz von true.
use_smarty_php_tags - bei true sind PHP Tags in Smartytemplates erlaubt, bei false nicht.
use_smarty_php_templates - bei true ist die Nutzung von reinen PHP Scripten als Template erlaubt bei false nicht.
smarty_cache_lifetime - Defaut 1800 (Sekundenangabe) - stellt die Lebenszeit des Smartycaches ein.
dir - das Installationsverzeichnis. Ist es die Root belibt der Wert leer. Installiert man PowerSite in einem Unterverzeichnis der Domain dann ist /mein_verzeichnis anzugeben.
query_var - das ist die URL Komponente als Bezeichner für die Variable welche den Seitenalias beinhaltet index.php?seite=meine_seite.
images - ist die Pfadeinstellung zu verwendeten Images.
kick - damit kann man die externe Variablenbezeichnung der URI Komponente sprache umbenennen.
sprachen - die Kürzel der verwendeten Sprachen. Ein Parameter sprache wird nur dan wirksam, wenn der Wert hier enthalten ist ansonsten wird er zur def_sprache
contenttype - wird zur Initalisierung von Smarty 3 verwendet. Als config - Parameter ausgeführt, falls sich bei Smarty noch etwas ändernt - so lassen !
content - bezeichnet das Verzeichnis in dem der content abgelegt ist - so lassen.!
zeitzone - mit der Einstellung wird die Defaultzeitzone beim Start eingestellt, das ist notwendig, falls es Fehlermeldungen gibt, die vor der Ausgabe des Contents abgeliefert werden, in dem Fall würden aktuelle PHP Versionen eine Menge Zusatzfehler melden, die sich auf eine nicht eingestellte Zeitzone beziehen würden.
defaultseite - auf die Seite fällt das System zurück, wenn kein Seitenalias übergeben wurde.
delcachepw - wenn Sie das System so aufrufen, das als Seiten alias dieses Passwort erscheint, wird der komplette Cache gelöscht.
sessionname - eine Session wird nur dann eröffnet, wenn der sessionname einen Inhalt hat.