Mittlerweile habe ich gemerkt, das "Noch mehr" dazu gehört außer das SQL fürs Backend. Daher will ich es hier noch einmal aufstellen und doch das file Posten:
> Metamodell- "Produkt-Bereich"
-------------------
| ALIAS | NAME |
-------------------
> Metamodell- "Produkt-Kategorie"
--------------------------------
| ALIAS | NAME | Breich-ID |
--------------------------------
> Metamodell- "Produkte"
-------------------------------------------------
| ALIAS | NAME | Breich-ID | Kategorie-ID |
-------------------------------------------------
Damit nun Bereichs-Abhängig Kategorien angezeigt werden gibt es auf das Feld "Kategorie-ID" in der Definition des MM Produkte folgenden SQL Filter, der im MM Produkt-Kategorie definiert werden muss:
PHP-Code:
<?php
$bereichPost = \Input::post('type');
$bereichGet = \Input::get('id');
$contaoDo = \Input::get('do');
$contaoAct = \Input::get('act');
$contaoMMPid = \Input::get('pid');
$bereichGetId = substr(strrchr($bereichGet, ":"), 1);
$defaultType = 1;
if ($contaoDo == "metamodel_mm_products" && !isset($contaoMMPid) && ( $contaoAct == "edit" || ($contaoAct == "create" && isset($bereichPost) ) ) ) {
if (isset($bereichPost)) {
echo "SELECT * FROM `mm_category` WHERE `idtype` = {$bereichPost}";
} else {
echo "SELECT * FROM `mm_category` WHERE `idtype` = ( SELECT `type` FROM `mm_products` WHERE id = {$bereichGetId} )";
}
} elseif ($contaoDo == "metamodel_mm_products" && $contaoAct == "create" && !isset($contaoMMPid)) {
echo "SELECT * FROM `mm_category` WHERE `idtype` = {$defaultType} ";
} else {
echo "SELECT * FROM `mm_category`";
}
?>
Erklärungen:
Das Feld "Kategorie" soll von seiner Datenherkunft (Auswahl) immer auf Bereiche reagieren und zwar im Backend bei der Bearbeitung der Produkte.
Grundlegend so stellt es sich für mich da ist in diesem Zusammenhang nun zu unterscheiden "soll der Filterüberhaupt angewendet werden/bin ich überhaupt in der Backend Bearbeitung".
Dafür werden folgende Unterscheidungen getroffen:
1. Fall ich bin im Editier- oder im Erstellmodus des MM Produkte dann soll die Auswahl der Kategorien der direkten Auswahl im select Feld Bereich oder der gespeicherten ID angepasst werden.
2. Fall man öffnet das Produkte MM zum Anlagen eines Eintrags, dann gebe alle Kategorien des default Bereiches zurück (Dem Bereich, der als 1. im Bereich selectfeld steht).
3. Fall man befindet sich im Fronted oder in der MM Konfiguration selbst hier soll der Filter einfach alle Kategorien ausgeben und nicht im Bereichs Kontext ausliefern.
Zusammenfassung:
Da wie man oben sieht es bei weitem nicht ausreicht im Filter "nur" den Zusammenhang zwischen den abhängigen Auswahlfeldern dar zu stellen, sondern auch programmiertechnische Fall-Entscheidungen getroffen werden müssen und man somit Logik in die Abfrage bringen muss, die SQL-Statements nicht liefern ist dies m.E. wirklich nur mit PHP möglich.#
FE etc. für Produkte:
Bezogen auf Frontend Filter für die Produktauswahl etc. ist es nun denkbar einfach ich habe für jeden Bereich einen Filter der mittels AND Anweisung an einen Kategorien Filter mit die Abfrage nach Published & Bereich A ... B etc. beinhaltet.
Lesezeichen