Mein Loginsystem - (Communitysystem)

Ich poste mal noch vorsichtshalber den Link zum CrashCourse, weil der leicht übersehen wird:
https://smarty.php.net/crashcourse.php

@php:
Im Prinzip reicht das erste Beispiel, wenn du dir anguckst, damit du siehst, wie der Spaß arbeitet.
Die Beispiele weiter unten zeigen dann alles "Spielereien", die Smarty zusätzlich noch anbietet.

Die Kernaufgabe eines Templatesystem ist aber schon im ersten Codeabschnitt zu sehen. Wie's genau funktioniert, hat ActionScripter ja schon erklärt.
 
Ich poste mal noch vorsichtshalber den Link zum CrashCourse, weil der leicht übersehen wird:
https://smarty.php.net/crashcourse.php

wenn ich mal eine (so wie ich meine) praktische sache anmerken darf:

ich benutze als delimiter nicht { und }, sondern <!--[ und ]--> ... das ist zwar etwas mehr schreibaufwand, hat aber den vorteil, dass dir jedes programm, welches syntaxhighlight für html unterstützt, quasi die smarty-tags hervorhebt, weil sie als kommentar (miss)-verstanden werden. auch eine schöne sache daran ist, dass du dir die template-datei einfach in den browser "werfen" kannst und die seite ohne störende platzhalter anschauen kannst ... und gleich noch ein vorteil: du musst javascript nicht in {literal}-tags schreiben ...

aber das vorgehen ist geschmackssache ... bei meiner methode hat man gegenüber den vorteilen als nachteil mehr schreibarbeit ... wie man das umstellt siehst du hier.

[edit]so langsam solltest du den titel des thread umändern auf: "PHP für Jedermann - kostenloser Kurs von den PHP-Profis" *gg* ... vielleicht wird er dann auch sticky geschaltet.[/edit]
 
Zuletzt bearbeitet:
Also ich werde das erstma testen..
Mein Problem ist nur das ich normales PHP in smarty schreiben will, ob das möglich sei. Von verstehen eines Template Systems hab ich auch nix gesagt.

Obwohl, ich hatte eben mal nach OOP gesucht (hui). Das klassen gedöns und darin die Functionen das ist schon eine ganze stange. :mrgreen:
 
php ein templatesystem funktioniert mal ganz grob so.

Inhalt der Design.TPL

<html>
<head>
<title><!-- Title --></title>
</head>
<body>
<!-- text -->
</body>
</html>

Nun ersetzt dein Templatesystem. Die Platzhalter durch den Text der für die Platzhalter vorgegeben ist.
Somit musst du wenn du jemals das Design ändern willst. Nur die Design.TPL ändern.
 
php ein templatesystem funktioniert mal ganz grob so.

[..]

ICh weiß wie.. Aber ich will PHP in einem Template System nutzten! Aber wie das aussieht versteht das gerade keiner.. Also ein Beispiel..

Also wir haben eine einfache index.tpl Datei:
HTML:
{include file="header.tpl" title=foo}
Das ist die Megageile index Seite:
{include file="footer.tpl"}
So das Template System um das es geht ist Smarty.

und jetzt will ich, das auf meiner index.tpl ein kleines PHP script wirkt. Nehmen wir doch einmal z.B. das von der index.php von meinem Script:
PHP:
if(!empty($action)){

	switch ($action) {
		case logout:
		print "<b>Sie sind Ausgeloggt!</b><br><br>";
		break;

		case login:
		print "<b>Sie sind Eingeloggt!</b><br>";
		break;

		case regaktivierung:
		print "<b>Sie haben sich aktiviert und können sich nun einloggen!</b><br>";
		break;

		case nichteingeloggt:
		print "<b>Sie sind noch nicht eingeloggt!</b><br>";
		break;

		case schoneingeloggt:
		print "<b>Sie sind schon eingeloggt!</b><br>";
		break;
	}

}

if(!empty($fehler)){
	print "<b>".$fehler."</b><br><br>";
}

if(!defined('membersite')){
	print "Melden Sie sich doch ganz einfach an, indem Sie auf Registrieren in der Navigation klicken.";
}else{
	print "Sie sind auf der Memberseite! JUHUUUU!";
}

Dann sagt mir mal was ich jetzt machen soll damit mein Script mit dem Template System angezeigt wird, MIT dem schon vorhandenen geschriebenen index.tpl. (also mein Script der index.php soll dann bei index.tpl nach "Das ist die Megageile index Seite:" kommen)

Vielleicht habe ich ja noch was nochnicht verstanden bei dem Template gedöns.. :ugly:
 
Mit der vorhandenen index.tpl geht das nicht.

Aber Du kannst folgende Änderungen vornehmen:

:arrow: index.tpl
HTML:
{include file="header.tpl" title=foo}
Das ist die Megageile index Seite:
{$content}
{include file="footer.tpl"}
:arrow: index.php
PHP:
require( 'Smarty.class.php' );
$smarty = new Smarty;

$content = '';
if(!empty($action)){

    switch ($action) {
        case logout:
        $content .= "<b>Sie sind Ausgeloggt!</b><br><br>";
        break;

        case login:
        $content .= "<b>Sie sind Eingeloggt!</b><br>";
        break;

        case regaktivierung:
        $content .= "<b>Sie haben sich aktiviert und können sich nun einloggen!</b><br>";
        break;

        case nichteingeloggt:
        $content .= "<b>Sie sind noch nicht eingeloggt!</b><br>";
        break;

        case schoneingeloggt:
        $content .= "<b>Sie sind schon eingeloggt!</b><br>";
        break;
    }

}

if(!empty($fehler)){
    $content .= "<b>".$fehler."</b><br><br>";
}

if(!defined('membersite')){
    $content .= "Melden Sie sich doch ganz einfach an, indem Sie auf Registrieren in der Navigation klicken.";
}else{
    $content .= "Sie sind auf der Memberseite! JUHUUUU!";
}

$smarty->assign( 'content', $content );
$smarty->display( 'index.tpl' );
Und schon läuft das Ganze.
 
Mit der vorhandenen index.tpl geht das nicht.

Aber Du kannst folgende Änderungen vornehmen:
[...]

Also die ausgabe wäre eine Seite wo steht "Das ist die Megageile index Seite:"..
Ist auch irgendwie Klar bei:
PHP:
$content = ''; //Die ist leer
if(!empty($action)){
[...]

Aber das hilft schonmal was (DANKE DIR).. :mrgreen:

EDIT: Sorry, hatte was falsch verstanden.. Aber es klappt nichtmal wenn ich in die index.php nur "$content = 'asd';" schreibe, der zeigt dann einfach nix an.. Muss das VLLT bei {$content} noch irgendein Befehl zum ausgeben hin?
 
Zuletzt bearbeitet:
EDIT: Sorry, hatte was falsch verstanden.. Aber es klappt nichtmal wenn ich in die index.php nur "$content = 'asd';" schreibe, der zeigt dann einfach nix an.. Muss das VLLT bei {$content} noch irgendein Befehl zum ausgeben hin?
Du hast aber schon den unteren Teil mit $smarty->assign( 'content', $content ); übernommen oder:?:
 
TPL:
HTML:
{include file="header.tpl" title=foo}
Das ist die Megageile index Seite:
{$content}
{include file="footer.tpl"}

PHP:
PHP:
<?php

require '../libs/Smarty.class.php';

$smarty = new Smarty;

$smarty->compile_check = true;
$smarty->debugging = true;

$content = 'asd';


$smarty->display('index.tpl');

?>
:)

@ActionScripter: Sagmal womit arbeitest du? Deinem eigenen Template System? Oder auch Smarty?
 
Öhrm, vergleich nochmal meine letzten beiden Posts mit Deinem Code, den Du grade gepostet hast und dann denk nochmal nach. :doh:
 
Sorry
$smarty->assign( 'content', $content );

Also ok, dann ist das vielleicht doch nicht so eine schlechte Sache mit dem Template System..
Aber mein Loginscripte darauf nochmal einzustimmen :(
Nicht wegen Faulheit, da komme ich durcheinander. Also ich denke ich werde mal irgendwas neues anfangen und da mit Smarty arbeiten..

Ich würd gerne ein Newsscript machen :)

In meinem loginscripte, da ist doch immernoch ne menge Falsch (mit den ganzen If() oder?) soll ich mir angewöhnen functionen zu deklarieren?