Jump to content
xt:Commerce Community Forum
Sign in to follow this  
nusphere

[dev] Mehr als nur 1ne Box in einem Plugin

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Edited by nusphere

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...