Blog Detailseite Plugin: Welches Event und wie komme ich an die Attribute?

Hi Zusammen,

ich schreibe gerade ein Plugin, um Wordpress Blogpost Content auf der Shopware Blog Detailseite einzubinden.

Dazu habe ich folgende Fragen:

Auf welches Event muss ich mich subscriben, wenn ich Smarty Variablen auf einer Blog Detailseite assignen möchte?
Bei den Kategorieseiten ist das ja „onFrontendPostDispatch“. Ist das bei den Blogdetailseiten das gleiche Event?

Wie kann ich auf meine Attribute zugreifen?

Das Attribut für die Blogdetailseite definiere ich folgendermassen:

 

        $service->update('s_blog_attributes', 'wordpressposts_postnumber', 'string', [
            'label' => 'Wordpress Post Nummer zum Einfügen',
            'displayInBackend' => true,
            'position' => $tmp_position++,
        ]);

Wie komme ich jetzt an die Attribute? Für die Shopkategorien geht das so:

 

    public function onFrontendPostDispatch(\Enlight_Controller_ActionEventArgs $args)
    {
        $view = $args->getSubject()->View();
        $cat_attr = $view->sCategoryContent['attribute'];

Was würde ich für die Blogattribute anstelle von „$view->sCategoryContent[‚attribute‘]“ verwenden?

Kann das leider in der Doku und im Forum nicht finden.

Vielen Dank und gute Nacht,

Jens

Hallo,

ich verzweifle langsam. Ich habe ein Attribut in “s_blog_attributes” angelegt, aber ich habe 
keine Ahnung, wie ich in meinem Plugin darauf zugreifen soll.

Habe schon sehr viel probiert, aber es klappt nix. So wahnsinnig komplex kann das ja nicht sein.
Mit den Produkten und den Kategorien klappt es super, aber mit Blogartikel. Dokumentation zu dem Problem finde ich 
keine und im Shopware Buch finde ich auch keine Hilfe.

Muss ich wirklich über ein Mysql Kommando direkt auf die Datenbank zugreifen, um die Blog Attribute auszulesen?

Dann ist dieser ganze CRUD Service aber unnötig, denn kann könnte ich direkt alles in der Datenbank machen.

Gruss

Jens
 

Die Variablen werden wie folgt zugewiesen:

$view->assign('name_der_variable', $wertDerVariable);

 

1 „Gefällt mir“

Danke, aber ich suche etwas anderes:

Ich habe in der install Methode meines Plugins ein Blog Detail Attribut erstellt. Jetzt möchte ich der Event Funktion meines Plugins darauf zugreifen, aber habe keine Ahnung wie das gehen soll, ausser direkt mit sql auf die Tabelle s_blog_attributes zuzugreifen. 

 

Wie ich smarty variablen definiere ist mir klar.

Kann jemand helfen?

Kommst du an die Attribute nicht so dran?

$service = $this->container->get('shopware_attribute.crud_service');

$meinAttribut = $service->get('s_blog_attributes', 'meinAttribut');

 

1 „Gefällt mir“

@NextMike schrieb:

Kommst du an die Attribute nicht so dran?

Leider nein, wenn ich mir die Variable $meinAttribut im Debugger ansehe, finde ich nur Metadaten über das Attribut selbst, aber nicht den Wert des Attributs.

Hier die Variable im Debugger:

 

Shopware\Bundle\AttributeBundle\Service\ConfigurationStruct::__set_state(array(
   'id' => 55,
   'label' => 'Wordpress Post Nummer zum Einfügen',
   'helpText' => NULL,
   'supportText' => NULL,
   'position' => 200,
   'displayInBackend' => true,
   'custom' => false,
   'configured' => true,
   'translatable' => false,
   'tableName' => 's_blog_attributes',
   'columnName' => 'wordpressposts_postnumber',
   'defaultValue' => NULL,
   'identifier' => false,
   'core' => false,
   'columnType' => 'string',
   'elasticSearchType' => 
  array (
    'type' => 'string',
  ),
   'dbalType' => 'string',
   'sqlType' => 'VARCHAR(500)',
   'entity' => NULL,
   'arrayStore' => NULL,
))

 Manchmal habe ich schon den Eindruck, dass Shopware viel komplizierter programmiert ist, als es sein müsste …

So geht es, aber schön finde ich es nicht:
 

        $blog_id = $view->sArticle['id'];


        //get attribute from database
        $select = '
				SELECT wordpressposts_postnumber
				FROM s_blog_attributes
				WHERE blog_id = ?';

        $blog_details = Shopware()->Db()->fetchRow($select, array($blog_id));
        $wordpressposts_postnumber = $blog_details['wordpressposts_postnumber'];

Viele Grüsse

Jens

Mal eine andere Idee? Werden die Attribute nicht sowieso automatisch assigned?

Bei den Kategorien und den Produkten glaube ich schon. Bei den Blogartikeln anscheinend nicht.
Habe mir mit {debug in Smarty alle Variablen angeschaut und meine Attribute sind nicht automatisch dabei. Das muss man anscheinend immer selbst mit assign im Plugin zuweisen.

Na ja, der Weg über die DB ist auch nicht so schlecht.