Membuat Halaman Profil Pengguna HTML Khusus dengan menggunakan Variabel Joomla

9

Saya kira ini akan menjadi rumit tetapi saya akan mencoba yang terbaik untuk membuat Anda mengerti, apa yang ingin saya capai. Yang saya inginkan, adalah membuat halaman HTML khusus , yang akan menampilkan informasi pengguna yang telah masuk ke situs web Joomla saya. Tapi saya ingin itu terlihat cantik, saya ingin memiliki gambar latar belakang, saya ingin memasukkan CSS & font yang berbeda untuk variabel Joomla yang berbeda. Contoh yang ingin saya capai:

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

Ini yang saya bicarakan, menetapkan <h1>tag ke Nama pengguna atau menugaskan <h2>ke Email dll.

Apakah ada cara untuk menghubungkan halaman HTML ke database Joomla & mengambil data darinya & menampilkannya dengan cara ini.

saibbyweb
sumber
1
Jika Anda menggunakan ajax, Anda dapat menampilkan informasi pada halaman html, tetapi Anda masih harus menggunakan file PHP untuk mengirim informasi ke halaman HTML.
TryHarder

Jawaban:

9

Oke sebagai permulaan, Anda tidak dapat menggunakan situs .html untuk menampilkan informasi pengguna, alih-alih Anda akan memerlukan file .php .

Setelah dibuat, Anda perlu mengimpor CMS Joomla seperti:

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

Anda mungkin harus mengubah baris 2 kode di atas tergantung di mana akar situs Joomla Anda relatif terhadap file PHP khusus Anda.

Sekarang untuk mendapatkan nama pengguna dan email dari pengguna saat ini login, cukup tambahkan kode berikut di bawah ini:

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

Jadi file Anda secara keseluruhan akan terlihat seperti ini:

<?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
sumber
pertama memberi saya halaman kosong & sekarang saya memindahkannya ke folder template, itu memberi saya OUTPUT HTML sederhana? Ini hanya menunjukkan, Name of the user who has logged inbukan pengguna sebenarnya yang telah masuk?
saibbyweb
Apakah Anda membuat file html atau php? Bagaimana Anda memanggil file, mengetik URL ke path? Apakah Anda mengubah baris kedua dari potongan kode pertama seperti yang saya sebutkan dalam jawaban saya? pastikan Anda mengikuti instruksi yang diberikan dengan hati-hati karena hal ini tidak bekerja
Lodder
saya membuat file .PHP & saya cukup mengetik URL ke path. saya telah menempatkan file php di root situs web saya & saya telah mengganti baris kedua dengan apa yang tertulis dalam file INDEX.PHP saya define('JPATH_BASE', __DIR__);
saibbyweb
apakah Anda pikir ini akan berfungsi tanpa membuat seluruh aplikasi cms? Saya pikir ini sedikit lebih rumit ...
Chad Windnagle
@ChadWindnagle - ahh my bad. lupa 1 baris yang sekarang saya tambahkan. Tes dan bekerja sepenuhnya
Lodder