Visual CMS HTML in Smarty auslagen

Hallo erstelle eine Visual CMS Widget und möchte den HTML Code in Smarty auslagern.

Idealerweise sollte die Datei im diesen Pfad liegen:
oxideshop/source/Application/views/wave/tpl/vcms/datei.tpl

Die Parse Methode sieht bei mir so aus.

$oMedia = oxNew(Media::class);
$urlImage = $aParams['image'] ? $oMedia->getMediaUrl($aParams['image']) : '';
$hexBgColor = $aParams['color'];
$fontSize = $aParams['fontSize'] ? 'font-size:' . $aParams['fontSize'] . 'px' : 'font-size:18px';

$oSmarty = oxRegistry::getUtils()->variable();
$oSmarty->assign('urlImage', $variable);
$oSmarty->assign('hexr', $variable);


$html = $oSmarty->fetch(pfad.datei.tpl);

return $html;

Meine Fragen dazu wären:
- Wie schreibe ich die Smarty-Funktion, damit er die Datei im richtigen Verzeichniss findet?
- Wie muss die Smarty Datei sein, damit er die Variablen übernimmt?

Danke und Gruß :)
AP

Hallo,

versuch es mal damit:

public function parse($content = '', $parameter = [])
{
	$media = oxNew(Media::class);
	$imageUrl = $parameter['image'] ? $media->getMediaUrl($parameter['image']) : '';
	$hexBgColor = $parameter['color'];
	$fontSize = $parameter['fontSize'] ? 'font-size:' . $parameter['fontSize'] . 'px' : 'font-size:18px';

	return parent::parse('[{include file="vcms/datei.tpl" 
		urlImage="' . $imageUrl . '"
		hexBgColor="' . $hexBgColor . '"
		fontSize="' . $fontSize . '"
	}]', $parameter);
}

Ich bin mir grade nicht sicher, ob man auf die Smarty Instanz, die dann auch genutzt wird, direkt kommt, aber solange du nur Strings übergibst, sollte das damit dann auch gehen.

Viele Grüße
Benny

Vielen Dank das hat geholfen! :slight_smile: