Hallo, ich bin dabei meine erstes Plugin zu überarbeiten, da ich in der Zwischenzeit einiges gelernt habe und vieles einfach überflüssig ist.
Nur bei einem Problem stehe ich auf dem Schlauch. Ich benutze für unsere Gilde zusätzlich ein eigenes Gruppensystem. Die Gruppen basieren auf einer WCF Gruppe, beinhalten einige Informationen wie Beschreibung, ggfls. Zeiten u.ä. (Würde das eigentlich Sinn machen das alles als Grouption zu implementieren ?)
Ich möchte mir die Infos über die Gruppe auf der Startseite anzeigen lassen, inkl. Verknüpfung zu den Leitern. Bisher habe ich die Gruppenleiter extra gespeichert, möchte das aber nun umstellen. Die Gruppenleiter werden ja auch in der "WCF" Gruppe gespeichert.
class WoWGroup extends DatabaseObject {
/**
* @see wcf\data\DatabaseObject::$databaseTableName
*/
protected static $databaseTableName = 'guildtool_guildgroups';
/**
* @see wcf\data\DatabaseObject::$databaseTableIndexName
*/
protected static $databaseTableIndexName = 'groupID';
public $WCFGroup = null;
public $groupShortDesc = "";
public $groupLongDesc = "";
public $groupPicture = "";
public function __construct($id, array $row = null, DatabaseObject $object = null) {
parent::__construct($id, $row, $object);
$this->WCFGroup = new UserGroup($this->wcfGroupID);
$sylgaTextPost = (WCF::getLanguage()->languageCode=='de') ? new Post($this->groupThreadID) : new Post($this->groupThreadID_en);
$this->groupShortDesc = $sylgaTextPost->getTitle();
$this->groupLongDesc = $sylgaTextPost->getFormattedMessage();
$fileList = $sylgaTextPost->getAttachments();
$alignment = "left";
if (!empty($fileList)) {
foreach($fileList as $file) {
if ($file->showAsImage()) {
$linkParameters = array('object' => $file);
if ($file->hasThumbnail()) {
$linkParameters['thumbnail'] = 1;
$this->groupPicture = '<img src="'.StringUtil::encodeHTML(LinkHandler::getInstance()->getLink('Attachment', $linkParameters)).'"class="embeddedAttachmentLink jsResizeImage"'.' style="width: '.$file->thumbnailWidth .'px; height: '.$file->thumbnailHeight .'px;" alt="" />';
} else {
$this->groupLogo = '<img src="'.StringUtil::encodeHTML(LinkHandler::getInstance()->getLink('Attachment', $linkParameters)).'"/>';
}
}
}
}
}
}
Display More
Auf der Seite wo die Gruppen angezeigt werden sollen wird folgender Code ausgeführt:
$publishGroupList = new WoWGroupList();
$publishGroupList->getConditionBuilder()->add('publish = 1');
$publishGroupList->sqlOrderBy = "name ASC";
$publishGroupList->readObjects();
$grouplist = $publishGroupList->getObjects();
WCF::getTPL()->assign(array(
'groups' => $grouplist,
));
Display More
Im Template möchte ich mir dann die Leiter ausgeben:
<li>{lang}wcf.guild.group.lead{/lang}:
{foreach from=$group->WCFGroup->leader item='leader'}
<a href="{link controller='User' object=$leader}{/link}" class="userLink" data-user-id="{$leader->userID}"><span>{$leader}</span></a>
{/foreach}
</li>
Das Problem: Der Bereich bleibt leer. Es werden also die Leiter nicht angezeigt. Was mache ich da falsch?