• 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.