Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Zwei views in einem node? (oder: gleichzeitig mehrere nodes erstellen)

Eingetragen von Oliver (26)
am 27.01.2008 - 22:25 Uhr in
  • Views
  • Drupal 5.x

Hallo!

Mein Vorhaben ist wie folgt:
Einem Content Type (1) mit bereits einer View Reference sollen Bilder angehängt werden können.
Das klappt auch sehr gut mit dem CCK Modul ImageField. Allerdings kann dort nur ein Bild angefügt werden.
(mit ImageField Gallery habe ich es bisher nicht geschafft, dies zu umgehen)

Deshalb meine Idee:
Ich erstelle einen weiteren Content Type (2) nur für den Bild-Upload, den ich dann an den ursprünglichen Content Type (1) einbinde.
Da ich dort aber schon eine View Reference drin habe, scheint eine zweite View Reference dadurch in der Funktion gestört zu werden. (es wären die selben Argumente - nur ein anderer Filter für den Node:Type)

Kann ich das Problem irgendwie umgehen?

Gäbe es u.U. auch die Möglichkeit, bei Erstellung der Node vom ursprünglichen Content Type (1) gleichzeitig auch einen Node von einem anderen Content Type (2) zu erstellen, die dann beide über einen dynamischen Link verbunden sind? (also so, dass ich den Link nicht manuell eingeben/umändern müsste)

Die Ideallösung würde so aussehen, dass das erste Bild im Node des Content Type (1) angezeigt würde, und es einen Link zum zugehörigen Node des Content Type (2) gäbe, wo dann alle restlichen Bilder durch einen anderen View dargestellt werden.

‹ Brilliant Gallery aus Content Template Contenttype aufrufbar ? Views: Suche ausführliche Deutsche Anleitung ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Imagecache ...

Eingetragen von deegree (16)
am 28.01.2008 - 05:38 Uhr

Imagecache ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok, das habe ich ja schon

Eingetragen von Oliver (26)
am 28.01.2008 - 11:09 Uhr

Ok, das habe ich ja schon installiert und damit das (eine) Bild, das ich per CCK ImageField angehängt habe, verändert. (thumbnail klein, preview groß)
Vielleicht kannst du etwas genauer erläutern, was du damit meintest. Wie kann ich ImageCache dazu einsetzen, mehrere Bilder an den Node anzuhängen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Imagefield

Eingetragen von miweb (201)
am 28.01.2008 - 11:19 Uhr

Eher Imagfield, das erlaubt mehrere Fotos pro Node, die du mit Imagecache skalieren (Felder anzeigen) und per Contemplate (noch beser eigenem Nodetypen-Template) stylen kannst. Wichtig dabei ist, dass du das Feld zweimal anlegst, einmal für das große Bild, einmal für die kleinen. Du kannst alternativ auch einen View referncieren und einbinden, der die anderen Fotos enthält.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Stimmt: Ich könnte mehrere

Eingetragen von Oliver (26)
am 28.01.2008 - 20:28 Uhr

Stimmt: Ich könnte mehrere ImageField fields in den Content Type reinschreiben.
Das wäre aber eher eine Notlösung, finde ich, weil die ganzen ImageFields das Create Content Formular ziemlich unübersichtlich machen würden.

Die bessere Lösung wäre wohl ein referenzierter View. ABER da habe ich ja wieder das Problem mit den zwei Views in einem Node... Oder ich könnte zwei Nodes beim Erstellzeitpunkt bereits mit einanderverknüpfen. (was ja irgendwie machbar sein müsste)

Zum Verständnis: Momentan sieht es bei mir so aus:
- ImageCache, ImageField und LightboxV2 installiert und aktiviert.
- Zwei Presets in ImageCache (eins für Preview, das andere für Thumbnail)
- Ein ImageField im Content Type (Display Fields: Full auf Lightbox Preview-Preset gesetzt; Teaser brauche ich nicht)
- Contemplate Template für den Content Type, wo das ImageField eingebettet ist (aus Body Variables entnommen)
- Der Content Type enthält bereits eine andere Views-Reference und ein paar andere Fields

Damit habe ich ein sehr gut funktionierendes Bild mit Teaser und Preview. Jetzt suche ich nach einer möglichst eleganten Lösung, dort mehrere Bilder reinzubekommen - am besten so, dass zuerst nur das erste Bild angezeigt wird und nach einem weiteren "Klick" dann alle anderen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielleicht hilft dir der

Eingetragen von derhasi (221)
am 28.01.2008 - 20:50 Uhr

Vielleicht hilft dir der Beitrag http://www.drupalcenter.de/node/6986

Einbinden mehrerer Views geht doch eigentlich problemlos mit theme_view().
Auszug aus dem views.module:

/**
* Returns a themed view.
* @param $view_name
*    The name of the view.
* @param $limit
*   Maximum number of nodes displayed on one page. if $limit is set and $use_pager is
*   not, this will be the maximum number of records returned. This is ignored
*   if using a view set to return a random result.
*   If NULL, the setting defined for the $view will be used.
* @param $use_pager
*   If set, use a pager. Set this to the pager id you want it to use if you
*   plan on using multiple pagers on a page. Note that the pager element id
*   will be decremented in order to have the IDs start at 0.
*   If NULL, the setting defined for the $view will be used.
* @param $type
*    'page' -- Produce output as a page, sent through theme.
*      The only real difference between this and block is that
*      a page uses drupal_set_title to change the page title.
*    'block' -- Produce output as a block, sent through theme.
*    'embed' -- Use this if you want to embed a view onto another page,
*      and don't want any block or page specific things to happen to it.
* @param $view_args
*   An array containing the arguments for the view
*/
function theme_view($view_name, $limit = NULL, $use_pager = NULL, $type = 'embed', $view_args = array())

Da du dem View explizit Argumente übergeben kannst, dürften sich zwei Views nicht gegenseitig stören.
Habe das selbst so in Verwendung, und klappt wunderbar (Beispiel: http://www.zugspitzpokal.de/node/45 - Ergebnis und Galerie sind zwei unterschiedliche Views)

Zum Anzeigen von zuerst einem, dann alle anderen Bilder, kannst du auch mit dem Views Argument Handling Code arbeiten und dort die Variable $offset nutzen: http://www.drupalcenter.de/node/7590

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Links!

Eingetragen von Oliver (26)
am 29.01.2008 - 00:13 Uhr

Danke für die Links!
Ich werde mir die Möglichkeiten mal anschauen. In Sachen PHP bin ich leider Neuling, deshalb suche ich möglichst nach "out-of-the-box" Lösungen. Wenn ich dafür aber keinen allzu komplizierten Code schreiben muss, und mich vielleicht an anderem Code anlehnen kann, bekomme ichs vielleicht auch so hin..

  • Anmelden oder Registrieren um Kommentare zu schreiben

Füge einfach etwas wie in

Eingetragen von derhasi (221)
am 29.01.2008 - 03:03 Uhr

Füge einfach etwas wie

<?php
        theme_view
('terminanhang',NULL,NULL,'block',array($node->nid,'story',3));
     
theme_view('terminanhang',NULL,NULL,'block',array($node->nid,'story',2));
     
theme_view('terminanhang',NULL,NULL,'block',array($node->nid,'story',1));
     
theme_view('terminanhang',NULL,NULL,'block',array($node->nid,'album'));
?>

in die Template-Datei deines Node-Typs: z.B. node-termin.tpl.php
terminanhang ist der Name des Views, block ist die Anzeigeart (kann auch page oder embed gesetzt werden), im array() stehen die zu übergebenden Argumente - in meinem Fall Node-Id, Node-Typ und Term-Id (Taxonomy).

Im View an sich, kannst du im Argument Handling Code Variablen wie $limit nutzen. z.B.

<?php
if (arg(2) != 'zeige_alle_bilder'){ //z.b. domain.de/node/123/zeige_alle_bilder
 
$use_pager = TRUE;
 
$limit = 1;
}
?>

Somit würde nur wenn das dritte Argument (arg(0)) im Pfad (node = arg(0), 123 = arg(1)) gleich zeige_alle_bilder ist alle Bilder angezigt werden, sonst nur eines.

Ebenso könntest Du auch in der Template-Datei arbeiten:

<?php
if (arg(2) != 'zeige_alle_bilder'){
 
theme_view('bilder_von_node',1,0,'embed',array($node->nid)); //Zeige nur 1 Bild limit = 1, page = 0
} else {
 
theme_view('bilder_von_node',NULL,NULL,'embed',array($node->nid)); //Zeige Alle Bilder (wenn view Standard-einstellungen auf Pager aus gestellt sind)
}
?>

?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nochmals danke für deine

Eingetragen von Oliver (26)
am 05.02.2008 - 00:21 Uhr

Nochmals danke für deine Hilfe!
Ich habe die Argumente noch nicht ausprobiert, aber zumindest kann ich per Template und theme_view zwei Views ordentlich in einem Node darstellen. (was ohne eigenes Node-Template nicht funktioniert hat: ein View wurde doppelt dargestellt und der andere gar nicht)
Werd' mich mal genauer mit den Templates befassen und dann mal sehen, was ich mit den Argumenten so anstellen kann. Dein Beispiel-Code ist da sehr anschaulich - danke!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Tagen 4 Stunden
  • Hey danke
    vor 2 Tagen 23 Stunden
  • Update: jetzt gibt's ein
    vor 3 Tagen 17 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 1 Tag
  • Da scheint die Terminologie
    vor 1 Woche 1 Tag
  • Kannst doch auch alles direkt
    vor 1 Woche 5 Tagen
  • In der entsprechenden View
    vor 1 Woche 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 5 Tagen
  • gelöst
    vor 4 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association