Gibt es eine Updatesichere Möglichkeit ein Banner über Javascript in eine Kategorie einzubauen?

Einer meiner Lieferanten bietet mir einen Bannerservice an, hierzu ist es notwendig ein Javascript in eine Kategorie einzubauen. Hat jemanden einen Tipp?

Hast du denn ein „eigenes“ Theme … von wegen „updatesicher“ … oder geht es dir speziell um den Punkt, dass es in nur einer bestimmten Kategorie angezeigt wird?

Via Einkaufswelten kommst da nicht weiter?!

Ich nutze das Responsive Theme von Shopware und ja, es soll nur in einer bestimmten Kategorie angezeigt werden.

dann wäre mein erster gedanke ein eigenes Theme anzulegen.

wobei es geht glaub ich sogar noch einfacher: theme-manager -> responsive theme rechts unten konfigurieren

  1. tab konfiguration -> da kannst das js reinladen.

ggf. dann für die entsprechende kategorie eine einkaufswelt erstellen und mit dem html-text widget den div block ausspielen dass der banner angezeigt wird.

Du musst im Prinzip deine listing/header.tpl Datei bearbeiten. Dort fragst du dann die aktuelle Kategorie ab und fügst das entsprechende Javascript oder die JS Datei in den Head oder Footer ein. Die Kategorie kannst du auslesen mit 

 {$sCategoryContent.id}

Die IF Abfrage wäre dann entsprechend in der Datei themes/Frontend/DEINTHEME/frontend/listing/header.tpl  ( Wie du ein eigenes Theme anlegst, siehst du im Getting started with Shopware templating Guide ).

{extends file='parent:frontend/listing/header.tpl'}
{block name="frontend_index_header_javascript_jquery_lib" append}
   {if $sCategoryContent.id == 1}
      
   {/if}
{/block}

Die ID 1 entsprechend durch die ID deiner Kategorie ersetzen, wo die JS Datei geladen werden soll. Ungetestet, sollte aber gehen.

Happy Coding
Chris
https://shopwareianer.com

Hallo,

wenn das JavaScript für den Banner zuständig ist und Du das Ganze nur in bestimmten Kategorien einbinden willst, könnte man das auch über eine Einkaufswelt mit dem Code-Widget realisieren.

Sonnige Grüße,
Phil

Der Code sieht wie folgt aus:

Über die Einkaufswelten (Code-Widget) habe ich es schon probiert, funktioniert aber irgendwie nicht.

Warum kann ich eigentlich nicht mal hir den Code eingeben?

Code:

@meder schrieb:

Warum kann ich eigentlich nicht mal hir den Code eingeben?

Code:

Hallo,

es gibt hier im Forum für Code ein Icon (rechts neben dem Bild - Icon in der Leiste oben), nennt sich “Codeschnipsel einfügen”. Das man blanko hier keinen Code reinkopieren kann, ist ja wohl selbstverständlich Grin (alleine wegen dem Sicherheitsaspekt und der Übersichtlichkeit).

Beste Grüße

Sebastian

Danke für den Tipp, jetzt konnte ich den Code einfügen.

 

 

Hallo,

ich habe eine ähnliche Frage und schließe mich daher diesem Thread an.

Gibt es denn vielleicht ein PlugIn, das es ermöglicht einfach JavaScript in den Kategorietext zu speichern. Wenn ich das jetzt über den Quellcode im Kategorietext versuche, fliegt das Script beim Speichern einfach wieder raus.

VG

Hey zusammen,

dafür braucht man einen Override des TinyMCE:

Bootstrap.php:

 $this->getVersion(),
            'label' => $this->getLabel(),
            'supplier' => 'shopware AG',
            'description' => 'TinyMCE filtert keine Script-Tags mehr',
            'support' => 'Kein Support',
            'link' => 'http://www.shopware.com/'
        );
    }

    /**
     * Standard plugin install method to register all required components.
     * @throws \Exception
     * @return bool success
     */
    public function install()
    {
        try {
            $this->subscribeEvents();
        } catch (Exception $e) {
            return array(
                'success' => false,
                'message' => $e->getMessage()
            );
        }

        return true;
    }

    /**
     * Registers all necessary events and hooks.
     */
    private function subscribeEvents()
    {
        $this->subscribeEvent(
            'Enlight_Controller_Action_PostDispatchSecure_Backend_Index',
            'onBackendIndexPostDispatch'
        );
    }

    /**
     * Called when the BackendCustomerPostDispatch Event is triggered
     *
     * @param Enlight_Event_EventArgs $args
     */
    public function onBackendIndexPostDispatch(Enlight_Event_EventArgs $args)
    {
        /**@var $view Enlight_View_Default*/
        $view = $args->getSubject()->View();

        // Add template directory
        $args->getSubject()->View()->addTemplateDir(
            $this->Path() . 'Views/'
        );

        //if the controller action name equals "index" we have to extend the backend customer application
        if ($args->getRequest()->getActionName() === 'index') {
            $view->extendsTemplate('backend/swag_tinymce_unfiltered/view/index/tinymce.js');
        }
    }
}

tinymce.js:

//
//{block name="backend/index/application" append}
//

Ext.define('Shopware.form.field.TinyMCEUnfiltered', {
    override: 'Shopware.form.field.TinyMCE',

    initEditor: function() {
        var me = this;
        
        me.editor = Ext.apply(me.editor, {
	        invalid_elements: 'applet'
        });
        
        me.callOverridden();
        
    }
});

//
//{/block}
//

Viele Grüße,
Stephan Pohl  Shopware

Hallo nochmal,

wenn man jetzt nicht so viel Entwickler Know-how hat, könnte es auch mit den Einkaufswelten der Shopwareversion 5.2 funktionieren? Es gibt dort ein Widget “Code”, in das man JavaScript einfügen kann. Ich hab das in der Shopware Demo getestet, was leider in der Vorschau nicht zur Ausgabe des Bilds geführt hart, dass durch das JavaScript gezogen wird. Obwohl es eigenltich so passend erscheint … Weiß jemand mehr dazu?

LG

 

 

Hallo ShoppyDE mit dem Widget funktioniert es leider nicht…

Was heißt eigentlich " Override des TinyMCE" ? Wo finde ich das? Was muß ich machen?

Wir haben eine Lösung gefunden: Es funktioniert ab Shopware 5.2 über sogenannte Freitextfelder. Denen wird ein Platz im Template zugewiesen (also wie die Bilder dann erscheinen sollen) und dann können im Backend die JavaScripte für die Bilder eingefügt werden.

Vielen Dank, und wie weise ich den Freitextfeldern einen Platz im Template zu? Ich benutze das original responsive Template von Shopware.