Inhalte aufrufen

Profilbild
- - - - -

Blockiert href im PictureGallery

Plugin smartgallery PictureGallery

  • Bitte melden Sie sich an, um eine Antwort zu verfassen.
6 Antworten zu diesem Thema

#1 oskrob

oskrob

    Newbie

  • Members
  • Punkt
  • 4 Beiträge

Geschrieben: 18 April 2016 - 10:34

Hallo SmartStore Community,

 

ich brauche bisschen Support um mein erstes Plugin auf SmartStore implementieren zu können.

 

Es handelt sich um ein Plugin die einen Bildeigenschaft hinzufügt im Backend und anzeigt im Frontend Bereich. Das Problem zeichnet sich an im Frontend, als die überschriebene (“Custom View Engine”) _PictureGallery.cshtml <a> Tag „href“ Attribute mit Url.Action verwende um zu das Plugin Controller zu kommen und mit eigene View die Bild mit der maßgeschneiderte Eigenschaften zu zeigen. Es sieht aus, dass etwas blockiert die Link Aktion. Eine ältere Version von Murat der smartgallery.js blockiert nicht, lässt die Link ausführen, aber das Bild bleibt im „Thumb“ Größe und braucht ein extra Click um die „Medium Image“ zu zeigen.

 

Wie kann ich das Problem lösen?

 

Grüße, Robert

 



#2 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3018 Beiträge

Geschrieben: 18 April 2016 - 12:31

Gibt es eine Fehlermeldung, ewtl. in der Entwickler-Konsole des Browers (F12)? Url.Action korrekt aufgerufen?
@Url.Action("Action name", "Controller name", new { area = "Plugin system name" })

Schöne Grüße aus Düsseldorf,
Marcus Gesing


#3 oskrob

oskrob

    Newbie

  • Members
  • Punkt
  • 4 Beiträge

Geschrieben: 18 April 2016 - 12:48

Hallo Herr Giesing,

 

vielen Dank für Ihr Antwort.

(<a href='@Url.Action("meinaction", "meincontroller", new { id = @picture.PictureId })' data-medium-image="@picture.ImageUrl" title="@Model.Name" data-gallery="default"> auch als <a href='@Url.Content("~/Plugins/SmartStore.MeinController/MeinAction/")@picture.PictureId' data-medium-image="@picture.ImageUrl" title="@Model.Name" data-gallery="default"> ich habe schon die area auch weggelassen um Problemen zu vermeiden) Leider gar keine Fehlermeldung, die Route existiert und wie gesagt, wenn ich eine ältere Version von smartgallery.js einsetze es lässt sich ohne weiteres Ausführen nun das verursacht ein anderes Error, was ich schon beschrieben habe.

 

Grüße, Robert



#4 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3018 Beiträge

Geschrieben: 18 April 2016 - 16:26

Wo genau die liegt die Action-Methode bzw. deren Controller. Im Frontend (area = ""), im Backend (area = "admin") oder in einem Plugin (area = "Plugin Systemname")? Wie lautet das zugehörige Route-Mapping?

Schöne Grüße aus Düsseldorf,
Marcus Gesing


#5 oskrob

oskrob

    Newbie

  • Members
  • Punkt
  • 4 Beiträge

Geschrieben: 19 April 2016 - 19:05

Hallo Herr Gesing,

 

das ist der zugehörige Route map:             

routes.MapRoute("Plugin.ExplosMark.IndexExplosMark",

                "Plugins/SmartStore.ExplosMark/IndexExplosMark/{id}",

                new { controller = "ExplosMark", action = "IndexExplosMark", id = UrlParameter.Optional },

                new[] { "SmartStore.ExplosMark.Controllers" }

            );

 

… und das wäre das Problem nach der Link bleibt nur der Image Gallery Oberfläche stehen, obwohl das Url.Action anspricht der Controller:

Der Ablauf soll ziemlich einfach sein auf der Frontend Seite: schon im Backend wird zu meiner (spezielle) Bilder nach einer zusätzlichen genericAttribute hinzugefügt und im Frontend die _PictureGallery.cshtml (im Plugin) nach einer„if“ Anweisung wird entschieden ob als gewöhnliche Bild mit der PictureGallery angezeigt wird oder mit der „a“ Element „href“ Attribute das Plugin Controller angesprochen wird um das eigene View zu öffnen.

 

Ich bin sicher, dass Ihr Job auch nicht einfach, deshalb möchte ich Sie weitere Informationen geben, entschuldigen Sie, wenn ich mich wiederhole. Ich habe dieses Programm schon auf einer älteren Version der SmartStore laufen gehabt. Auf die neuere Version der SmartStore möchte ich das als Plugin verwenden, deshalb habe ich es umprogrammiert. Diese Frontend Teil ausser der Überschreibung der „_PictureGallery.cshtml“ mit CustomView fast identisch. Die „_PictureGallery.cshtml“ anspricht css und script Bundles. In beide Bundles (nach meiner Investigation) einzige File die geändert wurde, ist der „smartstore.smartgallery.js“. Dieser File ist ziemlich umfangreich und ohne Komment. Ich muss bestehen, komme ich mit dem nicht zu Recht. Das File hat Murat Cakir gemacht und geändert.

 

Haben Sie eine Idee, was ich machen kann, um mein Problem zu lösen?

 

Vielen Dank im Voraus und Grüsse,
Robert



#6 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3018 Beiträge

Geschrieben: 19 April 2016 - 21:13

Wenn ich das richtig verstanden, passiert bei einem Klick auf den Link gar nichts? Keine Reaktion, keine Fehlermeldung, keine Navigation?
In smartstore.smartgallery.js befindet sich die Funktion für das Click-Event in Zeile 480 (für das große Bild) und in Zeile 270 (für das kleine, darunter liegende Vorschaubild). Diese Funktionen würde ich mal unter die Lupe nehmen. An dieser Stelle wird wahrscheinlich das Ereignis abgefangen.
 
PS: Das Route-Mapping würde ich überprüfen. In dieser Form kann das nur auf eine Action-Methode eines Controllers verweisen. Mein Vorschlag:
routes.MapRoute("SmartStore.ExplosMark",
    "Plugins/SmartStore.ExplosMark/{controller}/{action}/{id}",
    new { controller = "ExplosMark", action = "Index", id = UrlParameter.Optional },
    new[] { "SmartStore.ExplosMark.Controllers" }
)
.DataTokens["area"] = "SmartStore.ExplosMark";

... @Url.Action("Index", "ExplosMark", new { area = "SmartStore.ExplosMark" });

Schöne Grüße aus Düsseldorf,
Marcus Gesing


#7 oskrob

oskrob

    Newbie

  • Members
  • Punkt
  • 4 Beiträge

Geschrieben: 20 April 2016 - 07:29

Vielen Dank.

Ich werde versuchen Ihr Vorschlag und ich melde mich.

 

Schönen Tag noch,

Robert




Auch markiert mit einem oder mehrerer dieser Schlüsselwörter: Plugin, smartgallery, PictureGallery