Mailinglisten-Archive |
Hallo liebe Gruppe, auch wenn ich nicht viel helfen kann bin ich dankbar für eure Hilfe. Ich habe eine Index.php der immer eine PageID (pid) übergeben wird und in der DB wird das template ausgewählt und per index.php ausgelesen. hier das index.php **************************************************************************** <?php [snip...] if ($pid == "") {$pid = 0;} /* get link content and data from DB */ $result = $data_db->query(" SELECT page_title, page_template FROM cms_pages WHERE pkey = '$pid'"); /* get number of assigned pages */ $exists = $data_db->num_rows($result); /* valid pid */ if(!is_numeric($pid) or $exists == 0) die("Invalid pid specified"); $row = $data_db->fetch_array($result); /* open template */ $tp_file = fopen("/var/www/htdoc/crminfo/templates/$row[page_template]", "r"); $tp_content = fread ($tp_file, 4096); fclose($tp_file); /* free query */ $data_db->free_result($result); /* get possible template marks ands values from DB */ $rpl_result = $data_db->query(" SELECT field_name, field_type, field_contents FROM cms_page_fields WHERE cms_pages_pkey = '$pid'"); /* get number of marks in specified template */ $repltimes = $data_db->num_rows($rpl_result); /* replace marks (@@@NAME@@@) with DB content */ for ($i=1;$i<=$repltimes;$i++) { $replacement = $data_db->fetch_row($rpl_result); switch($replacement[1]){ case 'TXT': $tp_content = str_replace("@@@$replacement[0]@@@","$replacement[2]",$tp_content); break; case 'ELK': $tp_content = str_replace("@@@$replacement[0]@@@","<a href=\"$replacement[2]\" target=\"_blank\">$replacement[2]</a>",$tp_content); break; case 'ILK': $tp_content = str_replace("@@@$replacement[0]@@@","<a href=\"$replacement[2]\" target=\"_intern\">$replacement[2]</a>",$tp_content); break; case 'EML': $tp_content = str_replace("@@@$replacement[0]@@@","<a href=\"mailto:$replacement[2]\" target=\"blank\">$replacement[2]</a>",$tp_content); break; case 'IMG': $tp_content = str_replace("@@@$replacement[0]@@@","<img src=\"$replacement[2]\" border=\"0\">",$tp_content); break; case 'PHP': $phpscript = "\$php_out = ".$replacement[2]; eval("$phpscript"); $tp_content = str_replace("@@@$replacement[0]@@@",$php_out,$tp_content); break; default: $tp_content = str_replace("@@@$replacement[0]@@@","$replacement[2]",$tp_content); } // switch } /* free query */ $data_db->free_result($rpl_result); /* send content output back to client browser */ echo $tp_content; ?> **************************************************************************** die template datei sieht so aus... **************************************************************************** <html> <head> <title>@@@PAGE_TITEL@@@</title> </head> <body> <table width="80%" hight="90%" align="center" bgcolor="#CCCCFF" border="0"> <tr> <td align="left" valign="middle"> <a href="?pid=2">Login</a><br> <br> <a href="?pid=3">Nutzer werden</a><br> <br> <a href="?pid=4">Impressum</a> </td> <td align="left" valign="middle"> @@@NEWSTEXT@@@ <br> Bei Fragen wenden Sie sich bitte an<br> @@@ADMINEMAIL@@@ <br><br> Sessiondata: @@@SESSION@@@ <?php echo "TEST"; ?> </td> </tr> </table> </body> </html> **************************************************************************** aber der PHP teil am Ende "<?php echo "TEST"; ?>" wird 1:1 einfach wiedergegeben und nicht nur "TEST". ich würde gerne auch funktionen einbauen, aber irgendwo hängt es und ich finde kein Ansatz... hat jemand eine Idee wie ich besser vorgehen könnte? also noch mal kurz ... es sollen auch PHP Befehle, die im Template sind ausgeführt werden. Vielen vielen Dank ... Sebastian Schäfer
php::bar PHP Wiki - Listenarchive