Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

Autoren-Bild in Node Title einfügen

Eingetragen von mimhakkuh (8)
am 28.09.2007 - 15:03 Uhr in
  • Themes & Theming
  • Drupal 5.x

Hi, ich benutze Drupal5.2 & Zen Theme und versuche, ähnlich der Gestaltung im Drupalcenter die Profilbilder (Usernode+Nodeprofile-Profile!) der Nutzer links vom Titel-Link der jeweiligen Nodes (nicht im 'posted by... '-Element abzubilden. Allerdings bin ich recht ratlos, wie das funktionieren soll. Ich nehme mal an, ich muss die Dateien node.tpl.php (.Title) und style.css entsprechend verbiegen. Wie würdet Ihr das angehen? Vielen Dank für Insprirationen schonmal im voraus ;) F.

‹ CSS Aktiver Link wird nur bei Startseite nicht angezeit - warum? Welches Theme benutzt drupalcenter? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

posted by= Eintragen

Eingetragen von Tobias Bähr (4019)
am 28.09.2007 - 15:10 Uhr

posted by= Eintragen von(Drupalcenter)

Userpic müssteste bei der themes(Zen) einstellung mal schauen nach Benutzerbilder in Beiträgen bzw Benutzerbilder in Kommentaren!

Ich hoffe ich hab da richtig verstanden!

http://kochazubi.net

  • Anmelden oder Registrieren um Kommentare zu schreiben

folgenden Code zum Einsatz bringen

Eingetragen von quiptime (4972)
am 28.09.2007 - 15:25 Uhr

Im Node Template selbst bzw. dem Template, was die in Frage kommenden Nodes (Inhaltstyp) ausgibt, folgenden Code zum Einsatz bringen:

<?php
$node
= node_load(arg(1));
$user = user_load(array('uid' => $node->uid));
?>

arg(1) wuerde bei der URL http://example.com/node/47 die Node ID "47" sein und arg(0) "node".

Dann kann man mit dem Objekt $user auf verschieden Dinge zugreifen um sie auszugeben. Bsp.

$user->name
$user->mail
$user->picture

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich glaube ...

Eingetragen von mimhakkuh (8)
am 28.09.2007 - 15:35 Uhr

ich muss das genauer erklären:

Meine Profiles sind per Nodeprofile/Usernode erstellte Nodes. Die Avatare entsprechende Imagefields, die per CCK eingebunden sind. diese Bilder würde ich gerne (entsprechend kleiner), links vom Node-Titel 'drucken' lassen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

super!

Eingetragen von mimhakkuh (8)
am 28.09.2007 - 15:41 Uhr

quiptime: danke für das beispiel, so werd ich es versuchen :D

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aha, das ist aber nun etwas

Eingetragen von quiptime (4972)
am 28.09.2007 - 15:45 Uhr

Aha, das ist aber nun etwas anderes und da hift Dir logischer Weise mei Codesnipped nicht weiter.

Du solltest fuer den CCK Inhaltstypen ein Template erstellen koennen. Die Frage ist dann, wie spricht man das Image Feld an?

Wenn Du Contemplate laufen hast lass Dir mal den Templatecode des CCK Inhaltstyps anzeigen. Eventuell bekommst Du dort einen Hinweis auf das Image Feld.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, schon bemerkt, da war

Eingetragen von mimhakkuh (8)
am 28.09.2007 - 17:54 Uhr

Ja, schon bemerkt, da war ich etwas vorschnell ;)
An Contemplate hab ich auch schon gedacht, da ich das ohnehin nutze, aber meines Wissens nach kann ich damit nur den 'Body' eines Content Typen formatieren, nicht aber den Titel?!

CCK stellt für mein Test am Teaser eines Event-C.Types zwar die Variable

<?php
print $node->picture
?>
zur Verfügung, eventuell ist das das Profil-Bild des Standard Profile Modules. Wenn ich sie drucken will, erscheint nichts.

Wenn ich den Node Profile-Content Typen die entsprechende Variable entnehme und im Teaser (an beliebiger Stelle) einbaue:

<?php
print $field_profile_user_image[0]['view']
?>

... wird die Variable nicht erkannt. Offenbar funktioniert sie nur im Content Typ Node Profile?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Template node-nodetype.tpl.php

Eingetragen von quiptime (4972)
am 28.09.2007 - 18:38 Uhr

Fuer die normale "node.tpl.php" kann man ein Template fuer einzelne Inhaltstypen erstellen.

Der Code der normalen "node.tpl.php":

<?php phptemplate_comment_wrapper(NULL, $node->type); ?>

<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">

<?php print $picture ?>

<?php if ($page == 0): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>

  <?php if ($submitted): ?>
    <span class="submitted"><?php print t('!date — !username', array('!username' => theme('username', $node), '!date' => format_date($node->created))); ?></span>
  <?php endif; ?>

  <div class="content">
    <?php print $content ?>
  </div>

  <div class="clear-block clear">
    <div class="meta">
    <?php if ($taxonomy): ?>
      <div class="terms"><?php print $terms ?></div>
    <?php endif;?>
    </div>

    <?php if ($links): ?>
      <div class="links"><?php print $links; ?></div>
    <?php endif; ?>
  </div>

</div>

Die "node.tpl.php" ist das generische Template mit dem das Layout aller Nodes gesteuert wird.

Natürlich müssen nicht alle Nodes das gleiche Layout haben. Ein Node-Template für einen speziellen Node-Type zu gestalten ist sehr einfach.
Man erstellt einfach ein neues Node Template mit der Bezeichnung node-nodetype.tpl.php im Themeordner. Wobei nodetype dem Inhaltstyp entspricht fuer das man das Template erstellen will.

Dieser obige Code waere die Ausgangsbasis fuer das Node Template fuer den bestimmten Inhalhaltstyp. Und da kommt man an den Titel ran.

$node->picture ist das Bild des Userprofil (wenn aktiviert).

Andere Frage ist wie Du an die entsprechenden Variablen der Felder rankommst. Da habe ich gerade auf die Schnelle keinen Hinweis. Es sollte aber moeglich sein.

Da $node den gesamten Inhalt des Node praesentiert koennte man sich mit print_r($node) dem Nodefeld mit dem Image naehern.
Eventuell geht es gleich damit:

$node->field_my_image_field

Da glaube ich node->field_my_image_field ein Array ist mach erst mal das hier:

print_r($node->field_my_image_field)

Damit koennte als Beipiel folgendes rauskommen:

Array
(
    [0] => Array
        (
            [fid] => 6
            [title] => blabla.jpg
            [alt] => blabla.jpg
            [nid] => 2
            [filename] => blabla.jpg
            [filepath] => files/blabla.jpg
            [filemime] => image/jpeg
            [filesize] => 31179
        )

)

Mit $node->field_my_image_field[0][filepath] haette man Zugriff auf das Bild:

<?php
print '<img src="' . {$node->field_image[0]['filepath']} . '">' . "\n";
?>

Das ist aber nur die simpelste Form um das Bild auszugeben. Drupal hat da auch eine Funktion. Mit der kann man easy das Bild ausgeben und die weiteren Parameter wie alt und CSS Klasse gleich mit uebergeben.

Das wuerde so aussehen:

<?php
theme_image
($node->field_image[0]['filepath'], $alt = '', $title = '', $attributes = NULL, $getsize = TRUE);
?>

Hier noch die Funktion die dahintersteckt:

<?php
function theme_image($path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE) {
  if (!
$getsize || (is_file($path) && (list($width, $height, $type, $image_attributes) = @getimagesize($path)))) {
   
$attributes = drupal_attributes($attributes);
   
$url = (url($path) == $path) ? $path : (base_path() . $path);
    return
'<img src="'. check_url($url) .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $image_attributes . $attributes .' />';
  }
}
?>

Das kann man auch auf http://api.drupal.org/api/function/theme_image/5 nachlesen.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 6 Tagen 22 Stunden
  • Guckst du hier: step by step
    vor 6 Tagen 12 Stunden
  • Guckst du hier: step by step
    vor 6 Tagen 12 Stunden
  • Ich habe ja keine Angst vor
    vor 2 Wochen 1 Tag
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 2 Wochen 4 Tagen
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 5 Tagen
  • Du hast die "Trusted host
    vor 2 Wochen 6 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 5 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 5 Wochen 1 Tag
  • Arrrrg. Nix Tabelle :-D /*
    vor 9 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250284
Registrierte User: 20500

Neue User:

  • RandallFloop
  • Inga GuAph
  • Robertolix

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 21 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