Hallo,
Ich versuche gerade mir ein eigenes Plugin zu schreiben.
PHP
<?php
namespace wcf\page;
use wcf\system\WCF;
use wcf\system\request\LinkHandler;
class MyPage extends AbstractPage {
/**
* @var string
*/
protected $entries = [];
/**
* @inheritDoc
*/
public function readParameters() {
parent::readParameters();
$sql = 'SELECT v.option3, v.entryID, e.subject, e.message, ? AS url
FROM lexicon1_entry_option_value AS v
INNER JOIN lexicon1_entry AS e
ON v.entryID = e.entryID
WHERE (v.option3 BETWEEN ? AND ?)
ORDER BY v.option3 ASC';
$statement = \wcf\system\WCF::getDB()->prepareStatement($sql);
$statement->execute([
'#',
date('Y-m-d', strtotime('- 2 months')),
date('Y-m-d', strtotime('+ 1 year'))
]);
$this->entries = $statement->fetchAll(\PDO::FETCH_ASSOC);
$image = '';
foreach($this->entries AS $key => $entry) {
//[...] gekürzt
$this->entries[$key]['url'] = LinkHandler::getInstance()->getLink('Entry', array('application' => 'lexicon', 'id'=> $entry['entryID']));
}
print_r($this->entries);
/*
* lexicon1_entry
* SELECT * lexicon1_entry
*/
}
/**
* @inheritDoc
*/
public function readData() {
parent::readData();
if (empty($this->entries)) {
$this->entries = '';
}
}
/**
* @inheritDoc
*/
public function assignVariables() {
parent::assignVariables();
WCF::getTPL()->assign([
'entries' => $this->entries
]);
}
}
Display More
Das funktioniert soweit. Allerdings nicht ganz wie ich möchte. Ich bekomme eine funktionierende URL zurück => https://mypage/lexicon/entry/938/ ... korrekt wäre allerdings https://mypage/lexicon/entry/938-xyz-titel/ !?
Was mache ich falsch? Was habe ich ggf. vergessen? Leider komme ich nicht ganz klar mit der Doku. Für jeden Tipp bin ich dankbar.
VG