Tworzenie niestandardowej strony profilu użytkownika HTML przy użyciu zmiennych Joomla

9

Myślę, że będzie to skomplikowane, ale postaram się jak najlepiej zrozumieć, co chcę osiągnąć. Chcę tylko stworzyć niestandardową stronę HTML , która będzie wyświetlać informacje o użytkowniku, który zalogował się na mojej stronie Joomla. Ale chcę, żeby wyglądał dobrze, chcę mieć obraz tła, chcę dołączyć CSS i różne czcionki dla różnych zmiennych Joomla. Przykład tego, co chcę osiągnąć:

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

O tym właśnie mówiłem, przypisując <h1>znacznik do nazwy użytkownika lub przypisując <h2>do e-maila itp.

Czy istnieje możliwość połączenia strony HTML z bazą danych Joomla i pobierania z niej danych i wyświetlania ich w ten sposób.

saibbyweb
źródło
1
Jeśli chcesz użyć ajax, możesz wyświetlić informacje na stronie HTML, ale nadal musisz użyć pliku PHP, aby wysłać informacje na stronę HTML.
TryHarder

Odpowiedzi:

9

Ok, na początek, nie możesz użyć strony .html do wyświetlenia informacji o użytkowniku, zamiast tego potrzebujesz pliku .php .

Po utworzeniu musisz zaimportować CMS Joomla w następujący sposób:

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

Być może będziesz musiał zmienić wiersz 2 powyższego kodu, w zależności od tego, gdzie katalog główny witryny Joomla jest względny względem niestandardowego pliku PHP.

Teraz, aby uzyskać nazwę użytkownika i adres e-mail bieżącego zalogowanego użytkownika, wystarczy dodać następujący kod poniżej:

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

Cały plik będzie wyglądał następująco:

<?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
źródło
najpierw dała mi pustą stronę, a teraz przeniosłem ją do folderu szablonów, dając mi prosty WYJŚCIE HTML? To po prostu pokazuje, Name of the user who has logged inzamiast faktycznego użytkownika, który się zalogował?
saibbyweb
Czy utworzyłeś plik HTML lub PHP? Jak wywołujesz plik, wpisując adres URL ścieżki? Czy zmieniłeś drugi wiersz pierwszego fragmentu kodu, jak wspomniałem w mojej odpowiedzi? upewnij się, postępuj zgodnie z instrukcjami podanymi dokładnie jak to robi praca
Lodder
utworzyłem plik .PHP i po prostu wpisuję adres URL ścieżki. umieściłem plik php w katalogu głównym mojej witryny i zastąpiłem drugi wiersz tym, co jest zapisane w moim pliku define('JPATH_BASE', __DIR__);
INDEX.PHP
Czy uważasz, że to zadziała bez uruchamiania całej aplikacji cms? Myślę, że to trochę bardziej skomplikowane ...
Chad Windnagle
@ChadWindnagle - ahh my bad. zapomniałem 1 linii, którą teraz dodałem. Test i pełne działanie
Lodder