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

E-Mail Validierung überschreiben

$
0
0

In der aktuellen Version (5.1.3) nutzt Shopware den Egulias-Emailvalidator.

Der ist aber über die Components\Validation\Emailvalidation sehr großzügig eingebunden:

 

    public function isValid($emailAddress)
    {
        /**
         * Creates a new instance of the underlying validator class
         * on each validation request to avoid problems related to
         * state in the validator implementation
         */
        $baseValidator = new BaseEmailValidator();

        return $baseValidator->isValid($emailAddress, false, true);
    }

Ich könnte nun einfach den Aufruf von "isValid()" entsprechend anpassen (und den zweiten Paramter auf "true" setzen) und hätte dann eine strengere Validierung. Updatesicher ist das jedoch nicht.

Kann ich die Methode überschreiben und falls ja: wie?

 

Mit

 

        $this->subscribeEvent(
            'Shopware\Components\Validator\EmailValidator::IsValid::replace',
            'isValid'
        );

komme ich jedenfalls nicht ans Ziel.


Artikel Zahlungsart "Abholung in der Filiale" angewählt aber Versandart weiterhin DHL

$
0
0

Hallo,

wir haben hier ein kleines Problem mit einem Shop.

Auf der Artikeldetailseite kann zusätzlich ausgewählt werden, ob der Kunde den Artikel aus einer Auswahl von Shops abholen möchte.
Wird eine Abholung in einem Shop ausgewählt, der Artikel in den Warenkorb getan und dieser dann aufgerufen, steht in der Übersicht (checkout/confirm) als Zahlungsart "Bei Abholung" aber als Versand "Versand per DHL" was natürlich nicht richtig ist.

Dort müsste per default "Selbstabholung" stehen.

Man kann natürlich die Versand- und Zahlungsart über Ändern anpassen, dies ist aber nicht der Sinn der Sache.

Gibt es eine Methode die wir übersehen haben mit der sich die Zahlart X beim betreten der Seite "checkout/confirm" oder bei der Auswahl des Shops bereits als Standard einstellen lässt?

Probleme bei Installation eines Plugins mit Attributes

$
0
0
Hallo ich versuche gerade eines meiner Plugins zu installieren.

in diesem habe ich beim Installprozeß

$this->Application()->Models()->addAttribute und
$this->getEntityManager()->generateAttributeModels

wenn ich nun versuche das Plugin zu installieren kommt eine Doctrine-Fehlermeldung, die mein Plugin aber garnicht betrifft.


Unable to install, got message: File mapping drivers must have a valid directory path, however the given path [/......../engine/Shopware/Plugins/Community/Backend/DiwHotspotSlider5/Models/] seems to be incorrect!

Dieses Plugin hat aber gar keine Models.

Plugins, welche scheinbar nicht auf Attributes zugreifen können problemlos installiert werden.

Ich habe schon über das Backend den kompletten Cache geleert.
Dies hat mir schon oft geholfen.

Jemand eine Idee, was man da machen kann?

Hook: Hook-Registrierung nach Abschluss Registrierung funktioniert nicht

$
0
0

Guten Morgen.

Ich bin relativ neu im Hook-System von Shopware und versuche gerade nach dem Speichern der Kundenregistrierung im Frontend einen Hook zu platzieren.

Der Hintergrund des Hooks soll sein, dem Nutzer je nach Länderauswahl in eine länderbezogene Kundengruppe zu schieben, z.B. "Kunden DE", "Kunden CH" usw.

Hier mal der Quellcode:

public function install()
    {
        $this->subscribeEvent(
            'sAdmin::sSaveRegister::after',
            'afterSaveRegisterHook'
        );

        $this->createConfig();

        return true;
    }

public function afterSaveRegisterHook(Enlight_Hook_HookArgs $args)
    {
        /** @var \sAdmin $subject */
        $subject = $args->getSubject();

        $return = $args->getReturn();

        Shopware()->Debuglogger()->info("Methode aufgerufen.");
        Shopware()->Debuglogger()->info($subject);

        $args->setReturn($return);
    }

Doch leider ist es so, dass er die Methode "afterSaveRegisterHook" nie aufruft.

Mache ich hier irgendwo einen Fehler ? Oder funktioniert die Logging-Ausgabe dort nicht ? Die Methode "die()" hatte auch nicht funktioniert.

Freundliche Grüße

Heiko Bihlmaier

Freitextfelder werden nicht korrekt übernommen

$
0
0

Hallo,

 

ich habe unter Einstellungen > Artikel > Artikel-Freitextfelder zwei neue Freitextfelder mit dem Typen Checkbox bzw. boolean hinterlegt um bestimmte Teile im Template ausgeben zu können. Jedoch wird nur der erste Teil meiner Abfrage ausgeführt, obwohl attr4 im Backend deaktiviert (false) und attr5 (true) sein müsste. Die Abfrage im Template lautet:

{if $sArticle.attr4 == true} 

{block name="frontend_detail_index_entwurf"}
{include file="frontend/detail/entwurf.tpl"}
{/block} 

{elseif $sArticle.attr5 == true} 

{block name="frontend_detail_index_demo"}
{include file="frontend/detail/demo.tpl"}
{/block} 

{else} 

{/if}

 

Vielen Dank!

 

 

Bestellung exportieren – Versandart

$
0
0

Hallo zusammen,

ich habe mir ein kleines Plugin geschrieben, dass nach dem Absenden der Bestellung die Bestelldetails in eine XML-Datei schreibt. 

Mit 

public function install()
		{
			$metaDataCache  = Shopware()->Models()->getConfiguration()->getMetadataCacheImpl();
			$metaDataCache->deleteAll();
			$this->subscribeEvent(
				'Shopware_Modules_Order_SaveOrder_ProcessDetails',
				'ShopwareModulesOrderSaveOrderProcessDetails'
			);
		
			return array('success' => true, 'invalidateCache' => array('backend', 'proxy'));
		   
		}

und den Daten der Variablen 

public function ShopwareModulesOrderSaveOrderProcessDetails(Enlight_Event_EventArgs $arguments)
		{
				$order 					= $arguments->getSubject();
				$orderDetails 			= $arguments->getDetails();
				
				$sUserData				= $order->sUserData;
				$sBasketData			= $order->sBasketData;
				$sShippingData			= $order->sShippingData;
}

komme ich an alle Inhalte. Lediglich die Informationen zur Versandart werden hier scheinbar nicht übergeben.

Übersehe ich etwas?

mediaselection in Plugin-Config

$
0
0

Hallo in die Runde.
Ich habe mir - ursprünglich für SW4, inzwischen auch für SW5 - ein kleines Plugin gebastelt, welches u.A. ein Video in einen Artikeltab einbindet.
Für das Video binde ich ein Poster ein,  ausgewählt über Mediamanager. Im Plugin ist das Element wie folgt eingebunden:

$form->setElement('mediaselection', 'tab' . $i .'-poster', array('label' => 'Videoposter', 'value' => NULL ));

Bisher hatte eine Auswahl immer nur den relativen Pfad zurückgegeben. Hier hatte ich noch den alten Pfad für das Poster eingetragen, und wollte es wegen "Legacy Media..." nun ändern. Nun - SW 5.1.3 - liefert diese Auswahl den kompletten Pfad - inkl. Protokoll - also https://doimain.de/ - ich möchte aber wieder den relativen Pfad haben. Leider kann man es auch nicht in der Plugin-Config überschreiben, da das anzeigende Textfeld auch noch read-only ist.

Ich bräuchte mal einen kurzen Rat - wie ich wieder an einen relativen Pfad - vor allem ohne Protokoll komme.

Danke im Voraus
Carsten

New Relic Methoden und Actions

$
0
0

Hallo, 

nachdem ich den New Relic Agent installiert und konfiguriert habe, werden alle Transactions über die /shopware.php abgewickelt. Das ist für eine Analyse nicht wirklich hilfreich. Ich hätte gerne in den Transaktionen eine detailiertere Auflistung der Methoden und Aktionen. 

Laut New Relic Doku kann man das im Routing der App implementieren: https://docs.newrelic.com/docs/agents/php-agent/frameworks-libraries/php-frameworks-integrating-support-new-relic

Kann mir jemand sagen, wo und wie ich im shopware code das ganze einbaue?

Vielen Dank


Shopcache leeren per Cron

$
0
0

Hi zusammen,

gibt es ein Cron-Plugin welches die selben Bereich leert wie wenn man im Backend auf "Shop cachen leeren" klickt? Dachte eigentlich dies würde über HTTPCache leeren mit laufen, stimmt aber nicht.

Hat hier jemand einen Tip außer über CLI Tools?

Gruß

Unable to save and load value in new tab extjs plugin

$
0
0
//{block name="backend/article/view/detail/window" append}
//{namespace name="backend/subshop_article/main"}
Ext.define('Shopware.apps.Article.view.detail.subshop_article.Subshop_aid_window', {
override:'Shopware.apps.Article.view.detail.Window',

    /**
     * Creates the main tab panel which displays the different tabs for the article sections.
     * To extend the tab panel this function can be override.
     *
     * @return Ext.tab.Panel
     */
    createMainTabPanel: function() {
        var me = this;
        var formTab = me.callParent(arguments);
        //Der Container für das Tab => Der Tab selber
        me.SubshopArticleTab = Ext.create('Ext.container.Container', {
            title: 'Subshop Article Number',
            disabled: true,
            name: 'subshop-article-tab',
            layout: 'border'
        });
        me.mainTab.insert(me.SubshopArticleTab);
        me.on('saveArticle', function(me,article) {

        });
       return formTab;
    },

createSubshopContent: function(a,b) {
    var me = this;
    //console.log(a.getAttribute());
    me.subshopContents = Ext.create(
        'Ext.container.Container', {
            anchor: '100%',
            focusable: false,
            margin: 20,
            items:me.createFormContent()
        }
    );

   return me.subshopContents;
},
    createFormContent:function () {
        var me = this;
            me.customOrderNumberField = Ext.create('Ext.form.field.Text', {
            name:'attribute[sanSubshopArticleNumber]',
            fieldLabel:'Subshop Article Numbers',
            anchor:'95%',
            labelWidth:100,
            minWidth:250
        });

        return [
            me.customOrderNumberField,
        ];
    },


onStoresLoaded: function(article, stores) {
    var me = this;   
    me.article = article;
 
    me.callParent(arguments);
    me.SubshopArticleTab.add( me.createSubshopContent(article, stores));
    me.SubshopArticleTab.setDisabled(false); 
}

});
//{/block}

Hello Everyone,

I am working on a plugin where i have extended article module and added new tab.In this tab i have added two text field and want to sync them in extra field but each time i enter value in click on save button nothing happens and in database it shows blank value.

I have created this attribute in s_articles_attribute in bootsrap by :

 $this->Application()->Models()->addAttribute(
                's_articles_attributes',
                'san',
                'subshop_article_number',
                'varchar(255)',
                true,
                null);

            Shopware()->Models()->generateAttributeModels(array(
                's_articles_attributes'
            ));

and added attribute.js 

//{block name="backend/article/model/attribute/fields" append}
    { name:'sanSubshopArticleNumber', type:'string' },
//{/block}

as well used query builder but i guess its not loading value properly

    /**
     * Hooks the getListQueryBuilder method of the customer repository.
     * Additionally selects our own attributes
     *
     * @param Enlight_Hook_HookArgs $arguments
     */
    public function afterGetListQueryBuilder(Enlight_Hook_HookArgs $arguments)
    {
        // get original builder
        $builder = $arguments->getReturn();

        // add selection and join to original builder
        $builder->addSelect(array(
            'attributes.sanSubshopArticleNumber',
        ));
        $builder->leftJoin('article.attribute', 'attributes');

        $arguments->setReturn($builder);
    }

      $this->subscribeEvent(
            'Shopware\Models\Article\Repository::getAttributesQueryBuilder::after',
            'afterGetListQueryBuilder'
        );

Its not working on both casing if add value directly in database this value can be seen from attribute object in json in console but does't load in form tab even if enter text in this field and click on save button new value  doens't save in database 

Fehlermeldung bei der Bestellungsübersicht

$
0
0

Moin Leute,

habe ein Problem, wenn ich kann in unserem Shop zwar Bestellungen ausführen, aber wenn ich die Besetllungen im Backend aufrufen möchte kommt folgende Fehlermeldung:

in vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php on line 781 Stack trace: #0 Shopware/Controllers/Backend/Order.php(345): Doctrine\ORM\AbstractQuery->getOneOrNullResult(2) #1 Shopware/Controllers/Backend/Order.php(312): Shopware_Controllers_Backend_Order->getList(NULL, NULL, '0', '20') #2 Enlight/Controller/Action.php(158): Shopware_Controllers_Backend_Order->getListAction() #3 Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('getListAction') #4 Enlight/Controller/Front.php(226): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #5 Shopware/Kernel.php(153): Enlight_Controller_Front->dispatch() #6 vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #7 Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #8 vendor/symfony/http-kernel/HttpCache/HttpCache.php(263): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #9 Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #10 shopware.php(101): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #11 {main}  

Plugin für die Einkaufswelten

$
0
0

Hallo Community,

ich erstelle gerade ein Plugin für die Einkaufswelt, in diesem Plugin sollen die Kategorien im Content als Navigation ausgegeben werden.

Mein Problem ist, wenn ich in der Bootstrap.php über $view->assign('lorem', 'Lorem ipsum dolor sit amet'); eine Variable mit einem String belege kommt keine Ausgabe {$lorem} in meiner *.tpl Datei.

Wie muss ich mein Code anpassen damit ich eine Ausgabe bekomme?

System:
Shopware 5.1.1
Professional Edition

Bootstrap.php:

<?php
class Shopware_Plugins_Frontend_EmotionContentNavigation_Bootstrap 
    extends Shopware_Components_Plugin_Bootstrap
{
    public function getCapabilities()
    {
        return array(
            'install' => true,
            'update' => true,
            'enable' => true
        );
    }
 
    public function getLabel()
    {
        return 'Emotion Content Navigation';
    }
 
    public function getVersion()
    {
        return '1.0.0';
    }
 
    public function getInfo()
    {
        return array(
            'version' => $this->getVersion(),
            'autor'       => '',
            'copyright'   => '© 2016 ',
            'label' => $this->getLabel(),
            'supplier' => '',
            'description' => 'Content Navigation',
            'support' => '',
            'link' => ''
        );
    }
 
    public function install()
    {
        $component = $this->createEmotionComponent(array(
                    'name' => 'Content Navigation',
                    'description' => 'Content Navigation',
                    'template' => 'component_content_navigation_dw',
                    'cls' => 'content-navigation-dw'
        ));

        $this->subscribeEvent(
            'Enlight_Controller_Action_PostDispatch_Frontend_Index',
            'onFrontendPostDispatch'
        );

        return true;
    }

    public function onFrontendPostDispatch(Enlight_Event_EventArgs $args)
    {
        $view = $args->getSubject()->View();
        $view->addTemplateDir($this->Path() . 'Views/');
        $view->extendsTemplate('emotion_components/widgets/emotion/components/component_content_navigation_dw.tpl');
        $view->assign('lorem', 'Lorem ipsum dolor sit amet');
    }

}

component_content_navigation_dw.tpl:

{block name="widget_emotion_content_navigation"}
<div class="test_emotion">
    <h2>Test emotion Content Navi</h2>
    <p>{$lorem}</p>
</div>
{/block}


Vielen Dank im Voraus.

Gruß Holger

Custom Reports und Auswertungen als PDF

$
0
0

Hallo zusammen

Ich müßte in Shopware einen speziellen Report anlegen der z.b. basierend auf einer Liste von Bestellungen für jeden Kunden anzeigt wohin was genau gepackt werden muss und das als PDF - die Statistiken hab ich mir schon angsehen aber die sind, so denke ich mehr für analysen geeignet. Weiß jemand ob es da etwas gibt bzw. wie sowas zu bewerktstelligen wäre basierend auf den mechanismen von Shopware selbst? Die Erstellung von Dokumenten als PDF gibts ja schon, ob es ein geeignetes Reportingsystem in Shopware dafür gibt kann ich aber nicht sagen!

 

Danke lg Andreas

Rest Api Verbindung - pure JS

$
0
0

Hallo Leute,

der Title verrät schon, was mir auf der Seele brennt.

Ich habe die Dokumentation durchgesehen und nur das PHP Script gefunden.

Kenn einer von euch eine reine JavaScript Lösung um sich mit der REST API zu verbinden und mit dem API Key zu authentifizieren?

Natürlich muss es auch möglich sein Daten vom Shop zu erhalten und zu verarbeiten Thumb-Up

Vielen Dank mir voraus.

Beste Grüße

Steven

 

follow/nofollow, index/noindex - speziell bei Bewertungsseiten

$
0
0

Hallo,

ich weiß nicht genau, wie ich diese Frage verständlich formulieren soll...

Wo sind intern nofollow-Links, außer bei den Merkzetteln. Die zeigt mein Seo-tool an. Bei Noindex in der robots steht "note". Ist Note der Merkzettel?

Noindex ist wohl alles, was in der robots steht, wobei ich mir bei Notes nicht sicher bin, was gemeint ist.

Mich interessiert, wie speziell die Bewertungsseiten bei SW verlinkt sind (follow/nofollow) und ob sie indexiert werden, also auch der Bewertungstext als "Inhalt" gewertet wird von google.

LG


Google Maps Integration in Shopware 5 (Javascript API)

$
0
0
Hallo,

hat jemand schon versucht Google Maps über die Javascript API in Shopware 5 zu integrieren? Ich bekomme nur eine graue Fläche angezeigt. Die eigentliche Karte erscheint nicht. Die Steuerelemente wie Zoom in, Zoom out sind zwar zu sehen, es werden aber falsche Icons angezeigt.

Ich hatte das Problem in einem Kundenprojekt und dachte zuerst es liegt daran, dass die so viele unterschiedliche Javascript-Dateien dort verwenden. Habe also Shopware 5 komplett neu aufgesetzt und es mal auf einer frischen Version getestet. Die gleichen Probleme. Anschließend habe ich es noch in einer normalen index.html-Testseite probiert um Shopware auszuschließen (vielleicht falscher API-Key oder etwas in der Art). Dort lief die Map aber sofort und einwandfrei. Es scheint also mit Shopware zusammenzuhängen.

Ich hatte Google Maps mal in Shopware 4 integriert und dort hatte ich keine solchen Probleme.

Irgendwelche Erfahrungen? Muss das vielleicht über einen iFrame eingebunden werden?

Gruß,
Martin

Theme/Service.php getElementByName

$
0
0

Tag,

wie man seine eigene Theme.php mit einem ganzen neuen Config-Tab erweitert, ist ja dokumentiert. Aber für eine einzelne Zusatzoption gleich einen ganzen Tab?
Beim Stöbern in /engine/Shopware/Components/Theme/Service.php bin ich auf die Funktion getElementByName gestossen.
Nun kann ich mir aus der Responsive Theme.php die Namen der verschiedenen Config-Container rausssuchen.
Frage: ist die getElementByName dafür geeignet, mir mit einen Namen genau so einen Container zu holen, um den dann schlicht um ein Element zu erweitern?

Probleme bei Einbinden von Siegel links unten

$
0
0

Hallo liebe Leute,

ich habe Code zum Einbau des Gütesiegel "Geprüfter Webshop bekommen, und dies kann ich nicht einbinden. 

Versucht habe ich bei Textbausteine und in Filezilla und alles ohne Erfolg. Ich würde gerne den Siegel und Kundenbewertungstools link unten, an der Seitenkante einbauen.

Es geht um diese Code <a href="https://www.gepruefter-webshop.de/kundentool/siegel/" title="Geprüfter Webshop Siegel" target="_blank"><img src="http://www.gepruefter-webshop.de/pruefsiegel//Gepruefter-Webshop-Siegel.png"width="150" height="150" alt="Geprüfter Webshop Siegel" /></a>

und <iframe style="border: none; width: 230px; min-height: 340px;" src="https://www.gepruefter-webshop.de/kundentool/newiframe//" frameborder="0"></iframe>

Wenn  es geht in Details, weil ich mich nicht so mit html auskenne.

Ich werde micht rießig freuen.

Vielen Dank

Funktion des Suchfeldes in der mein-navigation wiederherstellen?

$
0
0

Hallo,

ich habe das Suchfeld in die main-navigation verschoben und musste daraufhin feststellen, dass diese leider nicht mehr funktioniert. 

Ich würde mich natürlich über einen Lösungsvorschlag sehr freuen :D bin aber schon mit einen Tipp zufrieden.

Danke schon einmal und schöne Osterfeiertage.

Beste Grüße

_max_

 

PS: Ich hoffe ich bin in der richtigen Kategorie.

Ordner var/cache löschen

$
0
0

Kann ich den Ordner var/cache/production löschen?

Ist das dann den Cache manuell löschen?

 

LG.

Melanie

Viewing all 2871 articles
Browse latest View live


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