dedlfix: PHP Template

Beitrag lesen

Hi!

Meine Absicht ist es ein CMS zu erstellen das den Usern erlaubt auf einfache und schnelle Weise Content und Menüs zu erstellen, ohne 4 Semester Joomla zu studieren.

Das heißt also, dass du ihnen genau das zubilligst, aber keinen Schritt weiter. Sie sollen genau diese einfachen Aufgaben erledigen können, aber wenn sie weitergehen wollen, stoßen sie an die Grenzen, die du ihnen gesetzt hast, weil du nicht möchtest, dass sie sich weitergehendes Wissen aneigen müssen oder gar sollen. - Vielleicht ist das nicht das, was du willst, aber ich denke, es läuft darauf hinaus, wenn du dir nicht vorstellst, wie es nach dem Erreichen der derzeitigen, von dir durch den implementierten Funktionsumfang gesetzten Grenzen weitergehen soll.

Meine Konkrete Frage wäre jetzt ob dieses Ersetzen der Platzhalter in der Prozedur handleSubstitutions() über str_replace() sinvoll ist oder wie ich es besser machen sollte.

Hier fragst du wieder etwas ganz spezielles, ...

Das ist nur ein kleiner Auszug aus den ganzen Funktionen die für das Laden der versch. Templates notwendig sind.

... ohne einen kompletten Überblick über den Aufbau, die Funktionsweise und den Funktionsumfang zu beschreiben. Deswegen kann ich nur auf den kleinen Teil eingehen, den ich sehe, ohne dir deine spezielle Frage beantworten zu können, weil mir der Hintergrund fehlt.

function printPage() {
Global $tpl, $nklib;

Globale Variablen sollte man meiden. Du zeigst in deinem Code, dass du mit OOP arbeitest. Warum machst du es dann nicht so konsequent, wie es mit PHP möglich ist? Globale Variablen sind für das Verstehen ungünstig. Sie wurden irgendwo angelegt und können alles mögliche enthalten. Sie offenbaren sich erst durch Code- oder Dokumentationstudium. Am Anfang mag dir die Übersicht noch ausreichend scheinen, wenn du wenige globale Variablen hast. So dachten es vermutlich auch die Mediawiki-Ersteller. Doch dann wuchs das Projekt aufgrund seines Erfolges und die anfänglichen Nachlässigkeiten sind erhalten geblieben und machen es noch schwerer, sich einen Überblick zu verschaffen, als es schon allein aufgrund der Größe des Projektes mittlerweile der Fall ist.

  // Array with all Substitutes in index Template  
  $substitution\_vars = array(  
  	'title'					=> "<title>NKPortal - Board Portal System</title>",  
  	'css'					=> "<link rel=\"stylesheet\" href=\"template/style.css\" />",  
  	'js'					=> "<script language=\"JavaScript\" src=\"template/script.js\"></script>",  
  	'mainWidth'				=> "1000",  
  	'logo'					=> "<img align=\"right\" src=\"template/images/bgRightTopHead.gif\" alt=\"NKPortal - Board Portal System\" title=\"NKPortal - Board Portal System\" border=\"0\" />",  
  	'logo\_separater'		=> "",  
  	'top\_navigation'		=> $tpl->getTemplate('navigation\_top'),  
  	'leftColumnWidth'		=> "160",  
  	'leftBlockContent'		=> $this->blockContentLeft,  
  	'centerBlockContent'	=> $this->blockContentCenter,  
  	'rightColumnWidth'		=> "160",  
  	'rightBlockContent'		=> $this->blockContentRight,  
  	'footer1'				=> "",  
  	'copyright'         	=> 'powered by <a class="copyright" href="http://www.nkportal.de" target="\_blank">NKPortal</a>'  

Struktur-Code, Darstellungs-Code und -Werte sowie Inhalt, bunt gemischt. Und dann nutzt du noch nicht einmal die Möglichkeiten des Verschachtelns von ' und ".

Nur ein Beispiel einer Frage, die sich mir stellt: Warum steht der Titel als fest definierter Wert im Code? Am Ende soll der Inhalt der Portal-Verwender präsentiert werden und nicht das Portal selbst. Es nützt den Anwendern nichts, wenn da im Browser-Tab "NKPortal" steht statt "XY-Webpräsenz". Da sowas für Anwender wichtig ist, legen auch Suchmaschinen Wert auf diesen Inhalt. Du solltest darauf bedacht sein, dass deine Verwender _ihr_Ziel_ bestmöglich erreichen. - Damit beantworten sich deine grundlegenden Fragen auch quasi von selbst. Was deinen Verwendern und wiederum ihren Anwendern nützt, ist das, was implementiert werden muss - und zwar so, dass sie es gut bedienen können ("gut" bedeutet nicht unbedingt einfach aber stark eingeschränkt).

Noch zwei Worte zum Unterschied zwischen Verwender und Anwender. Verwender sind diejenigen, die dein Portal verwenden, um ein/ihr Ziel zu erreichen. Anwender sind diejenigen, die letzlich mit dem Ergebnis arbeiten sollen. Sie sind also die Kunden der Verwender.

Lo!