web-dev-qa-db-fra.com

Où requête dans le composant Joomla - quel fichier dois-je éditer?

D'accord, je suis donc complètement nouveau dans Joomla et j'essaie de modifier les fichiers source d'un composant que j'ai construit à l'aide de composant-creator.com .

J'ai une base de données qui stocke des données différentes pour plusieurs utilisateurs différents et je souhaite concevoir plusieurs vues dans lesquelles l'utilisateur connecté ne peut afficher que les données associées à son propre nom d'utilisateur dans la base de données. Actuellement, chaque utilisateur peut voir une liste des données de chaque autre utilisateur de la base de données, ce qui est inacceptable pour des raisons de sécurité. Je suppose que je dois en quelque sorte extraire l'ID utilisateur de la session en cours et utiliser une requête WHERE pour filtrer la vue liste uniquement sur les entrées de base de données associées à cet ID utilisateur.

Tout d’abord, quels fichiers dois-je éditer? Le composant-créateur semble suggérer ici que je dois éditer views/students/view.html.php , tandis que d'autres les forums semblent pointer vers models/students.php . models/students.php semble déjà avoir plusieurs requêtes SQL avec chaînage et clauses WHERE, mais je voulais en être sûr.

Deuxièmement, comment récupérer et/ou transmettre l'ID utilisateur de la session actuelle? Dois-je en quelque sorte passer cette variable de vues/étudiants/tmpl/default.php , ou puis-je la récupérer directement de l'intérieur models/students.php ?

Toute idée est appréciée. Merci!

2
Nathanael

Comme vous l'avez probablement déjà compris, Joomla est un système de gestion de contenu MVC (modèle, contrôleur de vue). Vos requêtes de base de données seront donc localisées dans le modèle:

models/students.php

En ce qui concerne les données utilisateur actuelles, vous pouvez obtenir le objet utilisateur actuel comme suit:

$user = JFactory::getUser();

Ou si c'est l'ID de session que vous souhaitez obtenir:

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

Vous pouvez accéder aux deux dans n'importe quelle partie du composant, alors oui, cela inclut le modèle.

J'espère que cela t'aides

2
Lodder