View jeweils nur einen node anzeigen lassen, abhängig von Sprache
Eingetragen von Transmitter (213)
am 09.01.2010 - 11:07 Uhr in
am 09.01.2010 - 11:07 Uhr in
Hi,
habe ein de / en System und alles hinbekommen bis auf eine Sache:
Eine View soll entweder nid = 4 ODER nid = 99 anzeigen.
4 für Deutsch und 99 für Englisch.
Wie schaffe ich das denn der View zu erzählen, was ich von ihr will?
Bisher versteht sie mich nicht richtig :(
views_or ist installiert, falls das hilft.
Danke schon mal
Bye, Transmitter
- Anmelden oder Registrieren um Kommentare zu schreiben
Um nur ein Node zu zeigen,
am 11.01.2010 - 10:06 Uhr
Um nur ein Node zu zeigen, gibst du bei "Anzuzeigende Einträge" einfach eine "1" ein und schaltest die Pager/Seitennavigation aus. Die Sprache wirst du wahrscheinlich als Argument übergeben müssen. Das Argument heißt wahrscheinlich: "Node translation: Sprache".
http://www.twitter.com/aschiwi
Das geht in die richtige
am 13.01.2010 - 04:08 Uhr
Das geht in die richtige Richtung, habe mich nur falsch ausgedrückt.
Ich will:
if $language = 'en'
show ( nodeid 4 )
if $language = 'de'
show ( nodeid 99 )
Ist sowas möglich?
Sicher geht das...
am 13.01.2010 - 06:48 Uhr
Die Sprach unter Stützung für Nodes ist jabereits im Core drin, aber Du musst Drupal natürlich sagen, dass nid99 die Übersetzung von nid4 ist. lies hier mehr dazu
Bei den Menus wirds dann schon etwas komplizierten: aber auch da gibts hafenweise Infos im Netz, hier ein Beispiel
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Wie die Übersetzung
am 13.01.2010 - 07:24 Uhr
Wie die Übersetzung funktioniert ist mir klar, das ist alles korrekt eingerichtet.
Selbst die Menüs habe ich nach den Anleitungen hinbekommen.
Nur eben nicht das hier:
if $language = 'en'
show ( nodeid 4 )
if $language = 'de'
show ( nodeid 99 )
innerhalb einer View.
Selbst wenn ich in der de Umgebung bin, wird natürlich ID 99 angezeigt, weil ich das bei der View ja ausgewählt habe. Und ich weiß nicht wo ich eingeben soll, dass wenn ich in der en Umbegung bin ID 4 angzeigt werden soll.
Hmm...
am 13.01.2010 - 07:45 Uhr
Mir ist jetzt nicht ganz klar, ob ich dich richtig verstanden habe. Die von dir genannten [nid] sind nur als Beispiele gedacht oder? Wenn ja, sollte es doch kein Problem sein unter den Filtern den Filter "Beitragsübersetzung: Sprache" zu definieren.
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Die Idee von aschiwi war
am 13.01.2010 - 07:53 Uhr
Die Idee von aschiwi war schon richtig. Vermutlich ist nid 4 vom Inhalt her mit nid 99 identisch, jedoch einfach nur übersetzt. Da du die Mehrsprachigkeit im Core ja bereits kennst, kannst du die Sprache einfach als Argument übergeben, z.B. aus der url.
Ja, das kann ich
am 13.01.2010 - 08:04 Uhr
Ja, das kann ich einstellen:
Argumente
Beitragsübersetzung: Sprache
Und was muss ich jetzt bei Filter einstellen, damit entweder 4 (en Version) ODER 99 (de Version) geladen wird?
Bei Filter gibt es die Gruppe Beitragsübersetzung und i18n, aber nichts mit Argumenten.
Ich komme nicht auf den richtigen Filter. :(
Argument
am 13.01.2010 - 09:02 Uhr
Ich denke, das wird über Filter nicht gehen. Von daher solltest du ein anderes Argument benutzen. Das ist ähnlich dem, was ich hier in unserem Blog beschrieben habe.
Füge ein Argument "Node: Nid" dazu. Das ist so zu sagen das 2. Bild und dann einstellen, wie das erste Bild im Blog. Also ein Standard Argument benutzen und PHP Eingabe.
Dann schreibst du in das PHP ungefähr sowas:
<?php
if($GLOBALS['language']->language === 'en') {
return 4;
}
else {
return 99;
}
?>
NICHT GETESTET!
Aber ich hoffe das zeigt das Prinzip. Argumente sind Kontext abhängige Filter. Und die kannst du auf diese Art und Weise füttern, wie du willst.
---
Viele Grüße,
Kars-T
| comm-press
Der Unterschied zwischen
am 13.01.2010 - 09:02 Uhr
Der Unterschied zwischen Argumenten und Filtern ist folgender:
Filter = schränkt die Ergebnismenge durch dauerhaft* feste Parameter ein.
Argumente = schränkt die Ergebnismenge durch Parameter in der URL ein.
D.h. du nimmst als Filter:
node ist vom typ abc
node ist veröffentlicht
was du sonst noch haben möchtest
und als Argument die Sprache des nodes, die du dann in der url übergibst.
*dauerhaft entfällt bei exposed filters (Filter hervorheben)