Erstellen einer benutzerdefinierten HTML-Benutzerprofilseite mithilfe von Joomla-Variablen

9

Ich denke, es wird kompliziert, aber ich werde mein Bestes geben, damit Sie verstehen, was ich erreichen möchte. Ich möchte lediglich eine benutzerdefinierte HTML-Seite erstellen , auf der die Informationen des Benutzers angezeigt werden, der sich auf meiner Joomla-Website angemeldet hat. Aber ich möchte, dass es gut aussieht, ich möchte ein Hintergrundbild haben, ich möchte CSS und verschiedene Schriftarten für verschiedene Joomla-Variablen einschließen. Beispiel für das, was ich erreichen möchte:

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

Das ist , was ich spreche, Zuweisen von <h1>Tag zu dem Namen des Benutzers oder die Zuordnung <h2>zu E - Mail usw.

Gibt es eine Möglichkeit, eine HTML-Seite mit der Joomla-Datenbank zu verbinden, Daten daraus abzurufen und auf diese Weise anzuzeigen?

saibbyweb
quelle
1
Wenn Sie Ajax verwenden, können Sie die Informationen auf einer HTML-Seite anzeigen, müssen jedoch weiterhin eine PHP-Datei verwenden, um die Informationen an die HTML-Seite zu senden.
TryHarder

Antworten:

9

Ok, für den Anfang können Sie keine .html- Site verwenden, um Benutzerinformationen anzuzeigen, stattdessen benötigen Sie eine .php- Datei.

Nach der Erstellung müssen Sie das Joomla CMS wie folgt importieren:

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

Möglicherweise müssen Sie Zeile 2 des obigen Codes ändern, je nachdem, wo sich das Stammverzeichnis Ihrer Joomla-Site relativ zu Ihrer benutzerdefinierten PHP-Datei befindet.

Fügen Sie nun einfach den folgenden Code hinzu, um den Benutzernamen und die E-Mail-Adresse des aktuell angemeldeten Benutzers zu erhalten:

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

Ihre Gesamtdatei sieht also folgendermaßen aus:

<?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
quelle
Zuerst gab es mir eine leere Seite und jetzt habe ich sie in den Vorlagenordner verschoben. Es gab mir eine einfache HTML-Ausgabe? Es wird einfach angezeigt, Name of the user who has logged inanstatt des tatsächlichen Benutzers, der sich angemeldet hat?
Saibbyweb
Haben Sie eine HTML- oder PHP-Datei erstellt? Wie rufen Sie die Datei auf und geben die URL zum Pfad ein? Haben Sie die zweite Zeile des ersten Codeausschnitts geändert, wie ich in meiner Antwort erwähnt habe? Bitte stellen Sie sicher , dass Sie die Anweisungen sorgfältig , da dies befolgen tut Arbeit
Lodder
Ich habe eine PHP-Datei erstellt und gebe einfach die URL zum Pfad ein. Ich habe die PHP-Datei im Stammverzeichnis meiner Website platziert und die zweite Zeile durch die in meiner INDEX.PHP-Datei geschriebene ersetzt define('JPATH_BASE', __DIR__);
saibbyweb
Lodder, glauben Sie, dass dies funktionieren wird, ohne die gesamte CMS-Anwendung zu instanziieren? Ich denke, das ist etwas komplexer ...
Chad Windnagle
@ChadWindnagle - ahh mein schlechtes. Ich habe 1 Zeile vergessen, die ich jetzt hinzugefügt habe. Test und Arbeit voll
Lodder