Ergebnis 1 bis 6 von 6

Thema: Namen zu einem Benutzer abfragen und im Frontend ausgeben

  1. #1
    Contao-Nutzer Avatar von saschaho
    Registriert seit
    09.07.2009.
    Beiträge
    26

    Standard Namen zu einem Benutzer abfragen und im Frontend ausgeben

    Hallo,
    bisher habe ich mich hier im Forum leider noch nie besonders aktiv eingebracht Das soll sich mit diesem Schritt jetzt hoffentlich etwas ändern, denn so gut mir Contao gefällt so nett finde ich auch seine Community und den freundlichen Umgang

    Eigentlich wollte ich nur, ein paar zusätzliche Informationen zu einem Benutzer bzw. Autor im Nachrichtenmodul anzeigen lassen. Die Suche im Forum war allerdings weniger erfolgreich. Irgendwie war nicht die "richtige" Lösung dabei. Also habe ich mir gedacht ich stürze mich direkt ins Abenteuer und entwickle endlich meine erste Erweiterung. PHP und MySQL Kenntnisse sind vorhanden, allerdings fehlte mir bisher immer die Zeit bei Contao tiefer "hinter die Kulissen" zu schauen. Meistens beschränkte es sich auf einfache updatesichere Anpassungen.

    Die Erweiterung soll bisher folgende Funktionen erfüllen:
    1. Co-Autoren für Nachrichtenbeiträge auswählen
    2. Erweiterte Informationen zu Benutzern erfassen (Beschreibung, Links zu Netzwerken, Unternehmen, Position, etc.)
    3. Erweiterung der Funktionen von Nachrichtenliste, Nachrichtenarchiv und Nachrichtenbeitrag, um den Namen des Autors zu verlinken (bspw. mit der Seite seines Autorenprofils oder der Nachrichtenliste seiner Beiträge)
    4. Verarbeitung/Anzeige der Informationen der Benutzer bzw. Autoren in den Nachrichten-Modulen bzw. Templates
    5. Erweiterung der Funktionen von Nachrichtenliste und Nachrichtenarchiv, um nur Beiträge eines Autors anzeigen zu lassen
    6. Frontend-Modul zur Anzeige der Informationen des Autors (falls man das getrennt vom eigentlichen Nachrichtenbeitrag in einem anderen Layoutbereich anzeigen lassen möchte)
    7. Frontend-Modul zur Generierung einer Autorenliste
    8. Frontend-Modul zur Generierung eines Autorenprofils

    Ich glaube damit habe ich erstmal genug zu tun. Von den Beiträgen im Forum hat es sich so gelesen, als könnte so eine Erweiterung ein paar Leute interessieren.

    Punkt 1 und 2 ist bereits erledigt und funktioniert wunderbar. Die Option für Punkt 3 habe ich auch schon in die Nachrichten-Module eingebaut. Jetzt hänge ich aktuell bei Punkt 4 und komme nicht so recht weiter. Irgendwie verstehe ich nicht, wie ich die Daten jetzt verarbeiten muss, um Sie im Frontend korrekt anzeigen zu lassen?

    Am einfachsten wäre wahrscheinlich das Beispiel des Co-Autoren. Ich habe in der config/config.php einen parseArticles-Hook hinzugefügt:
    PHP-Code:
    $GLOBALS['TL_HOOKS']['parseArticles'][] = array('NewsAuthorInformation''addCoAuthorID'); 
    In der classes/NewsAuthorInformation.php steht dann:
    PHP-Code:
    <?php 

    class NewsAuthorInformation extends \News
    {
        public function 
    addCoAuthorID($objTemplate$arrRow
        {
            
    $objTemplate->coauthorID $arrRow['coauthor'];
        }
    }
    Das funktioniert schon einmal prima, so dass ich im Template über
    PHP-Code:
    <?= $this->coauthor ?>
    einfach die ID ausgeben kann. War soweit ja auch alles sehr einfach. Natürlich soll da jetzt der Name des Benutzers, der als Co-Author angegeben wurde, angezeigt werden. Äh ja und genau da komme ich nicht weiter.

    Ich würde mich sehr über einen kleinen Wink mit dem Zaunpfahl freuen.

    Viele Grüße
    Sascha
    Geändert von saschaho (12.04.2016 um 13:44 Uhr)

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.195
    Partner-ID
    10107

    Standard

    PHP-Code:
    \UserModel::findById$coAuthorId )->name 

  3. #3
    Contao-Nutzer Avatar von saschaho
    Registriert seit
    09.07.2009.
    Beiträge
    26

    Standard

    Hi Spooky,
    danke für die Hilfe. Ich habe den Code etwas geändert:
    PHP-Code:
    $objTemplate->coauthor = \UserModel::findById($objTemplate->coauthorID)->name
    Jetzt läuft's. So kann ich ja auch gleich mit allen anderen Angaben verfahren, die ich jetzt abrufen möchte. Dann habe ich erstmal zu tun

  4. #4
    Contao-Nutzer Avatar von saschaho
    Registriert seit
    09.07.2009.
    Beiträge
    26

    Standard Sicherheit bei Abfrage UselModel

    Zitat Zitat von Spooky Beitrag anzeigen
    PHP-Code:
    \UserModel::findById$coAuthorId )->name 
    Hi Spooky,
    die Benutzer habe ich mittlerweile um einige Datenfelder ergänzt. Darstellung und Verarbeitung im Newsmodul klappt auch soweit. Zu der Abfrage muss ich aber nochmal kurz etwas nachhaken:

    Ist es aus Gründen der Sicherheit eher empfehlenswert immer explizit einen jeweiligen Wert aus dem Model abzufragen (da das gesamte Model ja auch das verschlüsselte Passwort enthält) oder wäre es folgendermaßen auch unbedenklich (solange man das Passwort nicht im Frontend ausgibt ) und schneller wenn mehrere Werte abgefragt und verarbeitet werden müssen?
    PHP-Code:
    $authorModel = \UserModel::findById($arrRow['author']);
    $authorName $authorModel->$authroName
    Viele Grüße
    Sascha

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.195
    Partner-ID
    10107

    Standard

    Das Passwort ist sowieso verschlüsselt. Darberhinaus spielt es keine Rolle ob du jedesmal
    PHP-Code:
    \UserModel::findById(
    schreibst oder nicht - die Daten landen nach der ersten Abfrage in der Model Registry und werden danach von dort geholt. Für dich als Programmierer ist es wahrscheinlich einfacher, wenn du das User Objekt einmal in einer Variable abspeicherst, wenn du mehrere Daten des Users brauchst.

  6. #6
    Contao-Nutzer Avatar von saschaho
    Registriert seit
    09.07.2009.
    Beiträge
    26

    Standard

    Hallo Spooky,
    habe deine Antwort gestern leider verpasst. Danke für die Info.

    Viele Grüße
    Sascha

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •