Hallo zusammen, aktuell suche ich nach einer unkomplizierten Lösung, Shopware 4 beizubringen, dass die Startseite kein spezielles Design erhalten soll sondern das Standard-Kategorie-Listing angewendet werden soll. Hat hier jemand eine Lösung parat? Danke vorweg! Rafael Kutscha
Das würde mich auch interessieren. Es geht eigentlich nur darum, auch ohne die Einkaufswelten, eine Liste von ausgewählten Produkten in einer normalen Artikelliste, auf der Startseite, anzuzeigen. Gruß Hansi
Eventuell kann da folgendes Plugin als Beispiel dienen - sofern keine Einkaufswelt für die Startseite definiert ist, sollte dort bereits das normale Kategorie-Listing angezeigt werden! http://store.shopware.de/template-desig … startseite
Das verwirrt mich ein bißchen. Ich dachte, auch wenn ich die linke Spalte auf der Startseite einsetze, dass es sich immer noch um die Startseite handelt. Dieser kann ich aber keine Kategorie zuordnern (systembedingt). Es ginge wohl nur im Rahmen der Einkaufswelten. Oder habe ich da etwas falsch verstanden?
Hey, okay, wenn du nur ausgewählte Artikel dort anzeigen möchtest im Listing musst du anders vorgehen. Ich habe dir mal ein Beispiel-Plugin geschrieben, was folgendes macht: [list] [*] Man kann in der Plugin-Konfiguration die ID der Kategorie definieren, aus der die Artikel für die Anzeige auf der Startseite ausgelesen werden sollen[/*] [*] Wichtig hierbei: Man muss zuerst eine inaktive Kategorie anlegen - z.B. „Temporäre Artikel“ und darunter eine aktive z.B. Startseiten Artikel - in letztere dann die gewünschten Artikel zuordnen und die ID dieser Kategorie in die Plugin-Config eintragen[/*] [*] Auf der Startseite werden dann die Artikel aus der zugewiesenen Kategorie ausgelesen [/*] [*] Das Template wird dahingehend modifiziert, dass über den Einkaufswelten das normale Listing eingebunden wird[/*] [*] Sortierung oder ähnliches ist dort nicht möglich - aber für erste Gehversuche / weitere Anpassungen, sollte der Code ein guter Einstieg sein![/*][/list] [code]<?php /**
- Shopware 4.0
- Copyright © 2012 shopware AG
- According to our dual licensing model, this program can be used either
- under the terms of the GNU Affero General Public License, version 3,
- or under a proprietary license.
- The texts of the GNU Affero General Public License with an additional
- permission and of our proprietary license can be found at and
- in the LICENSE file you have received along with this program.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
- „Shopware“ is a registered trademark of shopware AG.
- The licensing of the program under the AGPLv3 does not imply a
- trademark license. Therefore any rights, title and interest in
- our trademarks remain entirely with us.
- @category Shopware
- @package Shopware_Plugins
- @subpackage AdvancedMenu
- @copyright Copyright © 2012, shopware AG (http://www.shopware.de)
- @version Id
- @author Heiner Lohaus
-
@author Author
/
/* - Shopware AdvancedMenu Plugin
- todo@all: Documentation
/
class Shopware_Plugins_Frontend_SwagTestCases_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
/*- Install plugin method
-
@return bool
*/
public function install()
{
$form = $this->Form(); $parent = $this->Forms()->findOneBy(array(‚name‘ => ‚Frontend‘)); $form->setParent($parent); $form->setElement(‚text‘, ‚categoryId‘, array( ‚label‘ => ‚ID der Kategorie‘, ‚value‘ => 0, ‚scope‘ => \Shopware\Models\Config\Element::SCOPE_SHOP )); $this->subscribeEvent(‚Enlight_Controller_Action_PostDispatch_Frontend_Index‘,‚onPostDispatchIndex‘); return true; } public function onPostDispatchIndex (Enlight_Event_EventArgs $args){ $view = $args->getSubject()->View(); $request = $args->getSubject()->Request(); $response = $args->getSubject()->Response(); if (!$request->isDispatched() || $response->isException() || $request->getModuleName() != ‚frontend‘) { return; } // Get category-id from plugin config $categoryId = $this->Config()->get(„categoryId“); // Id of temporary category // Get products that assigned in this category $getProducts = Shopware()->Modules()->Articles()->sGetArticlesByCategory($categoryId); // Modify template $templateCode = ’
{* Actual listing *} {foreach $sArticles as $sArticle} {include file=„frontend/listing/box_article.tpl“ sTemplate=$sTemplate lastitem=$sArticle@last firstitem=$sArticle@first} {/foreach}
'; // Assign products to template $view->assign($getProducts); // Define listing layout (1-col for default) $view->assign(‚sTemplate‘,‚listing-1col‘); // Extends template $view->extendsBlock(‚frontend_home_index_promotions‘,$templateCode,‚prepend‘); } }[/code]
Super, Danke. Werde mich demnächst damit beschäftigen. Vorher muß ich allerdings hier noch etwas rumstöbern und herausfinden, wie ich aus Deinem Code ein Plugin zaubern kann. Ich bin mit ShopWare zwar schon weit, aber dies ist vermutlich mein nächster notwendiger Schritt. Gruß Hansi
Jetzt habe ich wieder Zeit für dieses Problem. Das heißt also, dass ich anhand Deines Codes und mit Hilfe dieses Tutorials Grundlagen der Plugin-Entwicklung ein eigenes Plugin erstellen kann? Dieses sollte ich dann noch etwas anpassen, so dass es im Backend auch einen kompetenten Eindruck hinterlässt. Oder sehe ich das zu kompliziert und es gibt einen kürzeren Weg, den ich einschlagen sollte? Gruß Hansi