Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > [Frage] zum Templatesystem von Gröning
Antwort
 
Themen-Optionen
Alt 11.03.2006, 16:27   Nach oben    #1
lycoos
Neuer Benutzer
 
Registriert seit: 11.03.2006
Beiträge: 29
Standard [Frage] zum Templatesystem von Gröning

hallo,

ich hoffes mir kann einer helfen. Ich wollte eigentlich die Sprachvariabelen aus der db auslesen!!

PHP-Code:
    /**
     * Die variabele abfragen
     *
     * @access    public
     * @param     array $files  Dateinamen der Sprachdateien
     * @return    boolean
     */
    
public function loadLanguage($files)
    {
        
// Die Dateinamen der Sprachdateien
        
$this->languageFiles $files;
        
       
$lang_array = array();
       
$GETlang "select `key`,`".$lang_name."` from lang WHERE cat = '".$files."' order by id;";
       
$RESlang mysql_query($GETlang);
       while(
$row mysql_fetch_row($RESlang):(
       
$lang_array[$row[0]] = $row[1];
       endwhile;
        
        
// Die Sprachvariablen mit dem Text ersetzen
        
$this->replaceLanguage($lang);
        
        
// $lang zurückgeben, damit $lang auch im PHP-Code verwendet werden kann
        
return $lang;
    }

    
    
/**
     * Die Sprachvariablen ersetzen
     *
     * @access    protected
     * @param     string $lang
     * @return    boolean
     */
    
protected function replaceLanguage($lang)
    {
        
// simple replace width preg_replace
        
$this->template preg_replace("/".$this->leftDelimiterL."(.*)".$this->rightDelimiterL."/isUe""\$lang[strtolower('\\1')]"$this->template);
        return 
true;

    } 
würde das so funktionieren ???

mfg

lycoos
lycoos ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.03.2006, 16:54   Nach oben    #2
WarrenFaith
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

Ich weiß nicht, aber while-anweisungen sehen eigentlich eher so aus:
PHP-Code:
<?php
while($row mysql_fetch_row($RESlang)) {
       
$lang_array[$row[0]] = $row[1];
}
?>
aber sonst seh ich keine probleme.
aber schlüsselwörter wie SELECT und FROM in den Queries sollten der sichtbarkeit wegen groß geschrieben werden.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.03.2006, 16:59   Nach oben    #3
Corvin
Erfahrener Benutzer
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 432
Standard

@WarrenFaith:
http://de2.php.net/while
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.03.2006, 17:11   Nach oben    #4
WarrenFaith
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

Mja das hab ich auch gefunden, allerdings find ich das dort gemachte Beispiel deutlich besser. Liegt aber wohl eher in meiner Antipathie gegen Sprachen wie VB und Co. Ich mag sowas wie EndIf ElsIf etc nicht.
Aber jedem das seine, denn an der Hauptaussage ändert sich ja nix
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.03.2006, 17:20   Nach oben    #5
lycoos
Neuer Benutzer
 
Registriert seit: 11.03.2006
Beiträge: 29
Standard

hi,

eine kleine frage habe ich noch.... wie kann ich das machen das zb. bestimmte sachen im template ausgeblendet werden oder so???
lycoos ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.03.2006, 18:31   Nach oben    #6
Corvin
Erfahrener Benutzer
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 432
Standard

Ich verstehe die Frage nicht ganz, was meinst du mit "ausblenden"?
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 11:03   Nach oben    #7
lycoos
Neuer Benutzer
 
Registriert seit: 11.03.2006
Beiträge: 29
Standard

also: wir nehmen an du hast eine Page wo man sich einloggen kann! Nun sollen aber die beiden Login Felder. Also das für PW und Nickname ausgeblendet werden. Wie mache ich das am besten???
lycoos ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 11:16   Nach oben    #8
WarrenFaith
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

einfach den Loginstatus überprüfen und anhand dessen entscheiden ob du das Template für die loginfelder zeigen willst, oder ob ein anderes Template lädst, wo dort sowas wie: "Hallo UserXYZ" steht..
ist meist so gelöst, dass anstelle der Loginfelder dann Begrüßungen und Informationen wie: "Du hat 4 private Nachrichten" stehen.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 11:40   Nach oben    #9
lycoos
Neuer Benutzer
 
Registriert seit: 11.03.2006
Beiträge: 29
Standard

Zitat:
Zitat von WarrenFaith
einfach den Loginstatus überprüfen und anhand dessen entscheiden ob du das Template für die loginfelder zeigen willst, oder ob ein anderes Template lädst, wo dort sowas wie: "Hallo UserXYZ" steht..
ist meist so gelöst, dass anstelle der Loginfelder dann Begrüßungen und Informationen wie: "Du hat 4 private Nachrichten" stehen.

wie ich das mache weis ich auch nur wie setzte ich es um, Ich kann ja net nen neues Template nehmen ??
lycoos ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 11:53   Nach oben    #10
WarrenFaith
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

Warum nicht?
[pseudocode]
Wenn User eingeloggt dann
lad Template Userinfos
Sonst
lad Template Loginfelder
Ende
[/pseudocode]
Wo is da dass Problem? Du machst einfach $Template->load(...) füllst die Variablen und machst dann ein schönes $Template->out()
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 12:13   Nach oben    #11
lycoos
Neuer Benutzer
 
Registriert seit: 11.03.2006
Beiträge: 29
Standard

jetzt habe ich das auch mal geschnallt. ich glaube ich meine wie du das meinst. Das man 2 Templates in eienr Datei macht. ^^
achso und dann sowsa

if(session['id'] {
template blablabul
} else {
template biibibib
}

kann man zwei templates eigentlich auch direkt nebeneinander machen oder werden die immer untereinander angezeigt???
lycoos ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 12:21   Nach oben    #12
WarrenFaith
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

kommt drauf an was in den templates steht... ein template muss ja nicht immer von <html> zu </html> gehen. ich hab teilweise für jedes div meines design ein eigenes template... so kann ich den inhalt immer schön beliebig ansprechen und einzeln verändern.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 12:58   Nach oben    #13
lycoos
Neuer Benutzer
 
Registriert seit: 11.03.2006
Beiträge: 29
Standard

wie kann man denn dann die templates plazieren???
lycoos ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 13:08   Nach oben    #14
WarrenFaith
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

ähm sollte eigentlich beim durchlesen des template-tutorials klar werden ?!
ich hab mehrere templates:
1. ist der header
2. ist das main-div
3. ist das menü-div
4. das content-div
5. der footer
diese lädst du stück für stück durch, oder du baust dir ein design aus divs und lädst dann in jedem div deine templates rein.
Beispiel:
PHP-Code:
<?php
   $Template
->load("header.tpl");
   ...
   
$Template->out();
?>
<div id="main">
    <div id="content">
    <?php
       $Template
->load("content.tpl");
       ...
       
$Template->out();
    
?>
    </div>
    <div id="menu">
    <?php
       $Template
->load("menu.tpl");
       ...
       
$Template->out();
    
?>
    </div>
</div>
<?php
   $Template
->load("footer.tpl");
   ...
   
$Template->out();
?>
Das wars....
In den Templates wie Header steht der Doctype und der <head> Bereich und im Footer halt </body></html> etc
Somit hast du eine PHP-Datei, die alle Templates zusammensetzt

Ist nur ein Beispiel um dir verschiedene Möglichkeiten darzustellen.
Wenn du nun die name.tpl als Variable speicherst, kannst du dann auch variabel bestimmen, welche Templates geladen werden (dein Loginfeld-Problem betreffend)
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 19:07   Nach oben    #15
$traight-$hoota
Erfahrener Benutzer
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 491
Standard

noch besser wäre es halt, diese bisherige php datei auch in ein template zu fassen.
dazu muss man nur die ausgabe der sub-templates als variablen dem haupt-template zuweisen.
zb:
Code:
{$header}
<div id="main">
    <div id="content">
    {$content}
    </div>
    <div id="menu">
    {$menu}
    </div>
</div>
{$footer}
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 19:19   Nach oben    #16
Corvin
Erfahrener Benutzer
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 432
Standard

Oder nooooch besser. Mit {include file="templatename.tpl"} arbeiten.
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.03.2006, 19:27   Nach oben    #17
$traight-$hoota
Erfahrener Benutzer
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 491
Standard

ich hab mich net so genau mit deinem system auseinandergesetzt und wusste net, ob das damit auch geht...
die variablen-lösung hätte aber noch den vorteil, dass ein sub-template nicht auch alle variablen der anderen templates zugewiesen hat. dadurch kann es da keine namensüberschneidungen etc. geben.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2006, 16:43   Nach oben    #18
lycoos
Neuer Benutzer
 
Registriert seit: 11.03.2006
Beiträge: 29
Standard

ok thanks. Ich sollte keine dummen fragen mehr stellen ^^ Lag wohl an der LAN-Party vorher^^ danke nochma
lycoos ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2006, 20:10   Nach oben    #19