Quantcast
Channel: Programmierung - Shopware Community Forum
Viewing all 2871 articles
Browse latest View live

Plugin-Konfiguration manuell speichern

$
0
0

Hallo, Konfigurationen eines Plugins kann man mit

Shopware()->Config()->getByNamespace('namespace', 'attribut_xyz')

auslesen. Gibt es auch eine Möglichkeit, die Attribute manuell zu setzen? Und zwar elegant und nicht mit einem handgestrickten Query. Es gibt ja den ConfigWriter, der ist aber eher für die Installation gedacht. Ich möchte ein Plugin-Config-Wert zu einem beliebigen Zeitpunkt verändern und speichern.

Hat jemand einen Rat? Danke.


Verständnisfrage zu ExtJS Emotions

$
0
0

Hallo zusammen,

ich versuche seit einigen Stunden zu verstehen, wie die Emotion von Shopware genau funktionieren, etwa am Beispiel vom Kategorie-Teaser (CategoryTeaser). Alle Emotion erweitern die Basisklasse "Shopware.apps.Emotion.view.components.Base". Dort werden beim Initialisieren (initComponent) die Elemente in den beiden FieldSets erstellt (me.createFormElements(), me.createGlobalFormElements()). Die beiden Funktionen wiederum beziehen die Informationen über die zu erstellenden Elemente über "settings (me.getSettings('fields', true) ... var settings = this.settings[type];).

Nun meine Frage: Woher kommt der Inhalt aus "this.settings"? Dort muss ja z.B. hinterlegt sein welche Elemente beim Kategorie-Teaser angezeigt werden. Der Teaser besteht u.a. aus dem Feld "CategorySelection". Jedoch finde ich imgesamten Code keiner Hinweis darauf, wo dieses Feld dem Teaser zugeordnet wird.

Ich wäre über eine Erklärung von euch sehr dankbar :-)

Paginierung mal mit mal ohne canonical tag?

$
0
0

Hallo,

eine Verständnisfrage.

Wie hier empfohlen: https://forum.shopware.com/discussion/comment/180626/#Comment_180626
hab ich in den SW-Einstellungen die Funktion der rel=next und prev tags aktiviert um paginierte Seiten vom Canonical Tag zu befreien. Soweit so gut. Nun soll vom SEO-Berater aus auf den Kategoriehauptseiten doch wieder ein Canonical erscheinen.

Gibts dafür eine einfache Möglichkeit ohne viel gefrickel?

 

Erklärung noch mal kurz an einem Beispiel:  Nehmen wir an wir haben einen Shop. TolleSchuhe.de der verkauft 2 Kategorien Männer- und Frauenschuhe. Unterhalb dieser Hauptkategorien verzweigen sich weitere Unterkategorien. Badelatschen, Highheels, Wanderstiefel usw. Auf allen Kategorieseiten ist die Paginierung aktiv, inklusive der rel=next und prev tags und es werden keine Canonicals erzeugt. Nun soll aber auf den beiden Hauptkategorien "Männer" und "Frauen" doch wieder ein Canonical erzeugt werden.

 

Danke und viele Grüße
rowa

[gelöst] config.xml combo multiSelect

$
0
0

tach zusammen,

bin dabei per config.xml die plugin-config zu erstellen.
siehe hier

läuft und ist soweit kein problem.

jetzt möchte ich allerdings eine combobox mit mehrfachauswahl haben.

altes plugin wäre so:

$form->setElement('combo', 'TEST', array(
	'label'=>'multiSelect',
	'multiSelect' => true,
	'valueField' => 'id',
	'value' => array(2,3),
	'store' => 'base.CustomerGroup',
	'scope' => \Shopware\Models\Config\Element::SCOPE_SHOP)
);
// ...
$this->Config()->get('TEST')->toArray(); // z.b. [2,3]

leider gibte es wohl in der schema/config.xsd keine angabe zu multiSelect.

gibt es derzeit einen weg combo::multiSelect zu verwenden, oder hab ich da was übersehen?

Logik Problem

$
0
0

Ich brauche Hilfe bei einem Logik Problem.

Ich schreibe mir gerade ein Plugin, um im Configurator Änderungen vorzunehmen. Zum einen möchte ich einen Link neben einem bestimmten Konfigurator und zum Anderen im Dropdown Menu schon Infos wie Artikelbestand oder Preis abbilden. Das Ganze funktioniert, aber ich habe einen Nebeneffekt, den ich nicht verstehe.

Ich habe frontend/detail/config_step.tpl extended und 2 Blöcke geändert. Diese Blöcke befinden sich innerhalb einer Foreach Schleife, die die Konfiguratoren abarbeitet sofern welche da sind.

Mein Problem ist, dass meine Blockänderung nun mindestens einmal durchlaufen. Blöderweise hat die  original frontend/detail/config_step.tpl dann doch Content in der Logik, nämlich einen ':'

Genau der wird nun, auch in nicht Konfigurator Artikeln ausgegeben. Ich verstehe nicht warum, denn wenn ich der Programmlogik folge, würde bei nicht Konfigurator Artikeln die config_step.tpl gar nicht aufgerufen. 

Die Lösung war, die frontend/detail/config_step.tpl komplett zu überschreiben, damit ich auch die Foreach Schleife drin habe, die leider nicht in einem Block lag, aber es behagt mir nicht mehr zu ändern als eigentlich nötig. Warum verhält sich Shopware so?

 

 

Backend Order -> Eigenes Tab mit Controller und Models

$
0
0

Hallo zusammen

Gemäss Dokumentation kann ein neues Tab integriert werden.
Wir haben es so geändert, dass bei der Bestellung dieses Tab erstellt wird.

Jedoch ist dieses Tab "leer" und wir möchten unsere erstellten Models und eigenen Controller verwenden.

Unsere Vermutung ist, dass dies beim app.js der Order integriert werden kann.
Jedoch wird beim Beispiel nur das Tab hinzugefügt.

//{block name="backend/order/application"}
// {$smarty.block.parent}
// {include file="backend/kmudo_test/view/detail/my_own_tab.js"}
//{/block}

Eine Lösung wäre eventuell noch via subscribeEvents den Order-Controller zu übersteuern, aber dort kann man ja nur vorhandene Funktione überschreiben oder extenden...
Beim Beispiel hier wird die PostDispatch erweitert

$this->subscribeEvent(
    'Enlight_Controller_Action_PostDispatch_Backend_Order',
    'onPostDispatchBackendOrderDetail'
);

Hat jemand eine Idee wie dies mit dem Beispielplugin von der Dokumentation eingerichtet werden kann?
Wir sond noch nicht weiter gekommen als statt Customer das Tab bei Order einzurichten...

Backend: Detail-Ansicht bei OneToMany Assoziation (Tutorial)

$
0
0

Hallo zusammen,

ich habe das Backend-Tutorial durchgearbeitet (https://developers.shopware.com/developers-guide/backend-components/associations/) und stoße bei der OneToMany-Assoziation auf ein Problem.

Leider ist im Tutorial nicht erklärt, wie man die Detail-Ansicht der Variants implementiert. Auch der Beispiel-Code hat diese Implementation nicht.

Hier: https://forum.shopware.com/discussion/39013/onetomany-assoziation-detail-ansicht wurde schon einmal ein Lösungsansatz präsentiert, leider funktioniert der nicht, weder bei mir noch wenn ich ihn in den Tutorial-Source-Code einarbeite. Das Detail-Fenster öffnet sich, beim Speichern kommt jedoch der Fehler "Cannot read property 'indexOf' of undefined". Hier: https://forum.shopware.com/discussion/32784/detailansicht-mit-listing-onetomany hatte mal jemand von einem gleichen Problem bei der Nutzung von OneToMany geschrieben.

Hat jemand einen funktionierenden Code-Schnipsel oder kann mir erklären, warum der Fehler auftritt? Gibt es irgendwo ein funktionierendes Beispiel des Backend-Tutorials mit den Variants?

Viele Grüße
Malte

Integrity constraint violation bei Artikel-Statistiken?

$
0
0

Hallo,

ich bekomme derzeit viele dieser Fehlermeldungen im Server-Log:

core.ERROR: exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-1-2017-05-02-desktop' for key 'articleId_2''

Hat jemand einen Anhaltspunkt, warum dieser Fehler geworfen wird? Es klingt ja so, als würde hier eine Statistik weggeschrieben werden, weil sich ein Artikel angeguckt wurde und des diesen Eintrag schon gibt. Aber warum wird dieser geworfen und noch wichtiger, wie kann ich das verhindern oder ist das ein Normalfall?


Template eines Legacy Plugins mit einem Plugin aus der neuen Struktur überschreiben

$
0
0

Hallo zusammen,

ich versuche ein Template des Advanced Cart Plugins anzupassen (Ein Button im Account neben dem "Alle Artikel in den Warenkorb" Button) .

Und zwar benutze ich die neue Plugin Struktur (custom/plugins/MEINPLUGIN). 

In der Bootstrap habe ich dann ganz normal die template dir hinzugefügt:

public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Frontend_Account' => 'onPostDispatchAccount',
        ];
    }


    public function onPostDispatchAccount(\Enlight_Event_EventArgs $args)
    {
        /** @var \Shopware_Controllers_Frontend_Account $subject */
        $subject = $args->getSubject();
        /** @var \Enlight_View_Default $view */
        $view = $subject->View();
        $view->addTemplateDir(
            $this->getPath() . DIRECTORY_SEPARATOR . 'Resources' . DIRECTORY_SEPARATOR . 'views'
        );

    }

Die .tpl die ich überschreiben will ist Plugins\Community\Frontend\SwagAdvancedCart\Views\frontend\wishlist\restore_button.tpl

also habe ich analog dazu auch die custom\plugins\WabsoluteExtendedAdvancedCart\Resources\views\frontend\wishlist\restore_button.tpl

angelegt und den einzigen block darin überschrieben.

{extends file="parent:frontend/wishlist/restore_button.tpl"}
{block name="frontend_wishlist_index_list_main_buttons_add"}
    <a href="{url controller=wishlist action=restore id=$wishList.basketID}" class="manage-buttons--button btn is--primary{if $wishList.items|count <= 0} cart--hidden{/if}">
        {s namespace="frontend/plugins/swag_advanced_cart/plugin" name='AllIntoBasket'}Alle Artikel in den Warenkorb{/s}
    </a>

    <a href="#">TEST</a>
{/block}

Plugin installiert , alles gut.  NIchts neues eigentlich nur scheint das Plugins mit Plugins Überschreiben entweder irgendwie anders zu funktionieren oder garnicht!?

Habe ich vielleicht was übersehen?

VIelen Dank schonmal im Voraus!

Anfrage Formular Parameter werden indexiert

$
0
0

Hallo zusammen,

ich habe das Problem, dass beim Anfrageformular das Formular selbst bzw. auch die Parameter selbst indexiert werden: /anfrage-formular?sInquiry=detail&sOrdernumber=XXXXXXX

Meta steht auf "index, follow" und Sistrix zeigt 60 indexierte Seiten an, die mit /anfrage-formular? beginnen und dann verschiedene Parameter angehangen haben.

Wie unterdrücke ich dies bzw. wie kann ich das index zu noindex ändern?

Reicht es, die unter "SEO Noindex Querys" einzugeben?

Danke!

Backend Modul Feld hinzufügen: Einstellungen/Grundeinstellungen/Shopeinstellungen/Stammdaten

$
0
0

Hallo zusammen,

ich möchte im Backend unter unter Einstellungen > Grundeinstellungen > Shopeinstellungen > Stammdaten gerne ein weiteres Feld hinzufügen. Meines Wissens funktioniert das nicht über die Freitextverwaltung, sondern über die Erweiterung eines Backend-Moduls. Gibt es hierfür irgendwo eine Doku bzw. an welchen Erweiterungspunkten muss ich einhaken?

 

Vielen Dank und beste Grüße
Michael

Listing/Body-Klasse in eigenem Plugin

$
0
0

Hallo zusammen,

ich habe derzeit folgendes Problem:
In einem eigenen Plugin wird als Ausgabe ein einfaches Produktlisting ausgegeben, welches im Großen und Ganzen auch komplett auf dem Standard-Listing (Template) basiert. Leider wird das Listing im FE unter der Subnavi (Sidebar) dargestellt, weil die CSS-Klassen dafür fehlen. Nun könnte ich logischerweise im CSS die fehlenden Angaben aus dem Standard-CSS übernehmen, halte das aber in Hinblick auf Änderungen in Updates für keine so gute Idee. Viel mehr wäre es - so denke ich - besser die relevante Body-Klasse "is--ctl-listing" hinzuzufügen, somit hätte mein Plugin-Listing die gleiche Darstellung wie das Default-Listing. Habe ich innerhalb meines Plugins die Möglichkeit Body-Classes hinzuzufügen? Oder bleibt mir wirklich nur der Weg über das eigene CSS?

Checkbox not required, Datenschutzbestimmung deakivieren

$
0
0

Hallo,

folgender Sachverhalt:

Im Checkout-Prozess befindet sich eine Checkbox "Hiermit akzeptiere ich die Datenschutz-Bestimmungen". Den Text will ich behalten, die Checkbox soll aber weg.

Den notwendigen Schnipsel hab ich unter frontend/index/footer.tpl gefunden:

{* Privacy checkbox *}
                    {if !$update}
                        {if {config name=ACTDPRCHECK}}
                            {block name='frontend_register_index_input_privacy'}
                                <div class="register--privacy">
                                    <input name="register[personal][dpacheckbox]" type="checkbox" id="dpacheckbox"{if $form_data.dpacheckbox} checked="checked"{/if} required="required" aria-required="true" value="1" class="chkbox is--required" />
                                    <label for="dpacheckbox" class="chklabel{if isset($errors.personal.dpacheckbox)} has--error{/if}">{s name='RegisterLabelDataCheckbox'}{/s}</label>
                                </div>
                            {/block}
                        {/if}
                    {/if}

Ich dachte ich kann nun einfach das <input ...> entfernen. Die Checkbox wird auch nicht mehr angezeigt. Allerdings erfolgt noch irgendeine Prüfung, ob das Feld gesetzt ist und ich komme im Frontend nicht weiter.

Versuche mit "not-required " "false" oder "0" haben auch nichts gebracht.

Kann mir jemand sagen, wie ich diese Checkbox entfernen kann bzw. die Validierung abstelle?!

Danke im Voraus

Shopware-Version: 5.2.20

Redirect aus eigenem Controller - wie werte zurückgeben?

$
0
0

Hallo,

ich habe einen eigenen Controller registriert, der aus einer Form unter account/supplierOrders mit 

&lt;form action="{url controller="DemandPlanning" action="supplierOrders"}" method="post"&gt;

angesprochen wird. In dem Controller habe ich eine supplierOrdersAction definiert. Das funktioniert. Wenn die Form ausgeführt wird, wird danach /DemandPlanning/supplierOrders geöffnet.

Ich möchte aber, dass account/supplierOrders geöffnet wird, jedoch mit meinem Ergebnis aus meinem Controller. Nun habe ich einen Redirect am Ende der supplierOrdersAction definiert:

$this-&gt;View()-&gt;assign('orders', $orders);
​return $this-&gt;redirect([
                'controller' =&gt; 'account',
                'action'    =&gt; 'supplierOrders'
            ]);

Durch den Redirect habe ich in meinem Template unter account/supplierOrders aber keinen Zugriff mehr auf die Variable $orders. Wie bekomme ich es denn hin, dass ich aus meinem Controller zum account zurückleite, aber mit meinen Werten?

P.S: Alternativ, um die URL Struktur beizubehalten, könnte ich auch die eigene Action im Controller Account ablegen, aber wie erweitere ich einen Shopware-Controller um eine eigene Methode?

Wäre super, wenn hier jemand einen Ratschlag hat. Danke!

Blog.less bearbeiten, Blog Artikel ausgewähltes Vorschau-Bild Größe ändern

$
0
0

Hallo Fachwelt,

ich möchte in der blog.less den Wert width: 100% rausnehmen. Zeile ca. 272

 

    .blog--image {
        .unitize-padding(10, 10, 10, 10, 16);
        width: 100%;
    }

Das habe ich auch gemacht und meine blog.less danach in meiner all.less eingetragen. Die Änderung wird auch erkannt aber leider nicht umgesetzt da die unitize.less dazwischen funkt.

unitize.less:57
.blog--detail .blog--image {
    padding: 10px 10px 10px 10px;
    padding: .625rem .625rem .625rem .625rem;
}
panel.less:59
.panel.has--border {
    border: 0px solid #dadae5;
}
unitize.less:57
.blog--detail .blog--image {
    padding: 10px 10px 10px 10px;
    padding: .625rem .625rem .625rem .625rem;
    width: 100%;

Was muss ich denn wo noch ändern, damit die Anpassung auch umgesetzt werden kann?

Danke im Voraus.

Grüße
Michael


Navigation Kategorien - Unterkategorien ohne Link

$
0
0

Hallo,

ich hätte mal eine Frage zu der Navigation auf der folgenden Seite https://www.gaastraproshop.com

Im advandced Menü z.B. bei Herren sind "Kategorien" und "Themen" zu sehen. Dies sind scheinbar keine richtigen Unterkategorien, da dies keine Links sind. Ich hoffe ich drücke mich einigermaßen verständlich aus.

Solch eine Aufteilung ohne extra Unterkategorien zu erstellen, würde ich auch gerne umsetzten.

 

Hat jemand eine Idee wie dies mit einem Plugin oder andersweitig umzusetzen ist?

 

 

Link zum Produkt in E-Mail bei Anfrage zum Produkt

$
0
0

Hi,

Artikel-Ansicht -> Link "Fragen zum Produkt -> Formular wird abgeschickt.

In der E-Mail steht standardmäßig der Name des Produktes. Wie kann man daraus einen Link zum Produkt machen? Schön wäre auch noch ein Bild des Produktes.

Vielen Dank

CodeKit 3 und Shopware 5.2

$
0
0

Hallo zusammen,

hat sich bereits jemand von euch die Mühe gemacht und für CodeKit 3 und Shopware 5.2 eine funktionierende Config-File erstellt? Für Hinweise wäre ich sehr dankbar ;-) Ich bin äußerst unglücklich mit der aktuellen lokalen Grunt-Kompilierung (Ø 4s).

Vielen Dank und beste Grüße
Michael

Formularfeld Value vorbelegen mit Variable

$
0
0

Ich habe das auch versucht aber mit

 

image

Erreiche ich nur das Ergebnis bei Eintrag als Kommentar wird die Variable aber ausgegeben.
Wie bekomme ich den Wert in den value Eintrag?

image

Best Practise Datenbank Abfrage eines Plugins

$
0
0

Hallo zusammen,

Ich suche mehr Dokumentation bzw. eine Lösung wie ich Plugin Datenbank Abfragen aus einem anderen Plugin stellen kann. Konkret will ich mit meinem Plugin (meinplugin) Daten aus einem anderen Plugin (einplugin) abfragen, welche in der Tabelle s_plugin_einplugin_tabelle1 liegen. Im anderen Plugin (einplugin) gibt es auch Models für die Datenbank Einträge.

Auch ist mir der Best Practise Ansatz hierzu noch nicht klar - frage ich die Daten mittels einer SQL Abfrage ab oder lieber über einen Entity Manager?

 

Vielen Dank schonmal im Vorraus für eure Hilfe!

Viewing all 2871 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>