it-swarm.com.de

Wo Abfrage in Joomla-Komponente - Welche Datei bearbeite ich?

Okay, ich bin völlig neu in Joomla und versuche, die Quelldateien einer Komponente zu bearbeiten, die ich mit component-creator.com erstellt habe.

Ich habe eine Datenbank, in der unterschiedliche Daten für mehrere unterschiedliche Benutzer gespeichert sind, und ich möchte mehrere Ansichten entwerfen, in denen der angemeldete Benutzer nur die Daten anzeigen kann, die mit seinem eigenen Benutzernamen in der Datenbank verknüpft sind. Derzeit kann jeder Benutzer eine Auflistung der Daten aller anderen Benutzer in der Datenbank sehen, was aus Sicherheitsgründen nicht akzeptabel ist. Ich gehe davon aus, dass ich die aktuelle Sitzungsbenutzer-ID irgendwie abrufen und eine WHERE-Abfrage verwenden muss, um die Listenansicht nur auf die Datenbankeinträge zu filtern, die dieser Benutzer-ID zugeordnet sind.

Zuallererst, welche Dateien muss ich bearbeiten? Der Komponentenersteller scheint hier vorzuschlagen, dass ich views/students/view.html.php bearbeiten muss, während einige andere Foren auf models/students.php . models/students.php scheint bereits mehrere SQL-Abfragen mit Verkettung und WHERE-Klauseln zu haben, aber ich wollte sicher gehen.

Zweitens, wie kann ich die aktuelle Sitzungsbenutzer-ID abrufen und/oder übergeben? Muss ich diese Variable irgendwie aus views/students/tmpl/default.php übergeben oder kann ich sie direkt aus models/students abrufen? PHP ?

Jeder Einblick wird geschätzt. Vielen Dank!

2
Nathanael

Wie Sie wahrscheinlich bereits erfahren haben, handelt es sich bei Joomla um ein MVC-Content-Management-System (Model, View Controller). Daher befinden sich Ihre Datenbankabfragen im Modell:

models/students.php

Bezüglich der aktuellen Benutzerdaten können Sie das aktuelles Benutzerobjekt wie folgt erhalten:

$user = JFactory::getUser();

Oder wenn es die tatsächliche Sitzungs-ID ist, die Sie erhalten möchten:

$session = JFactory::getSession();
echo $session->getId();

Auf beide können Sie in jedem Teil der Komponente zugreifen, also ja, das schließt das Modell ein.

Hoffe das hilft

2
Lodder