Übercart & Views2 - zwei Seitennavigationen bei der Ausgabe des Views
Eingetragen von mccoy (63)
am 04.09.2009 - 10:26 Uhr in
am 04.09.2009 - 10:26 Uhr in
Hallo,
ich verwende Übercart 2.x und Views2. Ich erstelle einen View mit dem ich mir die Produkte eines Katalogs (taxonomy) in einer Tabelle darstellen lasse. Ich verwende im View eine Seitennaviagtion.
Den View integriere ich manuell über die template.php mit der Funktion:
<?php
function framework_uc_catalog_product_grid($products) {
if(is_numeric(arg(1))) {
return views_embed_view('xxx_product_list', 'page_1', arg(1));
}
return views_embed_view('xxx_product_list', 'page_1');
}
?>
Die Ergebnissliste sieht dann so aus:
Ich bekomme also zwei Pager untereinander angezeigt - ich möchte aber nur einen. Woran kann das liegen? Ich weiß echt nicht mehr weiter...
Viele Grüße,
mccoy
- Anmelden oder Registrieren um Kommentare zu schreiben
Dein Code zum integrieren
am 07.09.2009 - 11:05 Uhr
Dein Code zum integrieren des Views kommt mir etwas seltsam vor (bzw ich versteh den nich ganz). Eventuell liegst ja daran.
<?php
function framework_uc_catalog_product_grid($products) {
if(is_numeric(arg(1))) {
return views_embed_view('xxx_product_list', 'page_1', arg(1));
}
return views_embed_view('xxx_product_list', 'page_1');
}
?>
wenn arg(1) numerisch ist, dann wird erst views_embed_view('xxx_product_list', 'page_1', arg(1)) zurückgegeben, und nach der If-Anweisung wird dann nochmal views_embed_view('xxx_product_list', 'page_1') zurückgegeben. Du gibts also bei einer positiven If-Abfrage 2mal views_embed_view('xxx_product_list', 'page_1') zurück, einmal mit und einmal ohne Argument. Ist das beabsichtigt?
Ist der zweite Pager denn nur auf der Seite zu sehen, in der du den View integriert hast, oder sieht man den auch wenn du den View allein aufrufst?
auch beim view alleine...
am 07.09.2009 - 20:49 Uhr
Hallo,
ja, wenn ich den View allein aufrufe, sehe ich auch zwei Pager. Seltsamerweise passiert das nur bei dem View, den ich selber gebaut habe. Verwende ich den Standard Taxonomy View "taxonomy_term" und füge dort ein neue Seite (Page) hinzu, klappt es. Dann bekomme ich nur einen Pager.
Allerdings habe ich mit diesem View das Problem, dass ich in meinem Menü auf der Hauptebene der Kategorien keine Ausgabe bekomme.
Meine Menü sieht z.B. so aus:
|--Hardware
|--TFT
|--PC
|--Server
Klicke ich nun auf "Hardware" bekomme ich eine leere Ausgabe. Das Query gibt kein Ergebnis zurück. Es wäre aber gut, wenn ich - wie vorher im Shop-Standard, die Untermenüs angezeigt bekommen würde.
Ich kann theoretisch im View bei "Leerer Text" ein PHP Code einfügen, der mir diese Kategorien ausliest und anzeigt. Allerdings weiß ich nicht ob das so sinnvoll ist und wie das funktioniert.
Weißt du wie man das macht? Oder wie man generell sich die Kategorien mit Views darstellen lassen kann? Meine Vorlage ist übrigens die Quick Guide Anleitung von TopNotch von hier http://www.topnotchthemes.com/handbook/download-quickstart-guides.
An irgendeiner Stelle im
am 08.09.2009 - 06:15 Uhr
An irgendeiner Stelle im View PHP zu benutzen sollte eigentlich nicht erforderlich sein. Was würde denn dagegen sprechen die Hauptseite per Hand zu erstellen bzw. Selbst ein modul zu schreiben, das diese erstellt und die Views dann als Untermenü-punkte hinzuzufügen. Dann hättest die Views mit nur einem Pager.
Wäre doch eigentlich ne richt simple Lösung oder hab ich was missverstanden?
Das würde aber bedeuten,
am 08.09.2009 - 07:59 Uhr
Das würde aber bedeuten, dass ich mein Menü manuell pflegen müsste und nicht innherhalb der Taxonomy Begriffe abbilden könnte? Oder wie meinst du das?
Ziel ist es, wenn man den Hauptkatalog "Hardware" anklickt, eine Ausgabe der Unterkataloge zu Hardware bekommt.
Die Seite könnte z.B. so aussehen:
---------------------------------------------
Hardware
Wählen Sie eine Kategorie aus:
---------------------------------------------
Hier nochmal mein Aufbau der Taxonomie:
Vokabular: Produktkatalog
Ich müsste also zwei Abfragen schaffen:
1. Die Ausgabe der Hauptbegriffe mit deren Unterbegriffe
2. Die Ausgabe der Produkte des jeweiligen Begriffes
Das Argument im View ist die URL, die z.B. so lautet: /catalog/% (der Platzhalter wird durch die Taxonomy ID erstetzt.) Ich denke, dass auch hier der Haken ist. Ich müsste schon mal anhand der URL unterscheiden können, auf welcher Taxonomie-Ebene ich mich befinde.
Zitat:Das würde aber
am 08.09.2009 - 08:58 Uhr
Das wäre eine (wenn auch schlechte) Möglichkeit. Ich weiß jetzt nicht wie du die URL-Aliase gewählt hast, aber theoretisch wäre auch folgendes möglich:
Du könntest die Taxonomie-Begriffe über ein View anziegen lassen und diese dann über "Rewrite output" auf die passende Seite verlinken. Dann müsste aber der Taxonomie-Begriff im URL-ALias vorkommen. Zum Beispiel: die Seite hat den Titel Monitore und deshalb den Alias catalog/Monitore. Heißt der Taxonomie-Begriff jetzt "Monitore" könntest du dementsprechend im View die Ausgabe mit < a href="/catalog/[taxonomy_term]">[taxonomy_term] überschreiben. [taxonomy_term] soll dabei das Token für den Taxonomie-Begriff sein.
Wenn du auf der Seite noch zusätzlich Text haben willst kannst du auch, wenn schon in der ersten Möglichkeit angerissen, eine Seite dafür erstellen und den View mit dem Modul "InsertView" in die Seite einfügen.
ich vermute ja immernoch, dass das Problem in dem Code liegt, den du im ersten Post gezeigt hat.
Wie kann ich eine Taxonomie
am 08.09.2009 - 09:37 Uhr
Wie kann ich eine Taxonomie Hierachie im View darstellen lassen? Ich müsste ja quasi mein Menü mit dem View bauen.
Die Ausgabe müsste ja in etwa so sein:
Hardware- Moniore
- PCs
Software- Windows
- Linux
- Mac
Ja, der Code mit dem manuellen Insert des Views ist sinnlos. Danke für den Tipp mit dem Modul "InsertView", das kannte ich noch nicht.
Zitat: Wie kann ich eine
am 08.09.2009 - 12:49 Uhr
Wie kann ich eine Taxonomie Hierachie im View darstellen lassen? Ich müsste ja quasi mein Menü mit dem View bauen.
Ich bin mir garnicht so sicher ob das mit einer hierarchischen Taxonomie so einfach geht. Man könnte das natürlich aufspalten, also ein Vokabular für Hardware, eins für Software usw und jedes Vokabular dann wie in meinem vorherigen Post beschrieben als View in die Seite einfügen, wäre dann aber wieder unnötiger Aufwand wenn man einen neuen Oberbegriff hinzufügt. Es gibt sicher irgendwie eine Möglichkeit das mit einem Modul zu lösen, aber momentan fällt mir nur eine Lösung ein, und die wäre selbst hand an zu legen, sprich ein eigenes Modul für die Übersicht zu schreiben.
stebeg schrieb Es gibt
am 08.09.2009 - 13:02 Uhr
Es gibt sicher irgendwie eine Möglichkeit das mit einem Modul zu lösen, aber momentan fällt mir nur eine Lösung ein, und die wäre selbst hand an zu legen, sprich ein eigenes Modul für die Übersicht zu schreiben.
mh, ok - da bin noch blutiger Anfänger und "kämpfe" mich gerade durch "Das Drupal Entwicklerhandbuch". Auch wenn das etwas vom Thema abweicht... bist du fit in Module schreiben? Bist du ein Freelancer oder hast du eine Argentur die man buchen kann?
Es nämlich gar nicht so einfach Agenturen mit Drupal Erfahfung im Raum Süddeutschland zu finden.
Ich bin weder Freelancer
am 08.09.2009 - 13:35 Uhr
Ich bin weder Freelancer noch hab ich eine Agentur, und aus Süddeutschland komm ich schonma garnich :-) Mit Drupal hab ich zwar auch beruflich zu tun, trotzdem nutze ich Drupal aber hauptsächlich privat. Ich denk ma schon das ich im Module schreiben relativ fit bin. "Das Drupal Entwicklerhandbuch" hab ich übrigens auch grad neben mir liegen, kann ich nur empfehlen.
Ein eigenes Modul schreiben ist im Grunde garnicht schwer. Ein recht gutes Tutorial gibts hier, insofern du der englischen Sprache mächtig bist.
Im Prinzip musste ja nur die Taxonomie-Begriffe aus der Datenbank selektieren, diese nach deinen Wünschen umsortieren und anordnen und auf die passenden Seiten/Views verlinken. Dann kommts natürlich darauf an wie sinnvoll du die URL-Aliase vergeben hast, damit du das ganze so gestalten kannst, dass sich, wenn du etwas hinzufügst, alles korrekt von selbst in den Inhalt einfügt. Planung ist quasi die halbe Miete :-)
Ja das stimmt. Das
am 08.09.2009 - 13:53 Uhr
Ja das stimmt. Das Entwicklerhandbuch ist wirklich gut. (Zumindest nach den ersten 50 Seiten). Danke für den Tipp mit der Anleitung.(Kein Englisch können und Drupal basteln wäre wohl tödlich...)
Ich habe noch herausgefunden, dass man im View die Taxonomy "Tiefe" bei den Argumenten ändern kann und somit hat man schon mal keine leere Seite mehr, wenn man auf den Hauptkatalog "Hardware" klickt. Dadurch werden alle Produkte innerhalb des Hauptkatalogs aufgelistet. Damit kann vielleicht sogar leben. Ansonsten wäre so ein einfaches Modul zum Anfang auch interessant. Ich werde sehen und ggf. meine Lösung hier wieder posten.
Grüße aus Bayern :)