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 - 14: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 - 14: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 - 14: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 - 14: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 - 14: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 - 14: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 - 16: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 - 17: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

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20457

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 0 User und 18 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