Hallo zusammen,
ich bin grad ganz neu bei Oxid und baue mit meinen Kollegen für einen Kunden damit einen Shop.
Für die Sidebar brauchen wir ein extra Widget, um dort einige Tutorialvideos gesammelt anzuzeigen, die im Backend getrennt von den Artikeln gepflegt werden sollen.
Mithilfe einiger Threads hier im Forum und den Tutorials im Wiki hab ich jetzt ein funktionierendes Widget, allerdings statt aus der Datenbank im Moment mit statischen Werten.
Dazu hab ich ein Backend-Modul, das schon ins Menü eingebunden ist, auch dort gibts noch nicht allzuviel zu machen, also es wird nur eine Hallo Seite ausgegeben.
Mein Problem ist jetzt, dass ich am liebsten das oben genannte Widget auch in das Modul kapseln würde, also hab ich das Widget genommen, in das Modul-Verzeichnis kopiert und in der metadata.php eingetragen, dass es von oxWidget erben soll, so wie es auch bisher war. Allerdings krieg ich es jetzt nicht mehr hin, dass das Widget überhaupt etwas ausgibt.
Ziel sollte es sein, dass quasi alle Änderungen nur im Modul-Verzeichnis sind und der restliche Code unverändert bleibt. Ich habe jetzt im Forum nichts genaues dazu gefunden wie man das am besten machen kann und hoffe, dass mir vielleicht trotzdem jemand helfen kann.
Nachfolgend einmal der Code, der als Widget direkt funktioniert.
Den würde ich gerne komplett in das Modul kopieren und dann eben das Template an den Sidebar-Block anhängen.
Ich hab mich da von der oxwvendorlist.php inspirieren lassen
oxwvideolist.php
<?php
/**
* Video list widget.
* Forms video list.
*/
class oxwVideoList extends oxWidget
{
/**
* Current class template name.
*
* @var string
*/
protected $_sThisTemplate = 'widget/sidebar/videolist.tpl';
/**
* Template variable getter. Returns vendorlist for search
*
* @return array
*/
public function getVideolist()
{
if ( $this->_aVideolist === null ) {
$this->_aVideolist = array(
0 => array(
'url' => 'http://youtube.com',
'img' => 'foo.jpg',
'title' => 'Reparieren',
'text' => 'Mit den Werkzeugen, .'
),
1 => array(
'url' => 'http://youtube.com',
'img' => 'bar.jpg',
'title' => 'Schleifen',
'text' => 'Mit den Werkzeugen, ..'
),
2 => array(
'url' => 'http://youtube.com',
'img' => 'foobar.png',
'title' => 'Wachsen',
'text' => 'Mit den Werkzeugen, ...'
),
3 => array(
'url' => 'http://youtube.com',
'img' => 'barfoo.png',
'title' => 'Schweißen',
'text' => 'Mit den Werkzeugen, ....'
)
);
}
return $this->_aVideolist;
}
}
videolist.tpl
[{assign var="videos" value=$oView->getVideolist()}]
[{if $videos}]
[{block name="sidebar_videos"}]
<div class="well sidebox video-list">
<div class="sidebox-title"><h3>Video Anleitungen in HD</h3></div>
[{foreach from=$videos item=_video}]
<div class="sidebox-item video-item media">
<a class="sidebox-item-link pull-left" href="[{$_video.url}]">
<img class="sidebox-item-img media-object" src="[{$_video.img}]" />
</a>
<div class="sidebox-item-text media-body">
<h3 class="media-heading">[{$_video.title}]</h3>
<p>[{$_video.text}]</p>
<a href="[{$_video.url}]">Video abspielen</a>
</div>
<br class="clearfix">
</div>
[{/foreach}]
</div>
[{/block}]
[{/if}]