• Hallo,

    bitte entschuldigt falls die Frage zu einfach ist, aber ich bin neu im WordPress Universum 🙂
    Ich habe via Next Active Directory Integration (NADI) alle User aus dem Active Directory importiert und möchte nun im Frontend deren Telefonnummern sowie E-Mail Adressen anzeigen lassen. Am besten mit Suchfeld. Das ganze soll später als „Intranet Telefonbuch“ dienen.
    Aber nach vielem suchen habe ich dafür bisher kein ordentliches Plugin gefunden das dass so einfach kann, die meisten Plugins wollen eine eigene Benutzerdatenbank bzw. einen Import von csv Dateien. Ziel ist aber das sich das Adressbuch von selbst aktualisiert, was mit NADI und einem cronjob ja einfach zu machen ist.
    Hat jemand eine Idee oder gar sowas schon umgesetzt? Würde mich über Hilfe sehr freuen.

    MFG

Ansicht von 8 Antworten – 1 bis 8 (von insgesamt 8)
  • Von der FAQ-Seite: https://active-directory-wp.com/docs/FAQ/index.html

    Where are the AD attributes stored in WordPress?

    If you activate Automatic user creation and Automatic user synchronization any AD attribute is stored inside the table wp_usermeta. You can set the meta key as you like or use the default behaviour, where the meta key is set to next_ad_int_ (e.g. next_ad_int_physicaldeliveryofficename for the office attribute).

    Damit sollte das Auslesen und Ausgeben doch relativ einfach sein:
    https://codex.wordpress.org/Function_Reference/get_user_meta

    Die meisten Plugins die so etwas anbieten dürften einen eigenen Weg für die Erstellung nutzen. Ist jetzt so eine Abwägung, wie wahrscheinlich es ist, dass es das mit der Funktion bereits existierende Usermeta Infos anzuzeigen schon gibt und wie lange eine Eigenentwicklung dauert.

    Gruß, Torsten

    Thread-Starter hossmann

    (@hossmann)

    Hallo Torsten, danke für die Hilfe.
    Ich habe mal den Beispielcode von deinem Link auf meine Seite kopiert, aber die Ausgabe lautet nur:

    The ‚. $key . ‚ value for user id ‚ . $user_id . ‚ is: ‚ . $user_last . ‚

    ‚;
    ?>

    Oder muss ich dazu ein neues .php file in wordpress anlegen was irgendwie aufgerufen wird?

    Grüße

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Das Code-Beispiel enthält PHP-Code. Den kannst du nicht einfach in eine beliebige Seite oder Beitrag einfügen (sonst könnten Anwender ja alle möglichen Sicherheitsmechanismen in WordPress mit anderem Code umgehen), sondern musst ihn in einem Template eines Child Theme oder einem eigenen Plugin verwenden.

    Anhand deiner Beschreibung können wir weder ahnen, wie gut du dich mit der Erstellung eines eigenen Template/Plugins auskennst, noch wissen wir, wo du etwas ausgeben möchtest.

    Thread-Starter hossmann

    (@hossmann)

    Hallo Bego,

    danke für deine Antwort. Ich habe die letzten Tage erst richtig begonnen mich mit PHP zu beschäftigen, also sagen wir einfach ich bin bei 0.

    Das der Code woanders hin gehört habe ich inzwischen auch herausgefunden.
    Sagen wir ich trage die Zeile in die functions.php meines themes ein. Wie rufe ich die Funktion dann auf das sie mir auf einer erstellten Seite angezeigt wird?
    Also am Ende möchte ich eine Seite „Telefonbuch“ auf der bestimmte Benutzerdaten (Vorname, Nachname, Telefonnummer…) ausgegeben werden. Idealerweise mit Suchfunktion.

    Wenn ich nun den Code hätte, wo muss der hin und wie sage ich der Seite „Telefunbuch“ das er nur dort ausgeführt wird?

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Es gibt eine ganze Reihe von Möglichkeiten, wie du bestimmten Code nur an gewünschten Stellen ausführen kannst. Die einfachste Variante ist die Verwendung eines Shortcodes.

    Kurz ein Beispiel dazu: Nehmen wir an, du möchtest in deinem Beitrag „Willkommen, registrierter Benutzer“ ausgeben, wenn der Besucher der Webseite ein angemeldeter Nutzer ist. Alle anderen sollen mit „Wilkommen, Besucher!“ begrüßt werden.
    Um die Bedingung „ist der User angemeldet“ abzufragen, stellt WordPress eine Funktion is_user_logged_in() zur Verfügung.
    Der Code

    if ( is_user_logged_in() ) {
        echo 'Willkommen, registrierter Benutzer!';
    } else {
        echo 'Willkommen, Besucher!';
    }

    würde also fallweise den Webseitenbesucher unterschiedlich begrüßen. Um diese Funktion an einer beliebigen Stelle in Beiträgen oder Seiten verwenden zu können, erstellen wir in der functions.php eines Child Themes (nicht im Theme, weil das sonst beim nächsten Update überschrieben wird) einen eigenen Shortcode:
    add_shortcode( 'sag_hallo', 'mein_shortcode_sag_hallo' );.

    Nun kannst du in Beiträgen und Seiten [sag_hallo] eingeben und WordPress versucht, die Funktion mein_shortcode_sag_hallo() mit dem Code auszuführen und den von der Funktion zurückgegebenen Wert an der Stelle, an der du den Shortcode eingefügt hast, auszugeben. Die Funktion müssen wir natürlich noch rasch erstellen:

    function mein_shortcode_sag_hallo() {
      if ( is_user_logged_in() ) {
        $output 'Willkommen, registrierter Benutzer!';
      } else {
        $output 'Willkommen, Besucher!';
      }
      return $output;
    }

    (Achte bei Shortcode-Funktionen immer darauf, dass sie nicht selber mit echo Inhalte (an unerwünschter Stelle) ausgeben, sondern statt dessen einen Wert mit return zurückgeben müssen.)

    Hier nochmal das komplette Code-Beispiel:

    add_shortcode( 'sag_hallo', 'mein_shortcode_sag_hallo');
    function mein_shortcode_sag_hallo() {
      if ( is_user_logged_in() ) {
        $output 'Willkommen, registrierter Benutzer!';
      } else {
        $output 'Willkommen, Besucher!';
      }
      return $output;
    }

    Ich habe vor einer Weile auch einen ausführlicheren Beitrag über Shortcodes geschrieben, den du hier nachlesen kannst:

    https://krautpress.de/2016/mfg-mit-freundlichen-gruessen/

    Natürlich musst du das noch auf deinen konkreten Anwendungsfall anpassen, aber wir wollen hier ja auch nur Hilfe zur Selbsthilfe geben und nicht fertige Lösungen auf dem Silbertablett reichen – das wäre für einen ehrenamtlichen Support auch etwas zuviel verlangt. 🙂

    Thread-Starter hossmann

    (@hossmann)

    Das ist Super 🙂

    Thumps Up

    Thread-Starter hossmann

    (@hossmann)

    Ich habe den Code jetzt mal so angepasst, aber als Ausgabe erscheint einfach nichts auf der Seite 🙁

    add_shortcode( ‚phonebook‘, ‚fu_phonebook‘ );

    function fu_phonebook()
    {
    $ausgabe = $wpdb->get_results( „SELECT * FROM $wp_users“ );

    return $ausgabe;
    }

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Wieso machst du eine Datenbankabfrage, wenn dir WordPress dafür Funktionen zur Verfügung stellt? Welche Funktion du nutzen sollst, hat Torsten bereits versucht zu vermitteln.

    Bitte verwenden künftig die Code-Formatierung, wenn du hier Beiträge schreibst. Das macht deinen Code (alleine schon wegen der typografischen Anführungszeichen) lesbarer und erhöht deine Chancen auf Antworten.

Ansicht von 8 Antworten – 1 bis 8 (von insgesamt 8)

Das Thema „Telefonbuch aus WordPress benutzern“ ist für neue Antworten geschlossen.