- Joomla Version
- 5.0.1
- PHP Version
- PHP 8.1.x
- Hoster
- Lokal
Hallo zusammen.
Ich bin gerade dabei eine Joomla Seite von Joomla 3 auf Joomla 5 zu migrieren. Bzw habe ich schon auf Joomla 5 migriert, habe jetzt jedoch einen Haufen an Fehlermeldungen.
Unter anderem habe ich außerdem das Problem, dass mein User Objekt nach dem Anmelden NULL ist und ich nicht genau weiß warum.
Wenn der User auf Mein Profil klickt, wird die folgende View aufgerufen:
$link['user_profile'] = JRoute::_( 'index.php?option=com_powerdog&view=useredit' );
Die default.php zu der view im tmpl Ordner sieht so aus:
if ( $currentUserId == $this->user->idCustomer )
{
$authority_cust = 1;
$profile_fullname = $currentUserName;
}
else
$authority_cust = 0;
if ( $currentInstallateurId == $this->user->installateurid )
{
$authority_inst = 1;
$profile_fullname = $this->user->Firstname . ' ' . $this->user->Lastname;
}
else
$authority_inst = 0;
...
<?php
if ( $authority_cust || $authority_inst )
{
?>
....
else
{
?>
<div class="grid-12-12">
<div class="form-msg-error"><h3><?php echo JText::_( 'YOU_NOT_LOGGED_IN' );
//HIER HÄNGE ICH FEST (YOU NOT LOGGED IN)
Alles anzeigen
Stellt sich heraus, dass $this->user->idCustomer generell NULL ist.
HIER MEINE ERSTE FRAGE:
Auf was bezieht sich THIS in diesem Fall? Auf das Model von useredit.php oder? Also ist models/useredit.php das THIS objekt?
das sieht jedenfalls so aus:
class PowerdogModelUseredit extends JModelList
{
var $_id = null;
var $_user_id = null;
var $_installateur_id = null;
var $_user_edit_id = null;
var $_user_data = null;
var $_country_list = null;
var $_user_temp_email = null;
var $_installateur_email = null;
...
Alles anzeigen
Nun habe ich das Projekt natürlich mal nach idCustomer durchsucht, da diese ID ja mit der currentUserId übereinstimmen muss.
Dann bin ich im Controller (controllers/useredit.php) auf diese Funktion gestoßen:
public function user_edit ()
{
global $option;
$send_activation_mail = HelperRequest::getVar( 'send_activation_mail', '0' );
$currentSession = JSession::getInstance('none',array());
$currentInstallateurId = $currentSession->get( "installateur_logged_in", -1 );
$user['idCustomer'] = HelperRequest::getInt( 'idCustomer', '0' );
$user['Firstname'] = HelperRequest::getVar( 'Firstname', '0' );
$user['Lastname'] = HelperRequest::getVar( 'Lastname', '0' );
$user['Company'] = HelperRequest::getVar( 'Company', '0' );
$user['Street'] = HelperRequest::getVar( 'Street', '0' );
$user['No'] = HelperRequest::getVar( 'No', '0' );
$user['zip'] = HelperRequest::getVar( 'zip', '0' );
$user['city'] = HelperRequest::getVar( 'city', '0' );
$user['country'] = HelperRequest::getVar( 'country', '0' );
$user['comment'] = HelperRequest::getVar( 'comment', '0' );
$user['email'] = HelperRequest::getVar( 'email', '0' );
$user['latitude'] = HelperRequest::getVar( 'latitude', '0' );
$user['longitude'] = HelperRequest::getVar( 'longitude', '0' );
$user['alarming_active'] = HelperRequest::getVar( 'alarming_active', 1 );
$user['private_note'] = HelperRequest::getVar( 'private_note', '0' );
$user['newsletter_aktive'] = HelperRequest::getVar( 'newsletter_aktive', '0' );
$user['ust_id'] = HelperRequest::getVar( 'ust_id', '0' );
$user['invoice_email'] = HelperRequest::getVar( 'invoice_email', '0' );
$installateur_email['email1'] = HelperRequest::getVar( 'installateur_email1', '' );
...
Alles anzeigen
Also wird hier anscheinend das user objekt initialisiert.
Nun suche ich im Code nach Einstiegspunkten für diese Funktion, kann aber keinen finden außer einen (in default.php):
<?php
if ( $authority_cust || $authority_inst )
{
?>
<form class="form" method="post" enctype="multipart/form-data">
<?php if ( $authority_inst ) { ?>
.........
......
...
<input type="hidden" name="task" value="useredit.user_edit" /> //HIER EINSTIEGSPUNKT??
<input type="hidden" name="idCustomer" value="<?php echo $this->user->idCustomer ?>" />
<input type="hidden" name="option" value="<?php echo $option; ?>" />
</form>
Alles anzeigen
Jedenfalls ist diese Stelle der einzige Punkt im Code, der "user_edit" enthält??
Kann sich irgendjemand erklären wo der Einstiegspunkt in diese Controller Funktion user_edit sein könnte wo das $user Objekt initialisiert wird?
Bzw. wie könnte ich diese Funktion aufrufen, damit mein $user Objekt in THIS nicht mehr NULL ist?
LG