Artikel Slider aus Kategorie / zufällig sortiert (Conexco)

änderst du die Dateirechte, falls du als root drauf gehst (FTP) stimmen die ja nicht, ich versuche es mal über ftp.

änderst du die Dateirechte, falls du als root drauf gehst (FTP) stimmen die ja nicht, ich versuche es mal über ftp. Ok, hochgeladen, Rechte angepasst, aktiviert, Einkaufswelt, neues erstellt, Element reingezogen, abgespeichert, neu geöffnet, auf dem bearbeiten (Bleistift) passiert nix, Frontend geöffnet, passiert auch nicht, auch keine Fehler zu sehen. hier eingestellt

Nö, ändere ich nicht, der komplette Pfad ist: /html/shopware/engine/Shopware/Plugins/Community/Backend/ Dort ist dann der Ordner: RandomsliderWidget und dort liegt dann auch die Bootstrap.php

Weiter oben hatte ich geschrieben, dass sich der Bleistift deswegen nicht öffnen lässt, da ein JavaScriptfehler in der Konsole von Firebug und natürlich auch Chrome davon zeugt, dass der Slider Type nicht an die Komponente übergeben wird. Davon handelt ja der komplette Thread. Ich weiß nicht, wie man die Typen abfrägt.

Ich hab die Auswahl nun drin.

Des Rätsels Lösung! Achtung! Es kann nicht gehen! Weil… categoryId die Basis ist für die Artikel-Abfrage, in der Datenbank jedoch gibt es keine Kategorie Random, das müsste erst im gleiche Stil programmiert werden wie die Newcomer und Topartikel. Du müsstest erst im Hintergrund ein Script basteln, welches dir zufällig 25 Artikel auswählt, diese dann dem Widget Artikel-Slider übergeben dann brauchst du aber noch einen Cron-Job, der dir im Anschluss diese Auswahl erneuert von Zeit zu Zeit. Die von dir aus Shopware verwendeten Dateien in deinem Widget sind nicht alle erforderlichen, du musst noch die article_slider_type.js einbinden, erst dann wird es gehen, so wie im Bild oben. Ich habe nun ca. 8 Stunden damit verbracht an diese Erkenntnis heran zukommen, denke wir hätten besser ein Bier zusammen getrunken oder einen ganzen Kasten :wink: Aber ich habe auch viele heute dazu gelernt, hat mir nichts desto trotz Spaß gemacht. So, nun drücke mir die Daumen, dass ich meine ganzen Änderungen am Shop wieder rückgängig machen kann. Gruß Zwilla ich setze mal das Ding auf gelöst, damit die Echtgeld und Berufsprogrammirer an den Zugriffen auf diesen Thread abschätzen können ob ein Plugin sich lohnen würde. Falls es jemand tut, hätte ich gerne eine Gratis, auf Lebenszeit gültige Lizenz:sunglasses:

Moinsen Zwilla, kannst Du mir bitte Deine Lösung schicken, damit ich das nachvollziehen kann? Ich peils immer noch nicht, wie ich die Auswahl oben gefüllt bekomme. Vielen Dank und viele Grüße, Chris

/\*\* \* Shopware 4.0 \* Copyright © 2012 shopware AG \* \* According to our dual licensing model, this program can be used either \* under the terms of the GNU Affero General Public License, version 3, \* or under a proprietary license. \* \* The texts of the GNU Affero General Public License with an additional \* permission and of our proprietary license can be found at and \* in the LICENSE file you have received along with this program. \* \* This program is distributed in the hope that it will be useful, \* but WITHOUT ANY WARRANTY; without even the implied warranty of \* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \* GNU Affero General Public License for more details. \* \* "Shopware" is a registered trademark of shopware AG. \* The licensing of the program under the AGPLv3 does not imply a \* trademark license. Therefore any rights, title and interest in \* our trademarks remain entirely with us. \* \* @category Shopware \* @package UserManager \* @subpackage View \* @copyright Copyright (c) 2012, shopware AG (http://www.shopware.de) \* @version $Id$ \* @author shopware AG \*/ //{namespace name=backend/emotion/view/components/article} Ext.define('Shopware.apps.Emotion.view.components.fields.ArticleType', { extend: 'Ext.form.field.ComboBox', alias: 'widget.emotion-components-fields-article-type', name: 'article\_type', /\*\* \* Snippets for the component \* @object \*/ snippets: { fields: { 'article\_type': '{s name=article/fields/article\_type}Type of article{/s}', 'empty\_text': '{s name=article/fields/empty\_text}Please select...{/s}' }, store: { 'selected\_article': '{s name=article/store/selected\_article}Selected article{/s}', 'newcomer': '{s name=article/store/newcomer}Newcomer article{/s}', 'topseller': '{s name=article/store/topseller}Topseller article{/s}', 'random\_article': '{s name=article/store/random\_article}Random article{/s}' } }, /\*\* \* Initiliaze the component. \* \* @public \* @return void \*/ initComponent: function() { var me = this; Ext.apply(me, { emptyText: me.snippets.fields.empty\_text, fieldLabel: me.snippets.fields.article\_type, displayField: 'display', valueField: 'value', queryMode: 'local', triggerAction: 'all', store: me.createStore() }); me.callParent(arguments); me.on('change', me.onArticleSelectChange, me); }, /\*\* \* Event listeners which triggers when the user changs the value \* of the select field. \* \* @public \* @event change \* @param [object] field - Ext.form.field.ComboBox \* @param [string] value - The selected value \*/ onArticleSelectChange: function(field, value) { var me = this; // Terminate the article search field if(!me.articleSearch) { me.articleSearch = me.up('fieldset').down('emotion-components-fields-article'); } // Show/hide article search field based on selected entry me.articleSearch.setVisible(value !== 'selected\_article' ? false : true); }, /\*\* \* Creates a local store which will be used \* for the combo box. We don't need that data. \* \* @public \* @return [object] Ext.data.Store \*/ createStore: function() { var me = this, snippets = me.snippets.store; return Ext.create('Ext.data.JsonStore', { fields: ['value', 'display'], data: [{ value: 'selected\_article', display: snippets.selected\_article }, { value: 'newcomer', display: snippets.newcomer }, { value: 'topseller', display: snippets.topseller }, { value: 'random\_article', display: snippets.random\_article }] }); } });

Hi Zwilla, das ist ja noch nachvollziehbar. Stellt sich einem nur die Frage, wie man genau diesen Articletype in die eigene Komponente integriert und dort abfrägt. Grundsätzlich ist die Änderung im Core ja nicht das Problem, das ist halt net updatesicher.

So, irgendwie muss ich doch meiner Komponenten sagen können, welche Komponenten verwendet werden und wo diese gefunden werden können. Bzw. wo baue ich die app.js in der Art ein, damit die article_slider_type.js (am besten die modifizierte Version) auch gefunden wird: (function() { Ext.Loader.setConfig({ enabled : true, paths : { MyApp : 'js/MyApp' } }); Ext.require('MyApp.views.UserEditorWindow'); Ext.onReady(function() { Ext.create('MyApp.views.UserEditorWindow').show(); }); })();