Ergebnis 1 bis 6 von 6

Thema: Katalog-Reader-Seiten nicht immer erzeugen

  1. #1
    Contao-Nutzer
    Registriert seit
    01.10.2010.
    Beiträge
    17

    Standard 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.

  2. #2
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    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.

  3. #3
    Contao-Nutzer Avatar von delirius
    Registriert seit
    17.01.2011.
    Ort
    Aarau
    Beiträge
    175
    Partner-ID
    6722

    Standard

    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

  4. #4
    Contao-Nutzer
    Registriert seit
    01.10.2010.
    Beiträge
    17

    Standard

    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.

  5. #5
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.335
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    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.

  6. #6
    Contao-Nutzer
    Registriert seit
    01.10.2010.
    Beiträge
    17

    Standard

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

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
  •