Zugriff auf den Inhalt einer Tabelle eines anderen Metamodels
Hallo Community,
vorab: Ich habe mir die Postings zum Thema durchgelesen,
https://community.contao.org/de/show...re-MM-Tabellen
https://community.contao.org/de/show...ls-Kindtabelle
https://community.contao.org/de/show...Tabelle-ziehen
http://de.contaowiki.org/MetaModels_...ferenced_items
aber leider helfen mir diese nicht, da ich immer noch nicht so recht verstanden habe, wie ich das anlegen soll.
Vielleicht können wir das hier in diesem Thread ja mal Stück für Stück zusammen erklären, so das das auch von nicht Programmierern (wie ich auch einer bin) verstanden wird.
Ich habe 2 Probleme, die ich nicht gelöst bekomme.
1. Ausgabe eines Textes aus einer anderem Metamodel entsprechend der gesetzten Auswahl auf der Website
2. Ausgabe der zu einer Gruppe gehörenden weiteren Einträge - Referenced items
Auf zur ersten Aufgabe.
Ausgangssituation:
Es gibt 3 Metamodels - Kategorien, Kunden, Referenzen
Kategorien - 3 Attribute: Name, Alias, Beschreibung
Kunden - 2 Attribute: Name, Alias
Referenzen - 12 Attribute: hier relevant ist davon nur Auswahl-Kategoriename und Auswahl-Kundenname
Es gibt jetzt im MM-Referenzen diverse Rendereinstellungen für die Front-Endausgabe und 2 Filter
1. Filter: FE published / Kategorie (wie im Wiki-Tutorial angelegt)
2. Filter: FE Link Detail (wie im Wiki-Tutorial angelegt)
Über Frontendmodule sind die Module auf den entsprechenden Ausgabeseiten eingebunden.
Ich benutze die Kategorien als "Navigation" per radiobuttons.
(Linkliste mit auto_item funktioniert leider nicht, weil sich dann in den Unterseiten die Pfade "aufaddieren". - vielleicht hat ja jemand auch dafür eine Lösung?)
Das Problem:
Ich hätte jetzt gern, das je nach ausgewählter Kategorie die entsprechende Beschreibung der Kategorie ausgegeben wird.
Ich habe es soweit hinbekommen, das mir alle Kategoriebeschreibungen untereinander angezeigt werden oder keine, aber nicht nur die der Kategorie entsprechende.
Leider habe ich keine Idee mehr, wie ich das Problem lösen kann, sicherlich fehlt mir einfach eine kleine Brücke zwischen den Elementen. Da ich, wie gesagt, kein Programmierer bin, komme ich auch mit den vielen Ratschlägen ala "Setz doch einfach ein eigenes SQL ein und bastel Dir einen Filter im Template" nicht weiter.
Schön wäre jetzt ein Lösungsansatz in dem Stil:
1. Lege mal im MM-.... einen Renderer / Filter / ... mit folgenden Einstellungen an ...
2. Dann ...
3. Dann ...
Ich denke so würde ich auch verstehen und es würde vielen anderen helfen, den Metamodels ist echt eine harte Nummer zu lernen (für einen Nicht-Programmierer.)
Evtl. bekomme ich das andere Problem, dann ja auch selber gelöst ;)
Was meint ihr, finden wir da einen Weg?
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe es für mich umgeschrieben, jedoch passt etwas noch nicht:
PHP-Code:
<?php
// echo '<pre>' . $this->showTemplateVars() . '</pre>'; // Zeigt alle Werte aus dem MM an
// ### Tabelle mm_kalender auslesen ###
foreach ($this->data as $arrItem) {
// ============================================
// ### Detaildaten aus Fremdtabelle STANDORTE holen ###
// http://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items
// Tabelle, in der die gesuchten Informationen stehen
$objMetaModel = MetaModelFactory::byTableName('mm_loesungen');
// Filterobjekt erzeugen
$objFilter = $objMetaModel->getEmptyFilter();
// Einen bestehenden Filter zuordnen
// $objFilter = $objMetaModel->prepareFilter(10, array()); // 10 = Id des Filters
// Hier werden in der MM mm_standorte alle Datensätze gesucht, die im Feld 'standort' den
// Wert $arrItem['raw']['mitarbeiter']['standort'] haben
$objFilter->addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel->getAttribute('partner'), $arrItem['raw']['name']['partner'], $objMetaModel->getAvailableLanguages()));
// Array mit allen gefundenen Datensäten
$objItems = $objMetaModel->findByFilter($objFilter);
// ## KONTROLLE ##
// Ausgabe der gefundenen Datensätze
foreach ($objItems as $objItem) {
echo "<br>====================== ".$arrItem[text][name]."<br>";
if (!empty($objItem)) {
$arrName = $objItem->get('name');
$arrBeschr = $objItem->get('beschreibung');
$arrAlias = $objItem->get('alias');
} else {
$arrName = "???";
$arrBeschr = "???";
$arrAlias = "???";
}
echo "Name: ".$arrName['name']." | Beschreibung: ".$arrBeschr['beschreibung']." | Alias: ".$arrAlias['alias']."<br>";
}
}
?>
Hier mal meine Attribute:
Haupt MM, wo das template eingefügt werden soll:
Anhang 16115
Zweites MM aus dem die Daten für den jeweiligen Partner gezogenw erden sollen:
Anhang 16116
Fehlermeldung:
Code:
PHP Fatal error: Class 'MetaModelFactory' not found in /wwwroot.wwwnew/templates/metamodel_partnerpool.html5 on line 6