Ankündigung

Einklappen
Keine Ankündigung bisher.

Brainstorming zu verschachtelten Listen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tim
    antwortet
    Zitat von 2pmagentur Beitrag anzeigen
    Bekomme ich die URL schöner hin? woraus generiert er sich die ?
    https://2023.octopus-immo.de/objekt/...werbepark.html
    /objekt/ -> Seitenalias deiner Weiterleitungsseite
    /table/ -> GET-Parameter für die Kindtabelle ?table=KIND
    /oi_wohneinheiten -> KIND-TABELLE-WERT
    /pid/ -> GET-Parameter für den Elterneintrag
    /gewerbepark -> ELTERN-EINTRAG-ALIAS

    Du kannst über Contao Input Klasse GET-Parameter "im Hintergrund" setzen und sie aus der Url kürzen. Das ganze muss natürlich vor der Erstellung der Liste geschehen und dynamisch je aktiven Eintrag, weil sonst die benötigten Informationen fehlen.

    So sehe es für diesen speziellen Eintrag aus:

    Code:
    Input::setGet('table','oi_wohneinheiten');
    Input::setGet('pid','gewerbepark');
    Anbei ein mod_customcatalog Template für die Kind-Liste, das quasi die Url auf der Kind-Liste-Seite komplett stripped, nachdem die Infos in der Session abgelegt wurden und die Kind-Liste filtert.


    Angehängte Dateien
    Zuletzt geändert von Tim; 08.11.2023, 09:10.

    Einen Kommentar schreiben:


  • 2pmagentur
    antwortet
    Bekomme ich die URL schöner hin? woraus generiert er sich die ?
    https://2023.octopus-immo.de/objekt/...werbepark.html

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von 2pmagentur Beitrag anzeigen
    Du bist einfach ein Gott Ich danke dir!
    Hat geklappt, würde ich sagen Nice.

    Einen Kommentar schreiben:


  • 2pmagentur
    antwortet
    Du bist einfach ein Gott Ich danke dir!

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Leider nein … also standardmäßig auf jedenfall nicht
    Du hast keine Standard-Templates im Einsatz. Auch die CC-Demos sind individualisiert und diese Templates nicht direkt für Eltern-Kind-Tabellen konzipiert.
    Ich würde empfehlen einmal mit den customcatalog_default Templates die Liste anzuschauen. Du gibst in den Einträgen nur die direkten Detailseiten aus, nicht den Link zu weiteren Kind-Tabellen

    Die Eltern-Liste sollte alle Buttons ausgeben: (siehe _default Template)

    customcatalog_default, Weiterlesen Button(s) (wird aufgestockt, je Kind-Tabelle)

    <?php if($entry->get('more')): ?>
    <p class="more"><?php echo $entry->get('more'); ?></p>
    <?php endif; ?>
    ---

    Damit wird je Kind-Tabelle ein "Einträge ansehen" Link gebildet mit Ziel auf die Weiterleitungsseite in den Eltern-Liste-Modul-Einstellungen.

    Anbei ein Screenshot aus der CC-Konfig (CC-Test ist quasi Eltern-Tabelle und CC-Kind die Kindtabelle darin)


    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: screenshot_1372.jpg Ansichten: 0 Größe: 62,7 KB ID: 28158
    Angehängte Dateien
    Zuletzt geändert von Tim; 07.11.2023, 10:39.

    Einen Kommentar schreiben:


  • 2pmagentur
    antwortet
    Leider nein … also standardmäßig auf jedenfall nicht
    Im Anhang findest du die Seitensturktur sowie die Inhalte der beiden Module.

    Die Temmplates sehen wie folgt aus … kannst du sehen, warum das nicht klappt?

    Das Template für die Objekte
    HTML-Code:
    <?php if(!$this->empty): ?>
    <div class="entries">
    <?php foreach($this->entries as $entry): ?>
    <div class="block <?= $entry->class; ?> <?php if($entry->field('top_object')->value()): ?> cc_immorealty top_object<?php endif; ?>" <?php echo $this->cssID; ?>>
    
    <div class="cc_immorealty_inside">
    
    <div class="cc_immorealty_top">
    <?php if($entry->field('top_object')->value()): ?> <i class="top_object_icon fa fa-star"></i><?php endif; ?>
    <h4><a href="<?php echo $entry->links('detail')->url; ?>"><?php echo $entry->field('name')->value(); ?></a></h4>
    <div class="place"><?php echo $entry->field('plz')->value(); ?> <?php echo $entry->field('ort')->value(); ?></div>
    </div>
    
    <div class="cc_immorealty_middle">
    <a href="<?php echo $entry->links('detail')->url; ?>"><?php echo $entry->field('einzelfoto')->html(); ?></a>
    <ul class="property-meta">
    <li><i class="fa fa-calendar"></i><?php echo $entry->field('baujahr')->value(); ?></li>
    <li><i class="fa fa-th-large"></i><?php echo $entry->field('wohneinheiten')->value(); ?> WE</li>
    </ul>
    </div>
    
    <div class="cc_immorealty_bottom">
    <?php if($entry->field('preis')->value() > 0): ?>
    <div class="price">ab &euro; <?php echo $entry->field('preis')->value(); ?></div>
    <?php endif; ?>
    </div>
    
    </div>
    
    </div>
    <?php endforeach; ?>
    </div>
    
    <?php else: ?>
    <p class="info empty">Keine Objekte gefunden</p>
    <?php endif;?>
    Das Template für die Wohneinheiten
    HTML-Code:
    <?php if(!$this->empty): ?>
    <div class="entries">
    <?php foreach($this->entries as $entry): ?>
    <div class="block <?= $entry->class; ?> <?php if($entry->field('top_object')->value()): ?> cc_immorealty top_object<?php endif; ?>" <?php echo $this->cssID; ?>>
    
    <div class="cc_immorealty_inside">
    
    <div class="cc_immorealty_top">
    <h4><a href="<?php echo $entry->links('detail')->url; ?>"><?php echo $entry->field('name')->value(); ?></a></h4>
    </div>
    
    </div>
    
    </div>
    <?php endforeach; ?>
    </div>
    
    <?php else: ?>
    <p class="info empty">Keine Objekte gefunden</p>
    <?php endif;?>

    Die Testumgebung siehst du auf https://2023.octopus-immo.de

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von 2pmagentur Beitrag anzeigen
    Guten Morgen zusammen,

    ich habe erstmal gerade nur eine Verständnisfrage zu dieser Thematik. Wenn ich das richtig verstanden habe sollte das nach Tims Tutorial funktionieren. Wäre cool wenn ihr das fix bestätigt und ich nicht zeit verbrenne in unzähligen Versuchen

    Ich baue ein Immo-Portal und habe zwei Konfigurationen angelegt. Eltern-Konfig A (Objekte), also Mehrfamilienhaus an der Siemensstraße. Dann gibt es Kind-Konfig B (Wohneinheiten im Haus an der Siemensstraße). Das klappt nach dem Tutorial super im Backend. Also sehe die Objekte und mit klick auf den Stift sehe ich die Wohneinheiten mit seinen Details.

    Jetzt möchte ich auf der Homepage aber auch so navigieren können. Liste Objekte … Bei Klick soll Liste Wohneinheiten … Bei Klick sollen Details der einen Wohneinheit.
    Bisher komme ich noch nicht von der Liste Objekte zu Liste Wohneinheiten. Von Liste Wohneinheiten zu Detials Wohneinheiten geht.

    Denke ich richtig und ist das überhaupt lösbar? Danke für ein kurzes Feedback!
    Deine Anforderung ist mit Bordmitteln direkt lösbar, ohne diese Template-Anpassung. Sobald eine CC Liste eine Kindtabelle im Backend hat, wird ein zusätzlicher Weiterlesen Button generiert auf die Weiterleitungsseite. Auf dieser kann dann eine CC Liste für die Kindtabelle liegen und es werden nur die Kind-Einträge des geklickten Eltern-Eintrags ausgegeben.

    ---
    Die Anpassungen hier sind für Eltern und Kind in ein und der selben Liste.

    Einen Kommentar schreiben:


  • 2pmagentur
    antwortet
    Guten Morgen zusammen,

    ich habe erstmal gerade nur eine Verständnisfrage zu dieser Thematik. Wenn ich das richtig verstanden habe sollte das nach Tims Tutorial funktionieren. Wäre cool wenn ihr das fix bestätigt und ich nicht zeit verbrenne in unzähligen Versuchen

    Ich baue ein Immo-Portal und habe zwei Konfigurationen angelegt. Eltern-Konfig A (Objekte), also Mehrfamilienhaus an der Siemensstraße. Dann gibt es Kind-Konfig B (Wohneinheiten im Haus an der Siemensstraße). Das klappt nach dem Tutorial super im Backend. Also sehe die Objekte und mit klick auf den Stift sehe ich die Wohneinheiten mit seinen Details.

    Jetzt möchte ich auf der Homepage aber auch so navigieren können. Liste Objekte … Bei Klick soll Liste Wohneinheiten … Bei Klick sollen Details der einen Wohneinheit.
    Bisher komme ich noch nicht von der Liste Objekte zu Liste Wohneinheiten. Von Liste Wohneinheiten zu Detials Wohneinheiten geht.

    Denke ich richtig und ist das überhaupt lösbar? Danke für ein kurzes Feedback!

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von Zero Beitrag anzeigen
    ... dann versteht der CC mehr als ich ;-)
    ​sorry, aber ich glaube, da brauche ich ein konkretes Code-Beispiel.
    Da gibts ja bereits einiges hier im Forum zu.

    Hier ein Auszug aus der CC Leser oder Liste Klasse, die quasi das gleiche macht -> direkt einen Eintrag finden per ID bzw. PID

    PHP-Code:
    $objParentCC = \CustomCatalog::findByTableName('MEINE_TABELLE');
    $objParentEntry $objParentCC->findPublishedItemByIdOrAlias('ID-DES-ZUFINDENEN-EINTRAGS');

    echo 
    $objParentEntry->id
    Kind-Listen gibt dir die CC Liste ohne Anpassungen aus. Du musst aber rückwärts denken, da du vom Kind auf den Eltern-Eintrag schauen willst.

    Einen Kommentar schreiben:


  • Zero
    antwortet
    ... dann versteht der CC mehr als ich ;-)
    ​sorry, aber ich glaube, da brauche ich ein konkretes Code-Beispiel.

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Du willst von einem Kind auf die Elterndetailseite? Also, andersherum als es normal ist.

    Die ID des Eltern-Datensatzes ist die PID im Kinddatensatz. Damit kannst du den Link direkt setzen oder du holst dir vorher noch den Alias auf dem Elterndatensatz. Dann kannst du auch mit dem Alias den Link bauen. CC versteht beides im Leser.

    Einen Kommentar schreiben:


  • Zero
    antwortet
    Ich habe eine ähnliche Situation wie in den oben erwähnten Beispielen, also zwei CC:

    A) cc_reisen
    B) cc_reisetermine (Kind von A)

    Die Ausgabe der entsprechenden Liste der Kindtabelle im Leser der Elterntabelle klappt gut.
    Jetzt will ich aber auf einer anderen Seite (eine Gesamt-Terminübersicht) sämtliche Kindtabellen auflisten und auf die Detailseite des jeweiligen verwandten Datensatzes der Elterntabelle verlinken.
    Möglich dass ich hier im Forum was übersehen habe, komme aber leider nicht drauf, wie im Listen-template der Kindtabelle auf dieser Übersichtsseite der link dazu gebaut sein müsste.




    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von eblick Beitrag anzeigen
    Kleine Ergänzung noch zu diesem Thema.
    Die
    PHP-Code:
    $objChildCC->setLayoutTemplate('custom_template'); 
    Anweisung wirkt sich auf alle Listen aus, die auf derselben Seite integriert sind.

    Ich habe nun am Ende des Templates die Variable auf das darauf folgende Template anpassen müssen.
    Kann die Variable von vorne herein nur für diese eine Liste gesetzt werden?

    Ist objekt bezogen, kommt aber auch dem Cache und wenn vorab bereits ein gleichnamiger CC gecached wurde, sind ggf. seine Settings noch aktiv.
    Möchte man ein rohes CC objekt haben, sollte man ein ->reset() durchführen

    PHP-Code:
    $objChildCC = \PCT\CustomElements\Plugins\CustomCatalog\Core\CustomCatalogFactory::findByTableName('cc_reiseinfo_details');
    // liefert aus dem cache, ggf. mit vorherigen settings
    $objChildCC->reset(); // leer alle vorab gesetzten settings, macht object komplett autark
    $objChildCC->setLayoutTemplate('custom_template'); 
    Alternative ist das Objekt resetted holen:
    $objChildCC = \PCT\CustomElements\Plugins\CustomCatalog\Core\Cus tomCatalogFactory::findByTableName('cc_reiseinfo_d etails',array(),true);

    Hier ruhig die Parameter der Funktionen einmal genauer anschauen. Das sind hilfreiche Sachen bei.
    Zuletzt geändert von Tim; 18.03.2016, 07:35.

    Einen Kommentar schreiben:


  • eblick
    antwortet
    Kleine Ergänzung noch zu diesem Thema.
    Die
    PHP-Code:
    $objChildCC->setLayoutTemplate('custom_template'); 
    Anweisung wirkt sich auf alle Listen aus, die auf derselben Seite integriert sind.

    Ich habe nun am Ende des Templates die Variable auf das darauf folgende Template anpassen müssen.
    Kann die Variable von vorne herein nur für diese eine Liste gesetzt werden?

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Das sieht doch schick aus

    Einen Kommentar schreiben:

Lädt...
X