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

Box für Zahloptionen nach Sprache anpassen

$
0
0

Hallo zusammen.

Ich habe eine Box in der aufgelistet wird welche Zahlungsoptionen der Shop anbietet. Allerdings hat mein Vorgänger das ziemlich dreckig programmiert und ich bin gezwungen das einfach hart in die Datei zu schreiben wie ich es auch schon im footer gemacht habe :

https://gist.github.com/anonymous/66c39881125f7e209c3c8d0173249e33

Nun möchte ich das selbe Prinzip also :

{if in_array(substr($smarty.server.REQUEST_URI, 0, 4), array('/nl', '/nl/')) eq true}
     text NL
{else}
   text DE
{/endif}

Auf die Datei anwenden die für diese Box zuständig ist (sidebar.tpl) und diese müsste dann so aussehen :

{extends file="parent:frontend/index/sidebar.tpl"}

 {block name='frontend_index_left_categories' append}

{if in_array(substr($smarty.server.REQUEST_URI, 0, 4), array('/nl', '/nl/')) eq true}
<div class="side-nav-z-block">
<div id="payment-side-nav">Wir bieten Ihnen folgende Zahlungsmöglichkeiten:</div>
<ul>
 <li><i class="fa fa-check"></i>  PayPal</li>
 <li><i class="fa fa-check"></i>  Sofort Überweisung</li>
 <li><i class="fa fa-check"></i>  Kauf auf Rechnung</li>
 <li><i class="fa fa-check"></i>  Vorkasse</li>
</ul>
</div>
{else}
<div class="side-nav-z-block">
<div id="payment-side-nav">Wir bieten Ihnen folgende Zahlungsmöglichkeiten:</div>
<ul>
 <li><i class="fa fa-check"></i>  PayPal</li>
 <li><i class="fa fa-check"></i>  Sofort Überweisung</li>
 <li><i class="fa fa-check"></i>  Kauf auf Rechnung</li>
 <li><i class="fa fa-check"></i>  Vorkasse</li>
</ul>
</div>
{/endif}

{/block}

Wenn ich das hochlade sagt mir der Shop aber das ein Fehler aufgetreten ist und der Anbieter schon informiert ist bla bla.

Was mache ich falsch ?

LG

 


Versandoption

$
0
0

Hallo Shopware Gemeinde,

Ich bin auf der Suche nach Versandoptionen. Da wir eigentlich nur Spedition Artikel liefern.

Kunde kauft einen Artikel für Speditionversand.

Dann soll es möglich sein im Checkout das der Kunde noch Zusatzoptionen angezeigt bekommt. 

Siehe Foto:

image

 

Ich denke mal Standardversand, Wunsch-Zeitraum, Fixtermin, Express-Lieferung jeweils als eigenen Versandoption aber wie bekomme ich dann diese Freitextfelder dargestellt, wenn er die Option wählt?

Dann benötigt man ja noch allgemeine Checkboxen für Benachrichtigungsoptionen.

 

Hat sowas schon jemand gemacht? Oder könnte jemand sowas für uns umsetzen? (Natürlich gegen Bezahlung)

 

Wäre um jede Hilfe dankbar.

 

Viele Grüße aus Niederbayern

Grosse Datenmenge mit SELECT, Artikel über SW API erstellen

$
0
0

Guten Tag,

  • Ich habe ein eigenes Datenmodell und eine dazugehörige MySQL Tabelle erstellt (h_Article).
  • Diese Daten sollen über den SELECT Query später noch gefiltert werden und per Shopware Article API Manager gespeichert werden.

 

Das funktioniert soweit, aber die Aktion bricht nach ca. 2500 gespeicherten Artikeln ab (insgesamt ca. 240'000). Womöglich weil das Memory vollgelaufen ist. Eher kein Timeout, da der Task ca. >10 Minuten gelaufen ist.

 

$resource = new Client();
$sql = "SELECT * from h_Article";
$result = Shopware()->Db()->query($sql);

foreach ($result as $article) {
    $resource->addArticleInformation($article);
}

 

Der Methode addArticleInformation werden die einzelnen Artikel aus dem SQL Result übergeben und von da aus werden diese über die SW API gespeichert.
 

Wie kann der Code optimiert werden, dass beispielsweise Zeile für Zeile selektiert und importiert wird, um das Memory zu schonen?

 

 

EDIT: Soeben habe ich gerade folgende Errormessage erhalten, es scheint also defintiiv das Memory-Limit zu sein.


Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4536001 bytes) in C:\htdocs\incocare.ch\engine\Shopware\Components\Thumbnail\Generator\Basic.php on line 221

wie frontend_index_header_javascript_inline updatesicher aufbauen?

$
0
0

Hi,

bin neu in der shopware-welt und versuche mich noch an der Smarty-Logik mit den Block.

Ich möchte gerne den "frontend_index_header_javascript" block in der index.tpl überlagern. Also nicht append oder prepend. Leider verschwindet dann auch der innere Block "frontend_index_header_javascript_inline". Den kann ich natürlich einfach aus den Bare Template kopieren, aber um mehr Updatekompatibel zu bleiben, hätte ich da gerne den aus "appendet".

Und das geht nicht. Kann mir jemand erklären warum ?
Hier meine Versuche:

{block name="frontend_index_header_javascript"}
	<script type="text/javascript">
		alert(1);
		{block name="frontend_index_header_javascript_inline" append}
			alert(2);
		{/block}
	</script>

	{if $theme.additionalJsLibraries}
		{$theme.additionalJsLibraries}
	{/if}
{/block}

Script Tag ist sauber geschrieben, wird nur hier im Forum umgewandelt.

Alert 1 wird angezeigt, Alert 2 nicht. Dementsprechend auch nicht im finalen generierten Code enthalten.

Habe append entfernt und alert(2) ersetzt durch {$smarty.block.parent} mit dem ergebnis, das ich den kompletten "frontend_index_header_javascript" im Inline habe.

block.parent bezieht sich also nicht auf den inneren Block, sondern auf den gesamten.

Die einzige Möglichkeit die header_javascript zu überlagern habe ich nur, wenn ich den kompletten inneren Block mitkopiere, was aber doof ist, fals sich im Bare Template was an den nicht unerheblichen javascript_inline was ändert.

Hab ich was übersehen, oder kann man innere Blöcke nicht überlagern, wenn man den äußeren Block ändern möchte?

Vieleicht kann mir ja da jemand helfen.

gruß
Martin

PS: Rechtschreibfehler bitte ignorieren, bin neu im Forum und schreibe den Text nicht gerade zum ersten mal :-(

Kategoriebild wird in neuer Sprache nicht angezeigt

$
0
0

Schönen guten Morgen zusammen.

Ich habe eine neue Sprache (niederländisch) zu meinem Shop hinzugefügt. Dort möchte ich natürlich auch Kategoriebilder wie in der deutschen Version nutzen aber diese werden wenn ich diese auf dem selben Wege einfüge wie auf der deutschen Seite nicht angezeigt.

Hat jemand eine Idee ?

LG

Eigener Bestellstatus - Fenster für Email-Versand öffnet sich nicht.

Gutschrift Event

$
0
0

Hallo Zusammen,

ich muss leider einen Sonderschritt bei der Erzeugung einer Gutschrift einlegen.

Shopware System ist die 5.2.23.

Leider schaffe ich es nicht die Funktion abzufangen.

Bei Zahlungen gibt es ebenfalls einen sonder Schritt das habe ich geschafft.

Derzeit versuche ich das in dem ich im Plugin Verzeichnis im Controller Verzeichnis "Backend/xxxxx.php" angelegt habe. 

Dort habe ich es mit der Class  "Shopware_Controllers_Backend_Application" und der RefundAction() versucht aber ich hatte keinen Erfolg. 

Vielleicht kann mir jemand an dieser Stelle helfen.

Backend -Artikelliste Erweiterung durch eigenes Model?

$
0
0

Hallo zusammen,

ich habe ein Problem mit der Erweiterung der Artikelliste im Backend. Mit Artikel-Attributen bekomme ich das relativ einfach hin. Nun möchte ich aber eine Spalte mit dem Inhalt eines eigenen Models integrieren und auch filterbar machen.

Ich habe ein Model custom/plugins/FpDemandPlanning/Models/Supplier.php -> hier habe ich das Feld $name, welches ich auslesen will.

Ich habe mich nun an diese beiden Events gehängt:

'SwagMultiEdit_Product_DqlHelper_getColumnsForProductListing_filterColumns' => 'filterBackendArticleColumns',
'SwagMultiEdit_Product_DqlHelper_getJoinColumns_filterColumns' => 'joinBackendArticleColumns',

public function filterBackendArticleColumns(\Enlight_Event_EventArgs $args) {
    $result = $args->getReturn();

    $shownColumns = $args->get('defaultColumns');
    $columnPositions = array_flip($shownColumns);

    $alias = 'FpDemandPlanning_Supplier';
    $result['FpDemandPlanningSupplier'] = array(
        'entity' => 'Supplier',
        'field' => 'name',
        'editable' => false,
        'type' => 'string',
        'nullable' => true,
        'allowInGrid' => true,
        'columnName' => 'name',
        'alias' => $alias,
        'table' => 'fp_demand_planning_supplier',
        'show' => in_array($alias, $shownColumns),
        'position' => array_key_exists($alias, $columnPositions) ? $columnPositions[$alias] : -1,
    );

    return $result;
}

public function joinBackendArticleColumns(\Enlight_Event_EventArgs $args) {
    $join = $args->getReturn();

        $join['FpDemandPlanning\Models\Supplier'] = 'FpDemandPlanning\Models\Supplier';

    return $join;
}

Den /Shopware/Components/MultiEdit/Resource/Product/DqlHelper.php habe ich wie folgt erweitert, um die Spalte mit Daten zu füllen.

public function getDefaultColumns()
{
    $columns = parent::getDefaultColumns();
    $columns[] =  'FpDemandPlanning_Supplier';

    return $columns;
}

public function getProductForListing($detailId) {
    $article = parent::getProductForListing($detailId);

    $articleObj = $this->getModelManager()->find(Article::class, $detailId);

    $service = $this->container->get('fp_dashboard.dashboard_service');
    $supplier = $service->getArticleFpSupplier($articleObj);
    $article['FpDemandPlanning_Supplier'] = $supplier['name'];

    return $article;
}
Beim Aufruf der Artikelliste erhalte ich nun folgende Fehlermeldung in SW:

Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. [Semantical Error] line 0, col 147 near 'WHERE detail.kind': Error: Class 'WHERE' is not defined. in vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php on line 63 Stack trace: #0 

Ich habe danach nachgesehen, woher das detail.kind überhaupt kommt, und sehe hier im DqlHelper.php die Funktion getDqlFromTokens, dort werden die Tokens durchgegangen und bei ISMAIN steht:

case 'ISMAIN':
    $newTokens[] = ' detail.kind = 1 ';
    continue 2;

Ich glaube, ich muss nun in der SwagMultiEdit_Product_DqlHelper_getJoinColumns_filterColumns die tokens ermitteln und auf Basis der Tokens überhaupt den Join durchführen, aber was sind die Tokens überhaupt? Muss ich ggf einen eigenen Token definieren, der nichts weiter mit meiner SQL macht? Wie kann ich das hier lösen, das er bei einem Token gar nichts macht, außer das er mir mein Ergebnis liefert und dieses filterbar ist?

Das ist ein etwas komplexeres Thema und ich hoffe jemand liest sich das Ganze durch kann mir helfen ;-)

Danke!


frontend/detail/index.tpl lässt sich durch Plugin nicht überschreiben - andere hingegen schon

$
0
0

Hallo Community,

ich möchte in einem Plugin frontend/detail/index.tpl erweitern.

 

Dazu habe ich eine index.tpl mit folgendem Code (Views/frontend/detail/index.tpl):

{extends file='parent:frontend/detail/index.tpl'}

{block name='frontend_detail_index_name'}dasdas{/block}

Jeodch greifen die Änderungen nicht.

 

Im Listing hingegen schon (Views/frontend/listing/index.tpl):

{extends file='parent:frontend/listing/index.tpl'}

{block name='frontend_index_content'}dasdas{/block}

 

Relevanter Bootstrap Code:

 public function onFrontendPostDispatch(Enlight_Event_EventArgs $args)
 {
        /** @var \Enlight_Controller_Action $controller */
	$controller = $args->get('subject');
	$view = $controller->View();
	$view->addTemplateDir(
		__DIR__ . '/Views'
	);
}

 

  • Ich arbeite mit dem Responsive Theme - daher kein Vererbungsproblem
  • Die Pfade könnt ihr im Screenshot anschauen
  • Habe ich einen Rechtschreibfehler?
  • Datei ist auch hochgeladen und liegt korrekt auf dem Server - Cache wurde geleert

 

image

Registriere eigene Smarty Funktion mit Plugin (nicht Theme)

$
0
0

Ich hab ein Plugin welches Bare Template Dateien an einigen Stellen erweitert. Nun möchte ich in diesen Templates ein eigenes Smarty-Function-Plugin nutzen. Ich habe laut Anleitung die PHP-Datei /custom/plugins/<MyPlugin>/Resources/Views/_private/smarty/function.getSomething.php erzeugt und möchte sie nun in einem Template mit {getSomething variable="v"} benutzen erhalte aber die Meldung dass das Tag getSomething nicht vorhanden ist. Ich denke mal ich muss das Smarty Plugin irgendwie registrieren aber wo/wie?

Konfiguration für Plugins > 5.2

$
0
0

Hallo,

Weiß jemand wie man die Config für Plugins nach dem 5.2 Schema anlegt? Ist es über das XML möglich?

Danke & LG

wie kann man diesen Fehler: HTTP_X_FORWARDED_FOR & HTTP_FORWARDED Header - beheben

$
0
0

Hallo!

S. g. Team

bräuchte für einen WebSpace eine Lösung, wie hier im

https://issues.shopware.com/issues/SW-17908

beschrieben, gibt es einen Fehler im Load-Balancer und der gehört

Es wird eine ConflictingHeader Exception geworfen wenn der HTTP_X_FORWARDED_FOR & HTTP_FORWARDED Header gesetzt sind. 

http://symfony.com/doc/current/request/load_balancer_reverse_proxy.html https://github.com/symfony/symfony/issues/20215https://github.com/contao/standard-edition/issues/45

ich habe hier eine Lösung gefunden:
https://github.com/symfony/symfony/pull/22238#issuecomment-312385099

ich weiss aber nicht an welcher Stelle und in welchem File das zu ändern ist:

siehe hier
@petereth it's in the issue description: https://symfony.com/blog/fixing-the-trusted-proxies-configuration-for-symfony-3-3, or alternatively you can just update (Sf 3.1.1 and 3.1.2 have already been released)

bitte um Hilfe

danke

lg

Peter Polz

Wie kann ich die Konfiguration meines Emotions-Plugins übersetzbar machen?

$
0
0
Ich habe eine Emotionskomponente für die Shopping-Welten mit dem Shopware 5.2 Plugin System erstellt
Meine Komponente funktioniert ganz gut.
Allerdings möchte ich gern die Konfigurationsform der Emotionskomponente übersetzbar haben.
Ich konnte keine Dokumentation finden, noch irgendwelche Fragen / Antworten mit Google in Bezug auf diesen Fall.
Ich kann ganz einfach die Konfigurationsoptionen des Plugins mit der Datei config.xml übersetzen, aber die
Emotionskomponente scheint keine Übersetzungen so direkt zuzulassen.

Hier ist der essentielle Teil meines Emotions-Plugins

custom/plugins/MyxEmotion/MyxEmotion.php

class MyxEmotion extends Plugin
{
...
    public function install(InstallContext $context)
    {
        $this-&gt;createEmotionComponent();
        return true;
    }

    public function createEmotionComponent()
    {
        /** @var \Shopware\Components\Emotion\ComponentInstaller $installer */
        $installer = $this-&gt;container-&gt;get('shopware.emotion_component_installer');
        $component = $installer-&gt;createOrUpdate(
            $this-&gt;getName(),
            'Myxemotion',
            [
                'name' =&gt; 'Myxemotion',
                'template' =&gt; 'myx_emotion',
                'xtype' =&gt; 'myx-emotion',
                'cls' =&gt; 'myx-emotion',
                'description' =&gt; 'A emotion component element for the shopping worlds.'
            ]
        );

    $component-&gt;createTextField([
            'name' =&gt; 'level1_background_image_url',
            'fieldLabel' =&gt; 'Level 1 background image URL',
            'supportText' =&gt; 'To show a background image',
            'defaultValue' =&gt; 'http://...',
            'allowBlank' =&gt; false
        ]);
...

custom/plugins/MyxEmotion/Resources/snippets/backend/emotion/view/components/myx_emotion.ini

[En_US]
morelink = '"More..." link, destination'
level1_background = 'Display level 1 background image ?'

[De_DE]
morelink = '"Mehr..." link, destination'
level1_background = 'Display Level 1 hintergrundbild?'

custom/plugins/MyxEmotion/Resources/views/emotion_components/backend/myx_emotion.js

//{namespace name=plugins/backend/emotion/view/components/myx_emotion}
Ext.define('Shopware.apps.Emotion.view.components.MyxEmotion', {

    extend: 'Shopware.apps.Emotion.view.components.Base',

    alias: 'widget.myx-emotion',
    /**
     * The constructor method of each component.
     */
    initComponent: function () {
       var me = this;
       me.callParent(arguments);
    }

});
Nach der Installation des Plugins, wenn ich mir die Snippets anschaue, finde ich die Übersetzungen in der Ini-Datei.
Aber wie kann ich diese Snippets mit meinen Werten in der Konfiguration der Emotionskomponente verbinden?
Das scheint so eine triviale Sache zu tun, aber ich kann keine Dokumentation finden, wie man es wirklich macht.

 

Controller Auto Registrierung

$
0
0

Hallo,

Ich lerne gerade die Plugin Entwicklung für Shopware, allerdings scheitert es gerade schon dabei einen Controller zu registrieren. Ich habe einen Ordner namens NigelControllerTest innerhalb von custom/plugins. Im folgenden ist der minimale Code mit dem ich versuche einen Controller zu registrieren:

NigelControllerTest/NigelControllerTest.php :

&lt;?php
/**
 * Created by PhpStorm.
 * User: Nigel
 * Date: 25.07.2017
 * Time: 18:00
 */

namespace NigelControllerTest;

class NigelControllerTest extends \Shopware\Components\Plugin
{
}

NigelControllerTest/Controllers/Frontend/Test.php :

&lt;?php
/**
 * Created by PhpStorm.
 * User: Nigel
 * Date: 25.07.2017
 * Time: 18:34
 */

class Shopware_Controllers_Frontend_Test extends \Enlight_Controller_Action
{
    public function indexAction()
    {
        die('Hello world');
    }
}

soweit ich das verstanden habe müsste nach der Installation des Plugins und dem Leeren des Caches, beim Aufruf der URL http://my-shop.com/frontend/test/index nur der Text 'Hello World' angezeigt werden, allerdings werde ich nur auf die Default Seite weitergeleitet, die auch bei http://my-shop.com angezeigt wird. http://my-shop.com habe ich natürlich durch meine eigene Domain ersetzt, ich habe auch schon verschiedene Kombinationen an Groß- und Kleinschreibung in der URL probiert. Außerdem habe ich versucht den Controller in der install Methode manuell zu registrieren :

&lt;?php
/**
 * Created by PhpStorm.
 * User: Nigel
 * Date: 25.07.2017
 * Time: 18:00
 */

namespace NigelControllerTest;

use Shopware\Components\Plugin\Context\InstallContext;

class NigelControllerTest extends \Shopware\Components\Plugin
{
    public function install(InstallContext $context)
    {
        $this-&gt;registerController('frontend', 'test');
        return true;
    }
}

dabei schlägt die Installation jedoch fehl, vermutlich da die Funktion registerController in dem neuen Plugin-System nicht mehr vorhanden ist. Ich habe auch schon versucht statt der 'die()' Funktion mein eigenes Template zu laden, allerdings ebenfalls ohne Erfolg.

 

Kann mir bitte jemand sagen wie das Test-Plugin in dem neuen System aussehen muss damit es funktioniert und der Controller automatisch registriert wird?

Produkt Stream in Artikeldetail läd unendlich in mobiler Ansicht

$
0
0

Hallo,

der Produkt Streams in den Artikeldetails läd unendlich in den Artikeldetails in der mobilen Ansicht. Sobald ich am Dektop bin funktioniert es einwandfrei.

Auch am Desktop wenn ich das Fenster klein mache, dann läd es nicht. Sobald ich das Fenster größer mache erscheinen die Produkte. Woran kann das liegen?

 

Viele Grüße

Domagical


Suche im ArtikelGrid mit eigenem Model erweitern?

$
0
0

Hallo zusammen,

ich habe im Backend in der Artikel-Grid-Ansicht die Anzeige eines eigenen Models implementiert. Was ich derzeit nicht hinbekomme ist, dass die Suche oben rechts dieses Feld mit einschließt.

Ich habe im Code nachgesehen und lande zwangsläufig bei der Funktion getFilterQueryBuilder in engine/Shopware/Components/MultiEdit/Resource/Product/Filter.php

Dort gibt es einen QueryBuilder, den ich gerne erweitern würde damit mein eigenes Model hier mit einbezogen wird.

Mein eigenes Lieferanten-Model "Supplier" dient dazu die Hersteller von SW mit Lieferanten zu verknüpfen. Das ganze mache ich über eine ManyToMany Relation. Ich habe also ein Model, dass so aussieht:

class Supplier {
    /**
     * @var \Shopware\Models\Article\Supplier
     * @ORM\ManyToMany(targetEntity="\Shopware\Models\Article\Supplier")
     * @ORM\JoinTable(name="fp_demand_planning_supplier_manufacturers", joinColumns={@ORM\JoinColumn(name="supplier_id", referencedColumnName="id")}, inverseJoinColumns={@ORM\JoinColumn(name="manufacturer_id", referencedColumnName="id", unique=true)})
     */
    private $manufacturers;

In $manufacturers finde ich also die Hersteller (Shopware\Models\Article\Supplier) von SW.

Nun wollte ich den QueryBuilder wie folgt erweitern:

-&gt;select('partial detail.{id}')
-&gt;from('Shopware\Models\Article\Detail', 'detail')
-&gt;innerJoin('detail.attribute', 'attr')
-&gt;leftJoin('detail.article', 'article')
-&gt;leftJoin('FpDemandPlanning\Models\Supplier', 'fps', 'WITH', 'article.supplier IN (fps.manufacturers)');

Dabei erhalte ich aber folgende Fehlermeldung:

[Syntax Error] line 0, col 216: Error: Expected Literal, got 'fps' in

 

Wenn ich anstatt "IN" als Operator "=" nutze, erhalte ich diese Meldung: 

206 near 'manufacturers': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected. 

Hat jemand eine Idee, wie ich den Query Builder hier mit meinem eigenen Model erweitern kann? Damit ein eigenes Model in der Suche berücksichtig wird? Oder geht dies gar nicht und die Suche lässt sich nur mit Models erweitern, die direkt am Artikel hängen?

Danke !

Plugin Config: ProductStream Auswahlfeld

$
0
0

Hallo zusammen,

Ich entwickle gerade ein Plugin, bei dem in der Konfiguration ein Product-Stream ausgewählt werden soll. Dazu habe ich bereits auch folgenden Code um ein solches Auswahlfeld zu erstellen:

$this-&gt;Form()-&gt;setElement(
            'select',
            'stream',
            array(
                'label' =&gt; 'Stream',
                'scope' =&gt; Shopware\Models\Config\Element::SCOPE_SHOP,
                'store' =&gt; 'Shopware.apps.ProductStream.store.Stream',
            )
        );

Nun habe ich das Problem, dass dieser Code nur dann funktioniert, wenn der Benutzer vor Aufruf der Plugin-Konfiguration bereits einmal das Fenster mit den Product-Streams geöffnet hatte. Ansonsten ist der passende Store nicht geladen. Gibt es hier eine Möglichkeit ein Laden des Stores in der Plugin-Konfig zu triggern? 

Ich möchte nur ungerne wegen einem Feld eine Backend-Erweiterung schreiben müssen.

Vielen Dank schonmal für eure Hilfe.

Grüße,

Valorian

Assoziationen von Assoziationen mit dem QueryBuilder hinzufügen.

$
0
0

Ich habe 2 Models, wobei Model A eine OneToMany Assoziation auf Model B hat.

Model B hat eine Assoziation auf ein Media Model.

Wenn ich nun dem QueryBuilder von Model A wie folgt schreibe, bekomme ich die Daten von Model B. Was muss ich nun ändern, damit ich auch die Media Daten von den ganzen Model Bs bekomme?

    public function getAQuery($aID) {
        $builder = $this-&gt;getBrochureQueryBuilder($aID);
        return $builder-&gt;getQuery();
    }

    public function getAQueryBuilder($aID) {
        $builder = $this-&gt;getEntityManager()-&gt;createQueryBuilder()
            -&gt;select([ 'a', 'bs' ])
            -&gt;from(A::class, 'a')
            -&gt;leftJoin('a.bs', 'bs')
            -&gt;where('a.id = :aId')
            -&gt;setParameter('aId', $aID);
        return $builder;
    }

// für mit getArrayResult sinngemäß zu folgendem ergebnis.
a = [
  id =&gt; 1,
  bs =&gt; [
    [ id =&gt; 101, a_id =&gt; 1, media_id =&gt; 105 ],
    [ id =&gt; 102, a_id =&gt; 1, media_id =&gt; 109 ],
    [ id =&gt; 103, a_id =&gt; 1, media_id =&gt; 117 ],
  ]
]

Ich möchte aber nun folgendes Ergebnis:

a = [
  id =&gt; 1,
  bs =&gt; [
    [ id =&gt; 101, a_id =&gt; 1, media_id =&gt; 105, media: [ id =&gt; 105, path =&gt; '..', ... ] ],
    [ id =&gt; 102, a_id =&gt; 1, media_id =&gt; 109, media: [ id =&gt; 109, path =&gt; '..', ... ] ],
    [ id =&gt; 103, a_id =&gt; 1, media_id =&gt; 117, media: [ id =&gt; 117, path =&gt; '..', ... ] ]
  ]
]

 

EKW Topseller Mobil weniger Artikel als auf Desktop

$
0
0

Hallo,

ich habe ein Topseller Modul in meiner Startseiten EKW integriert. Auf dem Desktop funktioniert alles gut. Max Artikel die angezeigt werden steht auf 25. 

Aber auf dem Mobiltelefon oder bei geringer Displaygröße werden mir nur 2 Artikel im Slider angezeigt. Weiß jemand woran das liegen kann?

Hier ein Link zum Shop: https://www.chamoon-jewelry.com/

Viele Grüße

domagical

QueryBuilder seltsames Verhalten

$
0
0

Hallo zusammen,

ich erstelle gerade ein paar Abfragen mit dem QueryBuilder, dabei ist mir folgendes aufgefallen.

Bei folgender Abfrage bekomme ich ein Ergebnis, was ja richtig ist:

$articleRepo = Shopware()-&gt;Models()-&gt;getRepository('Shopware\Models\Article\Article');
$articles = $articleRepo-&gt;createQueryBuilder(array('articles', 'mainDetail'))
   -&gt;from('Shopware\Models\Article\Article', 'articles')
   -&gt;leftJoin('articles.mainDetail', 'mainDetail')
   -&gt;where('articles.id = 142')
   -&gt;getQuery()
   -&gt;getArrayResult();

 

Wenn ich nur die Tabelle 'articles' verwende und keinen Join mit 'details' mache, bekomme ich zig Ergebnisse, was ja falsch ist:

$articleRepo = Shopware()-&gt;Models()-&gt;getRepository('Shopware\Models\Article\Article');
$articles = $articleRepo-&gt;createQueryBuilder(array('articles'))
   -&gt;from('Shopware\Models\Article\Article', 'articles')
   -&gt;where('articles.id = 142')
   -&gt;getQuery()
   -&gt;getArrayResult();

 

Ist das ein Bug oder ein Feature? Oder mache ich hier etwas falsch?

 

Viele Grüße

Andi

Viewing all 2871 articles
Browse latest View live


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