PowerSite - Framework der Spitzenklasse

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.

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.