Creación de una página de perfil de usuario HTML personalizada utilizando variables de Joomla

9

Supongo que será complicado, pero haré todo lo posible para que entiendas lo que quiero lograr. Todo lo que quiero es crear una página HTML personalizada , que muestre la información del usuario que ha iniciado sesión en mi sitio web de Joomla. Pero quiero que se vea bien, quiero tener una imagen de fondo, quiero incluir CSS y diferentes fuentes para diferentes variables de Joomla. Ejemplo de lo que quiero lograr:

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

Esto es de lo que estaba hablando, asignar <h1>etiquetas al nombre del usuario o asignar <h2>a correo electrónico, etc.

¿Hay alguna forma de conectar una página HTML a la base de datos de Joomla y recuperar datos de ella y mostrarla de esta manera?

saibbyweb
fuente
1
Si usara ajax, podría mostrar la información en una página html, pero aún necesitaría usar un archivo PHP para enviar la información a la página HTML.
TryHarder

Respuestas:

9

Ok, para empezar, no puedes usar un sitio .html para mostrar la información del usuario, sino que necesitarás un archivo .php .

Una vez creado, deberá importar el CMS Joomla de esta manera:

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

Puede que tenga que cambiar la línea 2 del código anterior dependiendo de dónde esté la raíz de su sitio de Joomla en relación con su archivo PHP personalizado.

Ahora para obtener el nombre de usuario y el correo electrónico del usuario actual conectado, simplemente agregue el siguiente código a continuación:

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

Entonces su archivo general se verá así:

<?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
fuente
primero me dio una página en blanco y ahora la moví a la carpeta de plantillas, ¿me da una salida HTML simple? ¿Simplemente se muestra, en Name of the user who has logged inlugar del usuario real que ha iniciado sesión?
saibbyweb
¿Creó un archivo html o php? ¿Cómo estás llamando al archivo, escribiendo la URL de la ruta? ¿Cambiaste la segunda línea del primer fragmento de código como mencioné en mi respuesta? Por favor asegúrese de seguir las instrucciones cuidadosamente ya que esto lo hace el trabajo
Lodder
Creé un archivo .PHP y simplemente estoy escribiendo la URL en la ruta. He colocado el archivo php en la raíz de mi sitio web y he reemplazado la segunda línea con lo que está escrito en mi archivo define('JPATH_BASE', __DIR__);
INDEX.PHP
¿Crees que esto funcionará sin crear una instancia de toda la aplicación cms? Creo que esto es un poco más complejo ...
Chad Windnagle
@ChadWindnagle - ahh mi mal. olvidé 1 línea que ahora he agregado. Prueba y trabajo completo
Lodder