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

Bild Url in Views Template auslesen, Custom View

Eingetragen von flofi (30)
am 17.01.2013 - 10:43 Uhr in
  • Views
  • Drupal 7.x oder neuer

Hallo zusammen,
ich versuche schon ne Weile folgendes Problem zu lösen, aber es geht irgendwie nicht richtig.

Ich habe einen Block View erstellt. Hier lese ich alle Inhalte von einem erstellten Inhaltstyp aus. Folgende Fields habe ich definiert:

Teaser-Headline
Teaser-Bild
Teaser-Kurztext

Aus diesen 3 Feldern soll später ein Slider entstehen. Probleme hab ich mit dem auslesen, abfrage der "raw"-Bild URI.

Der View soll folgende Ausgabe machen (wie gesagt, Problem ist "background:url..."

$title= $fields['field_teaser_headline']->content;
$img= $fields['field_teaser_bild']->content;
$kurztext= $fields['field_teaser_kurztext']->content;

<div id="teaserlist_wrapper">
<ul id="teaserlist">
<li class="teaser">
<a href="DIE_URL_ZUM_NODE">
<div style="background: url(<?php print $img; ?>) no-repeat;">
<h2><?php print $title ?></h2>
</div>
</a>
<p><?php print $kurztext ?> <a href="DIE_URL_ZUM_NODE">mehr...</a>
</p>
</li>
</ul>
</div>

Den obenstehenden Code habe ich in ein Views - Template eingebaut: views-view-fields--view-teaser--block.tpl
$img= $fields['field_teaser_bild']->raw; gibt mir nur die fid aus. Brauche aber für das bg-image die Url zum Bild ohne irgendwelche Styles...

Ich hoffe, es kann jemand helfen.

Gruß und danke schonmal.

‹ [gelöst]Filter abhängig von Standort des Nutzers setzen Video im ViewSlider wiedergeben. Aber wie? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn Du im View Felder

Eingetragen von wla (9461)
am 17.01.2013 - 10:52 Uhr

Wenn Du im View Felder ausgibst, kannst Du die ersten beiden Felder von der Ausgabe ausschließen und beim dritten Feld mittels "Ergebnisse überschreiben" deinen oben gezeigten HTML-Code einbauen. Du brauchst dann auch kein Print, da Views Dir Token zur Verfügung stellt, die bereits fertig aufbereitet sind und nur noch in das HTML-Gerüst eingesetzt werden müssen. Das ist wesentlich einfacher, als über einen eigenen Template-File zu gehen.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Trotzdem keine URL

Eingetragen von flofi (30)
am 17.01.2013 - 11:11 Uhr

Hi,
erstmal danke für Deinen Tipp.

Wenn ich im "Bild" Field eine Rewrite Rule angebe, z.B.

<div style="background: url([field_teaser_bild]) no-repeat;">
<h2>[field_teaser_headline]</h2>
</div>

Dann kommt gar kein Bild mehr.

Ich habe folgende Replacement-Patterns zur Verfügung (da ist keine URL dabei):
[field_teaser_headline] == Inhalt: Teaser-Headline
[field_teaser_bild] == Inhalt: Teaser-Bild
[field_teaser_bild-fid] == Raw fid
[field_teaser_bild-alt] == Raw alt
[field_teaser_bild-title] == Raw title
[field_teaser_bild-width] == Raw width
[field_teaser_bild-height] == Raw height

Wenn ich die Bild URI als inline style möchte, geht das dann überhaupt ohne spezielles Template oder preprocess Funktion?

Danke

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich kann leider grad nicht im

Eingetragen von Genesis (597)
am 17.01.2013 - 11:31 Uhr

Ich kann leider grad nicht im Detail schauen, da unser Server gerade in der Wartung ist, aber wenn du doch ein Bild(Feld) in einem View hinzufügst, dann kannst du doch in den Einstellungen für das Feld den Formatierer im Kopfbereich wählen, und dort gibt es doch auch die Option "Bild-URL". Resultat sollte sein, dass statt des Bildes die entsprechende URL ausgegeben wird. Ich nutze auf einer unserer Seiten den Camera-Slider, und dort werden die Bilder via "data-src" übergeben, und dazu brauchte ich eben auch die reine URL. Das ging eigentlich problemlos.

Oder verstehe ich irgend etwas falsch? :|

  • Anmelden oder Registrieren um Kommentare zu schreiben

Im View unter erweitert eine

Eingetragen von wla (9461)
am 17.01.2013 - 11:38 Uhr

Im View unter erweitert eine Beziehung hinzufügen Dateiverwendung:Datei. Dann ein Feld hinzufügen, dabei Filter auf Datei setzen, Datei: Pfad auswählen und von der Anzeige ausschließen. Dann die Ausgabe der Felder umsortieren (auf den kleinen Pfeil neben hinzufügen klicken und dann mit Drag und Drop sortieren), damit der Pfad beim Überschreiben der Ausgabe zur Verfügung steht. Dann kannst Du diesen Pfad als Token bei der URL benutzen.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

In Drupal6 war das

Eingetragen von oteno (775)
am 17.01.2013 - 11:46 Uhr

In Drupal6 war das einfacher.
Nachdem Du aber ausdrücklich angibst, dass Du keine Image-Styles benötigst, könntest Du aber auch mit einem einfachen File-Field arbeiten. Dann müsste es auch passen...

  • Anmelden oder Registrieren um Kommentare zu schreiben

nah dran

Eingetragen von flofi (30)
am 17.01.2013 - 12:42 Uhr

Hi Werner,

danke für die ausführliche Anleitung.
Habe jetzt alles so gemacht. Die Reihenfolge der Views ist jetzt:
Inhalt:Teaser-Headline (von der Anzeige ausgeschlossen, da ich dies über den Token im Replacement Pattern beim Bild einbinde)
(Datei) Datei: Pfad (von der Anzeige ausgeschlossen)
Inhalt: Teaser-Bild
Inhalt: Teaser-Kurztext

Wenn ich jetzt folgendes im Replacement Pattern beim Teaser-Bild eintrage, bekomme ich kein Bild. Die Teaser Headline wird dargestellt.

<a href="">
<div style="background: url([uri]) no-repeat;">
<h2>[field_teaser_headline]</h2>
</div>
</a>

Wenn ich nur die [uri] ausgebe, dann kommt public://mein_bild_xyz.jpg UPDATE: Das mit dem Public hab ich jetzt durch den kompletten File Download Path ersetzt. Passt aber immnoch kein background:url.....Pfad...

UPDATE: Habe gerade gelesen, dass in den Rewrite Results z.B. "styles" aus Sicherheitsgründen entfernt wird. Wie kann man das auf sichere Weise umgehen?

wenn das alles funktioniert, benötige ich noch einen Tipp für das a href... link zum node. Mach ich dass auch über die Beziehungen?

Vielen Dank
flo

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jetzt funktioniert es, fast

Eingetragen von flofi (30)
am 17.01.2013 - 16:22 Uhr

mit einem Template:

<?php
$title
= $fields['field_teaser_headline']->content;
$img= $fields['uri']->content;
$kurztext= $fields['field_teaser_kurztext']->content;
?>

<div id="teaserlist_wrapper">
<ul id="teaserlist">
<li class="teaser">
<a href="">
<div style="background: url(<?php print $img; ?>) no-repeat;">
<h2><?php print $title; ?></h2>
</div>
</a>
<p><?php print $kurztext; ?> <a href="">mehr...</a>
</p>
</li>
</ul>
</div>

Musste dafür aber wieder das Dateifeld in die Anzeige "einschließen".

Jetzt fehlt mir noch der Link vom View Eintrag zum ensprechenden Node.
Benötige ich da auch wieder ein Feld oder kann ich da anders drauf zugreifen, also auf die url zum Node

$link_zum_node= $fields['???']->content;

danke an alle!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann solltest Du das Feld

Eingetragen von wla (9461)
am 17.01.2013 - 16:46 Uhr

Dann solltest Du das Feld Node-ID noch mit ausgeben. Dann ist der Link zum Node immer node/xxx (xxx=Node-ID).
Bitte beachte, daß es einen Unterschied macht, ob Du die Felder direkt über den View oder über ein spezielles Template ausgibst.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

'Inhalt:Pfad' ([path]) gibt

Eingetragen von oteno (775)
am 17.01.2013 - 16:46 Uhr

'Inhalt:Pfad' ([path]) gibt es doch...

  • Anmelden oder Registrieren um Kommentare zu schreiben

jetzt gehts

Eingetragen von flofi (30)
am 22.01.2013 - 14:01 Uhr

Hallo zusammen,

danke für eure Hilfe. Hab es jetzt über

$pfad = $fields['path']->content;

gemacht und das Feld dazu angelegt.

Vielen vielen Dank!

flo

  • Anmelden oder Registrieren um Kommentare zu schreiben

[Gelöst] Felder werden mehrfach im View ausgegeben

Eingetragen von flofi (30)
am 22.01.2013 - 15:34 Uhr

Hallo nochmal,

wenn ich jetzt in einem Content mehrere Bilder anlege, wir pro Bild ein Teaser erstellt. Aber es soll ja nur ein spezielle Bild für den Teaser verwendet werden und dieser auch nur einmalig dargestellt werden.
Das liegt vermutlich an "Beziehungen" File Usage "Datei", da er in einem Inhalt z.B. 3 Dateien findet.

Kann ich irgendwie in Views einstellen, dass in File Usage "Datei" nur z.B. das eine Bild vom Typ "field_teaser_image" berücksichtigt wird?

Danke schonmal
Flo

UPDATE:
Musste unter den Beziehungen noch folgendes einstellen:
(Datei) Datei: Inhalt using Teaser-Bild

  • 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 1 Woche 3 Tagen
  • Hey danke
    vor 1 Woche 4 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 6 Tagen
  • In der entsprechenden View
    vor 2 Wochen 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 6 Tagen
  • gelöst
    vor 5 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

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 15 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