AJAX in comments.php.

  • Ahoj,
    weil ja wegen der neuen Datenschutzerklärungspflicht ein Riesenzirkus drum veranstaltet wird, möchte ich einen Text dazu im Kommentarfeld verewigen. Der ist mir im Entwurf leider etwas zu lang geraten, so dass weniger wichtige Informationen, die ich sicherheitshalber dazupacken würde, per AJAX erstmal weggeblendet (und über einen simplen Textlink sichtbar gemacht) werden sollen. Das geht unter WordPress-Einträgen und -Seiten ganz gut mit Plugins, doch die Hinweise sind in der comments.php verewigt. Und ich hab eigentlich keine Ahnung, wie man AJAX programmiert, ohne die comments.php ins Elend zu stürzen. Weiß jemand also Rat?

    Ich danke im Voraus.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • AJAX != JavaScript. Nur um das am Anfang zu klären :-)

    Einfachste Lösung wäre den Text in einen div-Container mit ID zu packen und per default auf unsichtbar zu setzen (also z.B. <div id="moreprivacy" style="display:none;">). Dann machste dir an anderer Stelle zwei Textlinks, in etwa so:

    HTML
    <a onclick="document.getElementById('moreprivacy').style.display = 'block';">Anzeigen</a>
    <a onclick="document.getElementById('moreprivacy').style.display = 'none';">Ausblenden</a>

    Ist zwar nicht die sauberste Lösung, aber funktioniert :mrgreen:

    Gruß Jeriko

    Jeriko - Design, Style, Photographie

  • wie soll man moreprivacy dann im css deklarieren??
    sonst meckert doch der validator und der code ist invalide

  • Nee, nicht jede ID oder Klasse muss auch gestyled werden, der Code wird dadurch nicht invalide. Letztlich wird sie nur gebraucht, weil der der JavaScript-Teil sonst nicht weiss, wo er ansetzen muss.

    Gruß Jeriko

    Jeriko - Design, Style, Photographie

  • wie genau muss das dann aussehn im code?

    also?

    <div id="moreprivacy" style="display:none;">
    ---Text---

    und wohin kommt der java befehl?
    sorry aber ich kann mir das grade nicht bildlich vorstellen

  • Hmm, auch bei mir scheint das nicht so zu klappen. Vielleicht setze ich die Links auch an falscher Stelle.
    EDIT: So ist es. Der Link zum Erscheinen muss außerhalb des Containers gesetzt werden. Logisch. Danke für den Tipp!

    Ach ja, ich wusste schon, dass AJAX != JS...

  • könntest du mir dann vllt genau erklären wie du es gemacht hast?

  • Klar zeig ich dir, wie ich das gemacht habe. Das Manko an dieser Technik ist leider allgemein, dass der "Weiterlesen"-Hinweis nach dem Klick nicht verschwindet. Aber gut.

    Code
    Dieser Text ist so oder so sichtbar. Jetzt kommt ein Zeilenumbruch.<br />
    <a onclick="document.getElementById('moreprivacy').style.display = 'block';">Weiterlesen.</a>
    <div id="moreprivacy" style="display:none;">
    <a onclick="document.getElementById('moreprivacy').style.display = 'none';">Wegmachen.</a> Leerzeichen machen nicht vergessen. Oder gleich einen Zeilenumbruch machen. Dieser ganze Text kommt erst nach dem Klick.
    </div>

    "div" bewirkt automatisch, dass nach dem "Weiterlesen"-Link ein Zeilenumbruch erfolgt. Probier's aus, experimentiere gegebenenfalls herum und achte auch auf die Hinweise im Code ;)

  • ich habs aussprobiert und irgendwie ist das nicht so der brüller!
    mich würde interessieren wie unser geschätzter bloggerkollege von http://blog.helmschrott.de/ das gemacht hat!
    seine sidebar ist echt mal hammer und sowas müsste man doch auch für den kommentar bereich erreichen können

    hat einer ne idee?

  • Ja, der macht das eben mit AJAX... Vielleicht antwortet er auf eine nette Mail? ;) Ich wag den Versuch, ja?

  • Hallo zusammen,

    schön, wenn meine Idee ankommt. Zugegebenermaßen ist das gar nicht so schwer. Mit AJAX hat's zwar nix zu tun, dafür mit scriptaculous um so mehr.

    Genauer gesagt hiermit.

    Angeblich geht das aber noch besser (kleineres JS und weniger Markup-Aufwand) mit JScript - damit hab' ich aber noch nicht gespielt.

    Infos zu meiner Integration hab ich auch hier gepostet. Hier gibts auch noch paar Infos zum Blog, den Plugins und dem Layout.

    Viel Erfolg!

    P.S. Wer auch immer von Euch mir die Mail geschrieben hat - man muss mich nicht siezen ;) Ich bin auch nur ein Blogger.

    *winke*

  • Hust, das war ich :) Danke für die Antwort, ich probier's mal aus.

  • danke frankH

    ich hab mir die seite davor schon angeschaut und so schwer scheint die sache echt nicht! deine links haben auf jeden fall weiter geholfen!
    mal sehn ob ich heute noch auf nen grünen zweig komme

    @ mr. brightside

    sag bescheid wenn du es damit realisiert hast! ich probier mal auf lokalen blog und dann trau ich mich live dran!

  • Ich probier das morgen aus, wenn's recht ist :) Als Typ kann man sich nur auf eine Sache konzentrieren (sagt die Always-Werbung) ;)

  • Ja, toll, wie war das nochmal mit morgen? ;) Tut mir Leid, irgendwie hapert's mit der Zeit...

  • Also, ich hab's geschafft. Das Ganze geht so:

    script.aloco.us herunterladen und die Scripts

    • prototype.js
    • scriptaculous.js
    • builder.js
    • effects.js
    • dragdrop.js
    • slider.js
    • controls.js

    in einen Ordner hochladen. Ich hab's in einen Ordner namens "js" im Hauptverzeichnis installiert, unabhängig vom WordPress-Ordner. Ihr könnt's aber auch dort hochladen. Whatever.


    In der header.php des Themes unter der Zeile

    PHP
    <?php wp_head(); ?>

    diese hinzufügen:

    Code
    <script src="deineadresse/js/prototype.js" type="text/javascript"></script>
    <script src="deineadresse/js/scriptaculous.js?load=effects" type="text/javascript"></script>

    Jetzt geht's ans Eingemachte: Such dir die Stelle raus, die das Vergnügen mit dem Script hat. Du baust dazwischen einen div-Container ein. Das kann so aussehen:

    Code
    <div id="wusch" style="display: none">
    Das hier ist versteckt.
    </div>

    Vor dem Container haust du den magischen Link rein. Das kann ein Text oder natürlich ein Bild sein. Ich hab jetzt einen Effekt eingerichtet, der den Inhalt quasi "runterzieht". Schau im Link oben nach, wenn dir das nicht zusagst.

    Code
    <a href="#" onclick="Effect.toggle('wusch', 'slide', {duration:0.5}); return false;">...wusch!</a>

    Müsste alles sein, denk ick.

  • HAAAALT! jetzt bleibst du schön online :mrgreen:

    ich hab hier nen thema aufgemacht zu dieser frage!
    ist die leiste bei dir als standard auf oder zugeklappt?

  • Es ist bei mir standardmäßig eingeklappt. Das lässt sich jedoch bequem ändern, wenn man statt

    Code
    <div id="wusch" style="display: none">


    eben

    Code
    <div id="wusch">


    eingibt. Ganz einfach.

  • Meinst du jetzt unten unter "Netzkultur"? Das funktioniert bei mir. Gut, es ist nicht animiert, aber vielleicht wolltest du das sogar so.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!