Announcement

Collapse
No announcement yet.

username im gui abfragen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • username im gui abfragen

    Hallo zusammen, guten morgen,
    mein problem ist, dass ich es zwar schaffe eine neue seite im gui anzulegen und dabei auch eine fremde seite via iFrame einbinde, aaaaber diese php seite bräuchte nun also parameter den username. an sich kein problem, aber wie komme ich im gui an den username ran?
    vielen dank für jede hilfe!
    hier mal mein kläglicher versuch der "plugin-seite" (also die register.js):

    Code:
    new ox.Configuration.InnerNode("configuration/com.nc.ncpasswd", _("NC Intern"));
    var node = new ox.Configuration.LeafNode("configuration/com.nc.ncpasswd/password", _("Password"));
    alert("vor der function");
    function tobi() {
            new JSON().get("ajax/user?action=get"+session, null, new function(reply) {
                    if(reply) {
                            if(reply.error){
                                    alert(reply.error);
                            }
                    }       else{
                                    var username=reply.login_info;
                                    alert(reply.login_info);
                            }
                            });
    }
    function tobi2(){
    alert(new JSON().get("ajax/user?action=get"+session, null));}
    
    alert("nach der function");
    tobi2();
    tobi();
    alert(username);
    var iframe = new ox.Configuration.IFrame(node,"TITLE", "passwd/main.php?user=",1);

  • #2
    nur falls es wen interessiert, und jemand noch nicht drauf gekommen ist
    hab das mal auf dem benutzerdaten ändern script geklaut und es funktioniert
    danach steht der login_info (also der username) in der variable imapuser

    Code:
            var imapuser;
            var last_mod;
            page.load = function (cont) {
            ox.JSON.get(AjaxRoot + "/user?action=get&id=" +
                configGetKey("identifier") + "&session=" + session,
                function(reply) {
                    old_user_data = clone(reply.data);
                    last_mod = reply.timestamp;
                    cont(reply.data);
                    imapuser=clone(reply.data.login_info);
                    alert(imapuser);
                });
            }

    Comment


    • #3
      Hallo,

      den Benutzernamen bekommst du, indem du die Benutzer-Schnittstelle auf die ID des derzeitig eingeloggten Benutzers abfragst. Die ID bekommst du aus config.identifier, diese variable kannst du im plugin auslesen.

      Code:
      config.identifier
      92
      Die Details, wie z.B. Login sind in der Antwort von user?action=get enthalten
      Code:
      https://dein.ox/ajax/user?action=get&session=ff404869da744f138efd5462a6da7d00&id=92
      Gruß

      Comment


      • #4
        danke!
        im oben code steht ja in der variable imapuser dann der login_info drin - also soweit funktionierts
        wie krieg ich diesen inhalt aber jetz außerhalb von page.load?
        sobald ich diesen teil page.load{ ...} wieder verlasse ist die variable imaplogin wieder leer (bzw. undefined)
        also bringt mir die zuweisung innerhalb mit imaplogin=clone(reply.data.login_info) leider gar nix in diesem fall?

        herzlichen dank für die hilfe!

        Comment


        • #5
          iframe zu früh?

          Hallo nochmal,
          langsam bin ich am verzweifeln
          ich habe jetzt einen kleinen knopf eingebaut, mit dem ich fest stelle, dass auch außerhalb von page.load die variable imapuser dem wert entspricht der in der function gesetzt wird.

          aaaber beim laden vom iframe ist die variable imapuser anscheinend noch undefined?!?! warum?!
          und wie kann ich ihm sagen, dass er iframe erst machen soll wenn ich die seite tatsächlich lade bzw. wenn imapuser nen wert hat?

          ich hoffe es weiß jemand was...

          Code:
          //NC INTERN CONFIGURATION NODE
          
          new ox.Configuration.InnerNode("configuration/com.nc.ncpasswd", _("NC Intern"));
          
          //PASSWORD CHANGE PAGE
          
          var node = new ox.Configuration.LeafNode("configuration/com.nc.ncpasswd/password", _("Password"));
          var page= new ox.Configuration.Page(node, _("Change Personal Contact Information"));
          var login_info = new ox.UI.Input(format(noI18n("%s *"), _("login_info")));
                  page.addWidget(login_info, "login_info");
          
                  var imapuser;
                  var last_mod;
          page.load = function (cont) {
                  ox.JSON.get(AjaxRoot + "/user?action=get&id=" +
                      configGetKey("identifier") + "&session=" + session,
                      function(reply) {
                          old_user_data = clone(reply.data);
                          last_mod = reply.timestamp;
                          cont(reply.data);
                          imapuser=reply.data.login_info;
                          alert("vor dem knopf: imapuser= "+imapuser);
                      });
                  }
          
          var knopf = new ox.UI.Button("Press");
                  knopf.click=function(){
                  alert("GEDRUECKT!");
                  alert("nach dem knopf: imapuser= "+imapuser);
          };
                  page.addWidget(knopf, "knopf");
          
          //var iframe = new ox.Configuration.IFrame(node,"TITLE", "passwd/main.php?username="+imapuser,1);

          Comment


          • #6
            Die URL vom iFrame kann auch nachträglich (also im Callback) an iframe.content.src zugewiesen werden.

            Comment


            • #7
              meinst du dabei beim page.save oder kann ich auch einfach einen button anlegen der z.b. dann
              iframe.context.src("seite.php"); macht und dann wird der iframe erst geladen mit dem knopfdruck?

              Comment


              • #8
                var iframe = new ox.Configuration.IFrame(node2,"geladene php seite","");

                wenn ich den iframe so einbaue, ruft er eine keine auf, aber ist eigentlich schon da (erkennbar am Titel "geladene php seite")

                wie kann ich ihm nun beibringen ihm jetzt meinetwegen per button deine URL zu geben die er dann aufrufen und einbinden soll?

                vielen dank für die hilfe

                Comment


                • #9
                  1. An node hängen zwei Seiten: page und iframe. Das gibt Probleme.
                  2. Eine Zuweisung sieht so aus:
                  Code:
                  iframe.content.src = "url";
                  3. Man braucht keine Buttons, sondern macht das im Callback des JSON-Aufrufs.

                  Comment


                  • #10
                    DANKE AN ALLE!!

                    hab ein bisschen rumprobiert und es funktioniert - auch mit page und iframe zusammen

                    ohne die page und den button gehts natürlich auch hab ich jetz gemerkt, aber falls jemand noch vor so einem problem irgendwann mal steht und die suchfunktion ihn hier her führt, so hats funktioniert:

                    Code:
                    //NC INTERN CONFIGURATION NODE
                    
                    new ox.Configuration.InnerNode("configuration/com.nc.ncpasswd", _("NC Intern"));
                    
                    
                    //TEST SEITE
                    var temp;
                    var node2=new ox.Configuration.LeafNode("configuration/com.nc.ncpasswd/test",_("test"));
                    var page2 = new ox.Configuration.Page(node2, _("Change Personal Contact Information"));
                    var intro = new ox.UI.Text("display_name angezeigt und geladen, \n login_info geladen mit hide, \n kopie kopiert login_info nach knopf");
                            page2.addWidget(intro, "intro");
                    var display_name = new ox.UI.Input(_("Display name"));
                            page2.addWidget(display_name, "display_name");
                            display_name.disable();
                    var login_info = new ox.UI.Input(_("Username"));
                            page2.addWidget(login_info, "login_info");
                            login_info.hide();
                            login_info.disable();
                    var kopie = new ox.UI.Input(_("Kopie"));
                            page2.addWidget(kopie, "kopie");
                    var knopf3 = new ox.UI.Button("kopieren");
                            page2.addWidget(knopf3, "knopf3");
                            knopf3.click=function(){
                                    kopie.set(login_info.get());}
                            var last_mod;
                            page2.load = function (cont) {
                            ox.JSON.get(AjaxRoot + "/user?action=get&id=" +
                                configGetKey("identifier") + "&session=" + session,
                                function(reply) {
                                    old_user_data = clone(reply.data);
                                    last_mod = reply.timestamp;
                                    cont(reply.data);
                                });
                            }
                    var knopf = new ox.UI.Button("TU ES DU LUDER");
                            knopf.click=function(){
                            loadSite();
                    };
                            page2.addWidget(knopf, "knopf");
                    var tmp;
                    function loadSite(){
                    //        ox.JSON.get("../passwd/main.php?username="+login_info.get(), function(reply){alert("vor zuweisung: "+tmp);tmp=reply.username;alert("nach zuweisun
                    g: "+tmp);});
                    iframe.content.src=("../passwd/main.php?username="+login_info.get());
                    }
                    var iframe = new ox.Configuration.IFrame(node2,"geladene php seite","");

                    Comment

                    Working...
                    X