1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Widget mit Media Library Unterstützung

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von Sparkley, 16. Dezember 2016.

  1. Sparkley

    Sparkley Member

    Registriert seit:
    16. Dezember 2016
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo liebe Community,
    leider habe ich ein Problem bei der Programmierung eines Widgets und habe auch nach langer Recherche nichts finden können. Soweit funktionieren die Textfelder des Widgets, allerdings gibt es ein Problem bei der Übergabe der Bild Url. Diese wird nicht in das Input Feld geladen, wenn man beim Bild in der "Media Library" auf "in den Beitrag einfügen" klickt. Ich konnte das Problem soweit lokalisieren, dass die Variable "imgurl" in meinem Javascript Code leer ist. Weiß da allerdings nicht mehr weiter.

    Schon mal vielen Dank für eure Mühen

    Sparkley

    Mein PHP Code
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Mein JS Code
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  2. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    Du verwendest in deinem Script das Dollarzeichen ($).
    Wirft dir die Console das nicht als Fehler raus? Ich würde sagen, alle Stelle mit dem $ sollte eigentlich jQuery heißen (an einigen Stellen hast du es ja auch erstezt.

    Ansonsten liegt der Fehler vermutlich in folgender Zeile:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Du versucht die URL in ein Element zu schreiben, dass die Klasse "image-url" hat. Das gibt es aber in deinem Formular gar nicht.
     
  3. Sparkley

    Sparkley Member

    Registriert seit:
    16. Dezember 2016
    Beiträge:
    5
    Zustimmungen:
    0
    Vielen Dank für deine Antwort! Die Klasse im Formular gibt es:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Der Part auf den du dich beziehst funktioniert sowieso nicht, weil ich ja nicht den Inhalt der Variable ausgebe, sondern den String. Wollte so nur testen, ob der part ausgeführt wird, wenn ich mit der Media Library interagiere. Sorry, hätte ich erwähnen sollen.
    Mein Problem ist, dass wenn ich mit console.log versuche die Variable imgurl ausgeben möchte, undefined kommt und ich mir nicht erklären kann, warum.

    Also das Problem ist, dass ich die URL nicht in die Variable bekomme, wenn ich bei der Media Library auf "In Beitrag einfügen" klicke. Bezieht sich also auf diese Zeile:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Viele Grüße
     
  4. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    Nicht in dem PHP Teil, den du hier gepostet hast. Es wäre auch hilfreich, wenn du den nochmal etwas schöner formatieren könntest. So ist der wirklich schwierig lesbar.

    Aber du hast recht, ich habe deine Frage falsch verstanden, weil nicht genau gelesen.

    Hast du denn schon mal als ersten Schritt probiert, alle $-Zeichen gegen jQuery auszutauschen? Nur um das als Fehlerquelle auszuschließen.

    Du schreibst, imgurl ist undefined. Hast du mal versucht, console.log(html) auszugeben? Aus der Variable html "extrahiert" dein script ja imgurl.
    Ist html auch undefined? Wenn nein, poste hier mal bitte den Inhalt.
     
  5. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    Ich hab hier diese Woche gerade fast das selbe für eine Options-Seite für ein Plugin. Deshalb konnte ich gerade mal schnell in meiner eigenen Funktion testen.

    Die Dollarzeichen sind vermutlich doch nicht das Problem, weil du das ja als Parameter in der ready-function mit übergibst.

    Bei mir ist imgurl auch undefined, wenn ich deinen Code verwende.

    Gehen wir jetzt einfach mal davon aus, dass die Variable html bei dir nicht undefined ist, dann versuch mal

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    durch

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    zu ersetzen.
     
  6. Sparkley

    Sparkley Member

    Registriert seit:
    16. Dezember 2016
    Beiträge:
    5
    Zustimmungen:
    0
    Vielen Dank!
    Das ganze läuft jetzt mit folgendem Code, falls jemand nochmal auf den Thread stoßen sollte:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Hast du eine Ahnung, warum das jetzt funktioniert und vorher nicht?

    Achso und bevor ich es vergesse:
    Mein Code aus dem obersten Beitrag hat die Original URL in das Inputfeld geladen, wenn man zunächst in der Media Library auf Datei URL geklickt hat und dann auf "In Beitrag einfügen". Komisch, aber so sollte es ja auch nicht "funktionieren".

    Vielen Dank Daniel für Deine Hilfe!
     
    #6 Sparkley, 17. Dezember 2016
    Zuletzt bearbeitet: 17. Dezember 2016
  7. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    Um ehrlich zu sein: Ich habe keine Ahnung, was dieser Selector sein soll:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Habe ich so noch nie gesehen (und auch noch nie gebraucht). Vielleicht kann das ja noch jemand anders hier aufklären. Ich konnte es gerade nicht mal ergooglen ;)

    Ich würde ihn jetzt mal (im übertragenen Sinne) interpretieren als "Select img in Variable html". Also quasi das gleiche wie $(html).find('img').
    So wie ich das sehe, enthält die Variable html aber schon das img-Objekt. Insofern kann man direkt auf das Attribut zugreifen.

    Sehr gerne. Freut mich, dass es jetzt funktioniert. :)
     
    #7 danielgoehr, 17. Dezember 2016
    Zuletzt bearbeitet: 17. Dezember 2016
  8. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.681
    Zustimmungen:
    1.786
    http://api.jquery.com/jquery/#jQuery-selector-context
     
  9. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    Ah! Also macht es im Prinzip wirklich das gleiche wie $([context]).find(selector)?


    Edit: Blöd ausgedrückt. Es macht natürlich nicht das gleiche, aber es liefert das gleiche Ergebnis?
     
  10. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.681
    Zustimmungen:
    1.786
    OT, siehe "Selector Context" auf der o.g. Seite:

     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden