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

Role während Registrierung abfragen

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von protimo, 7. Februar 2011.

  1. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    Ich würde gerne während der Registrierung den neuen Usern die Möglichkeit geben, aus einem Drop-Down die Role auszuwählen, die sie innehaben wollen. (u.a. selber definierte Rollen)

    Ich habe dazu auch ein plugin gefunden: WP Roles at Registration

    Leider funktioniert das nicht zu 100% und der Programmierer reagiert auch nicht. Ich bin nicht so der Spezialist, aber ich habe versucht zu verstehen was falsch läuft. Vielleicht kann mir ja hier einer helfen.

    Beim Aufruf des Registrierungsformulars wird das Pulldown zwar angezeigt und auch die Optionen werden geladen. Leider werden abere die Labels der Optionen nicht angezeigt. Das Droppdown hat also Optionen aber die sind alle nur weiß.

    Im Script steht:

    <label for="wp_rar_user_role"><?= $this->wp_rar_role_label ?></label>
    <select id="wp_rar_user_role" name="wp_rar_user_role" class="input select">
    <?php
    foreach($this->wp_selected_rar_roles as $role) {
    ?>
    <option value="<?= $role ?>"<?= ($selected_role == $role) ? ' selected="selected"' : '' ?>>
    <?= $wp_roles->roles[$role]['name'] ?>
    </option>
    <?php
    }
    ?>
    </select>

    Im Quellcode sieht das dann so aus:

    <p>
    <label for="wp_rar_user_role">Roles<br />
    <select id="wp_rar_user_role" name="wp_rar_user_role" class="input select">
    <option value="contributor">
    </option>
    <option value="subscriber">
    </option>
    <option value="role2">
    </option>
    <option value="role3" selected="selected">
    </option>
    </select>
    </label>
    </p>

    Kann mir jemand sagen was ich da fixen muss, damit das funktioniert?

    Vielen Dank
     
  2. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    $wp_roles->roles[$role]['name'] ist dann offenbar leer: Bau doch vor diesen Blog mal das hier ein und schaue, was das ergibt:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Dann kannst Du das anhand der Ausgabe des wp_roles-Objektes hoffentlich so anpassen, dass es funktioniert.
     
    #2 Ammaletu, 7. Februar 2011
    Zuletzt bearbeitet: 7. Februar 2011
  3. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    ganz blöde frage:

    was meinst du mit: Bau doch vor diesen Blog mal das hier ein

    wo soll ich das einbauen?
     
  4. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    Ach verdammt, jetzt fange ich auch schon so an. "Block" meinte ich, sprich vor dem Code-Stück, das Du oben zitiert hast. Und die Code-Auszeichnung hatte ich in meiner Antwort auch vergessen, und dabei wollte ich Dich gerade bitten, das in Zukunft bitte zu machen (die drei Buttons unten rechts im Editor). Erhöht die Lesbarkeit der Beiträge enorm. ;)

    error_log schreibt das einfach in das Logfile, in dem PHP-Fehler normalerweise landen. Das muss dafür natürlich konfiguriert sein, sollte es aber sowieso sein. Ansonsten wird das möglicherweise am Bildschirm ausgegeben. Falls das nicht klappt oder Du das nicht an einer Testinstanz ausprobierst sondern an der Liveseite, dann vielleicht besser so und hinterher wieder rausnehmen:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  5. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    Das habe ich nun so gemacht ... aber es ändert sich nix ... oder habe ich das falsch verstanden?

    <p>
    <?php print_r($wp_roles); ?>
    <label for="wp_rar_user_role"><?= $this->wp_rar_role_label ?><br />
    <select id="wp_rar_user_role" name="wp_rar_user_role" class="input select">
    <?php
    foreach($this->wp_selected_rar_roles as $role) {
    ?>
    <option value="<?= $role ?>"<?= ($selected_role == $role) ? ' selected="selected"' : '' ?>>
    <?= $wp_roles->roles[$role]['name'] ?>
    </option>
    <?php
    }
    ?>
    </select>
    </label>
    </p>

    Die Labels gibt es ja, im admin sehe ich sie ja ... die frage ist vermutlich einfach ... wie werden sie korrekt aufgerufen???
     
    #5 protimo, 8. Februar 2011
    Zuletzt bearbeitet: 8. Februar 2011
  6. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    Was soll sich da auch ändern, print_r gibt einfach nur dieses Objekt aus. Du musst nun mal in den Quelltext der betroffenen Seite schauen, wie wp_roles aufgebaut ist. Dann solltest Du sehen können, wieso der Aufruf im Plugin nicht funktioniert. Und hinterher den Code wieder entfernen. Muss ja nicht jeder wissen, was es für Rollen in Deinem Blog gibt.
     
  7. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    da ist nix zu sehen im quelltext :(
     
  8. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    So, nun habe ich dieses Plugin doch mal lokal ausprobiert. Reparieren musste ich folgendes:

    "<?= " ersetzen durch "<?php print "

    Sowie einmal ein einzelnes "<?" durch "<?php". Dann ging das Plugin ohne Probleme und bietet mir bei der Registrierung nun die Rolle "Subscriber" an. Die Übersetzung klappt also nicht, aber ansonsten geht es. wp_roles kann man sich auch ausgeben lassen -- ich wüsste nicht, wieso das bei Dir nicht gehen soll.
     
  9. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    ob du deine version wohl mal komplett hier reinkopieren könntest?
     
  10. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    oder kann noch jemand anderes auch helfen?
     
  11. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    Bitte bitte Hilfe ;)))
     
  12. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    Tja, ich weiß nicht so genau was ich dazu noch schreiben soll. Hast Du eine lokale Testinstanz, wo Du etwas rumprobieren kannst? (XAMPP, siehe FAQ). Das macht sich am besten, ohne die Liveseite zu stören.

    Also um das noch mal zusammenzufassen, folgendes klappt bei mir:

    • WP 3.0.x
    • Theme TwentyTen auswählen
    • alle anderen Plugins abschalten (falls diese irgendwas an den Rollen manipulieren)
    • Im RaR-Plugin <?= durch <?php print ersetzen und das einzelne <? durch <?php. Das sind die veralteten Kurzversionen der PHP-Tags, bei mir beschwert sich da der Compiler. Wenn es bei Dir ohne die Änderungen geht, um so besser.
    Wenn das so geht, kannst Du dann schauen, mit welchen Plugins oder Themes es nicht funktioniert und wieso.

    P.S.: Thema sinnlos x-mal nach oben pushen führt in der Regel dazu, dass Du ignoriert wirst. Leute, die hier in ihrer Freizeit helfen, finden das meistens nicht witzig. Das heißt ja irgendwie, dass Du Dein Problem wichtiger findest als die Probleme der anderen Nutzer, aber trotzdem nicht gewillt bist, weitere Infos zu liefern...
     
  13. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    ich bin dabei einen neuen blog aufzusetzen, deshalb kann ich da rumprobieren. ich habe

    - sämtliche plugins ausgeschaltet
    - das theme auf Twenty Ten 1.1 zurückgesetzt
    - die fixes im code gemacht, wie du gesagt hast

    aber leider ist der effekt gleich null.

    ich habe jetzt etwas anderes probiert und bin nun noch mehr verwirrt.

    wenn ich im admin eingeloggt bin und dann ../wp-login.php?action=register im gleichen browser aufrufe ist das pulldown so wie es sein sollte und die Roles werden angezeigt. wenn ich aber aus dem admin ausgeloggt bin und dann ../wp-login.php?action=register aufrufe ist das pulldown wieder blank.

    jemand eine idee?
     
    #13 protimo, 9. Februar 2011
    Zuletzt bearbeitet: 9. Februar 2011
  14. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    Witzig, da hast Du Recht. Ich hab es natürlich auch eingeloggt getestet. Ok, es sieht dann wohl so aus als würde $wp_roles uneingeloggt nicht zur Verfügung stehen. Was das Plugin dann für eine Daseins-Berechtigung hat, ist mir nicht klar, das kann ja so nicht funktionieren. Wurde das kürzlich geändert oder hat der Autor das echt gar nicht getestet?!?

    Hm, hattest Du den Autor deswegen mal gefragt? Das wäre ja nun eigentlich an ihm, das zu beheben. ... Ok, interessiert mich doch, also hab ich mal etwas geschaut, wie WP denn die Rollennamen übersetzt. Folgendes funktioniert, ist aber möglicherweise nicht die effektivste Lösung. Aber gut, die Registrierung schauen sich ja auch nicht jeden Tag tausend Leute an, also sollte das so gehen.

    Einfach Zeile 183 durch das hier ersetzen:

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

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    warum sagst du das mit bedenken?
    wo ist bei deiner lösung das problem?
     
  16. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    Weil ich das zwischendurch mal schnell zusammengehackt habe. Keine Ahnung wie gesagt ob das die beste Lösung ist. Da es funktioniert ist es aber schon mal besser als der jetzige Zustand des Plugins. ;)
     
  17. protimo

    protimo Well-Known Member

    Registriert seit:
    16. Juni 2010
    Beiträge:
    55
    Zustimmungen:
    0
    ich danke dir ... bist ein schatz ;)
     
  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