it-swarm.com.de

Wie kann ich Notizen für den aktuellen Benutzer im Frontend anzeigen, die im Backend von Joomla hinzugefügt wurden?

Es gibt eine sehr gute Funktion in Joomla 3.3, mit der Sie Notizen für jeden Benutzer hinzufügen können.

In einem Teil des Administrationsbereichs können wir einen Benutzer auswählen und eine Notiz für ihn/sie hinzufügen.
Wenn ein Benutzer im Frontend angemeldet ist, möchte ich, dass er diesen Text sehen kann. Ich habe gegoogelt und kann nichts dazu finden.
Gibt es eine Möglichkeit, dies zu tun?

5
Mostafa Fallah

Versuchen Sie diesen Code -

if ($user->id) {
    $db =JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('*')
    ->from('#__user_notes')
    ->where('user_id = '. (int)$user->id)
    ->where('state=1');
    $db->setQuery($query);
    $rows = $db->loadObjectList();
    print_r($rows[0]->body);
}

Ich hoffe es hilft dir :)

1
Joomler

Ich nehme an, die einzigen zwei Spalten, die für Ihre Benutzer von Bedeutung sind, sind subject und body. Nach der Anforderung, dass Ihre Benutzer angemeldet sein müssen, können Sie eine Abfrage erstellen, um anderen Benutzern zugewiesene Notizen und unveröffentlichte Notizen auszuschließen. Ich werde zeigen, wie Sie Ihre SELECT-Klausel so erstellen, dass das Anzeigen einer einfachen HTML-Tabelle mit implode() ein Kinderspiel ist.

$user = JFactory::getUser();
if (!$user->guest) {
    $db =JFactory::getDBO();
    $query = $db->getQuery(true)
        ->select($db->qn(["subject", "body"], ["Topic", "Note"]))
        ->from($db->qn("#__user_notes"))
        ->where([
            $db->qn("user_id) . " = " . (int)$user->id,  // target the logged in user
            $db->qn("state") . " = 1"                     // ensure that only published notes are shown
        ]);
    $db->setQuery($query);
    if ($results = $db->loadAssocList())
    {
        echo "<table>";
            // display Topic and Note as column headings
            echo "<tr><th>" , implode("</th><th>", array_keys($results[0])) , "</th></tr>";
            // display rows of data
            foreach ($results as $row)
            {
                echo "<tr><td>" , implode("</td><td>", $row) , "</td></tr>";
            }
        echo "</table>";
    }
    else
    {
        echo "No Notes";
    }
}

Die Ausgabe wird wie folgt aussehen:

__________________________________________________________________
|    Topic    |    Note                                          |
|-------------|--------------------------------------------------|
|  Feedback1  |  I loved the way you did my laundry.             |
|-------------|--------------------------------------------------|
|  Feedback2  |  Perhaps I can interest you in my dry cleaning.  |
------------------------------------------------------------------
0
mickmackusa