Creazione di una pagina del profilo utente HTML personalizzata utilizzando le variabili Joomla


9

Immagino che sarà complicato, ma farò del mio meglio per farti capire cosa voglio ottenere. Tutto quello che voglio è creare una pagina HTML personalizzata , che mostrerà le informazioni dell'utente che ha effettuato l'accesso al mio sito Web Joomla. Ma voglio che sia bello, voglio avere un'immagine di sfondo, voglio includere CSS e caratteri diversi per diverse variabili di Joomla. Esempio di cosa voglio ottenere:

<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>

Questo è ciò di cui parlavo, assegnando <h1>tag al nome dell'utente o assegnando <h2>a e - mail ecc.

Esiste un modo per collegare una pagina HTML al database Joomla e recuperarne i dati e visualizzarli in questo modo.


1
Se dovessi usare ajax, potresti visualizzare le informazioni su una pagina html, ma dovrai comunque utilizzare un file PHP per inviare le informazioni alla pagina HTML.
TryHarder,

Risposte:


9

Ok, per cominciare, non puoi usare un sito .html per visualizzare le informazioni dell'utente, invece avrai bisogno di un file .php .

Una volta creato, dovrai importare Joomla CMS in questo modo:

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');

Potrebbe essere necessario modificare la riga 2 del codice sopra a seconda di dove la radice del tuo sito Joomla è relativa al tuo file PHP personalizzato.

Ora per ottenere il nome utente e l'e-mail dell'utente corrente connesso, è sufficiente aggiungere il seguente codice di seguito:

$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>";

Quindi il tuo file complessivo sarà simile al seguente:

<?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>";    
?>

prima mi ha dato una pagina vuota e ora l'ho spostato nella cartella dei modelli, mi ha dato un semplice OUTPUT HTML? Sta semplicemente mostrando, Name of the user who has logged inanziché l'utente reale che ha effettuato l'accesso?
saibbyweb,

Hai creato un file html o php? Come stai chiamando il file, digitando l'URL del percorso? Hai modificato la seconda riga del primo frammento di codice come ho indicato nella mia risposta? per favore assicurati di seguire attentamente le istruzioni dato che funziona
Lodder,

ho creato un file .PHP e sto semplicemente digitando l'URL nel percorso. ho inserito il file php alla radice del mio sito Web e ho sostituito la seconda riga con ciò che è scritto nel mio file define('JPATH_BASE', __DIR__);
INDEX.PHP

lodder pensi che funzionerà senza istanziare l'intera applicazione cms? Penso che sia un po 'più complesso ...
Chad Windnagle,

@ChadWindnagle - ahh il mio male. ho dimenticato 1 riga che ho ora aggiunto. Test e funzionamento completo
Lodder,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.