Also ich habe das Problem gerade gelöst indem ich einfach die Templates als Variable übergebe und in der Session speicher. Das ganze mag zwar noch nicht hundertprozentig sauber sein, aber funktionieren tut es 1a!
Als Basis zum Einlesen habe ich das googlebase_Export -Script genommen.
Zu den beiden schon bestehenden Modulen noch die genexport_main Klasse überschrieben. (Dies nur für das tpl der Ansicht)
class generic_GenExport_Main extends Generic_GenExport_Main_parent
{
/**
* Export class name
*
* @var string
*/
public $sClassDo = "Generic_genExport_do";
/**
* Export ui class name
*
* @var string
*/
public $sClassMain = "Generic_genExport_main";
/**
* Current class template name.
* @var string
*/
protected $_sThisTemplate = "dyn_exportgeneric.tpl";
}
Datei Generic_genExport_do:
Zuerst in der nextTick-Routine folgende Anpassung vornehmen und das richtige Template zur ausgewählten :
$this->write( $smarty->fetch( $this->sExportFileName."_genexport.tpl", $this->getViewID() ) );
Dann in der Klasse Generic_genExport_do den Constructor überschreiben
/**
* Calls parent costructor and initializes $this->_sFilePath parameter
*
* @return null
*/
public function __construct()
{
parent::__construct();
$choosecampaign = oxConfig::getParameter( "choosecampaign" );
if ( isset( $choosecampaign ) ) {
oxSession::setVar( "choosecampaign", $choosecampaign );
}
$this->sExportFileName = oxSession::getVar( "choosecampaign" );
// set generic frame template
$this->_sFilePath = $this->getConfig()->getConfigParam( 'sShopDir' ) . "/". $this->sExportPath . $this->sExportFileName . "." . $this->sExportFileType;
}
die Datei dyn_exportdefault.tpl kopieren und als dyn_exportgeneric.tpl im out/admin Ordner speichern. Dann wie folgendes hinzufügen:
<tr>
<td class="edittext" width="180" height="40">
[{ oxmultilang ident="DYNBASE_CHOOSEEXPORTCAMPAIGN" }]
</td>
<td class="edittext">
<select name="choosecampaign" size="5" class="editinput" style="width: 210px;">
<option value="kommasepariertePreis">Preissuchmaschine I</option>
<option value="Template_preise_2">andere Preissuchmaschine</option>
<option value="googlebaseTab">Google Base</option>
</select>
[{ oxinputhelp ident="HELP_DYNBASE_CHOOSEEXPORTCAMPAIGN" }]
</td>
</tr>
cust_lang noch schnell anpassen
$aLang = array(
'GENERIC_MXGENEXP' => 'Generischer Export',
'DYNBASE_CHOOSEEXPORTCAMPAIGN' => 'Wählen Sie Ihren Export'
);
Jetzt in die Module folgendes Eintragen
genexport => generic_export/generic_genexport
genexport_do => generic_export/generic_genexport_do
genexport_main => generic_export/generic_genexport_main
Dann nur nach Vorlage der GoogleExport die drei Templates anlegen und einem Export der unterschiedlichen Dateien steht nichts mehr im Wege.
Ich hoffe das Prozedere ist verständlich.
Beste Grüße,
Paul