Создание пользовательской страницы профиля пользователя HTML с использованием переменных Joomla

9

Я думаю, это будет сложно, но я сделаю все возможное, чтобы вы поняли, чего я хочу достичь. Все, что я хочу, - это создать собственную HTML-страницу , которая будет отображать информацию о пользователе, который зашел на мой сайт Joomla. Но я хочу, чтобы он выглядел хорошо, я хочу иметь фоновое изображение, я хочу включить CSS и разные шрифты для разных переменных Joomla. Пример того, что я хочу достичь:

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

Это то , что я говорил о том , назначая <h1>метки для имени пользователя или назначения <h2>на Email и т.д.

В любом случае можно ли подключить HTML-страницу к базе данных Joomla, извлечь из нее данные и отобразить ее таким образом.

saibbyweb
источник
1
Если бы вы использовали ajax, вы могли бы отобразить информацию на html-странице, но вам все равно нужно было бы использовать файл PHP для отправки информации на HTML-страницу.
TryHarder

Ответы:

9

Хорошо, для начала, вы не можете использовать сайт .html для отображения информации о пользователе, вместо этого вам потребуется файл .php .

После создания вам нужно будет импортировать Joomla CMS следующим образом:

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

Возможно, вам придется изменить строку 2 приведенного выше кода в зависимости от того, где находится корень вашего сайта Joomla относительно вашего пользовательского файла 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>";

Таким образом, ваш общий файл будет выглядеть так:

<?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>";    
?>
Лоддер
источник
сначала он дал мне пустую страницу, а теперь я переместил ее в папку с шаблонами, это дало мне простой результат HTML? Это просто показывает, Name of the user who has logged inа не фактический пользователь, который вошел в систему?
saibbyweb
Вы создали HTML или PHP-файл? Как вы называете файл, вводя URL к пути? Вы изменили вторую строку первого фрагмента кода, как я уже упоминал в своем ответе? пожалуйста , убедитесь , что вы будете следовать инструкциям , тщательно , как это делает работу
Лоддер
я создал файл .PHP и просто набираю URL к пути. я разместил php-файл в корне моего сайта и заменил вторую строку на то, что написано в моем файле define('JPATH_BASE', __DIR__);
INDEX.PHP
lodder Как вы думаете, это будет работать без создания всего приложения CMS? Я думаю, что это немного сложнее ...
Чед Уинднэгл,
@ChadWindnagle - ааа, мой плохой. забыл 1 строку, которую я сейчас добавил. Тест и работа полностью
Lodder