Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

Dynamisches Bild im Node

Eingetragen von Trautmann (19)
am 17.08.2011 - 12:55 Uhr in
  • Anfängerfragen

Hallo
ich will für meine Website an einen Inhaltstypen einen Wertungskasten anhängen, dh.: dort steht dann ein kurzes
Fazit und es soll ein Bild mit der Wertung angezeigt werden. Mit purem PHP wär das für mich kein Problem denk ich,
aber kann ich denn so ein bisschen php Code einem Inhaltstypen hinzufügen?
Bis jetzt hab ich einfach eine int variable für die Wertung erstellt, die würde ich dann verstecken und einfach per php abfragen
wie hoch die Wertung ist und dann das entsprechende Bild anzeigen.

danke

Trautmann

‹ Summary wird ignoriert bzw immer nur 'getrimmt' Views - In Ansicht-HTML Liste das Titel-Attribut mit ausgeben. ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Trautmann schrieb aber kann

Eingetragen von Thoor (3678)
am 17.08.2011 - 13:23 Uhr
Trautmann schrieb

aber kann ich denn so ein bisschen php Code einem Inhaltstypen hinzufügen?

Je nach Drupal Version gibt es die CORE Module PHP oder PHPFILTER ... damit lässt sich ausführbarer PHP Code direkt eingeben.

PS: Es gibt aber für Abstimmungen etc. auch eine Menge an Contrib Modules wie z.B. FIVE STAR

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Thoor danke für die

Eingetragen von Trautmann (19)
am 17.08.2011 - 13:35 Uhr

Hallo Thoor danke für die schnelle Antwort.

Den Filter hab ich schon gefunden und auch aktiviert, nur wie Füge ich einem Inhaltstypen einen fixen Text zu?
Ich will das der Autor nur die Wertung eingeben muss und keinen Verwirrenden PHP-Code sieht.

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Na davon bin ich aber auch

Eingetragen von Thoor (3678)
am 17.08.2011 - 13:47 Uhr

Na davon bin ich aber auch ausgegangen, daß Du keinem User erlaubst, das PHP Modul zu nutzen :-) Damit würdest Du bösen Zeitgenossen Tür und Tor öffnen, um bei Dir Schindluder auf dem Server zu treiben :-)

Ich habe das nur erwähnt, weil ich dachte, daß Du ausführbaren PHP Code in einem Node einfügen willst? Aber jetzt weiss ich gerade gar nicht, was Du da eigentlich vorhast?

Wenn also irgendjemand was auf der Seite bewerten soll, dann rate ich nochmal zu Modulen wie FIVE STAR, RATE und VOTE UP DOWN.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, also es soll nicht der

Eingetragen von Trautmann (19)
am 17.08.2011 - 14:02 Uhr

Hallo,

also es soll nicht der Artikel bewertet werden sondern ein Film.
Der Redakteur schreibt die Kritik und gibt dem Film eine Wertung und die soll dann in einem speziellen Wertungskasten angezeigt werden.

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dazu brauchst du dann nur

Eingetragen von caw (2762)
am 17.08.2011 - 14:09 Uhr

Dazu brauchst du dann nur FiveStar und keinen PHP Code!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das sind alles Module bei

Eingetragen von Trautmann (19)
am 17.08.2011 - 14:25 Uhr

Das sind alles Module bei denen viele User bewerten sollen,
ich will aber das der Redakteur genau eine Wertung festlegt und die dann als zahl nur eben als Bild angezeigt wird.

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mach doch ein CCK-Feld rein,

Eingetragen von Exterior (2903)
am 17.08.2011 - 14:41 Uhr

Mach doch ein CCK-Feld rein, bei dem der Autor aus einer Selectbox z. B. einen Note zwischen 1 und 5 auswählen kann.

Im Node-Template blendest du dann je nach CCK-Field-Wert ein anderes Bild ein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Trautmann schrieb Das sind

Eingetragen von caw (2762)
am 17.08.2011 - 15:05 Uhr
Trautmann schrieb

Das sind alles Module bei denen viele User bewerten sollen,
ich will aber das der Redakteur genau eine Wertung festlegt und die dann als zahl nur eben als Bild angezeigt wird.

lg

Dann setzt du die Rechte nur für Redakteure und dann gehts! Und mann kann bei FiveStar die Bewertung nur als Bild anzeigen!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Na gut überredet! Kannst du

Eingetragen von Trautmann (19)
am 17.08.2011 - 15:47 Uhr

Na gut überredet!
Kannst du mir vielleicht noch sagen wo ich die Einstellung dafür finde das ganze nur als Bild anzuzeigen?

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich bin ja auch immer der

Eingetragen von Thoor (3678)
am 17.08.2011 - 16:17 Uhr

Ich bin ja auch immer der Meinung, dass man so wenige Module wie nötig einsetzen sollte, deshalb hier nochmal, wie Exterior es meinte:

Erstelle in Deinem Inhaltstyp ein Feld grade und nenne es z.B. Note. Als Typ für das Feld nimmst Du Integer Zahlen und eine Auswahlliste 1,2,3,4 ...
Damit wähl der Redakteur dann die Note aus.

Dieses Feld rufst Du jetzt in der node-xxx.tpl.php des Inhaltstypen auf. Und zwar verabreichst Du dem Feld gleich noch die gleiche CSS Klasse, wie den auszugebenden Wert mit:

<?php if ($node->field_grade[0]): ?>
<?php print '<div class="'.$node->field_grade[0]['view'].'">'.$node->field_grade[0]['view'].'</div>'; ?>
<?php endif; ?>

( Ist jetzt für D6! Du verrätst leider nicht, mit welcher Version Du arbeitest. Bei D7 ist die Feldausgabe unterschiedlich)

Wenn jetzt als Note 4 eingegeben wurde, dann lautet die Ausgabe: <div class="4">4</div>

Und jetzt verpasst Du den Klassen mit CSS ein entsprechendes Hintergrundbild und lässt den Text verschwinden:

.1,
.2,
.3,
.4 {
  height: 30px;
  margin: 10px;
  width: 30px;
  text-indent: -9999em;
}

.1{
    background: url("/sites/all/themes/dein_theme/1.png") no-repeat scroll 0 0 transparent;
}

.2{
    background: url("/sites/all/themes/dein_theme/2.png") no-repeat scroll 0 0 transparent;
}

.3{
    background: url("/sites/all/themes/dein_theme/3.png") no-repeat scroll 0 0 transparent;
}

.4{
    background: url("/sites/all/themes/dein_theme/4.png") no-repeat scroll 0 0 transparent;
}

Du musst natürlich die Bilder 1.png, 2.png, 3.png, 4.png vorher erstellen und in Deinen Themeordner packen und den Beispielpfad hier anpassen. Damit sollte das dann aber wie gewünscht erledigt sein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hey Thoor,dieser Ansatz

Eingetragen von Trautmann (19)
am 17.08.2011 - 16:41 Uhr

Hey Thoor,

dieser Ansatz gefällt mir gut, könntest du mir noch sagen was ich für Drupal 7 änder muss?
Hab das eigentlich beim erstellen den Threads angegeben aber das wird irgendwie nicht angezeigt :/

edit: in welchem Ordner finde ich die entsprechende node?

danke
Trautmann

  • Anmelden oder Registrieren um Kommentare zu schreiben

In Drupal 7 gibt man das Feld

Eingetragen von Thoor (3678)
am 17.08.2011 - 17:08 Uhr

In Drupal 7 gibt man das Feld mit <?php print render($content['field_grade']); ?> aus.

Und die erwähnte node.tpl.php findest Du im Normalfall in Deinem Theme-Ordner. Man kann aber auch inhaltstypisch spezifischenTemplates im Theme anlegen. Das ist dann das eigentliche Theming bei Drupal. -> http://drupal.org/node/190815

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Thoor,danke für die

Eingetragen von Trautmann (19)
am 22.08.2011 - 11:24 Uhr

Hallo Thoor,

danke für die Hilfe. Ich hab jetzt die Zeit gefunden das ganze einmal auszuprobieren aber für mich ist das theming ein bisschen verwirrend.
Ich habs so probiert das ich im Ordner wo die node.tlp.php liegt, eine Datei mit dem Namen "node--kritik.tpl.php" erstellt habe mit dem selben
Inhalt wie dir Originaldatei. Dann habe ich dieser Datei nachdem der Content gepostet wird folgende Zeilen hinzugefügt:

<?php if ($content['field_wertung'])): ?>
    <?php print '<div class="'.render($content['field_wertung']).'">'.render($content['field_wertung']).'</div>'; ?>
<?php endif; ?>

es tut sich aber leider gar nichts. keine Fehlermeldungen kein div erscheint nichts :(
was mache ich falsch?

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

In welchen Ordner? Der

Eingetragen von Thoor (3678)
am 22.08.2011 - 12:03 Uhr

In welchen Ordner? Der richtige Ordner dafür ist der Ordner in dem die Template Dateien Deines Themes sind!
Und node--kritik.tpl.php? Das ist der maschinenlesbare Name des Inhaltstypen in dem Du die Filmkritik schreibst und auch die Note abgibst lautet kritik - oder?

Nachdem jetzt nichts erscheint. Schreib doch einfach mal ein <h1>TEST</h1> in Deine node--kritik.tpl.php. Erscheint das TEST dann in der Ausgabe, wenn Du einen Node erstellst? Wenn Nein, das Theme nochmal in der Theme-Verwaltung aktivieren ( nennt sich Theme Registry neu aufbauen ) und eventuell Caches leeren!

Und Deine vergebene Film-Note ( field_wertung ) erscheint die denn in der Ausgabe des Nodes?

Wenn die ersten beiden Punkte funktionieren, dann würde ich versuchen das Feld erstmal ganz normal auszugeben. Und wenn das auch noch hingehauen hat, die Ausgabe dann in die endgültige Form mit den CSS Klassen zu bringen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das mit der Theme Registry

Eingetragen von Trautmann (19)
am 22.08.2011 - 16:28 Uhr

Das mit der Theme Registry hat hingehauen.
Nur wurde dann statt dem Artikel nur eine weiße Seite ohne dem Main Content angezeigt.
Alle Menüs waren falsch angeordnet und überhaupt nicht gestylet :(

Ist das überhaupt so richtig das ich die Original node.tlp kopieren und dort dann Veränderungen durchführe,
oder soll ich in die neue Datei nur den zusätzlichen Code schreiben?

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also Deine

Eingetragen von Thoor (3678)
am 22.08.2011 - 17:07 Uhr

Also Deine node--kritik.tpl.php hat schon mal nichts mit dem Laden Deiner Stylesheets zu tun. Wahrscheinlich hast Du ein DIV nicht geschlossen oder sonst irgendwas falsches getan. Der Weg an sich ist jedenfalls richtig.

Ich klinke mich jetzt hier aber aus. Ich habe Dir das nötige dazu erklärt, Du beantwortest leider auch keine Fragen, die man im Gegenzug an Dich stellt. Und besser krieg ich eine Erklärung auch nicht hin. Viel Erfolg noch!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Einfacher wär es mit Fivestar

Eingetragen von caw (2762)
am 22.08.2011 - 17:50 Uhr

Einfacher wär es mit Fivestar gegangen.... Dazu sind ja Module da um sie zu nutzen...

  • Anmelden oder Registrieren um Kommentare zu schreiben

An dieser Stelle ist hinten

Eingetragen von Exterior (2903)
am 22.08.2011 - 19:05 Uhr

An dieser Stelle ist hinten zumindest eine ")" zu viel:

<?php
if ($content['field_wertung'])):
?>

Poste doch bitte mal den gesamten Inhalt der neuen Template-Datei.
Und bitte mach Code-Tags um den gesamten Code, sonst kann das später niemand mehr lesen. In deinem Beitrag weiter oben habe ich das mal für dich ergänzt. Bitte in Zukunft selbst dran denken ;)

Zitat:

Einfacher wär es mit Fivestar gegangen.... Dazu sind ja Module da um sie zu nutzen...

Aber so wirklich den gewünschten Zweck - nämlich die Bewertung beim Erstellen des Nodes abzugeben - erfüllt Fivestar nicht. Das wäre dann auch meiner Meinung nach eher eine Ausweich-Lösung.

  • Anmelden oder Registrieren um Kommentare zu schreiben

<?php// $Id: node.tpl.php,v

Eingetragen von Trautmann (19)
am 22.08.2011 - 20:13 Uhr

<?php
// $Id: node.tpl.php,v 1.4.2.4 2011/02/18 05:26:30 andregriffin Exp $
?>

<?php if (!$page): ?>
  <article id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
<?php endif; ?>

  <?php if ($user_picture || $display_submitted || !$page): ?>
    <?php if (!$page): ?>
      <header>
<?php endif; ?>

      <?php print $user_picture; ?>
 
      <?php print render($title_prefix); ?>
      <?php if (!$page): ?>
        <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
      <?php endif; ?>
      <?php print render($title_suffix); ?>
 
      <?php if ($display_submitted): ?>
        <p class="submitted"><?php print $submitted; ?></p>
      <?php endif; ?>

    <?php if (!$page): ?>
      </header>
<?php endif; ?>
  <?php endif; ?>

  <div class="content"<?php print $content_attributes; ?>>
    <?php
     
// Hide comments, tags, and links now so that we can render them later.
     
hide($content['comments']);
     
hide($content['links']);
     
hide($content['field_tags']);
     
hide($content['field_wertung'])
      print
render($content);
   
?>

  </div>

  <?php if ($content['field_wertung']): ?>
    <?php print '<div class="'.render($content['field_wertung']).'">'.render($content['field_wertung']).'</div>'; ?>
  <?php endif; ?>

  <?php if (!empty($content['field_tags']) || !empty($content['links'])): ?>
    <footer>
      <?php print render($content['field_tags']); ?>
      <?php print render($content['links']); ?>
    </footer>
  <?php endif; ?>

  <?php print render($content['comments']); ?>

<?php if (!$page): ?>
  </article>
<?php endif; ?> <!-- /.node -->

So die Klammer hab ich schon weggenommen
Bin mir halt nicht sicher ob ich das an der richtigen Stelle eingefügt habe.

danke

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Fivestar

Eingetragen von Anton (288)
am 22.08.2011 - 20:26 Uhr
Exterior schrieb

Aber so wirklich den gewünschten Zweck - nämlich die Bewertung beim Erstellen des Nodes abzugeben - erfüllt Fivestar nicht. Das wäre dann auch meiner Meinung nach eher eine Ausweich-Lösung.

Doch das geht problemlos mit Fivestar. Habe ich kürzlich auf einer Musikseite eingebaut, wo die Redakteure beim Erstellen einer Plattenbesprechung per Fivestar ihre Bewertung für den Tonträger abgeben können/müssen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@ caw Wie bekommt man

Eingetragen von Exterior (2903)
am 22.08.2011 - 20:45 Uhr

@ caw
Wie bekommt man FiveStar denn ins Node-Formular?

@ Trautmann
Und wenn du die Klammer entfernst, klappt es trotzdem nicht? Funktioniert es denn, wenn du den gesamten PHP-Schnippsel von dir entfernst?

Übrigens, ersetze diesen Teil:

<?php if ($content['field_wertung']): ?>
  <?php print '<div class="'.render($content['field_wertung']).'">'.render($content['field_wertung']).'</div>'; ?>
<?php endif; ?>

mal damit:

<?php if ($content['field_wertung']): ?>
  <div class="<?php print render($content['field_wertung']); ?>"><?php print render($content['field_wertung']); ?></div>
<?php endif; ?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Exterior schrieb@ cawWie

Eingetragen von Anton (288)
am 22.08.2011 - 21:11 Uhr
Exterior schrieb

@ caw
Wie bekommt man FiveStar denn ins Node-Formular?

Ich antworte mal stellvertretend für caw :) Nach der Fivestar-Installation steht in der Feldverwaltung ein Feldtyp "Fivestar-Bewertung" zu Verfügung, die Benutzung funktioniert dann wie bei jedem anderen CCK-Feld. Man kann übrigens über die sog. Voting-Axis des Moduls auch mehrere Bewertungen für einen Node einrichten, und darüber z.B. Zustand, Cover, Aufnahmequalität etc. einzeln bewerten. Sehr praktisch.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Cool, kannte ich noch gar

Eingetragen von Exterior (2903)
am 22.08.2011 - 21:35 Uhr

Cool, kannte ich noch gar nicht :) Tja, man lernt eben nie aus =)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da braucht man keine Felder!

Eingetragen von caw (2762)
am 23.08.2011 - 05:32 Uhr

Da braucht man keine Felder! Fivestar kann man dann bei jedem Inhaltstypen aktivieren und schon ist ein Bewertungsfeld mit optionalem Kommentarfeld vorhanden!
Natürlich kann man auch ein CKK Fivestarfeld nehmen...

  • Anmelden oder Registrieren um Kommentare zu schreiben

caw schrieb Da braucht man

Eingetragen von Anton (288)
am 23.08.2011 - 06:13 Uhr
caw schrieb

Da braucht man keine Felder! Fivestar kann man dann bei jedem Inhaltstypen aktivieren und schon ist ein Bewertungsfeld mit optionalem Kommentarfeld vorhanden!

Doch, man braucht Felder. Aktiviert man Fivestar nur für den Inhaltstypen, steht einem Webseitenbesucher ein Bewertungsfeld für den Node (und/oder Kommentar) zur Verfügung, aber der Ersteller des Nodes hat keine Möglichkeit, gleich im Formular eine eigene Bewertung abzugeben (das war ja die Frage von Exterior). Dies muß man bei Fivestar über ein CCK-Feld machen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja so gesehen; klar

Eingetragen von caw (2762)
am 23.08.2011 - 07:00 Uhr

ja so gesehen; klar

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 1 Benutzer und 15 Gäste online.

Benutzer online

  • ByteScrapers

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