Ergebnis 1 bis 3 von 3

Thema: Contao sitemap - SitemapListener in eigenem Modul

  1. #1
    Contao-Nutzer
    Registriert seit
    18.10.2022.
    Beiträge
    1

    Standard Contao sitemap - SitemapListener in eigenem Modul

    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!

  2. #2
    Contao-Nutzer
    Registriert seit
    05.09.2017.
    Beiträge
    8

    Standard

    Gibt es hier vielleicht Neuigkeiten? Ich wäre auch daran interessiert, wie man den SitemapListener einbindet.

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Einfach unter dem im Beispiel angegebenen Pfad.
    » sponsor me via GitHub or PayPal or Revolut

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •