Criando página de perfil de usuário HTML personalizada usando variáveis ​​do Joomla

9

Eu acho que vai ser complicado, mas vou tentar o meu melhor para fazer você entender o que eu quero alcançar. Tudo o que eu quero é criar uma página HTML personalizada , que mostrará as informações do usuário que fez login no meu site Joomla. Mas eu quero que seja bonito, quero ter uma imagem de fundo, quero incluir CSS e fontes diferentes para diferentes variáveis ​​do Joomla. Exemplo do que eu quero alcançar:

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

Era disso que eu estava falando, atribuindo <h1>tag ao nome do usuário ou <h2>ao email etc.

Existe alguma maneira de conectar uma página HTML ao banco de dados Joomla, recuperar dados e exibi-los dessa maneira.

saibbyweb
fonte
11
Se você usar o ajax, poderá exibir as informações em uma página html, mas ainda precisará usar um arquivo PHP para enviar as informações para a página HTML.
TryHarder 18/05

Respostas:

9

Ok, para iniciantes, você não pode usar um site .html para exibir informações do usuário, mas precisará de um arquivo .php .

Depois de criado, você precisará importar o Joomla CMS da seguinte forma:

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

Você pode ter que alterar a linha 2 do código acima, dependendo de onde a raiz do seu site Joomla é relativa ao seu arquivo PHP personalizado.

Agora, para obter o nome de usuário e o email do usuário atual logado, basta adicionar o seguinte código abaixo:

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

Portanto, seu arquivo geral ficará assim:

<?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
fonte
primeiro, ele me deu uma página em branco e agora eu a mudei para a pasta de modelos, fornecendo uma saída HTML simples? Está simplesmente mostrando, em Name of the user who has logged invez do usuário real que efetuou login?
Saibbyweb 18/05
Você criou um arquivo html ou php? Como você está chamando o arquivo, digitando a URL do caminho? Você alterou a segunda linha do primeiro trecho de código, como mencionei na minha resposta? por favor, certifique-se de seguir as instruções dadas com cuidado, pois isso faz o trabalho
Lodder
Eu criei um arquivo .PHP e estou simplesmente digitando a URL para o caminho. Eu coloquei o arquivo php na raiz do meu site e eu ter substituído a segunda linha com o que está escrito no meu arquivo index.php define('JPATH_BASE', __DIR__);
saibbyweb
Você acha que isso funcionará sem instanciar todo o aplicativo cms? Eu acho isso um pouco mais complexo ...
Chad Windnagle
@ChadWindnagle - ahh meu mal. esqueci uma linha que eu adicionei agora. Teste e totalmente funcional
Lodder