Katalog-Reader-Seiten nicht immer erzeugen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • kingduevel
    Contao-Nutzer
    • 01.10.2010
    • 17

    #1

    Katalog-Reader-Seiten nicht immer erzeugen

    Hallo Contao-Community,

    auf dieser Seite habe ich in Contao 2.9.1 und dem Catalog eine Liste mit Gruppenleitern für ein Zeltlager eingerichtet. In der dort angezeigten Liste werden nur aktive Gruppenleiter aufgelistet, was mittels eines Katalog-Feldes (Checkbox: "Aktiv?") gesteuert wird. Also alle inaktiven werden dort nicht gelistet. Es ist aber so, dass diese immernoch bei Google zu finden sind und wenn man die URL besitzt, kann man diese inaktiven Gruppenleiter aufrufen. Das möchte ich verhindern!

    Wie kann ich das am schlauesten umsetzen? Habe da an ein extra Katalog-Layout oder -Template gedacht, weiß aber noch nicht genau, wie ich wo am besten eine kleine PHP-Zeile einfüge... Weiß jemand Rat?

    Beste Grüße,
    kingduevel.
  • Tim G
    Contao-Urgestein
    • 13.02.2010
    • 2212

    #2
    Hi,
    ich würde mit zwei Reader-Seiten arbeiten. Eine ist in den Seiteneinstellungen öffentlich für bots, die andere nicht.
    Im Listen Template baust du dann den Abweig und setzt den Link zu den jeweilgen Seiten.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

    Kommentar

    • delirius
      Contao-Nutzer
      • 17.01.2011
      • 186

      #3
      Ich würde in etwa so machen:

      Code:
      <?php if ($entry['data']['aktiv']['value'] == 1): ?>
      ...
      Ausgabe Detailansicht
      ...
      <?php else: ?>
      ...
      Leider existiert diese Seite nicht
      ...
      <?php endif; ?>
      Daniel Herren www.delirius.ch

      Kommentar

      • kingduevel
        Contao-Nutzer
        • 01.10.2010
        • 17

        #4
        Vielen Dank, delirius! So irgendwie meinte ich das auch und habe es so auch umgesetzt bekommen. Hier eine kleine Anleitung, falls nochmal jemand diese Lösung benötigt:

        Problemstellung: Mittels einer Katalog-Liste werden Katalogeinträge aufgelistet und per Katalog-Leser detaillierter angezeigt. Obwohl gewisse Katalogeinträge nicht in der Katalog-Liste erscheinen, sind sie per direkter URL aufrufbar. Das soll geändert werden.

        1) Damit die hier gezeigte Lösung funktioniert, muss im Modul Katalog-Leser das Feld, nach welchem die Abfrage funktionieren soll, sichtbar geschaltet sein (bei mir heißt das Feld "aktiv")!
        2) Im Ordner "typolight/system/modules/catalog/templates" eines der Templates (bei mir "catalog_full.tpl") wählen und es mit anderem Namen ("catalog_gruppenleiter.tpl") im gleichen Ordner abspeichern.
        3) Die Datei mit dem von delirius genannten Code ändern:
        Code:
        <?php if (count($this->entries)): ?>
        <div class="layout_full">
        <?php foreach ($this->entries as $entry): ?>
        <?php if ($entry['data']['aktiv']['value'] == 1): ?>
        <div class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>">
        <?php if($entry['linkEdit']): ?><?php echo $entry['linkEdit']; ?><?php endif; ?>
        <?php foreach ($entry['data'] as $field=>$data): ?>
        <?php if (strlen($data['raw']) && !in_array($field, array('catalog_name','parentJumpTo', 'aktiv'))): ?>
        <div class="field <?php echo $field; ?>">
        	<div class="label"><?php echo $data['label']; ?></div>
        	<div class="value"><?php echo $data['value']; ?></div>
        </div>
        <?php endif; ?>
        <?php endforeach; ?>
        </div>
        <?php else: ?>
        <p class="info">Hier die Fehlermeldung eintragen!</p>
        <?php endif; ?>
        <?php endforeach; ?>
        </div>
        <?php else: ?>
        <p class="info">Invalid item reference for catalog.</p>
        <?php endif; ?>
        Dabei ist zu bemerken, dass das Abfrage-Katalog-Feld eventuell anders heißen kann (bei mir "aktiv"). Das also dann zweimal austauschen. Dabei ist das erste Mal die Abfrage selbst und das zweite ist dafür da, um das Katalogfeld für den Benutzer wieder auszublenden. Wollt ihr, dass der Katalog-Leser auch das Abfrage-Feld anzeigt (bei mir würde man auf der Webseite dann "Aktiv: 1" lesen), dann das zweite "aktiv" inklusive Komma und Anführungszeichen weglassen.

        4) Im Contao-Backend dem Katalog-Leser das neue Layout geben.
        5) Fertig.

        PS: Vielen Dank delirius und natürlich auch Tim G.

        Kommentar

        • lucina
          Administratorin
          • 19.06.2009
          • 7544

          #5
          Dazu von mir noch einmal die Anmerkung, bitte nicht mehr mit dem nun wirklich veralteten Catalog zu arbeiten. Der Nachfolger ist MetaModels.

          Der Catalog wird seit ca. 2 Jahren nicht mehr weiterentwickelt und ist obsolet.
          Contao in Kiel: kikmedia webdevelopment | Contao-Partnerin | Contao Usergroup Kiel | github | Contao-Community-Alliance | MetaModels-Team

          Kommentar

          • kingduevel
            Contao-Nutzer
            • 01.10.2010
            • 17

            #6
            Hups, ich muss dringend mal Updaten. Wirklich jetzt !
            Aber vielleicht geht der Tipp bzw. die Anleitung ja auch bei MetaModels noch...

            Kommentar

            Lädt...