Hallo liebe Contao-Community,
es geht um eine Seite, die ich übernommen habe. Ich habe leider nicht soviel Erfahrung mit Contao und bräuchte Unterstützung bei der sitemap-Thematik.
Es gibt dort ein eigenes Modul bei der Stellenangebote gepflegt werden können inkl. Listen und Detail-Seite.
Nun habe ich das Problem, dass die Job-URL's nicht in der sitemap auftauchen (logisch).
Ich habe hierzu bei Contao folgenden Link gefunden: https://docs.contao.org/dev/referenc...contao-sitemap
Leider habe ich keine Ahnung, wie oder wo ich diesen SitemapListener einbinden kann/muss.
Unter /system/modules/jobmodul/modules/ liegt die Datei ModuleJobReader.php
PHP-Code:
namespace xxxxx
class ModuleJobReader extends \Contao\Module
{
protected $strTemplate = 'mod_jobreader';
protected $strItemTemplate = 'job_full';
protected function compile()
{
$this->Template = new \Contao\FrontendTemplate($this->strTemplate);
$this->strItemTemplate = ($this->jobTpl ?: $this->jobTpl);
$objJumpTo = null;
if ($this->jumpTo) {
$objJumpTo = $this->Database->prepare("SELECT id, alias FROM tl_page WHERE id=?")
->limit(1)
->execute($this->jumpTo);
$objJumpTo = $objJumpTo->fetchAssoc();
}
$data = array();
if ($this->Input->get('auto_item')) {
$res = $this->Database->prepare('SELECT * FROM tl_job WHERE published = 1 AND alias = ? LIMIT 1')
->execute($this->Input->get('auto_item'));
$entry = $res->fetchAssoc();
foreach ($entry as $field => $value) {
$data[$field] = $value;
...
}
if ($this->jumpTo && $objJumpTo) {
$data['url'] = $this->generateFrontendUrl($objJumpTo, '/' . $entry['alias']);
}
}
$re = new \XXX\XXXX\ReferenceExt;
$objEntries = new \Contao\FrontendTemplate($this->strItemTemplate);
$objEntries->data = $data;
$objEntries->tagsArray = $re->getTags();
$this->Template->job = $objEntries->parse();
}
}
bekomme ich das irgendwie an die Stelle mit rein, wo die URL erzeugt wird? Oder muss ich für den SitemapListener einen eigenen EventListener erstellen so wie in dem Beispiel aus der Contao-Doku? Wenn ja, wo muss ich die Datei ablegen und wie übergebe ich dann die Daten? Wo muss ich sagen, dass der Eventlistener aufgerufen werden soll?
Vielen Dank schonmal für jegliche Hilfe!
Lesezeichen