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

[Gelöst] blog-node.tpl stylen und auf einzelne Elemte zugreifen (ebenso für andere Darstellungen)

Eingetragen von einfachfragen (150)
am 07.02.2009 - 13:43 Uhr in
  • Themes & Theming
  • Drupal 6.x

Da bin ich wieder, hehe.

Ich bin gerade dabei die Blogansicht zu designen. Dafür habe ich die node.tpl.php kopiert und in node-blog.tpl.php umbenannt. Klappt auch.

Das Problem was ich jetzt habe ist, dass ich nicht auf die einzelnen Elemente zugreifen kann bzw. nicht weiß wie ich darauf zugreifen. Alles wichtige steht z. B. im content. Den kann ich ja ausgeben lassen aber ich komme darüber nicht an den Inhalt dran.

Die Ausgabe im Quelltext schaut so aus:

<p>Ich bin nur ein kleiner Text, der zeigen soll wie die Seite mit Inhalt aussieht. Habe ich schon gesagt, dass ich nur ein Anrisstext bin?</p>
<div class="field field-type-image field-field-newspics">
    <div class="field-items">
       <div class="field-item odd">
           <a href="/auto/linkname" class="imagefield imagefield-nodelink imagefield-field_newspics"><img src="http://localhost/auto/sites/default/files/newsbilder/autonewsbild.jpg" alt="Bildname" title="Bildname" width="109" height="68" class="imagefield imagefield-field_newspics" /></a>
       </div>
    </div>
</div>

<div class="meta">
  <ul class="links inline"><li class="blog_usernames_blog first"><a href="/auto/blog/1" title="Neueste Blogeinträge von mir lesen.">Weblog von mir</a></li>
    <li class="comment_add"><a href="/auto/comment/reply/11#comment-form" title="Dieser Seite einen neuen Kommentar hinzufügen.">Neuen Kommentar schreiben</a></li>
    <li class="node_read_more last"><a href="/auto/linkname" title="Titletaginhalt">Weiterlesen</a></li>
  </ul>
   <span class="clear"></span>
</div>

Dazu sei gesagt, dass ich mit CCK nen FileField Image hinzugefügt habe. Die Ausgabe möchte ich jetzt eigentlich so gestalten wie ich will und nicht wie die vorgegeben ist, inkl. des unnötigen Quellcodes bei der Bildausgabe.

Das steckt aber alles in

<?php
print $content
?>

Bloß wie kann ich geziehlt auf die einzelnen Elemente zugreifen oder muss das separat programmiert werden und wenn ja, direkt in der Datei? Ich kann es mir nicht so recht vorstellen, da die Funktionalität ja schon vorgegeben ist, ich möchte die halt nur ins Template übernehmen und dann anpassen.

Optimal wäre, wenn ich die einzelnen Elemente so ansprechen könnte:

$title "Ausgabe des Titels"
$text = "Ausgabe des reinen Textes der geschrieben wurde"
$pic = "Bildpfadangabe bzw. direkte Ausgabe des Bildes, so wie es jetzt ist"
$linkcomment = "Link zu den Kommentaren"
usw.

Das wäre halt eine gute Möglichkeit, geht sowas? Wenn ja, geht das für alle Bereiche? Jetzt bin ich ja am Blog dran, danach kommt aber bestimmt wieder was anderes usw.

Ich wüsste sonst jetzt nicht, wie ich es "ohne die Core-Dateien anzufassen" so machen kann, dass ich das beliebig positioniere (links das Bild, rechts die News, dann da wo ich will der Link zu den Kommentaren usw.)

Ich habe z. B. rechts auch die Blognews in einem Block, da ist ja nur eine UL-Liste mit dem Titel als Link. Ich möchte es aber so ändern, dass das Thumbnail-Bild dort dargestellt wird und ich zudem noch eine Kurzbeschreibung dort habe. Könnte ich auf einzelne Elemnte zugreifen, wäre das flux gemacht und wenn es nur darum geht ein paar Queries nachzubearbeiten um das zusätzliche auszulesen, auch kein Thema (solange ich finde, wo die Daten stecken :D).

Schon mal danke für Tipps und Hinweise

Gruß

‹ tabs auf profilseite Umgestalung problem mit dem IE ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Auf keinen Fall in den Core!

Eingetragen von Thoor (3678)
am 07.02.2009 - 15:15 Uhr

Auf keinen Fall in den Core! Du musst jetzt eben nur in Deine node-blog.tpl.php einen DIV Container um "content" legen ... schon kannst du explizit per CSS auf die Elemente und Felder zugreifen ...

Für einzelne Felder ... die kannst Du auch in die node-blog.tpl.php einfügen und stellst eben bei den Feldeinstellungen des Blog-Inhaltstypes "exclude" in den Teaser- oder / und Vollansichten ein ...

Ein tolles englisches Video zu dem Thema habe ich erst in meinem "Spielplatz" eingebunden ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das mit dem Core

Eingetragen von einfachfragen (150)
am 07.02.2009 - 19:36 Uhr

habe ich verstanden, davon lass ich die Finger :-D.

Ok, ich bin jetzt die ganze Zeit schon am testen und eigentlich sollte das, was ich vorhabe klappen. Sogar der Zugriff auf die einzelnen Variablen (da ich den Quelltextwust, der da erzeugt wird, nur um ein Bild auszugeben, gerne umgehen möchte).

In stdClass Object {

steht ja wirklich alles, was ich brauche um mir das selbst zusammen zu basteln. Nur einen kleinen PHP-Tipp bräuchte ich. So sieht die Ausgabe aus:

<?php
stdClass Object
(
    [
nid] => 11
   
[type] => blog
   
[language] => de
   
[uid] => 1
   
[status] => 1
   
[created] => 1233995223
   
[changed] => 1233997270
   
[comment] => 2
   
[promote] => 0
   
[moderate] => 0
   
[sticky] => 0
   
[tnid] => 0
   
[translate] => 0
   
[vid] => 11
   
[revision_uid] => 1
   
[title] => Ich bin die tolle Überschrift
   
[teaser] => Hier steht der Teaser drin


   
[log] =>
    [
revision_timestamp] => 1233997270
   
[format] => 1
   
[name] => sausi
   
[picture] =>
    [
data] => a:4:{s:14:"picture_delete";s:0:"";s:14:"picture_upload";s:0:"";s:7:"contact";i:0;s:13:"form_build_id";s:37:"form-652a2bec7e16c3a26289009ad122a8c3";}
    [
path] => pfadzumcontent
   
[field_newspics] => Array
        (
            [
0] => Array
                (
                    [
fid] => 4
                   
[list] => 1
                   
[data] => Array
                        (
                            [
description] => bildbeschreibung
                           
[alt] => altbeschreibung
                           
[title] => Titlevondemding
                       
)

                    [
uid] => 1
                   
<strong>[filename]</strong> => autonewsbild.jpg
                   
[filepath] => sites/default/files/newsbilder/autonewsbild.jpg
                   
[filemime] => image/jpeg
                   
[filesize] => 3334
...

?>

Wie kann ich auf den Inhalt von [filename] zugreifen?

Das "field_newspics" bekomm ich ja noch so hin

<?php
print $node->field_newspics;
?>

Aber tiefer komme ich nicht, da stecken danach ja auch zwei Arrays drin.

<?php
    
[field_newspics] => Array
        (
            [
0] => Array
                (
?>

Also wenn ich da so die ganzen einzelnen Daten immer rausziehen kann, dann sollten sich meine Fragen erübrigt haben (für heute, hehe).

Schon einmal danke für die Antwort.

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

installiere dir irgendwo mal

Eingetragen von sachbearbeiter (205)
am 07.02.2009 - 20:17 Uhr

installiere dir irgendwo mal das modul contemplate - du mußt es nicht verwenden, um variablen einzeln anzusprechen, aber es verschafft dir einen hervorragenden überblick über variablen und syntax ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jetzt gehts

Eingetragen von einfachfragen (150)
am 07.02.2009 - 21:39 Uhr

mit folgendem Code:

<?php
print $node->field_newspics[0][filename]; 
?>

Hat es irgend einen Nachteil, wenn ich das so mache und so Stück für Stück alles damit gestalte?

Bsp, nen Pic mach ich dann so:

<img src="<?php print $node->field_newspics[0][filepath]; ?>" />

So kann ich Div-Suppe sparen und alles 100%ig so anordnen wie ich möchte. Aber das Wichtigste, ich pfusche nicht an Core-Files rum, hehe.

@Sachbearbeiter
danke für den Hinweis zum Modul

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Hat es irgend einen

Eingetragen von sachbearbeiter (205)
am 07.02.2009 - 22:51 Uhr
Zitat:

Hat es irgend einen Nachteil, wenn ich das so mache und so Stück für Stück alles damit gestalte?

nein :) aber du kannst zusätzlich diese seite für infos zu sicherem code http://drupal.org/node/28984 noch durchlesen ...

und ...

<?php if ($node->field_text_example[0]['view'] > ''): ?>
    <?php print $node->field_text_example[0]['view']; ?>
<?php endif; ?>

wenn du ['view'] verwendest, kannst du die ausgabe auf fieldebene schon mit einstellungen unter
http://domain.de/admin/content/node-type/example-nodetype/display steuern ...

häufig reicht das, um die aufrufe nicht unnötig fragmentieren zu müssen und eine sichere ausgabe zu erreichen ...

sg ds

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dankeschön

Eingetragen von einfachfragen (150)
am 07.02.2009 - 23:29 Uhr

das hilft mir weiter.

Dann mal sehen, wann das nächste Prob auftaucht, hehe.

Gruß

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

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