Création d'une page de profil utilisateur HTML personnalisée à l'aide de variables Joomla

9

Je suppose que ça va être compliqué mais je ferai de mon mieux pour vous faire comprendre ce que je veux réaliser. Tout ce que je veux, c'est créer une page HTML personnalisée , qui affichera les informations de l'utilisateur qui s'est connecté à mon site Web Joomla. Mais je veux que ce soit beau, je veux avoir une image d'arrière-plan, je veux inclure CSS et différentes polices pour différentes variables Joomla. Exemple de ce que je veux réaliser:

<p> Name : </p> <h1> Name of the user who has logged in </h1>

<p> Email : </p> <h2> Email of the user who has logged in </h2>

C'est ce dont je parlais, attribuer une <h1>balise au nom de l'utilisateur ou attribuer <h2>à un e-mail, etc.

Existe-t-il de toute façon de connecter une page HTML à la base de données Joomla et d'en récupérer les données et de l'afficher de cette façon.

saibbyweb
la source
1
Si vous deviez utiliser ajax, vous pourriez afficher les informations sur une page html, mais vous auriez quand même besoin d'utiliser un fichier PHP pour envoyer les informations à la page HTML.
TryHarder

Réponses:

9

Ok pour commencer, vous ne pouvez pas utiliser un site .html pour afficher les informations utilisateur, mais vous aurez besoin d'un fichier .php .

Une fois créé, vous devrez importer le CMS Joomla comme ceci:

define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/' ));  
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$app = JFactory::getApplication('site');

Vous devrez peut-être modifier la ligne 2 du code ci-dessus en fonction de l'emplacement de la racine de votre site Joomla par rapport à votre fichier PHP personnalisé.

Maintenant, pour obtenir le nom d'utilisateur et l'adresse e-mail de l'utilisateur actuel connecté, ajoutez simplement le code suivant ci-dessous:

$user = JFactory::getUser();

echo "<p>Name: " . $user->username . "</p>";
echo "<h1>Name of the user who has logged in </h1>";

echo "<p>Email: " . $user->email . "</p>"; 
echo "<h2>Email of the user who has logged in </h2>";

Donc, votre fichier global ressemblera à ceci:

<?php
   define( '_JEXEC', 1 );
   define( 'JPATH_BASE', realpath(dirname(__FILE__).'/' ));  
   require_once ( JPATH_BASE .'/includes/defines.php' );
   require_once ( JPATH_BASE .'/includes/framework.php' );

   $user = JFactory::getUser();

   echo "<p>Name: " . $user->username . "</p>";
   echo "<h1>Name of the user who has logged in </h1>";

   echo "<p>Email: " . $user->email . "</p>"; 
   echo "<h2>Email of the user who has logged in </h2>";    
?>
Lodder
la source
D'abord, cela m'a donné une page vierge et maintenant je l'ai déplacée dans le dossier des modèles, cela m'a donné une simple sortie HTML? Il montre simplement, Name of the user who has logged inau lieu de l'utilisateur réel qui s'est connecté?
saibbyweb
Avez-vous créé un fichier html ou php? Comment appelez-vous le fichier en tapant l'URL du chemin? Avez-vous modifié la deuxième ligne du premier extrait de code comme je l'ai mentionné dans ma réponse? s'il vous plaît assurez-vous de suivre les instructions attentivement car cela ne travail
Lodder
j'ai créé un fichier .PHP et je tape simplement l'URL du chemin. j'ai placé le fichier php à la racine de mon site Web et j'ai remplacé la deuxième ligne par ce qu'il est écrit dans mon fichier define('JPATH_BASE', __DIR__);
INDEX.PHP
hébergeur pensez-vous que cela fonctionnera sans instancier l'ensemble de l'application cms? Je pense que c'est un peu plus complexe ...
Chad Windnagle
@ChadWindnagle - ahh mon mauvais. oublié 1 ligne que j'ai maintenant ajoutée. Testez et travaillez pleinement
Lodder