Author Topic: Eigenes Template als php aufrufen  (Read 5520 times)

0 Members and 1 Guest are viewing this topic.

Offline Bommel

  • Full Member
  • ***
  • Posts: 114
    • View Profile
Eigenes Template als php aufrufen
« on: January 29, 2010, 07:12:19 PM »
Hallo allerseits,

da ich leider nicht in diesem Thread http://www.4homepages.de/forum/index.php?topic=23037.msg125757#msg125757 posten kann, eröffne ich hierzu einen neuen Thread.

Ich habe mir für meine eigenen Templates eine php-Vorlage erstellt, mit der ich dann einfache HTML-Templates ohne besondere Funktionen (z.B. Impressum etc.) als PHP-Datei aufrufen kann. Meine Frage an euch Profis - habe ich in dieser Vorlage irgendetwas wichtiges vergessen?

<?php

$main_template 
'vorlage';
define('GET_CACHES'1);
define('ROOT_PATH''./');
include(
ROOT_PATH.'global.php');
require(
ROOT_PATH.'includes/sessions.php');
$user_access get_permission();
include(
ROOT_PATH.'includes/page_header.php');
error_reporting(E_ALL);

$contents $site_template->parse_template("vorlage");

$txt_clickstream $lang['vorlage'];

//-----------------------------------------------------
//---Clickstream---------------------------------------
//-----------------------------------------------------
$clickstream "<span class=\"clickstream\"><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'].$lang['vorlage']."</span>";

//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
$site_template->register_vars(array(
  
"contents" => $contents,
  
"clickstream" => $clickstream
));
unset(
$contents);
$site_template->print_template($site_template->parse_template($main_template));
include(
ROOT_PATH.'includes/page_footer.php');

?>


Freundliche Grüße, Bommel
Freundliche Grüße, Bommel

Nicht die Geduld mit mir verlieren, ich bin noch am Lernen./ Do not lose the patience with me, I am still in the learning. ;)

Rembrandt

  • Guest
Re: Eigenes Template als php aufrufen
« Reply #1 on: January 29, 2010, 07:33:04 PM »
das hat keine funktion : $txt_clickstream = $lang['vorlage'];

das würde noch registrieren: "msg" => $msg,

Offline Bommel

  • Full Member
  • ***
  • Posts: 114
    • View Profile
Re: Eigenes Template als php aufrufen
« Reply #2 on: January 29, 2010, 08:00:06 PM »
Hallo Rembrandt,

danke für deine schnelle Antwort. :)

Also muss das dann so aussehen:
<?php

$main_template 
'vorlage';
define('GET_CACHES'1);
define('ROOT_PATH''./');
include(
ROOT_PATH.'global.php');
require(
ROOT_PATH.'includes/sessions.php');
$user_access get_permission();
include(
ROOT_PATH.'includes/page_header.php');
error_reporting(E_ALL);

$contents $site_template->parse_template("vorlage");

//-----------------------------------------------------
//---Clickstream---------------------------------------
//-----------------------------------------------------
$clickstream "<span class=\"clickstream\"><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'].$lang['vorlage']."</span>";

//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
$site_template->register_vars(array(
  
"contents" => $contents,
  
"msg" => $msg,
  
"clickstream" => $clickstream
));
unset(
$contents);
$site_template->print_template($site_template->parse_template($main_template));
include(
ROOT_PATH.'includes/page_footer.php');

?>


Hierzu noch eine Frage. Warum kommt im Ausgabebereich nicht noch dieser Eintrag hinzu?

  "lang_vorlage" => $lang['vorlage']

Soweit ich das verstanden habe, ist das die Ausgabe der jeweils festgelegten Formulierung aus lang/deine_sprache/main.php. Richtig?

Freundliche Grüße, Bommel
Freundliche Grüße, Bommel

Nicht die Geduld mit mir verlieren, ich bin noch am Lernen./ Do not lose the patience with me, I am still in the learning. ;)

Rembrandt

  • Guest
Re: Eigenes Template als php aufrufen
« Reply #3 on: January 29, 2010, 08:12:36 PM »
...
Hierzu noch eine Frage. Warum kommt im Ausgabebereich nicht noch dieser Eintrag hinzu?

  "lang_vorlage" => $lang['vorlage']
das bräuchtest du nur wenn du in der html datei das mittels {lang_vorlage} , ausgeben möchtest.

Quote
Soweit ich das verstanden habe, ist das die Ausgabe der jeweils festgelegten Formulierung aus lang/deine_sprache/main.php. Richtig?
ja..

Offline Bommel

  • Full Member
  • ***
  • Posts: 114
    • View Profile
Re: Eigenes Template als php aufrufen
« Reply #4 on: January 29, 2010, 08:22:42 PM »
Hallo Rembrandt,

besten Dank für die Erklärung und einen schönen Abend noch. :)

Freundliche Grüße, Bommel
Freundliche Grüße, Bommel

Nicht die Geduld mit mir verlieren, ich bin noch am Lernen./ Do not lose the patience with me, I am still in the learning. ;)

Offline Bommel

  • Full Member
  • ***
  • Posts: 114
    • View Profile
Re: Eigenes Template als php aufrufen
« Reply #5 on: January 30, 2010, 08:35:28 PM »
Hallo Rembrandt,

es gibt da noch ein weiteres Problem, bei dem ich heute nicht klar gekommen bin. Es kommt immer ein Parser-Fehler.

Was muss in diese Vorlage eingefügt werden, dass zukünftig Angaben wie {if user_loggedin} und {endif user_loggedin} berücksichtigt und korrekt ausgeführt werden?

Freundliche Grüße, Bommel

Nachtrag:

Merkwürdig... zwei nahezu identische php-Dateien. Beide unterscheiden sich nur in den Namensbezeichnungen. Dennoch - die eine funktioniert mit diesen {if} {endif}-Angaben und die andere nicht. Die Fehlermeldung lautet:

Quote
Parse error: syntax error, unexpected $end in /home/xxxxxxxx/wwwroot/includes/template.php(101) : eval()'d code on line 104

der Teil der template.php lautet ab Zeile 92 folgendermaßen:

  function parse_template($template) {
    
$template $this->get_template($template);

    
// Don't show error notices
    
$old error_reporting(E_ALL E_NOTICE);

    
extract($this->val_cache);
    
ob_start();
    
//echo $template;
    
eval("?>".$template."<?php return 1;");

    
$str ob_get_contents();
    
ob_end_clean();  <------------------------------------- das ist die gemeldete Fehlerzeile

    
// Reset error_reporting
    
error_reporting($old);

    return 
$str;
  }


Ich weiß nicht weiter...

Nachtrag:

OK... alles paletti. Typischer Copy&Paste-Fehler...  :oops: Ich hatte in der besagten Datei die {If}-Anweisung nicht korrekt beendet.

Freundliche Grüße, Bommel
« Last Edit: January 30, 2010, 09:09:24 PM by Bommel »
Freundliche Grüße, Bommel

Nicht die Geduld mit mir verlieren, ich bin noch am Lernen./ Do not lose the patience with me, I am still in the learning. ;)