| |
 |
|
|
|
 |
|
 |
| |
20.10.2008, 16:01
|
#11 (permalink)
|
|
Neuer Benutzer
Registriert seit: 17.10.2008
Ort: hamburg
Beiträge: 18
|
arbeite momentan mit dreamweaver. solange man keine grafischen elemente einbaut und die vom programm coden lässt ist das eigentlich ganz ok. ist zwar keine freeware hatte ich aber mal in nem paket mit anderer adobe software erworben.
ich lese hier öfter was vom aufbau eines browsergames auf einem cms.
ist das wirklich sinnvoll? kann ich mir zumindest im zusamenhang mit dem lerneffekt den mein projekt ja haben soll nicht vorstellen.
|
|
|
|
|
20.10.2008, 18:43
|
#12 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 19.02.2008
Beiträge: 155
|
Türlich hat das einen gewissen lerneffekt. Du musst dich ja so oder so in das CMS einarbeiten. Dementsprechend musst du schauen wie bestimmte Klassen schreiben und studierst autoamtisch die Funktionsweise solcher.
|
|
|
|
20.10.2008, 19:11
|
#13 (permalink)
|
|
Neuer Benutzer
Registriert seit: 17.10.2008
Ort: hamburg
Beiträge: 18
|
was wäre denn der vorteil wenn ich ein cms benutze? außer weniger arbeit...
|
|
|
|
|
20.10.2008, 22:15
|
#14 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 19.02.2008
Beiträge: 155
|
Zitat:
Zitat von marius
was wäre denn der vorteil wenn ich ein cms benutze? außer weniger arbeit...
|
weniger Arbeit
|
|
|
|
21.10.2008, 09:37
|
#15 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 04.08.2008
Beiträge: 129
|
Du hast halt schon solche Sachen wie Userverwaltung usw. Dadurch sparst du eigentlich eine Menge arbeit.
Allerdings kann es natürlich auch sein das du einige Sachen umschreiben musst in einem CMS, da du es anders aufbauen willst.
Auf jedenfall musst du dich in das CMS einarbeiten, was manchmal auch gar nicht so verkehrt ist, so kannst du vielleicht ein bisschen was von der Struktur übernehmen und für dich nutzen.
Als momentanen Editor benutze ich: EasyEclipse for PHP Bei Eclipse gefällt mir einfach die Projektverwaltung
Normal nehme ich aber auch Notepad++
|
|
|
|
|
22.01.2009, 16:48
|
#16 (permalink)
|
|
Neuer Benutzer
Registriert seit: 17.10.2008
Ort: hamburg
Beiträge: 18
|
moin,
das projekt hat jetzt nen moment gelegen und nun gehts weiter.
frage mich gerade wie eine seitenstruktur am sinnvollsten ist. ich will keine frames benutzen aber auch nicht jedesmal eine komplette seite aufsetzen.
gibts es nicht eine andere möglichkeit wie ich das gerüst erhalte und den hauptcontent auf verschiedene dateien zugreifen lassen kann?
oder macht es sogar sinn für jeden menüpunkt eine eigenständige seite zu bauen?
ich denke an so etwas wie eine kopfleiste in der der anmeldestatus, der kontostand oder ähnliche variablen ausgespielt werden die nicht im direkten zusammenhang mit einem menüpunkt stehen.
|
|
|
|
|
22.01.2009, 17:24
|
#17 (permalink)
|
|
Neuer Benutzer
Registriert seit: 17.10.2008
Ort: hamburg
Beiträge: 18
|
macht eine kombination aus "div" und "include" sinn?
|
|
|
|
|
22.01.2009, 17:39
|
#18 (permalink)
|
|
Pixelschieber
Registriert seit: 18.04.2008
Ort: Detmold
Beiträge: 343
|
Hi,
also ich habe das ganze wie folgt aufgebaut:
Als erstes habe ich eine kleine Klasse für die Layoutinhalte erstellt:
PHP-Code:
<?php class Template { //Seitenstart function startheader() { echo "<h1>Titel der Seite und so</h1>"; }
//Start des Inhaltes function page($title) { echo "<h2>".$title."</h2>"; echo "<div id=\"body\" style=\"backgorund-color:#DDFFFF\">"; }
//Ende des Inhaltes function pageend() { echo "</div>"; }
//Footer function footer() { echo "Copyright by ME 2009"; } } ?>
Jetzt muss das ganze nur noch eingesetzt werden
PHP-Code:
<?php include "template.class.php"; // Templateklasse einbinden $template = new Template(); $template->startheader(); $template->page("News"); echo "Text und so<br />"; echo "Text und so<br />"; echo "Text und so<br />"; echo "Text und so<br />"; echo "Text und so<br />"; $template->pageend(); $template->footer(); ?>
Ist natürlich nur beispielhaft und du musst es für deine Bedürfnisse anpassen
Grüße
Sebastian
|
|
|
|
05.04.2009, 18:45
|
#19 (permalink)
|
|
Neuer Benutzer
Registriert seit: 04.04.2009
Beiträge: 16
|
Zitat:
|
macht eine kombination aus "div" und "include" sinn?
|
Ja macht es am bestem immer alles Zentrall von einer datei ausgehen aufbauen. Normal von der index.php aus weg.
Fehler die oft Anfangs gemacht werden sind alles in jede Datei zu schreiben also immer und immer wieder die Ganze Html seite in eine Datei zu schreiben ist das was man auf keinen fall machen sollte erschwährt nacher ungemeihn die Arbeit.
@Sebastian
Der Beispiel code hat überhaupt nix mit einer Template zu tun bis auf das du den namen Template dafür verwendest.
@marius
Ich kann dir auch nur raten gleich Template zu verwenden die Code trennung zwischen php und Html erleichtert einen die Fehler suche.
Für den Anfang wenn du möchtest stell ich dir Meine Template klasse zu verfügung.
PHP-Code:
<?php /** * Template Klasse * @version 2.4 * @author Splasch * Verschachtelte Templates files * Schleifen Loop Funktion startet gleich * Loop array prüfung * Fehler in Loop behoben **/ class Template { protected $template; /* Template Inhalt */ protected $templateDir; // Der Ordner in dem sich die Template-Dateien befinden. protected $loop; # Array Schleifen füll Werte public $liste; #Lade Reihenfolge der Template Datein /** * Klassen aufruf - Lade Template file von $path * @param Str $path */ public function __construct($path = '') { if (file_exists($path) == false) { throw new Exception ('Template File nicht gefunden path: `' . $path . '`'); } if ($tpl = file_get_contents($path)) { $this->templateDir=dirname($path).DIRECTORY_SEPARATOR; #Kombilität zu Linux"\\" $this->replace($tpl); } }
/** * replace() - Ersetzt platzhalter für includierte Files und Kommentaren * @param Str $str enthält der Template * @return String */ protected function replace($str) {// Includes ersetzen ( {include="..."} ) $liste=null; while(preg_match_all("/".'{'."include=\"(.*)\"".'}'."/isUe", $str,$file,PREG_PATTERN_ORDER)) { foreach ($file[1] as $datei) { try { $file=$this->templateDir.$datei.".tpl"; $liste.=$file.", "; $this->liste=$liste; # Für fehler suche Ausgabehilfe if(file_exists($file) == false) { throw new Exception(); } } catch(Exception $e) { die("Template File nicht gefunden path:<b>\"".$file."\"</b><br>" .$e->getFile().$e->getLine().$e->getTraceAsString() ."<br><b>Ladereihenfolge der Templatefiles: </b>".$liste); } } // ende foreach $str = preg_replace("/".'{'."include=\"(.*)\"".'}'."/isUe", "file_get_contents(\$this->templateDir.'\\1'.'.'.'\\2'.'tpl')", $str); } // ende while $this->template=$str; } /** * con - Inhalt Umlaute Sonderzeichen Html Konform umwandeln * @param Str $in */ public function con($in) { $suche=array("ä","Ä","ö","Ö","ü","Ü","ß","€"); $ersatz=array("ä","Ä","ö","Ö","¨","&Uml;","ß","&euro"); $in=str_replace ($suche,$ersatz, $in); return $in; } /** * setLoop - Inhalt Platzhalter für Schleifen * @param Str $name * @param Array $inhalt */ public function setLoop($name,$inhalt) { $this->loop[$name]=$inhalt; preg_match("/{loop=(.*)}(.*){loop=\\1 end}/Usie", $this->template, $str); if (!empty($str[1])) // Wenn Schleife dann Teile tauschen { #Prüfen ob $inhalt ein array ist if(is_array($inhalt)) { $this->replace_loop($str[1],$str[2]); #loop Name und Loop Inhalt übergeben } else { $this->template = preg_replace("/{loop={$name}}.*{loop=$name end}/Uis", "", $this->template); } } #ende empty } /** * replace_loop - Loop Schleifen ausführen und Inhalt Ersetzen * @param Str $name - Name der Schleife die Ersetzt wird * @param Str $in - Inhalt der Html Elemente Innerhalb der Schleife */ protected function replace_loop($name,$in) { #Umlaute Html komform ersetzen $in=$this->con($in); if (isset($this->loop[$name]) && is_array($this->loop[$name])) { $neu=""; $str=0;$i=0;$last=""; foreach ($this->loop[$name] as $key=>$inhalt) { $str++; foreach($inhalt as $replace) { #Hinweis keine umlaute oder Euro zeichen sonst kommt null raus fehler #var_dump($neu); if ($str==1){$neu[]= preg_replace("/{.$key}/us", $replace, $in);}# Anzahl der Wiederholungen zusammen bauen else {$i++; #echo $replace.":".$key.":".$i; $neu[$i-1]= preg_replace("/{.$key}/Usi", $replace, $neu[$i-1]);#Nur mehr die Werte aus dem String ersetzen } }#end replace if ($last!=$str){$i=0;} $last=$str; } $neu=implode("", $neu); $this->template = preg_replace("/{loop={$name}}.*{loop=$name end}/Uis", "$neu", $this->template); } #ende if isset }
/** * __set() - Ersetze den Platzhalter mit dem Inhalt der Variable $replacement * @param Str $placeholder * @param Str $replacement */ public function __set($placeholder, $replacement) { preg_match("/{loop=(.*)}(.*){loop=\\1 end}/Usie", $this->template, $str); if (!empty($str[1])) // Wenn Schleife dann Teile tauschen { $this->replace_loop($str[1],$str[2]); #loop Name und Loop Inhalt übergeben } #ende empty $this->template = str_replace('{$'.$placeholder.'}', $replacement, $this->template); # Wenn Include im Template ist neu Parsen if (preg_match("/".'{'."include=\"(.*)\"".'}'."/isUe", $this->template)) { $this->replace($this->template); } //ende preg_match } //ende Set
/** * getTpl() - Gibt den Template Inhalt zurück * @return String */ public function getTpl() { // Kommentare löschen $this->template = preg_replace("/".'\{\*'."(.*)".'\*\}'."/isUe", "", $this->template); return $this->template; }
} // Klasse ende ?>
Erklärung und Verwendung der Template klasse siehe Anhang
Hier noch ein parr Beispiele wie man die Template klasse verwendet
index.php datei
PHP-Code:
<?php // Das Templatesystem einbinden include("template.php"); $basisTpl="templates"; #Basis Template Verzeichniss vorgeben
// Eine neue Instanz der Template Klasse erzeugen $tpl = new Template($basisTpl.'\index.tpl'); // Das Template laden
// Die Sprachdatei laden $langs[] = "de/lang_main.php"; //$lang = $tpl->loadLanguage($langs);
//Schleifen Test $test['link'][]= 'wert1'; $test['link'][] = 'wert2'; $test['link'][] = 'wert3'; $test['linkname'][]="Ausgabe1"; $test['linkname'][]="Ausgabe2"; $test['linkname'][]="Ausgabe3";
$test['lk'][]= 'bau1'; $test['lk'][] = 'bau2'; $test['lk'][] = 'bau3';
$tpl->setLoop("hallo",$test);
//Schleifen Test $tet['nix'][]= 'one'; $tet['nix'][] = 'two'; $tet['nix'][] = 'five';
$tet['ni'][]= ' 1'; $tet['ni'][] = ' 2'; $tet['ni'][] = ' 5';
$tpl->setLoop("mux",$tet); unset ($tet); $tet['long'][]= 'Einfach'; $tet['long'][] = 'Zweifach'; $tet['long'][] = 'Dreifach';
$tpl->setLoop("einfach",$tet);
//Einfacher Schleifen test
// Dem Platzhalter $titel den Text "Willkommen" zuweisen $tpl->title="Willkommen";
// Dem Platzhalter $name den Text "Benutzer" zuweisen $tpl->name='{include="othertemplate"}';
// Dem Platzhalter $time den aktuellen Timestamp zuweisen $tpl->time=time(); //var_dump($tpl); // Und das fertige Template ausgeben echo $tpl->getTpl(); ?>
Dazu noch die Template datei selbst
index.tpl
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"> <head> <title>Mein Templatesystem:: {$title}</title> <meta http-equiv="Content-Type" content="text/xhtml; charset=ISO-8859-1" /> </head> <body> <h1>Template Test</h1> Hallo {$name}. Der Aktuelle Timestamp lautet: {$time} {* Ein Template einbinden *}
{loop=hallo} <a href="{$link}">{$linkname}</a> <b>gjgh{$lk}</b><br> {loop=mux} <i>{$nix} {$ni}</i><br> {loop=mux end} {loop=hallo end}
{loop=einfach} <h4>{$long}</h4> {loop=einfach end}
{include="othertemplate"} {include="nocheine"} {include="othertemplate"} </body> </html>
Mfg Splasch
|
|
Geändert von splasch (05.04.2009 um 18:55 Uhr).
|
|
|
| Themen-Optionen |
|
|
| Ansicht |
Linear-Darstellung
|
Forumregeln
|
|
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:24 Uhr.
| |
| |