eigene Filterfunktion in der node
am 16.11.2010 - 10:51 Uhr in
Moin moin,
ich soll ein Vergleichsportal erstellen und habe mich entschlossen, das CCK-Modul "tablefield" dazu zu nutzen.
Der CSV-Import ist noch ziemlich ruppig, weil die deutsche Excel-Version die CSV statt mit Komma mit Semikolon exportiert, aber das kann man per Hand glatt ziehen.
Da es immer der selbe Aufbau ist, der importiert werden soll, wollte ich das Modul so umbiegen, dass es die Daten nicht nur in die Tabelle content_type_book (es sind alles buchseiten) reinbläst, sondern in eine von mir vorher vorbereitete reinschiebt.
Jetzt wäre die Frage, wie ich es am elegantesten löse.
Die CSV hat 3-4 Spalten und etwa 52 Zeilen. Wobei die ersten 2-3 Spalten nur für die übersichtlichere Ausgabe in der node verantwortlich sind (also den Tabelleninhalt nochmal in Unterkategorien aufteilt). Dadurch verringert sich auch die Zeilenanzahl um etwa 7-8 Zeilen.
Ist das mit dieser Spaltenanzahl überhaupt möglich, das in eine extra-mysql-tabelle zu schreiben oder muss ich auf 2 Spalten beschränken (und dann die ersten kategorisierenden Spalten abschneiden)?
Leider ist das dahinterliegende Konzept noch sehr vage, sonst könnte ich es genauer beschreiben.
Die Filterfunktion soll dann darauf aufsetzen. Ich wollte das mit per Hand erstellten DropDownMenus realisieren.
Die einzelnen DropDowns sollten dann auch möglichst (ist nur ein nice to have mit geringer Priorität) von einander abhängig sein. Es soll nach einem Produkt mit mehreren Merkmalen gefiltert werden. Wird Merkmal 1 ausgewählt, sollen sich die Werte der darauf folgenden DropDowns so ändern, dass nur noch die Merkmale der Produkte über bleiben, die auch Merkmal 1 bedienen.
Beispiel:
Mögliche Produkte sind Autos und Motorräder.
Merkmal eins ist die Anzahl der Spuren. Wird "2" ausgewählt, fallen ab Merkmal zwei sämtliche Werte zu den Motorrädern raus, da sie keine zwei Spuren besitzen.
Über einen ersten Ansatz, wie ich zumindest das tablefield_modul umgebogen bekomme, wäre ich sehr dankbar!
- Anmelden oder Registrieren um Kommentare zu schreiben
Verstehe im oberen Teil nur
am 16.11.2010 - 19:18 Uhr
Verstehe im oberen Teil nur Bhf - aber das:
Die Filterfunktion soll dann darauf aufsetzen. Ich wollte das mit per Hand erstellten DropDownMenus realisieren.
Die einzelnen DropDowns sollten dann auch möglichst (ist nur ein nice to have mit geringer Priorität) von einander abhängig sein. Es soll nach einem Produkt mit mehreren Merkmalen gefiltert werden. Wird Merkmal 1 ausgewählt, sollen sich die Werte der darauf folgenden DropDowns so ändern, dass nur noch die Merkmale der Produkte über bleiben, die auch Merkmal 1 bedienen.
Beispiel:
Mögliche Produkte sind Autos und Motorräder.
Merkmal eins ist die Anzahl der Spuren. Wird "2" ausgewählt, fallen ab Merkmal zwei sämtliche Werte zu den Motorrädern raus, da sie keine zwei Spuren besitzen.
ist eigentlich ein Fall für eine hierarchische Taxonomy und das Modul Hierarchical Select
-----------
Luca Curella
Kooperative Netze - Berlin
Der obere Teil ist zur Zeit
am 17.11.2010 - 11:24 Uhr
Der obere Teil ist zur Zeit die Krux an dem ganzen Projekt.
Wir erstellen eine Excel-Vorlage, die ausgefüllt zurückgeschickt wird.
Die rechnen wir in eine saubere CSV (nicht den Schrott, den Excel ausspuckt) um und ich will die die per tablefield (CCK-Modul) importieren.
Das funktioniert soweit wunderbar.
Allerdings speichert tablefield sämtliche hochgeladenen CSV in einer einzelnen Zelle, was für mich ungünstig ist.
Denn mit den eingelesenen Daten will ich später eine Filterfunktion realisieren (Hierarchical Select ist zur Zeit das Modul der Wahl dafür).
Damit ich das aber sauber und ohne größeren Aufwand tun kann, will ich die eingelesenen Daten in eine weitere Tabelle reinschreiben (lassen) beim import.
Diese habe ich bereits per Hand erstellt und kann die Daten aufnehmen.
Problematisch wird es allerdings erst jetzt. Die CSV besteht nicht nur aus zwei Spalten, sondern gleich vier. Beispiel:
-Kategorie
--Merkmal (das ist die Spalte in der von mir erstellten Tabelle in der Datenbank)
---Parameter (das ist der zum Merkmal gehörende Inhalt)
----Anmerkungen des Ausfüllenden (also quasi eine Erweiterung des Parameters, falls etwas fehlt in der Excel-Vorlage kann das hier reingeschrieben werden)
Ich habe mir tablefield mal genauer angesehen, werde aber nicht zwingend schlau daraus, wie es Zeilen und Spalten auftrennt, um die Daten dort herauszuziehen.
Wenn ich das weiß, kann ich zumindest die SQL-Query erstellen, die mir die Daten in meine neue Tabelle in der Datenbank kopiert.
Dadurch pflege ich zwar jetzt zwei mal den gleichen Datensatz (nur in anderer Formatierung), aber ich brauche mir keine Gedanken über die Anzeige der Daten in der node, in die ursprünglich importiert wird.
Ich hoffe, das war aussagekräftiger als mein erster Beitrag. ;)
My software has no bugs - It just develops random features...
airliner schrieb Allerdings
am 17.11.2010 - 12:19 Uhr
Allerdings speichert tablefield sämtliche hochgeladenen CSV in einer einzelnen Zelle, was für mich ungünstig ist ...
Ich kenne TABLEFIELD nicht, aber wenn es um den Import von CSV Dateien geht, dann würde ich Dir das Modul FEEDS nahelegen. Damit erstellst Du per Import ganz normale Nodes, mit denen Du dann alles gewünschte anstellen kannst.
Ich habe gerade ein kleines Projekt vorgestellt, in dem ich nichts anderes tue, als ne CSV Datei zu importieren und damit Nodes zu erstellen, die ich dann mit VIEWS und Konsorten auswerfe ...
Drupal 7 Screencasts in deutsch!
Das ist dann nicht das, was
am 17.11.2010 - 12:35 Uhr
Das ist dann nicht das, was ich suche.
Tablefield ermöglicht es, Tabellen in Nodes einzufügen und das brauche ich halt.
Folgendessoll in die nodes (erstmal sind 50-100 angestrebt): Text zu Hersteller und Produkt und zu dem Produkt diese standardisierte Tabelle. Klar kann man das alles per Hand reinschreiben (tablefield ermöglicht es festzulegen wieviele Zeilen und Spalten eingefügt werden sollen).
Ich nutze die CSV also nicht dazu, nodes an sich zu erstellen oder wie meintest du das bzw. soll ich das verstehen?
My software has no bugs - It just develops random features...
airliner schrieb Ich nutze
am 17.11.2010 - 13:53 Uhr
Ich nutze die CSV also nicht dazu, nodes an sich zu erstellen oder wie meintest du das bzw. soll ich das verstehen?
Hatte ich dann tatsächlich missverstanden! Sorry
Drupal 7 Screencasts in deutsch!
Ich habe mich die Zeit mal
am 23.11.2010 - 11:24 Uhr
Ich habe mich die Zeit mal mit Hierarchical Select und Views beschäftigt, aber komme einfach nicht weiter.
Das Importieren der CSV lasse ich erstmal aus, zur Not müssen die Daten vorerst per Hand integriert werden. Ist ja nicht so viel...
Mitlerweile bin ich dazu übergegangen (ich weiß, ist kein schöner workaround), DropDownMenus hard in die node zu coden, um mir daraus eine SQL-Query zu bauen.
Nur merke ich mitlerweile, dass ich ohne AJAX oder der gleichen nicht sonderlich weit komme, wenn ich wirklich "bedingte" Abfragen bauen will (siehe Beispiel oben mit den Autos und den Motorrädern).
My software has no bugs - It just develops random features...
Kannst du mal deine
am 23.11.2010 - 13:00 Uhr
Kannst du mal deine Taxonomy-Struktur posten?
-----------
Luca Curella
Kooperative Netze - Berlin
Es gibt keine direkte
am 23.11.2010 - 13:13 Uhr
Es gibt keine direkte Taxonomy dafür.
Lediglich die Einteilung der Hersteller nach Alphabet (A bis D, E bis H, usw).
Per Views wird eine Übersichtsseite erstellt (quasi der Startpunkt des Buches), aber das bringt mich ja nicht weiter.
Ich überlege mitlerweile auch, ob ich den Filter mittels Radiobutton aufbaue (das meiste ist eh nur ja/nein) und das dann übergebe.
Eine Mehrfachauswahl ist eh erstmal nicht vorgesehen.
My software has no bugs - It just develops random features...
Dann kann es natürlich mit
am 23.11.2010 - 20:24 Uhr
Dann kann es natürlich mit Hierarchical Select nichts werden...
Falls das Problem sein sollte importierte CCK-Felder in eine Taxonomy-Struktur zu bekommen - dafür gibt es das Modul
http://drupal.org/project/content_taxonomy
-----------
Luca Curella
Kooperative Netze - Berlin