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

[gelöst] node titel neben dem bild und nicht oberhalb (mit auto nodetitle ?)

Eingetragen von 1kubik (903)
am 27.07.2011 - 14:01 Uhr in
  • Module
  • Drupal 7.x

hallo und guten tag
ich möchte das der node titel rechts neben dem bild erscheint
und nicht oberhalb der content region.
ein weg der mir einfällt wäre das ich den node titel in ein node field 'umgewandeln' lasse.
bei meiner suche bin ich auf
das modul
http://drupal.org/project/auto_nodetitle (7.x-1.0) (plus zusätzlich das modul token
gestossen.
aber das macht nicht das was es soll (oder ich bin zu doof)..

wenn ich das modul aktiviere mit der option:
Automatically generate the title if the title field is left empty
und als pattern für den title
[current-page:title]

wird mir im full content display des nodes dennoch der nur der node title ausgegeben, also
ausserhalb des node bereiches (page.tpl ->print $title)
und nicht als field title innerhlab des nodes

und unter 'field manage' erscheint auch kein neues field element
was ich erwarten würde, da hier da die reigenfolge bestimmt wird..

ojeh... so ein aufwand um so ein (vermeindlich) kleine änderung zu bekommen...

verbleibe, wie immer, sehr dankbar für hinweise und anregungen
grüße
stf

‹ organic group und Drupal 7 1x Drupal, 1x Datenbank, 1x Startseite, 2x "Portale" ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Template

Eingetragen von Nicolai Schwarz (1071)
am 27.07.2011 - 14:57 Uhr

Es gibt mehrere Möglichkeiten, um das zu lösen:

a) Du könntest dir tatsächlich ein eigenes Feld für die Überschrift beim Inhaltstypen anlegen. Dann hast du ein Feld für den title und eins für die Überschrift. Beim Node selbst, hat der body eine eindeutige Klasse für den Inhaltstypen und du kannst per CSS den überflüssigen Titel ausblenden.

b) Du passt deine Templates so an, dass der Titel nur dort erscheint, wo du ihn haben willst. Das sind mindestens die Templates für page.tpl.php und node.tpl.php.

c) Du könntest auch verschiedene Fälle über das template.php abfangen und den Titel dort beeinflussen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Übrigens, auto nodetitle

Eingetragen von Exterior (2903)
am 27.07.2011 - 15:07 Uhr

Übrigens, auto nodetitle macht nichts anderes, als den Node-Titel selbst zu setzen. Das ist also nach wie vor der normale Node-Titel, kein extra Feld oder sonst was (das steht doch auch nirgends?!).

  • Anmelden oder Registrieren um Kommentare zu schreiben

neben welchem bild denn

Eingetragen von caw (2762)
am 27.07.2011 - 15:14 Uhr

neben welchem bild denn überhaupt?
wenn das bild im contentbereich ist, kannst du das einfach per css machen

  • Anmelden oder Registrieren um Kommentare zu schreiben

...danke für eure schnellen

Eingetragen von 1kubik (903)
am 27.07.2011 - 17:06 Uhr

...danke für eure schnellen reaktionen!!

@nicolai

Zitat:

a) Du könntest dir tatsächlich ein eigenes Feld für die Überschrift beim Inhaltstypen anlegen. Dann hast du ein Feld für den title und eins für die Überschrift. Beim Node selbst, hat der body eine eindeutige Klasse für den Inhaltstypen und du kannst per CSS den überflüssigen Titel ausblenden.

ein extra field für den titel würde ja auch bedeuten das der user den titel doppelt eingeben müsste
da der node titel ja ein pflicht feld ist...

Zitat:

b) Du passt deine Templates so an, dass der Titel nur dort erscheint, wo du ihn haben willst. Das sind mindestens die Templates für page.tpl.php und node.tpl.php.

c) Du könntest auch verschiedene Fälle über das template.php abfangen und den Titel dort beeinflussen.

ja stimmt , ich muss da (und in der block bsw page ) den typen abfangen und in der
page.tpl dann den title unterdrücken da es gibt contenttypen gibt die einen titel haben sollen..

@exterior

Zitat:

Übrigens, auto nodetitle macht nichts anderes, als den Node-Titel selbst zu setzen. Das ist also nach wie vor der normale Node-Titel, kein extra Feld oder sonst was (das steht doch auch nirgends?!).

so hab ich zumindest den sinn von auto nodetitle (mis)verstanden, das es den title automatisch als node field anlegt.
auch wenn es das wohl trozdem macht, ist mir nicht ganz klar wozu das modul gut ist
wenn das feld dann nicht zb in der reihenfolge beeinflusst werden kann (ok vielleicht geht das
dann über das $page array, das werde ich mal versuchen.. wobeich das durch auto nodetitle erstellte field
konnte ich nicht finden in dem $page array, die andern nodes fields schon... ohje)

@caw

Zitat:

neben welchem bild denn überhaupt?
wenn das bild im contentbereich ist, kannst du das einfach per css machen

du hast recht, das war sehr unpräzise von mir beschrieben.
ich meinte ein node field image
das bild muss zuerst im markup erscheinen, bzw der titel eben nicht
als erstes und dann noch als h1 in einem äusseren div element
als das bild. wenn der titel auch ein node field wäre , dachte ich, könnte ich
die reihenfolge bei dem titel nach dem bild setzen und dann wäre das mit
css tatsächlich kein problem, da die teile in einem div liegen
(sorry wenn das etwas verschrumpelt klingt..)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja dann mußt du einfach ein

Eingetragen von caw (2762)
am 27.07.2011 - 17:15 Uhr

Ja dann mußt du einfach ein Template erstellen für diesen Inhaltstypen.
Wenn du nur ein Bild, die Überschrift udn den Bodytext hast ist das ja nciht sehr aufwendig.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nur nochmal zur Klärung:

Eingetragen von wla (9461)
am 27.07.2011 - 17:17 Uhr

Nur nochmal zur Klärung: Autonodetitel erlaubt einen Titel automatisch zu setzen, damit man das Pflichtfeld nicht eigens eingeben muß (z.B. über andere Felder des Nodes). Das ist aber nach wie vor das normale Titelfeld des Nodes.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

@werner Nur nochmal zur

Eingetragen von 1kubik (903)
am 27.07.2011 - 21:38 Uhr

@werner
Nur nochmal zur Klärung: Autonodetitel erlaubt einen Titel automatisch zu setzen, damit man das Pflichtfeld nicht eigens eingeben muß (z.B. über andere Felder des Nodes). Das ist aber nach wie vor das normale Titelfeld des Nodes.
okeh..jetzt hab ichs verstanden..

@caw

Ja dann mußt du einfach ein Template erstellen für diesen Inhaltstypen.
Wenn du nur ein Bild, die Überschrift udn den Bodytext hast ist das ja nciht sehr aufwendig.

wenn das so einfach wäre in diesem fall... bzw ich bekomme das einfach nicht hin !?

in der node.tpl.php habe ich ja den Titel in der variable $title
wie bekomme ich den titel jetzt in das array $content?

[neben problem]
wieso kann ich an der stelle (node.tpl.php) eigenlich
kein krumo (dsm) verwenden?

// in node.tpl.php zeile ergibt keine ausgabe
dsm($content)

in allen anderen templates funktioniert das ausgeben?)
[/neben problem]

ojeh

  • Anmelden oder Registrieren um Kommentare zu schreiben

Template

Eingetragen von Nicolai Schwarz (1071)
am 28.07.2011 - 01:09 Uhr
Zitat:

in der node.tpl.php habe ich ja den Titel in der variable $title
wie bekomme ich den titel jetzt in das array $content?

Hmm. Nee. Du musst den $title nicht in den $content packen. Du gibst "einfach" die Felder in einer Reihenfolge aus, die du brauchst, und schiebst den Titel dazwischen. Bei einer Dachzeile kann ein reduziertes Template zum Beispiel so aussehen:

<div id="node-<?php print $node->nid; ?>" class="artikel">
    <?php
     
// We hide the comments and links now so that we can render them later.
     
hide($content['comments']);
     
hide($content['links']);

      print
render($content['field_dachzeile']);

      if (
$page) print '<h1>'.$title.'</h1>';
      if (!
$page) print '<h2><a href="'.$node_url.'">'.$title.'</a></h2>';

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

</div>

Bei dir setzt du eben die Namen deiner Felder ein - in der gewünschten Reihenfolge.
Du musst nur beachten, dass einzelne Felder aus dem $content, die du renderst, nicht mehr auftauchen, wenn du danach den §content renderst. (Verständlich ausgedrückt?)

  • Anmelden oder Registrieren um Kommentare zu schreiben

guten morgen nicolai danke

Eingetragen von 1kubik (903)
am 28.07.2011 - 09:09 Uhr

guten morgen nicolai
danke für deine ausführliche antwort!

das problem ist anscheinend das ich fields benutze. ich kann
die reihenfolge der fields leider nicht in der nodes.tpl anfassen

also ich hab das jetzt folgendermassen versucht
um den titel neben das bild setzen:

das bild und (weitere felder/fields)
sind in der node.tpl im array $content gespeichert
das hier aber noch nicht gerendert wird
sondern (einzelnd) an field.tpl.php übergeben werden (bzw an deren
theming funktionen)

ich habe das tempalte field.tpl.php genommen
und kann da auf die einzelnen felder zugreifen
aber:
der titel von dem node befindet sich ja
ausserhalb des $content arrays (also ausserhalb des field templates),
also dachte ich:
ok ich schieb das in das $content array um es dann
in der field.tpl.php zuverarbeiten

leider geht das so nicht... vermutlich muss ich das
in in einer theme funktion machen, aber in welcher?

das ist eine ganz grundsätzliche frage für mich
(vielleicht besser in einem seperatem beitrag)
was kommt eigendlich zwischen der node.tpl.php und
der field.tpl?
in der nodes.tpl gibt es das
render($content)
an der stelle werden die felder erzeugt, aber eben alle
felder 'gleichzeitig'.
das einzelne feld hat zwar sein eigenes template (fields.tpl.php)
welches pro feld verarbeitet wird aber ich kann
fields nicht als gruppe erfassen

zb wenn ich das field image links als div
all die anderen fields aber
als html liste rechts daneben haben möchte
und eben den titel darüber setzen möchte

auwiea ist das schwierig (so eine einfache sache eigendlich :()
ich hoffe das ist noch so halbwegs verständlich...

vielen dank nochmal
stf

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: aber ich kann fields

Eingetragen von 1kubik (903)
am 28.07.2011 - 09:35 Uhr
Zitat:

aber ich kann
fields nicht als gruppe erfassen

zb wenn ich das field image links als div
all die anderen fields aber
als html liste rechts daneben haben möchte
und eben den titel darüber setzen möchte

ok das geht doch mit einem modul

http://drupal.org/project/field_group

aber diese grundsätzliche unklarheit bei
fields hab ich immer noch..

wie kann ich zwischen nodes.tpl und field.tpl
in den render prozess eingreifen..hmmm

vg
stf

  • Anmelden oder Registrieren um Kommentare zu schreiben

...juhuu gefunden der titel

Eingetragen von 1kubik (903)
am 28.07.2011 - 13:03 Uhr

hab die stelle gefunden
der titel steckt in dem
$items array (mit allen parent werten)
das dem template übergeben wird
und ist dort dann an dieser stelle gespeichert
print $items[0]["#node"]->title;

möchte ich das dann noch nur in der
vollansicht des nodes (und nicht im teaser)
anfassen frage ich einfach
if($element['#view_mode']=='full')
ab.

code im ganzen field.tpl.php

<div class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
  <?php if (!$label_hidden) : ?>
    <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes; ?>>
    <?php foreach ($items as $delta => $item) : ?>
      <div class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"<?php print $item_attributes[$delta]; ?>><?php print render($item); ?></div>
    <?php endforeach; ?>
  </div>
<?php  if(isset($items[0]["#node"]) AND $element['#view_mode']=='full')
  print
$items[0]["#node"]->title; ?>

</div>

viele grüße
stf

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20456

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