Inzwischen sind einige Funktionen von mir im Shop erfolgreich angepasst, erweitert oder hinzugefügt worden, doch nun scheitert es an einem neuen View, der basierend auf einer von mir im Backend mit einem Modul befüllten eigenen Tabelle eine Liste mit Artikeln ausgeben soll.
Zuerst einmal habe ich im core-Verzeichnis eine neue Datei angelegt, mit der ich meinen View initialisiere.
class neuerViewClass extends oxBase // oxI18n
{
// Name der Klasse
protected $_sClassName = 'neuerViewClass';
public function __construct()
{
parent::__construct();
$this->init( 'neuerView', true );
}
}
Anschließend habe ich im view-Verzeichnis die View-Klasse angelegt.
class neuerView extends oxUBase
{
/**
* Current class template name.
* @var string
*/
protected $_sThisTemplate = 'page/info/neuerView.tpl';
/**
* Current view search engine indexing state
*
* @var int
*/
protected $_iViewIndexState = VIEW_INDEXSTATE_NOINDEXNOFOLLOW;
public function init()
{
parent::init();
$myConfig = $this->getConfig();
}
public function render()
{
parent::render();
$oSmarty = oxUtilsView::getInstance()->getSmarty();
$oSmarty->assign( "oViewConf", $this->_aViewData["oViewConf"]);
$oSmarty->assign( "shop", $this->_aViewData["shop"]);
echo $oSmarty->fetch("page/info/neuerView.tpl");
oxUtils::getInstance()->showMessageAndExit( "" );
}
// zahlreiche weitere neue Funktionen bereits implementiert, die auch angesprochen werden können
}
Zu guter Letzt gibt es natürlich auch ein Template. Und genau hier tauchen die Probleme auf.
Wenn ich in das Template den Standard-Header sowie den Standard-Footer inkludiere bekomme ich die folgende Fehlermeldung.
Fatal error: Call to a member function getActiveLangAbbr() on a non-object in /is/htdocs/wp10565371_58XWIFCW7E/www/oxid_shop_45/tmp/06b6faaeb78cece851abd882f5b83edf^%%94^94B^94B8B1F0%%_header.tpl.php on line 6
[B]Was muss ich tun, damit ich den Header und Footer bedenkenlos einbinden kann?[/B]
Eine deutlich unwichtigere, aber dennoch gegebene Frage ist, was muss ich dem Shop beibringen, um diesen neuen View nicht über eine derartige URL
oxid_shop_45/index.php?cl=neuerView
aufrufen zu müssen, sondern auch SEO freundliche URLs wie beispielweise diese
oxid_shop_45/neuerView/
nutzen zu können?
Grüße,
Alexander
Edit: Ohne Header und Footer funktioniert der View. Wird also ohne Styling angezeigt und die entsprechenden Methoden, die ich aufrufen will und die in meinem View programmiert sind, werden auch angesprochen.