Reihenfolge der Felder in Inhaltstyp wird ignoriert

am 03.03.2015 - 16:47 Uhr in
Hallo,
ich habe das Problem, dass ich aus welchem Grund auch immer, die Reihenfolge der Felder eines bestimmten selbst erstellten Inhaltstyps nicht ändern kann. Bzw. ändern kann ich es schon, aber angezeigt wird es nicht richtig.
Es sind insgesamt 15 Felder. Heute habe ich eines hinzugefügt und wollte es an 10. Position anzeigen. Habe es mit der "Drag&Drop" Methode versucht, also mit den "Pfeilchen" und mit der Zeilenreihenfolge, also Zahlen. Beides funktionierte nicht. In der Feldübersicht (Backend/Admin) wird es so angezeigt, wie ich es eingestellt habe, aber auf der Website wird das neue Feld stur auf 4. Position statt 10. Position angezeigt. Die einzige Änderung die das System sichtbar zulässt ist das ein- bzw. ausblenden des Felds. Die Positionsänderung wird ignoriert. Auch bei den bereits vorhandenen Feldern wird keine Positionsänderung auf der Website wahrgenommen - nur im Verwaltungsbereich (Backend/Admin).
Ich habe den kompletten Cache der Seite gelöscht und alle CronJobs laufen lassen. Das hat alles nichts gebracht.
Was kann ich noch tun oder woran könnte es liegen?
In welcher Datenbanktabelle werden denn die Feldreihenfolgen verwaltet?
Vielleicht finde ich ja dort einen Hinweis?
Ich nutze Drupal 7.34 mit dem "Installationsprofil" Commerce Kickstart (commerce_kickstart-7.x-2.21).
Bei dem Inhaltstyp handelt es sich genauer gesagt um ein "Produkttyp" bzw. "Product variation" der bereits über 200 mal erfolgreich benutzt wurde und bisher auch immer richtig angezeigt wurde.
Vielen Dank schon mal im Voraus für Eure Unterstützung.
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn Du im Inhaltstyp bist,
am 04.03.2015 - 01:16 Uhr
Wenn Du im Inhaltstyp bist, und da bei "Felder verwalten", hat es oben rechts von der Tabelle einen Link "Zeilenreihenfolge anzeigen"? Klick da mal drauf, dann siehst Du in der zweiten Spalte die Gewichtung. Ich vermute, dass die Felder nicht mehr sauber durchnumeriert sind. Wenn da mehrere Felder dieselbe Nummer haben, wird das ganze störrisch...
Gib die Felder mit Views aus.
am 04.03.2015 - 09:11 Uhr
Gib die Felder mit Views aus. Mit Views hast du wesentlich mehr Kontrolle, was die Darstellung der DB-Inhalte im Frontend angeht.
Vielen Dank leda.ch für deine
am 04.03.2015 - 10:09 Uhr
Vielen Dank leda.ch für deine Antwort.
Das war auch meine erste Vermutung, aber leider ist da alles richtig. Bedeutet: Die Zeilenreihenfolge wird im Verwaltungsbereich korrekt, also genau so wie man es erwarten würde (keine doppelten Zahlen, alle Zahlen bilden eine lückenlose Zahlenfolge von 0 bis 14) angezeigt. Ich habe auch versucht einfach die Zahlenreihe zu überschreiben - also neu zu schreiben. Habe sogar mit Negativzahlen rumgespielt. Hat alles nichts gebracht, leider.
Es ist irgendwie komisch.
Kann es sein dass es zwei Versionen dieser Reihenfolge in der Datenbank gibt?
Eine für den Adminbereich (Backend) und eine für die Website (Frontend)?
Das würde zwar überhaupt keinen Sinn ergeben, aber mir kommt es langsam so vor...
Hallo bolshii, vielen Dank
am 04.03.2015 - 10:26 Uhr
Hallo bolshii, vielen Dank für deine Antwort.
Ich arbeite zwar auch mit Views, aber so intensiv habe ich mich damit noch nicht beschäftigt, dass ich dir hier folgen kann.
Aber ich versuche es.
In diesem eCommerce Kickstart, ist vieles in Views geregelt. Z. B. die Produktliste, in der wie in Onlineshops üblich, alle Produkte mit Bild, Titel, Preis aufgelistet werden. Das wird z. B. in der Ansicht (View) "All Products" geregelt. Dort kann man dann auch vorsortieren oder filtern, z. B. inaktive Produkte ausblenden. Die Anzeige der dort aufgelisteten Produkte (Inhaltstyp) ist in diesem Fall dann "Inhalt: Product List". Klickt man auf ein Produkt in dieser Liste wird man auf die Produktseite weitergeleitet. Anzeige des Inhaltstyps "Produkts" ist dann "Inhalt: Vollständiger Inhalt".
Wie kann ich da noch ein View dazwischen schalten, so dass ich das von dir vorgeschlagene umsetzen kann?
OK, und dasselbe bei "Anzeige
am 04.03.2015 - 10:37 Uhr
OK, und dasselbe bei "Anzeige verwalten", und zwar für alle Anzeigeeinstellungen wie Anrisstext und Standard?
Ja, entschuldige, ich sprach
am 04.03.2015 - 10:49 Uhr
Ja, entschuldige, ich sprach ausschließlich von der Anzeigeeinstellung, denn es geht mir ja darum, wie es auf der Website selbst, also für normale Besucher, angezeigt wird.
In den Feldeinstellungen habe ich die Reihenfolge aber auch genau so geregelt, mir ist aber klar, dass das nichts mit der Anzeige auf der Website zutun hat.
Die Einstellungen in den Feldeinstellungen werden übrigens anstandslos übernommen. Also in der Bearbeitungs/Erstellungsmaske des Inhaltstyps ist alles in der korrekten Reihenfolge.
Bevor du loslegst empfehle
am 04.03.2015 - 11:10 Uhr
Bevor du loslegst empfehle ich dir den aktuellen View zu exportieren. Speichere den Export in einer Textdatei. So kannst du jederzeit den Ausgangszustand per Import wiederherstellen. Sobald das erledigt ist, schaust du unter 'Format: Show' bzw. im Deutschen 'Format: Anzeige' nach, ob 'Fields' bzw. 'Felder' aktiviert ist. Falls nicht aktivierst du die. Speichern nicht vergessen.
Danach legst du unter 'Fields -> Add field' ein Field 'global: custom text' an. Das sich öffnende Fenster bekommt dein gewünschtes Markup. Unter 'Replacement Patterns' findest du alle in der View vorhandenen Felder. Die kopierst du an die ensprechende Stelle in deinem Markup, speicherst das ab und im Anschluss sollte die Vorschau dir das gewünschte Layout liefern.
Nicht vergessen den Haken bei 'Exclude from display' in jedem einzelnen Feld zu setzen. Andernfalls erscheint die Ausgabe 2-fach.
Viel Erfolg!
Vielen Dank nochmal für Deine
am 04.03.2015 - 12:51 Uhr
Vielen Dank nochmal für Deine Antwort.
Ich habe es jetzt mit einem jQuery Workaround "gelöst". Ging etwas schneller, da ich mich wie gesagt noch nicht so intensiv mit Views beschäftigt habe bisher.
jQuery('.node-type-beispiel #content-wrap article').each(function(){
var beispiel = jQuery(this).find('.commerce-product-field-field-beispiel');
var index_beispiel = beispiel.index();
var beispiel_aktiv = beispiel.hasClass('.commerce-product-field-empty');
if(beispiel_aktiv == false){
beispiel.addClass('col-sm-12').css({'padding-left':'0px','margin-top':'20px'});
if(index_beispiel < 9){
jQuery(beispiel).detach().insertAfter( ".commerce-product-field-field-anderes-feld" );
}
}
});
Allerdings, ist das nicht wirklich eine Lösung des Problems.
Kann das sein, dass es sich hier vielleicht um ein Bug handelt?
Ganz normal ist das ja nicht, dass Anweisungen die im Adminbereich erstellt wurden einfach für den Frontendbereich ignoriert werden?
Sofern Drupal und dein/e
am 04.03.2015 - 13:04 Uhr
Sofern Drupal und dein/e Modul/e up to date sind, gehe ich nicht von Bugs aus. Vielleicht gab es Caches, die dir die Suppe versalzten. Installiere dir am besten drush. Sobald du in dem von dir beschriebenen Bereich werkelst, ist 'drush cc' dein Freund nach jeder Änderung.