nusphere Posted November 7, 2013 Report Share Posted November 7, 2013 Hi, gibt es einen Weg mehr als nur eine Box in einem Plugin zu hinterlegen? Ich meine der Ordner heisst ja schon boxes - aber dadurch, dass er nur nach dem Namen des Plugins sucht bei der angabe von type="user" kann man ja nur eine Box angeben. Oder gibt es - mir unbekannte - box parameter, die dies ermöglichen? Gruß Das Nu Link to comment Share on other sites More sharing options...
Alex@4tfm Posted November 7, 2013 Report Share Posted November 7, 2013 In der php-datei kannst du ja mit $params['value'] alles abfragen und ggf. an ein anderes template übergeben. mit $tpl = 'templatename.html' kannst du dann je nach dem die werte an ein anderes template übergeben. Link to comment Share on other sites More sharing options...
nusphere Posted November 7, 2013 Author Report Share Posted November 7, 2013 Wunderbar danke für den Hinweis. Ich habe die php Datei im boxes Ordner als precompiler für eine Box gesehen. Somit war ich etwas verwundert. Aber wenn man diese PHP Datei als Box-Handler sieht, kommt man wieder damit klar. {box name=<plugin_name> type=user tpl=smarty_box_template.tpl} [/php] ruft also die Datei plugins/<plugin_name>/boxes/<plugin_name>.php auf und nutzt das Standartmäßig das Template von plugins/<plugin_name>/templates/boxes/smarty_box_template.tpl [php] {box name=<plugin_name> type=user box_type=eigener_boxtyp} das würde bedeuten, dass ich in meinem Box-Handler auf die Variable $params["box_type"] reagieren kann (zum Beispiel in einer switch) und dann durch das setzten von $params["tpl"] auf ein gewünschtes Template wechseln. Damit könnte ich in dem Box-Handler auch weitere PHP Dateien importieren und somit hätte ich partionelle PHP Dateien. Alles klar... Danke für den Tipp. Gruß Das Nu Link to comment Share on other sites More sharing options...
MichaDD Posted November 15, 2013 Report Share Posted November 15, 2013 Baut Euch doch eine eigene Smarty-Erweiterung, das ist relativ einfach: Neue Datei in /xtFramework/library/smarty/plugins erstellen, Beispiel "function.box_reports.php", Code: <?php /** * SLR Box fuer Reports, das Original "box" ist verschluesselt! * @params array (wichtig: name=>sonstwas) * @return void Zweisung von Parametern und Ausgabe der Html-Datei */ function smarty_function_box_reports ($params) { if (!isset($params['name']) && !empty($params['name'])) return; $code_php = $_SERVER['DOCUMENT_ROOT'] .'/xtAdmin/slr_reports/boxes/' .$params['name'] .'.php'; $code_html = $_SERVER['DOCUMENT_ROOT'] .'xtAdmin/slr_reports/boxes/' .$params['name'] .'.html'; $smarty = new smarty(); $smarty->template_dir = $code_html; $smarty->compile_dir = _SRV_WEBROOT .'templates_c/'; if (file_exists($code_php)) include_once($code_php); foreach ($params as $key=>$val) $smarty->assign($key, $val); if (isset($tplValues)) foreach ($tplValues as $key=>$val) $smarty->assign($key, $val); if (file_exists($code_html)) $smarty->display($code_html); } //smarty_function_box_reports() ?>[/PHP] in dem angegebenen Verzeichnis die php-Datei und die Html-Datei erstellen (Beispiel Datepicker) Dann einbinden mit {box_reports name=datePicker} Keine Hexerei und einfacher zu handeln, als die verschluesselte Box von XTC. Die Funktion kann natuerlich beliebig erweitert werden, ist hier nur ein Ausschnitt mit der grnudlegenden Funktion. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.