CE denkt mit einem sogn. Origin Objekt. Das enthält alle Informationen zu der Herkunft.
Eine CC Tabelle ist nichts anderes als z.B. die tl_content für CE. CE speichert auch nichts in tl_content. Die Werte sind im Vault, verknüpft über PID und SOURCE.
Soll CC jetzt ein CE Attribut rendern, wird die renderCallback Methode des Attributes gestartet, die im Grunde das gleiche macht wie ein ContentCustomElement (normales CE Inhaltselement)
Dort wird ein CE objekt erstellt. Die Herkunft festgelegt und gerendert. Die Html Ausgabe wird an das CC Feld übergeben.
Ankündigung
Einklappen
Keine Ankündigung bisher.
CC: Attribut CustomElement Widget
Einklappen
X
-
Zitat von Tim Beitrag anzeigenDu kommst immer im CE Template an die Werte über den gewohnten. Das wird ja hier auch durchlaufen. Und im CC Template mit ->html() gerendert.
Daher bin ich irritiert, dass im CC Template aber nichts ankommt. Da kann ja doch auch nix ankommen, wenn diese Felder in der Datenbank leer sind und die Werte im Vault stecken. Oder hab ich dich jetzt falsch verstanden?
Einen Kommentar schreiben:
-
Zitat von D23 Beitrag anzeigenOk, so genau hatte ich das nicht angesehen. Aber danke für die Info.
Jetzt noch die krönende Preisfrage: Wie kann ich da jetzt was im FE ausgeben? Die Werte werden gespeichert, allerdings nicht in der Tabelle des Produkts, sondern in tl_pct_customelement_vault.
Kommt man da im FE-Template ran?
$entry->field('feld')->html / render oder value() liefern da natürlich nichts aus.
Du kommst immer im CE Template an die Werte über den gewohnten. Das wird ja hier auch durchlaufen. Und im CC Template mit ->html() gerendert. Das würde ich auch empfehlen. Keep things clean, simple and don't mix.
Nutze sonst Inserttags
{{vault::ID-OR-ATTRIBUTEALIAS::ENTRY-ID::SOURCE}}
Beispiel:
Feld heisst: meinText, im Eintrag ID=10, Tabelle: cc_meinKatalog
echo $this->replaceInsertTags({{vault::meinText::10::cc_mei nK atalog}});
Man kann natürlich auch eine direkte Anfrage an den Vault stellen. Eine direkte Datenbankabfrage geht auch immer.
Einen Kommentar schreiben:
-
Ok, so genau hatte ich das nicht angesehen. Aber danke für die Info.
Jetzt noch die krönende Preisfrage: Wie kann ich da jetzt was im FE ausgeben? Die Werte werden gespeichert, allerdings nicht in der Tabelle des Produkts, sondern in tl_pct_customelement_vault.
Kommt man da im FE-Template ran?
$entry->field('feld')->html / render oder value() liefern da natürlich nichts aus.
Einen Kommentar schreiben:
-
php sagt es dir ja, Zeile 128
PHP-Code:$arrTranslations = deserialize($objResult->{$strTranslationField}) ?: array();
foreach($arrTranslations as $lang => $arrTranslation)
Klar, man könnte jetzt hier ein Feld angeben, was auch als blob speichert oder als serialisiertes Array z.B. headline in tl_content oder multiSRC.
Dann knallt das foreach auch nicht. Trotzdem werden in dem Array keine Übersetzungen gefundenEs kommt aber kein php Fehler.
- 1 Likes
Einen Kommentar schreiben:
-
Stimmt. Fehler ist jetzt weg. Magst Du mir kurz verraten an welcher Stelle der Fehlermeldung das erkennbar war? Für mich ist das jetzt eher so "What kind of sorcery is this?!"
Einen Kommentar schreiben:
-
Du hast wahrscheinlich ein Übersetzungs-Widget angegeben in den Attribut-Einstellungen, aber eigentlich gibt es gar keins. Dein Fehler entsteht, weil nach Übersetzungen gesucht wird in einem vermeintlichen Übersetzungsfeld
- 1 Likes
Einen Kommentar schreiben:
-
Hab das mal im Code ergänzt. Grundsätzlich scheint es zu funktionieren, da im Dropdown jetzt auch Werte erscheinen. Allerdings dreht das BE mit Fehlern hohl
Warning: Invalid argument supplied for foreach() in system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Attributes/SelectDb/SelectDb.php on line 128
#0 system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Attributes/SelectDb/SelectDb.php(128): __error(2, 'Invalid argumen...', '/Applications/M...', 128, Array) #1 system/modules/core/library/Contao/Widget.php(1388): PCT\CustomElements\Attributes\SelectDb->getOptions(Object(Contao\DC_Table)) #2 system/modules/pct_customelements/PCT/CustomElements/Core/Attribute.php(593): Contao\Widget::getAttributesFromDca(Array, '381otqtcvow40ox', '1', '381otqtcvow40ox', 'cc_productvaria...', Object(Contao\DC_Table)) #3 system/modules/pct_customelements/PCT/CustomElements/Core/Attribute.php(949): PCT\CustomElements\Core\Attribute->generateWidget(Object(Contao\DC_Table)) #4 system/modules/pct_customelements/PCT/CustomElements/Widgets/WidgetCustomElement.php(699): PCT\CustomElements\Core\Attribute->prepareForDca(Object(Contao\DC_Table)) #5 system/modules/pct_customelements/PCT/CustomElements/Widgets/WidgetCustomElement.php(794): PCT\CustomElements\Widgets\WidgetCustomElement->buildGroups() #6 system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Attributes/CustomElement/CustomElement.php(112): PCT\CustomElements\Widgets\WidgetCustomElement->generate() #7 system/modules/core/classes/DataContainer.php(221): PCT\CustomElements\Attributes\CustomElement->generateCustomElementWidget(Object(Contao\DC_Tabl e), '') #8 system/modules/core/drivers/DC_Table.php(1928): Contao\DataContainer->row('{product_varian...') #9 system/modules/core/classes/Backend.php(650): Contao\DC_Table->edit() #10 system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('products') #11 contao/main.php(20): Contao\BackendMain->run() #12 {main}
Einen Kommentar schreiben:
-
Die Ladereihenfolge bzw. das Laden von Feldern ist hier ausschlaggebend. CE läd Felder über einen generischen Namen (passwortähnliche Feldnamen, damit man immer schön Alias ändern kann und keine Daten verloren gehen). CC allerdings arbeitet direkt mit den Alias. Hier mischt sich gerade beides. CC arbeitet hier die Felder auf und prüft natürlich ob man in einem CC ist -> Ja, ist man. Damit werden die Felder über ihren Alias geholt.
Ich hab ne kleine Prüfung voran gesetzt.
Ich mach mal nen kleinen Screenshot, falls du es selbst einsetzen willst:
pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Core/AttributeFactory.php, Zeile 251
Zuletzt geändert von Tim; 23.09.2015, 13:24.
- 1 Likes
Einen Kommentar schreiben:
-
Zitat von Tim Beitrag anzeigen
jaja, war mehr rethorischer Natur. Selects mit Db-Abfragen sind meistens nicht einfach
Stichwort Tags und so
Also, wie isses? Hab ich einen Bug gefunden? Kannst Du das reproduzieren? Wird es Nachts immer dunkel? Fragen über Fragen...
Einen Kommentar schreiben:
-
Zitat von D23 Beitrag anzeigen
Gibt es – nennt sich "Auswahl-Datenbank, einfach (Select/Radio)" bzw. selectdb.
Einen Kommentar schreiben:
-
Zitat von Tim Beitrag anzeigenPuhh... "einfach, DB" gibts sowas überhaupt?. Muss ich mir anschauen. Wir eine Referenz verloren gehen.
Gibt es – nennt sich "Auswahl-Datenbank, einfach (Select/Radio)" bzw. selectdb.
Einen Kommentar schreiben:
-
Puhh... "einfach, DB" gibts sowas überhaupt?. Muss ich mir anschauen. Wir eine Referenz verloren gehen.
Einen Kommentar schreiben:
-
Also anfänglich war es Kategorie "Was das? Was macht dat? Kann man das essen?" ... Mittlerweile bin ich aber an dem Punkt dass ich sagen muss, wenn das sauber arbeitet, ist das der absolute Hammer!
Wir können den Thread übrigens wohl doch noch nicht dichtmachen
Aktuell funktioniert das Kopieren, verschieben und speichern wunderbar.
Was aber nicht zu funktionieren scheint:
Wenn das eingebundene CE eine Auswahl (einfach, DB) enthält, bleibt die Dropdown-Liste dieses Feldes leer.
Einen Kommentar schreiben:
-
Zitat von D23 Beitrag anzeigenHervorragend. Gefixed mit aktueller Version! Thread kann also ggf. geschlossen werden. Danke vielmals.
Das CE Attribut war auch bei mir nur eine Art "mal sehen ob es klappt"... "Hurra, die Eierlegendewollmichsau geschaffen"
Einen Kommentar schreiben:
Einen Kommentar schreiben: