Ich kann mich gar nicht genug bedanken für eure Hilfe!
Ich habe die Tipp beherzigt und nun mal ein bischen was in der Komponente verändert.
profile.php /models
PHP-Code:
defined('_JEXEC') or die ('Restricted access');
jimport('joomla.application.component.model');
//jimport( 'joomla.database.table' );
class CommunityModelProfile extends JModel {
public function getData($ident)
{
$db = JFactory::getDBO() ;
$table = $this->getTable('profile') ;
$table->load($ident) ;
return $table ;
......
in der View-Datei(view.hmtl.php /views/profile) sieht es nun folgender Maßen aus:
PHP-Code:
defined('_JEXEC') or die('Restricted Acesss');
jimport('joomla.application.component.view');
class CommunityViewProfile extends JView {
function display($tpl = null) {
$user = JFactory::getUser();
$model = $this->getModel();
$userdata = $model->getData($user->id);
$this->assignRef('userdata', $userdata);
parent::display($tpl);
}
}
Weil ich ja die Methode getTable im Model genutzt habe, musste ich dementsprechend ja eine neue Datei erstellen, in die Tabelle definiert ist. (Anfangs dachte ich, dass man direkt den Namen der Datenbank-Tabelle angeben kann).
profile.php /tables :
PHP-Code:
defined('_JEXEC') or die('Restricted access');
class TableProfile extends JTable {
var $id = 0;
var $name = '';
var $username = '';
var $email = '';
var $password = '';
var $usertype = '';
var $block = 0;
var $sendEMail = 0;
var $gid = 0;
function TableProfile(& $db) {
parent::__construct('#__users', 'id', $db) ;
}
}
Und zu guter Letzt meine Ausgabe-Datei:
PHP-Code:
<?php defined('_JEXEC') or die( 'Restricted Access');
if(!empty($this->userdata)) {
//foreach($this->userdata as $userdate) {
?>
<div align="center">
<table width=" 50%">
<tr>
<th>Name:</th>
<td><?php
//echo $userdate->username ;
echo $this->userdata->username ;
?></td>
</tr>
<tr>
<td><b>E-Mail Adresse:</b></td>
<td><?php echo $this->userdata->email ; ?></td></tr>
<tr><td>
<b>Benutzer-Id</b></td>
<td><?php echo $this->userdata->id ; ?>
<tr>
<th>Ausgabe von der Variablen:</th>
<td><?php echo var_dump($this->userdata) ; ?></td>
</tr>
</table>
</div>
<?php }
else {
echo "<b> Sie sind nicht eingeloggt, bitte loggen Sie sich ein um Zugriff auf ihr Profill zu erlangen.</b>" ;
}
?>
Bei der Ausgabe verstehe ich nicht, wieso man die die Variable 'userdata' als Eigenschaft aufrufen muss und nicht das Objekt nutzen kann. Das sollte ja eigentlich die Methode load des JTable-Objekts erledigen.
Vielen Dank im Voraus!
Gruß Thylo
Lesezeichen