Shopware – Erweitertes Menü – Kategorie Attribute

Dieser Beitrag wurde 5351 mal angezeigt.

Hy Leute,

leider hat es Shopware versäumt oder wieder ausgebaut, die attributfelder der Kategorien mit in das Erweiterte Menü zu bringen.
Daher wird ein Modul benötigt, das die Informationen entsprechend erweitert.

Erstellt dazu den Ordner „AdvancedMenuAttribute“ unter

engine/Shopware/Plugins/Local/Frontend/

Hier legt ihr eine neue PHP Datei an, mit dem Namen Bootstrap.php mit folgendem Inhalt:

<?php
class Shopware_Plugins_Frontend_AdvancedMenuAttribute_Bootstrap
	extends Shopware_Components_Plugin_Bootstrap
{
	public function getCapabilities()
    {
		return array(
        'install' => true,
        'update' => true,
        'enable' => true
		);
    }
	
	public function getLabel()
    {
		return 'AdvancedMenu Kategorie Attribute';
    }
	
	public function getVersion()
    {
		return '1.0.0';
    }
	
	public function getInfo()
    {
		return array(
        'version' => $this->getVersion(),
        'label' => $this->getLabel(),
		'autor' => 'Sven G&ouml;ssling',
        'supplier' => 'Sven G&ouml;ssling',
        'description' => 'Ausgabe der AdvancedMenu Kategorie Attribute.',
        'support' => 'Kein Support',
        'link' => 'https://sven-goessling.de'
		);
    }
	
	public function install()
    {
		$this->registerEvents();
		$form = $this->Form();
		$form->setElement('checkbox', 'ShowAdvancedMenuAttribute', array(
			'scope'=>Shopware_Components_Form::SCOPE_SHOP,
			'description' => 'Einf&uuml;gen der Kategorieattribute im AdvancedMenu.',
			'label'=>'Attribute der Kategorien im AdvancedMenu einf&uuml;gen?',
			'value'=>true,
			
		));
		$form->save();
		return true;
	}
	
	public function uninstall()
	{
		return true;
	}
	
	private function registerEvents()
	{//Events
		$this->subscribeEvent(
		'Enlight_Controller_Action_PostDispatch_Frontend_Index',
		'onPostDispatchFrontend'
		);
	}
	
	public function onPostDispatchFrontend(Enlight_Event_EventArgs $arguments)
	{
		//Template Variablen laden
		$config = Shopware()->Plugins()->Frontend()->AdvancedMenuAttribute()->Config();
		
		if ($config->ShowAdvancedMenuAttribute) {
			$view = $arguments->getSubject()->View();
			$AdvancedMenu = $view->getAssign('sAdvancedMenu');
			if (isset($AdvancedMenu) && is_array($AdvancedMenu) && !empty($AdvancedMenu)) {
				foreach ($AdvancedMenu as $key=>$value) {
						$sql = "SELECT * FROM `s_categories_attributes` WHERE categoryID = ".$value['id'].";";
						$cate_attr = Shopware()->Db()->fetchRow($sql);
						if (isset($cate_attr) && !empty($cate_attr)) {
							$AdvancedMenu[$key]['media']['attribute'] = $cate_attr;
						}
				}
			}
			$view->assign('sAdvancedMenu', $AdvancedMenu);
		}
	}
}
?>

Danach das ganze im Backend unter Plugins installieren und aktivieren.

 

Fertig 😉

Add a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.