Jump to content

JS des Produktbild zooms für Link nutzen


Recommended Posts

Moin,

 

da meine Variante anscheinend Fehler verursacht:

 

Ich möchte durch einen Button einen Iframe mit einem Kontaktformular öffnen.

Quasi der selbe Effekt der passiert wenn man im Produkt auf das Bild klickt und es n voller Größe geöffnet wird.

 

Per Fancybox funktioniert es zwar, es werden aber einige JS Fehler angezeigt. Also hoffe ich hier auf Hilfe um das ganze sauber umgesetzt zu bekommen.

 

 

http://testshop.displayandpack.com/de/drehdispenser/11-78-drehdispenser-a4-a6.html#/25-bedruckung-mit_ihrem_motiv_bedruckt/28-dispenserposition-mitte/31-produktionszeit-8_werktage

 

Es geht um den "Produkt anfragen" Button, bzw. hauptsächlich um dessen JS Funktion.

Edited by Shad86 (see edit history)
Link to comment
Share on other sites

Hi Shad86,

 

glaub Du hast die js Fehler auch ohne fancybox ... warum werden bei Dir überhaupt die folgenden .js files ungefähr 15x geladen?

 

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="/js/fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
<script type="text/javascript" src="/js/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>

 

Beheb das mal .. und zwecks der Schönheit auch mal alle doppel // weg (macht ihm zwar nix, sieht aber seltsam aus) :)

 

LG, Tom

Link to comment
Share on other sites

Naja ich habe die drei Zeilen in folgende Datei gepackt:

 

themes/meintheme/templates/_partials/javascript.tpl

 

Keine Ahnung wieso er die dann so oft rein packt. Also einfach in die header.tpl damit ich kontrollieren kann wie oft.

 

 

Und ich teste meine Änderungen gerade an der 1.7.1.0 Beta und wollte diese dabei auch gleich mal etwas aufräumen.

Module habe ich alle installiert die auch auf dem Shop installiert sind den ich verlinkt habe, soweit keine JS Fehler. Sobald ich aber meine per Hand geänderten Änderungen mache, geht es los mit den JS fehlern. Da auch ein dazugekauftes Modul wegen JS Fehlern nicht funktioniert bin ich davon ausgegangen das es erstmal diese Änderungen sind.

Link to comment
Share on other sites

Jetzt habe ich die drei Verlinkungen nicht mehr in der javascript.tpl sondern direkt im head.tpl, sieht optisch auch besser aus vom Code her, der Button funktioniert aber nicht mehr.

Ich kriege die Kriese...

Hat einer einen Tip für mich wo ich die drei Fancybox Scripts hin packen muss damit sie nicht zig mal in den Head geschrieben werden aber der button trotzdem noch geht?

Link to comment
Share on other sites

Hi,

 

sieht aber schon besser aus! Ich lass den 1.7x momentan noch links liegen aber mal kurz reingeschaut und ich denke nicht das Du die .js files in die template.tpl bzw. header.tpl oder footer.tpl packen solltest.

 

Hoff ich erzähl jetzt keinen schmarrn aber der 1.7 setzt ja auf symfony auf und dort ist es so das die assets immer in eine .yml gehören ... hast Du keine theme.yml oder template.yml? Wenn ja pack sie da rein...und nirgends sonst!

 

LG, Tom

Link to comment
Share on other sites

Na das ist doch mal eine gute Info.

Werd mich wohl mal etwas in symfony einlesen müssen...

 

es gibt eine theme.yml aber da drin gibt es nur

assets:
  # If you're using this theme as child and you want to load
  # the parent theme assets, uncomment this line.
#  use_parent_assets: true

  # The following lines are showing how to load assets in your page
  # Uncomment and change value to start loading css or js files
#  css:
#    all:
#      - id: custom-lib-style
#        path: assets/css/custom-lib.css
#    product:
#      - id: product-style
#        path: assets/css/product.css
#        media: all
#        priority: 200
#  js:
#    cart:
#      - id: cat-extra-lib
#        path: assets/js/cart-lib.js

Und da könnte ich dann auf die angegebene Weise wohl die drei Scripts als auch den Code aus der custom.js einfügen?

Ich werds mal probieren.

 

 

Oder ob ich vielleicht völlig auf dem Holzweg bin und ich das ganze vielleicht viel simpler machen kann. Wie gesgat möchte ja "nur" das ein Button einen Iframe aufruft wie es beim Bildzoom passiert.

Edited by Shad86 (see edit history)
Link to comment
Share on other sites

Ja genau da bist Du schon richtig ... sag ich jetzt einfach mal so (ohne garantie da 1.7 für mich noch nicht lebt)

 

Und nein in die yml gehört kein JS code, dort kannst Du nur files anziehen, in deinem Fall etwa so

assets:
  js:
    all:
      - id: custom
        path: assets/js/custom.js
        priority: 4
        position: bottom

gleiches natürlich mit css.

 

Das ist enorm wichtig bei sf sonst erlebst Du dein Wunder wenn Du auf prod stellst :)

 

Wichtig ist auch die formatierung einzuhalten da sonst die yml nicht mehr interpretiert wird!

Edited by wmunich (see edit history)
Link to comment
Share on other sites

JA, ich hätte es jetzt so:

  css:
    product:
      - id: fancybox
        path: fancybox/source/jquery.fancybox.css?v=2.1.5
        media: all
  js:
    product:
      - id: fancybox
        path: fancybox/lib/jquery.mousewheel-3.0.6.pack.js
        path: fancybox/source/jquery.fancybox.pack.js?v=2.1.5
        path: http://code.jquery.com/jquery-latest.min.js
        path: assets/js/custom.js

Tut sich aber garnichts. Zeigt auch nirgends im Quelltext was an.

Werde mich da jetzt mal etwas einlesen, vielleicht übersehe ich nur was.

Link to comment
Share on other sites

Du musst wenn Du Änderungen in der yml vornimmst immer den sf cache löschen ... ungefähr so

$ php bin/console cache:clear --env=prod

Und ich "glaube" nicht das Du einfach mehrere path Angaben machen kannst ... brösel die lieber auf in mehrer "product:" ... sonst kommt er ja auch durcheinander mit den prios.

 

Ja ums einlesen kommst wahrscheinlich nicht aus, wobei das bei sf überhaupt keinen Spaß macht :mellow:

Link to comment
Share on other sites

Ist der Code nicht für die console des Servers? Hab leider sharedhosting und dadurch keine Möglichkeit was das angeht.

 

Okay dann mach ich die alle einzeln. Ist die ID im Grunde egal? Die rufe ich ja nirgends ab oder? Also kann ich einfach etwas vergeben was mir einleuchtend ist?

Link to comment
Share on other sites

Oh ja ist für die shell. Hmmm kann natürlich sein das bei 1.7 das so implementiert wurde das der sf cache autom. mitgelöscht wird wenn der ps cache gelöscht wird ... das musst mal probieren. Vielleicht wurde das auch anders automatisiert denn das Thema mit dem shared hosting wird ja mehrere betreffen.

 

Die id ist total egal so lange sie eindeutig ist. Wichtig ist noch die prio wenn Du die Reihenfolge des ladens beeinflussen willst.

Link to comment
Share on other sites

Ja werd mich da mal umsehen was den Cache angeht. Alle anderen Dateiänderungen werden aber ohne Probleme sofort umgesetzt. Aber die ganzen Pfade die ich jetzt in der theme.yml habe scheinen Presta nicht wirklich zu interessieren. Kann die nirgends im Quelltext wiederfinden.

Das ist etwas zum graue Haare bekommen...

Link to comment
Share on other sites

Ja das ist tatsächlich ein sehr hilfreicher Link, Danke dir.

assets:
  css:
    product:
      - id: fancyboxcss
        path: fancybox/source/jquery.fancybox.css?v=2.1.5
        media: all
        priority: 100
  js:
    product:
      - id: mousewheel
        path: fancybox/lib/jquery.mousewheel-3.0.6.pack.js
        priority: 70
        position: bottom
        inline: true
    product:
      - id: fancybox
        path: fancybox/source/jquery.fancybox.pack.js?v=2.1.5
        priority: 80
        position: bottom
        inline: true
    product:
      - id: jquery
        path: http://code.jquery.com/jquery-latest.min.js
        priority: 90
        position: bottom
        inline: true
    product:
      - id: custom
        path: fancybox/source/custom.js
        priority: 200
        position: bottom
        inline: true	

So sieht es jetzt aus und SOLLTE nach der Anleitung richtig sein. (wenn ich es richtig verstanden habe)

Aber immernoch nirgends auch nur ansatzweise was zu sehen. Langsam befürchte ich das es wir mit der neuen override Möglichket ist.

Es gibt schon Anleitungen dazu, es funktioniert in 1.7 aber noch nicht...

Edited by Shad86 (see edit history)
Link to comment
Share on other sites

So ein Mist :angry: wobei die yml auf den ersten Blick gut für mich aussieht!

 

Blind ist das immer schwer zu sagen ... hast Du denn die registerJavascript() im controller? Schon mal einen dump drauf gemacht?

 

Ansonsten bin ich grad auch etwas planlos und kann mir auch schwer vorstellen das so eine default funktionalität von sf mit Absicht ausgehebelt wird...

 

Hmm sorry, vielleicht hat ein PS Profi einen besseren Tip für dich...

Edited by wmunich (see edit history)
Link to comment
Share on other sites

Ja das kenn ich, aber ein Link bringt in dem Fall ja auch nichts. Ne bisher habe ich nur die yml hochgeladen. Ich dachte mit dem registerJavascript, brauche ich wenn ich die Scripts in einem Modul registrieren will und das nicht per Theme löse.

Puh, ne. Noch nie was mit dump zu tun gehabt.

 

Hast mich aber schonmal wesentlich weiter gebracht. Muss ja in der Richtung funktionieren.

Erstmal vielen Dank dafür.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...