Toubsen: OpenPinboard

Hi,

Kennt jemand OpenPinboard?

Das ist echt ein Super Tool! Habe es auf meine Homepage eingebunden und es klappt auch alles wunderbar.. Doch dann - "Haste das auch mal im IE getestet", "Nein"..
...und es kam wie es kommen sollte.
Der IE von Microsoft raubt mir ein weiteres mal meine wertvolle Zeit und ich muss mit ärger feststellen, dass keine Nachrichten mehr sichtbar sind und auch keine Posts mehr möglich sind.

Würde mich sehr freuen wenn jemand schon mal das selbe Tool verwendet hat und die Lösung kennt. Ich vermute es liegt an JavaScript deshalb die Themenwahl.

Ich hasse den Internet Explorer!

Toubsen

  1. <script type="text/javascript">
    <!--
      // define variables
      var pages      = <?php echo (int)$pages ?>;
      var pp         = <?php echo (int)$pp ?>;
      var style      = <?php echo (int)$style ?>;
      var mypress = 0, divPosX = 0, divPosY = 0, diffx = 0, diffy = 0, layer = "lay1", count = 1, logindialog = 0, admin = false, smileys = 0, adminaction = "";
      var xhttp;
      var mouseX = 0, mouseY = 0;
      // language
    <?php echo arrayphp2js($language,"language") ?>

    document.onmousemove = checkPosition;

    function putsmiley(code) {
        target = document.getElementsByName("message")[0];
        target.value += " "+code;
        target.focus();
      }
      function checkPosition(e) {
        if (document.all) {
          mouseX = event.clientX + document.body.scrollLeft;
          mouseY = event.clientY + document.body.scrollTop;
        }
        else {
          mouseX = e.pageX;
          mouseY = e.pageY;
        }
      }
      function press(lay) {
        if (adminaction!="") return false;
        layer=lay;
        mypress=1;
        diffx = mouseX- divPosX;
        diffy = mouseY- divPosY;
      }
      function unpress(lay) {
        if (adminaction!="") return false;
        layer = lay;
        mypress = 0;
        x = mouseX-diffx;
        y = mouseY-diffy;
        x = document.getElementById(layer).style.left;
        y = document.getElementById(layer).style.top;

    // make an xhttp-request to save the position
        if (!xhttp) return xhttperror();
        xhttp.open("GET","index.php?action=move&x="+x+"&y="+y+"&id="+lay, true);
        xhttp.send("");
      }
      function checkMouse(Element) {
        divPosX = Element.offsetLeft;
        divPosY = Element.offsetTop;
        if(mypress==1) {
          document.getElementById(layer).style.left = mouseX-diffx;
          document.getElementById(layer).style.top = mouseY-diffy;
        }
        return true;
      }
      function opendialog() {
        document.getElementById("lay_entry").style.left = mouseX;
        document.getElementById("lay_entry").style.top = mouseY;
        document.getElementById("lay_entry").style.visibility = "visible";
        document.getElementById("lay_entry").style.display = "inline";
        document.haupt.x.value = mouseX;
        document.haupt.y.value = mouseY;
      }
      function closedialog() {
        document.getElementById('lay_entry').style.visibility = "hidden";
        document.getElementById('lay_entry').style.display = "none";
        document.haupt.message.value = language["label_message"];
        document.haupt.op_title.value = language["label_subject"];
        document.haupt.op_username.value = language["label_name"];
        document.getElementById("rest").innerHTML = "120";
        // force smileys hidden
        target = document.getElementById("smileybox").style;
        target.visibility = "hidden";
        target.display = "inline";
        smiley = 0;
      }
      function smileytoogle() {
        target = document.getElementById("smileybox").style;
        if (smiley==0) {
          target.visibility = "visible";
          target.display = "inline";
          target.left = (mouseX+15)+"px";
          target.top = (mouseY+15)+"px";
          smiley = 1;
        }
        else if(smiley==1) {
          target.visibility = "hidden";
          target.display = "none";
          smiley = 0;
        }
      }
      function rest() {
        var allow = 200;
        chars = document.haupt.message.value.length;
        if(chars>allow) {
          document.haupt.message.value = document.haupt.message.value.substring(0,allow);
          restchars = 0;
        }
        else {
          restchars = allow-chars;
        }
        document.getElementById("rest").innerHTML = restchars;
      }
      function bbc(aTag, eTag) {
        var input = document.forms["haupt"].elements["message"];
        input.focus();
        if(typeof document.selection != "undefined") {
          var range = document.selection.createRange();
          var insText = range.text;
          range.text = aTag + insText + eTag;
          range = document.selection.createRange();
          if (insText.length == 0) {
            range.move('character', -eTag.length);
          }
          else {
            range.moveStart('character', aTag.length + insText.length + eTag.length);
          }
          range.select();
        }
        else if(typeof input.selectionStart != "undefined") {
          var start = input.selectionStart;
          var end = input.selectionEnd;
          var insText = input.value.substring(start, end);
          input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
          var pos;
          if (insText.length == 0) {
            pos = start + aTag.length;
          }
          else {
            pos = start + aTag.length + insText.length + eTag.length;
          }
          input.selectionStart = pos;
          input.selectionEnd = pos;
        }
        else {
          var pos;
          var re = new RegExp('[1]{0,3}$');
          if (!re.test(pos)) pos = input.value.length;
          var insText = prompt(language["please_enter_the_text"]);
          input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
        }
      }

    function xhttpinit() {
        if (window.ActiveXObject) {
          try {
            // Internet Explorer 6.x
            xhttp  = new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch(e) {
            //  Internet Explorer 5.x
            try {
              xhttp  = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e) {
              xhttp = false;
            }
          }
        }
        else if (window.XMLHttpRequest) {
          // Für Mozilla, Opera und Safari
          try {
            xhttp = new XMLHttpRequest();
          }
          catch (e) {
            xhttp = false;
          }
        }
      }

    function makeentry() {
        op_username = encodeURIComponent(document.haupt.op_username.value);
        op_title = encodeURIComponent(document.haupt.op_title.value);
        message = encodeURIComponent(document.haupt.message.value);
        x = encodeURIComponent(document.haupt.x.value);
        y = encodeURIComponent(document.haupt.y.value);

    // send XHTTP-Request to save the entry
        if (!xhttp) return xhttperror();
        xhttp.open("POST","index.php?action=make_entry",false);
        xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xhttp.send("op_username="+op_username+"&op_title="+op_title+"&message="+message+"&x="+x+"&y="+y);

    if (xhttp.readyState==4 && xhttp.status==200 && xhttp.responseXML!=0) {
          xml = xhttp.responseXML.getElementsByTagName("makeentry")[0];
          errno = parseInt(xml.getElementsByTagName("error")[0].getAttribute("no"));
          if (errno==3) msgbox("r",language["you_entered_no_text"]);
        }

    closedialog();
        getpage(0);
      }
      function getpage(page) {
        if (!xhttp) return xhttperror();
        xhttp.open("GET","index.php?action=getpage&page="+page, true);
        xhttp.onreadystatechange = getpage_callback;
        xhttp.send("");
      }
      function getpage_callback() {
        if (xhttp.readyState==4 && xhttp.status==200) {
          target = document.getElementById("entries");
          target.innerHTML = "";
          var list = xhttp.responseXML.getElementsByTagName("entries")[0];
          if (list) {
            // pager
            pages = list.getAttribute("pages");
            cpage = list.getAttribute("cpage");

    if (pages==0) pager = " <b>1</b>";
            else {
              pager = "<b>"+language["page"]+":</b>";
              for (a=1; a<=pages; a++) {
                if (a!=cpage) pager += " <a href="javascript:getpage("+a+")">"+a+"</a>";
                else pager += " <b>"+a+"</b>";
              }
            }
            document.getElementById("pager").innerHTML = pager;

    ...


    1. 0-9 ↩︎

    1. ...

      // build messagebox
              var box = "";
              for (i=0; i<list.getElementsByTagName("item").length; i++) {
                item = list.getElementsByTagName("item")[i]
                id = item.getElementsByTagName("id")[0].innerHTML;
                from = item.getElementsByTagName("from")[0].innerHTML;
                title = item.getElementsByTagName("title")[0].innerHTML;
                text = item.getElementsByTagName("text")[0].innerHTML;
                x = item.getElementsByTagName("x")[0].innerHTML;
                y = item.getElementsByTagName("y")[0].innerHTML;
                time = item.getElementsByTagName("time")[0].innerHTML;

      box += "<div id="lay"+id+"" class="note" style="left:"+x+"px; top:"+y+"px; z-index:"+(i+1)+"; max-width: 250px;" onmousedown="press('lay"+id+"')" onmouseup="unpress('lay"+id+"')" onMousemove="checkMouse(this)" onclick="admindo(this)">";
                box += "<table border="0" cellspacing="0" cellpadding="0">";
                box += "<tr>";
                box += "<td style="width: 20px; height: 20px; background-image: url(images/paper/style"+style+"/tl.gif)"></td>";
                box += "<td style="height: 20px; background-image: url(images/paper/style"+style+"/mt.gif)"></td>";
                box += "<td style="width: 20px; height: 20px; background-image: url(images/paper/style"+style+"/tr.gif)"></td>";
                box += "</tr>";
                box += "<tr>";
                box += "<td style="width: 20px; background-image: url(images/paper/style"+style+"/ml.gif)"></td>";
                box += "<td style="background-image: url(images/paper/style"+style+"/mm.gif)">";
                box += "<div style="font-weight: bold; font-size: smaller;">"+title+"</div>";
                box += "<div style="font-size: x-small">"+text+"</div><br />";
                box += "<div style="font-size: x-small;">"+from+" ("+time+")</div>";
                box += "</td>";
                box += "<td style="width: 20px; background-image: url(images/paper/style"+style+"/mr.gif)"></td>";
                box += "</tr>";
                box += "<tr>";
                box += "<td style="width: 20px; height: 20px; background-image: url(images/paper/style"+style+"/bl.gif)"></td>";
                box += "<td style="height: 20px; background-image: url(images/paper/style"+style+"/mb.gif)"></td>";
                box += "<td style="width: 20px; height: 20px; background-image: url(images/paper/style"+style+"/br.gif)"></td>";
                box += "</tr>";
                box += "</table>";
                box += "</div>";
              }
              target.innerHTML = box;
            }
          }
        }
        function tlogindialog() {
          if (logindialog==0) {
            document.getElementById("adminlogin").style.visibility = "visible";
            document.admin.password.focus();
            logindialog = 1;
          }
          else if (logindialog==1) {
            document.getElementById("adminlogin").style.visibility = "hidden";
            logindialog = 0;
          }
        }
        function adminlogin() {
          if (!xhttp) return xhttperror();
          password = document.admin.password.value;
          document.admin.password.value = "";
          document.admin.password.blur();
          tlogindialog();
          xhttp.open("POST","index.php?action=login", true);
          xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
          xhttp.onreadystatechange = adminlogin_callback;
          xhttp.send("password="+password);

      return false // have to return FALSE that the form will not be send
        }
        function adminlogin_callback() {
          if (xhttp.readyState==4 && xhttp.status==200 && xhttp.responseXML!=0) {
            xml = xhttp.responseXML.getElementsByTagName("admin")[0];

      errno = parseInt(xml.getElementsByTagName("error")[0].getAttribute("no"));
            if (errno==1) msgbox("r",language["wrong_password"]);
            else if (errno==0) {
              admin = true;
              msgbox("g",language["youre_admin_now"]);
              target = document.getElementById("adminlink");
              target.innerHTML = language["admin_logout"];
              target.setAttribute("href","javascript:adminlogout()");
              target2 = document.getElementById("admin").style;
              target2.display = "inline";
              target2.visibility = "visible";
            }
          }
        }
        function adminlogout() {
          target = document.getElementById("adminlink");
          target.innerHTML = language["admin_login"];
          target.setAttribute("href","javascript:tlogindialog()");
          target2 = document.getElementById("admin").style;
          target2.display = "none";
          target2.visibility = "hidden";
          admin = false;
          adminaction = "";
          msgbox("g",language["youre_logged_out"]);
        }
        function admint(action) {
          if (adminaction==action) {
            document.getElementById(adminaction).style.border = "0px solid #000000";
            action = "";
          }
          else if (action!="") {
            document.getElementById(action).style.border = "1px solid #000000";
          }
          adminaction = action;
        }
        function admindo(element) {
          id = element.getAttribute("id").substr(3);
          if (adminaction!="") {
            if (!xhttp) return xhttperror();
            usedaa = adminaction;
            if (admin==false) {
              msgbox("r",language["youre_not_admin"])
              return false;
            }
            if (adminaction=="del") {
              xhttp.open("POST","index.php?action=del", false);
              xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
              xhttp.send("password="+password+"&id="+id);
              if (xhttp.readyState==4 && xhttp.status==200 && xhttp.responseXML!=0) {
                xml = xhttp.responseXML.getElementsByTagName("admin")[0];
                errno = parseInt(xml.getElementsByTagName("error")[0].getAttribute("no"));
                if (errno==1) msgbox("r",language["wrong_password"]);
                else if (errno==2) msgbox("r",language["mysql_error"]);
                else if (errno<0 || errno>2) msgbox("r",language["unknown_error"]);
              }
            }
            getpage(0);
          }
        }
        function admindo_callback() {

      }
        function msgbox(mode,text) {
          if (mode=="r") {
            title = language["error"];
            img = "images/error.png";
          }
          else if (mode=="g") {
            title = language["information"];
            img= "images/ok.png";
          }
          else return false;

      js = "document.getElementById('errors').innerHTML = ''";
          text = "<table border=0 class="warning" id="message" style="z-index: "+(pp+4)+";"><tr><td width=50 rowspan=2 style="text-align: center; vertical-align: middle;"><img src=""+img+"" alt=""+title+""></td><th width=250 style="text-align: center; vertical-align: middle;">"+title+"</th></tr><tr><td style="text-align: left; vertical-align: middle; font-size: small;">"+text+"</td></tr><tr><td style="text-align: center; vertical-align: middle;" colspan=2 width="100%"><input type="button" value="  OK  " onClick=""+js+""></td></tr></table>";
          document.getElementById("errors").innerHTML = text;
          return true;
        }
        function xhttperror() {
          msgbox("r",language["xhttp-error"]);
          return false;
        }
      //-->
      </script>

  2. Mahlzeit,

    Kennt jemand OpenPinboard?

    Wenn jemand das Tool kennt und diesen Fehler auch bei sich bemerkt hat, hat dieser jemand auch sicherlich den Quellcode - Du musst ihn also nicht kommentarlos komplett posten.

    Vielleicht liegt's aber auch an invalidem Code?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Moin,

      Wenn jemand das Tool kennt und diesen Fehler auch bei sich bemerkt hat, hat dieser jemand auch sicherlich den Quellcode - Du musst ihn also nicht kommentarlos komplett posten.

      Das ist sicherlich richtig, äh.. aber diejenigen die dieses Tool nicht haben würden evtl gerne mal - nur einen klick entfernt - sich den >>JAVASCRIPT-TEIL<< des QT anschauen! ;-)

      Toubsen

      1. Mahlzeit,

        Das ist sicherlich richtig, äh.. aber diejenigen die dieses Tool nicht haben würden evtl gerne mal - nur einen klick entfernt - sich den >>JAVASCRIPT-TEIL<< des QT anschauen! ;-)

        Was hat dann - im "Javascript-Teil" - folgender PHP-Code zu suchen: <?php echo (int)$pages ?>;

        Außerdem ließe sich der Code einfacher am Stück begutachten, z.B. auf einer zur Verfügung gestellten Beispielseite - oder derjenige, der Dir helfen möchte, schaut halt selbst bei Sourceforge nach. Den Code gestückelt unkommentiert ins Forum zu posten ist in JEDEM Fall nicht sinnvoll.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Den Code gestückelt unkommentiert ins Forum zu posten ist in JEDEM Fall nicht sinnvoll.

          OK Sorry :-(

          Ich glaub ich hab hier noch nie was richtig gemacht!
          Irgendwie ist immer was anderes:

          Sag doch mal Hallo
          Sag Tschüss
          Bedanke dich
          Poste nicht zu viel
          Poste nicht zu wenig
          Achte auf deine Rechtschreibung
          Setze nur ein!!!!!
          SCHREIBE NICHT NUR GROß

          Sorry aber das kenne ich nur aus diesem Forum
          -> Aber bitte nicht über dieses Thema diskutieren sondern über mein Problem BITTE - Danke! <-

          Toubsen

          1. Mahlzeit,

            Sorry aber das kenne ich nur aus diesem Forum

            Ich auch - aber gerade das finde ich gut: nur durch eine Mindestqualität der Fragen können schnelle und zielführende Antworten bzw. Hinweise garantiert werden. Insofern möchte ich Dich (nochmal) bitten, eine sinnvolle Problembeschreibung zu liefern, bei dem Satz ...

            Der IE von Microsoft raubt mir ein weiteres mal meine wertvolle Zeit und ich muss mit ärger feststellen, dass keine Nachrichten mehr sichtbar sind und auch keine Posts mehr möglich sind.

            ... handelt es sich in jedem Fall NICHT um eine solche.

            Was bedeutet "keine Nachrichten mehr sichtbar"? An der Oberfläche? Sind sie denn im Quellcode vorhanden? Rendert der IE vielleicht nur verkehrt? Hat sich seine Javascript-Engine aufgehängt? Was sagt die (leider nur wenig aussagekräftige) Fehlerkonsole? Hast Du es mal mit der Developer Toolbar probiert (diese sollte ausführlichere Fehlermeldungen liefern)?

            Was bedeutet "keine Posts sind möglich"? Passiert nichts beim Klick irgendwodrauf? Werden keine Seiten geladen?

            In diesem Zusammenhang frage ich dann nochmal nach, ob Du Deinen Code bereits auf Validität überprüft hast (der IE hat bekanntermaßen gerne mal Probleme mit invalidem HTML).

            -> Aber bitte nicht über dieses Thema diskutieren sondern über mein Problem BITTE - Danke! <-

            Das versuche ich ja.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Hi,

    auf http://openpinboard.sourceforge.net/index.php?site=bugreport.php
    steht doch das IE nicht unterstützt wird.

    OpenPinboard does not work in IE (will get fixed in next release)

    Abwarten und Bier trinken, wenn du nicht selbst basteln willst.

    1. Hallo

      auf http://openpinboard.sourceforge.net/index.php?site=bugreport.php
      steht doch das IE nicht unterstützt wird.

      OpenPinboard does not work in IE (will get fixed in next release)

      hehe - und 0 Bugs open auf der Startseite :-)

      Abwarten und Bier trinken, wenn du nicht selbst basteln willst.

      hmm, letzte News aus dem Oktober 2006 - ich fürchte, da wird man eher zum Alkoholiker ...

      Freundliche Grüße

      Vinzenz

      1. Hallo

        auf http://openpinboard.sourceforge.net/index.php?site=bugreport.php
        steht doch das IE nicht unterstützt wird.

        Hab ich auch gesehen.. nachdem ich mit der Implementierung fertig war.
        Sehr ärgerlich.. Da ist mann schon mal am Boden wenn man 3 Tage (nicht am stück) Bastelt und dann festellen muss, dass man vergessen hat es mal mit diesem besch****** IE zu testen.

        hmm, letzte News aus dem Oktober 2006 - ich fürchte, da wird man eher zum Alkoholiker ...

        So siehts aus!

        Kennt jemand ein Vergleichbares OpenSource-Projekt.. Ich würde mir genau das selbe Wünschen nur IE-Tauglich, da ja leider die meitsen meiner Website-Besucher nicht gerade die jüngsten sind, so dass Sie wissen was ein Firefox ist ;-) Aber mit ner Pinnwand sollten sie schon umgehen können, wenn das mit dem Gästebuch klappt klappts auch mit nem PinBoard :-)

        Toubsen

      2. Abwarten und Bier trinken, wenn du nicht selbst basteln willst.

        hmm, letzte News aus dem Oktober 2006 - ich fürchte, da wird man eher zum Alkoholiker ...

        Hallo.

        Naja, das letzte update in den Downloads auf http://sourceforge.net/project/showfiles.php?group_id=175689 wurde am "August 1, 2007" gemacht.

        Die Hoffnung stirbt zuletzt. :-)

        Schöne Grüße,
        Daniel