Tạo trang hồ sơ người dùng HTML tùy chỉnh bằng cách sử dụng biến Joomla


9

Tôi đoán nó sẽ phức tạp nhưng tôi sẽ cố gắng hết sức để bạn hiểu, những gì tôi muốn đạt được. Tất cả những gì tôi muốn, là tạo một trang HTML tùy chỉnh , nó sẽ hiển thị thông tin của người dùng đã đăng nhập vào trang web Joomla của tôi. Nhưng tôi muốn nó đẹp, tôi muốn có một hình nền, tôi muốn bao gồm CSS và các phông chữ khác nhau cho các biến Joomla khác nhau. Ví dụ về những gì tôi muốn đạt được:

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

Đây là những gì tôi đã nói, gán <h1>thẻ cho Tên của người dùng hoặc gán <h2>cho Email, v.v.

Có cách nào để kết nối một trang HTML với cơ sở dữ liệu Joomla và lấy dữ liệu từ nó và hiển thị nó theo cách này.


1
Nếu bạn đã sử dụng ajax, bạn có thể hiển thị thông tin trên trang html, nhưng bạn vẫn cần sử dụng tệp PHP để gửi thông tin đến trang HTML.
TryHarder

Câu trả lời:


9

Ok cho người mới bắt đầu, bạn không thể sử dụng trang web .html để hiển thị thông tin người dùng, thay vào đó bạn sẽ yêu cầu tệp .php .

Sau khi tạo, bạn sẽ cần nhập Joomla CMS như vậy:

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

Bạn có thể phải thay đổi dòng 2 của mã ở trên tùy thuộc vào vị trí gốc của trang Joomla của bạn so với tệp PHP tùy chỉnh của bạn.

Bây giờ để có được tên người dùng và email của người dùng hiện tại đã đăng nhập, chỉ cần thêm mã sau đây:

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

Vì vậy, tập tin tổng thể của bạn sẽ trông như thế này:

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

Đầu tiên, nó đưa cho tôi một trang trống và bây giờ tôi đã chuyển nó vào thư mục mẫu, nó cho tôi một OUTPUT HTML đơn giản? Nó chỉ đơn giản là hiển thị, Name of the user who has logged inthay vì người dùng thực sự đã đăng nhập?
saibbyweb

Bạn đã tạo một tệp html hoặc php? Làm thế nào bạn gọi tệp, gõ URL vào đường dẫn? Bạn đã thay đổi dòng thứ hai của đoạn mã đầu tiên như tôi đã đề cập trong câu trả lời của mình chưa? vui lòng đảm bảo rằng bạn làm theo các hướng dẫn được cung cấp cẩn thận vì điều này hiệu quả
Lodder

tôi đã tạo một tệp .PHP và tôi chỉ cần gõ URL vào đường dẫn. tôi đã đặt tệp php vào thư mục gốc của trang web của mình và tôi đã thay thế dòng thứ hai bằng dòng được viết trong tệp INDEX.PHP của mình define('JPATH_BASE', __DIR__);
saibbyweb

Bạn có nghĩ rằng cái này sẽ hoạt động mà không cần khởi tạo toàn bộ ứng dụng cms không? Tôi nghĩ điều này phức tạp hơn một chút ...
Chad Windnagle

@ChadWindnagle - ahh xấu của tôi. quên 1 dòng mà bây giờ tôi đã thêm. Kiểm tra và làm việc đầy đủ
Lodder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.