Okay, Danke dir, werde ich gleich versuchen. Schönes und stressfreies WE wünsche ich.
Hallo Stefan, muß das hier noch mal ausgraben. Leider funktioniert es nicht, wenn ich eine neue Hauptkategorie anlege und diese dem Artikel zuordne, er wird dann nicht ausgegeben. Der Artikel darf aber nirgends im Shop auftauchen. Evtl. hast du oder jemand anderes ja noch eine Idee.
Könnte ich nicht einfach in der Bootstrap nach inaktiven Artikeln und dem attr6 suchen?
Habe es jetzt in der Bootstrap.php mal mit einer 2. Attributsabfrage nach “active” gemacht, allerdings werden grundsätzlich nur Artikel angezeigt, die activ und in einer Kategorie des Shops sind. Kann man denn grundsätzlich nicht nach inaktiven Artikeln suchen? Ich habe auch schon versucht, nach die Kategorie abzufragen, habe dazu eine neue Hauptkategorie angelegt, und frage nach deren ID ab. Ich bekomme auch ein array, allerdings nur, wenn der Artikel dann auch in einer Kategorie des Shops liegt, genau das, was ich ja nicht möchte. Muß doch gehen das Ganze.
Könnte mir hier evtl. noch mal jemand helfen?
Stell nochmal deinen aktuellen Code ein und beschreib kurz und knapp, was derzeit nicht geht und was du möchtest
Bootstrap.php [code]<?php class Shopware_Plugins_Frontend_Gallerie_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
public function install()
{
$event = $this->createEvent( ‚Enlight_Controller_Action_PostDispatch‘, ‚onPostDispatch‘ ); $this->subscribeEvent($event); $form = $this->Form(); $form->setElement(‚checkbox‘, ‚right‘, array(‚label‘=>‚Anzeige rechts mittig‘,‚value‘=>false, ‚scope‘=>Shopware_Components_Form::SCOPE_SHOP)); $form->save(); return true; } public static function onPostDispatch(Enlight_Event_EventArgs $args) { $request = $args->getSubject()->Request(); $response = $args->getSubject()->Response(); $view = $args->getSubject()->View(); $config = Shopware()->Plugins()->Frontend()->Gallerie()->Config(); $view->GallerieConfig = $config; $view->addTemplateDir(dirname(__FILE__).’/templates/’); $view->extendsTemplate(‚frontend/plugins/gallerie/index.tpl‘); $attributToSearchFor = ‚attr6‘; $limit = 5; $sql = "SELECT a.id as id FROM s_articles a INNER JOIN s_articles_attributes at ON a.id = at.articleID LEFT JOIN s_articles_img ai ON a.id = ai.articleID WHERE ai.main=1 AND at.$attributToSearchFor = ‚1‘ ORDER BY rand() LIMIT $limit "; $dbData = Shopware()->Db()->fetchAll($sql); $result = array(); foreach ($dbData as $data){ if (!empty($data[„id“])){ $id = $data[„id“]; $tmpContainer = Shopware()->Modules()->Articles()->sGetPromotionById(„fix“,0,$id); if (!empty($tmpContainer[„articleName“])){ $result = $tmpContainer; } } } $args->getSubject()->View()->myProdList = $result; /* echo ’
'; var\_dump($args-\>getSubject()-\>View()-\>myProdList); echo '
'; */ } public function getInfo() { return array( ‚version‘ => „1.0“, ‚autor‘ => ‚Frank Nitsche‘, ‚copyright‘ => ‚Copyright © 2011 CarHifi-Store Bünde‘, ‚label‘ => „Gallerie“, ); } }[/code] Ich möchte: Einen Artikel anlegen, der nur ein Bild hat, einen Link, das attr6 gesetzt, und nicht im Shop auftaucht. Er muß keiner Kategorie zugeordnet sein. Ich möchte dann das Artikelbil, den Link und das attr6 abfragen können. Im Prinzip funktioniert das ja jetzt, allerdings nur wenn der Artikel aktiv ist und einer Kategorie zugeordnet ist, die im Shop angezeigt wird. Danke
Hallo, mal kurz ‘sGetPromotionById()’ angeschaut. Scheint damit nicht zu gehen, da hier die Kategorie berücksichtigt wird. Hätte einen Ansatz: [code] $config = Shopware()->Config(); $attributToSearchFor = ‘attr6’; $limit = 5; $sql = "SELECT a.id as articleID, a.name as articleName, at.attr7 as myLink FROM s_articles a INNER JOIN s_articles_attributes at ON a.id = at.articleID INNER JOIN s_articles_img as ai ON a.id = ai.articleID WHERE ai.main=1 AND at.$attributToSearchFor = ? ORDER BY rand() "; $sql = Shopware()->Db()->limit($sql, $limit); $dbData = Shopware()->Db()->fetchAll($sql, array(‘1’)); foreach ($dbData as $id => $record) { $dbData[$id][‘articleName’] = Shopware()->Modules()->Articles()->sOptimizeText($record[‘articleName’]); $dbData[$id][‘linkDetails’] = $config[‘sBASEFILE’] . ‘?sViewport=detail&sArticle=’ . $record[‘articleID’]; $dbData[$id][‘image’] = Shopware()->Modules()->Articles()->sGetArticlePictures($record[‘articleID’], true, 0, ‘’, false, false); } echo ’
'; var\_dump($dbData); echo '
'; $args->getSubject()->View()->myProdList = $dbData; } [/code] Aber erst mal warten. Evtl. hat ja jemand noch eine bessere Idee. PS.: Das wurde diesmal getestet. Also nicht nur drübergeschaut und kurzer Kommentar.
Der Ansatz ist gut Hätte dem jetzt spontan nichts hinzuzufügen.
Dickes Dankeschön an euch beiden, jetzt läuft es, perfekt. Man könnte doch bestimmt auch die Daten aus einer anderen Datenbank abfragen, oder? Wie stelle ich denn in der Bootstrap.php die Verbindung zu einer anderen db her? Schönen Sonntag Frank