Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Positionierung von Feldern bzw. Modulen

Eingetragen von FuXXz (174)
am 22.12.2008 - 04:11 Uhr in
  • Allgemeines zu Drupal
  • Drupal 5.x oder neuer

Einen wunderschönen guten Morgen,

ich habe ein weiteres Positionierungsproblem und würde euch bitten mir zu helfen.

Ich möchte gerne div. CCK Felder oder Module wie zb das Fivestar Modul an einer anderen Stelle haben.

Elemente wie zb Kommentarlinks konnte ich einfach durch verschieben des Codes

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

ändern.

Jedoch wo wird der Code eingefügt der durch ein Modul erzeugt wird. Wie z.B. bei dem Fivestar Modul? Dieses wird ja im Contentbereich ausgegeben, ich möchte es jedoch ausserhalb des Contenbereichs haben

Hier meine node.tpl! Nun möchte ich das Modul ganz unten nach dem Ende des Node-Inners haben!

<div class="node <?php print $node_classes ?>" id="node-<?php print $node->nid; ?>"><div class="node-inner">

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

  <?php if ($unpublished) : ?>
    <div class="unpublished"><?php print t('Unpublished'); ?></div>
  <?php endif; ?>

  <?php if ($picture) print $picture; ?>

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

  <?php if (count($taxonomy)): ?>
    <div class="taxonomy"><?php print t(' in ') . $terms; ?></div>
  <?php endif; ?>

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

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


</div></div> <!-- /node-inner, /node -->

‹ Tabellen nehmen diesen verdammten CSS Code nicht ;) SQL View Benutzerdaten ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Allgemeiner Tipp: Layout per CSS

Eingetragen von Frank Ralf (2135)
am 22.12.2008 - 11:19 Uhr

Hallo,

ganz allgemein würde ich versuchen, Layoutprobleme per CSS zu lösen. Drupal versieht die meisten Elemente (meist <div>s) mit aussagekräftigen IDs oder Klassennamen. Mit deren Hilfe kann man per CSS darauf zugreifen und das Layout nach seinen Wünschen ändern.

Gruß
Frank

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für deine Antwort,

Eingetragen von FuXXz (174)
am 22.12.2008 - 13:44 Uhr

Danke für deine Antwort, mit CSS hab ich es versucht aber mir ist kein Befehl bekannt der das macht :(

Ich bin leider kein Profi aber soweit ich weiß "Layoute" ich ja die im php code erzeugten Elemente, wie du schon sagtest.

div id content-inner
div id content-area
div id node-X
div id node-inner
div id content
div´s für CCK Felder, Fivestar Modul, alle anderen Module

Und um jetzt zb den DIV für ein CCK Feld oder Modul ganz zu verschieden, da reicht CSS wohl nicht aus!
Denn ich wills ja aus dem div node-inner raus haben!

Das wäre vom Prinzip auch kein thema, nur weiß ich nicht an welcher Stelle man steuert, wo sich ein Modul oder CCK Feld in die page.tpl einträgt

  • Anmelden oder Registrieren um Kommentare zu schreiben

Positionieren mit CSS

Eingetragen von Frank Ralf (2135)
am 22.12.2008 - 15:42 Uhr

Im Prinzip kannst du mit CSS alles positionieren. Wie einfach oder kompliziert das ist, hängt vom konkreten Fall ab.

Infos zum Thema gibt's u.a. hier:

  • http://www.de.html.net/tutorials/css/lesson14.asp
  • http://de.selfhtml.org/css/eigenschaften/positionierung.htm
  • http://www.barelyfitz.com/screencast/html-training/css/positioning/

Und mit der Firefox-Erweiterung Firebug kannst du das CSS quasi live am lebenden Objekt analysieren und verändern: http://www.drupalcenter.de/handbuch/6716

Gruß
Frank

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

mh also mit der bitte um

Eingetragen von FuXXz (174)
am 22.12.2008 - 16:04 Uhr

mh also mit der bitte um verständnis daß ich mich nicht super mit css auskenne, aber ich kriege es nicht hin! ich kann natürlich elemente z.b. mit "position" "margin" "floats" etc. positionieren. Aber ich schaffe es nicht es vernünftig und sauber innerhalb des content-inners!

Und es kommt mir irgendwie so vor als müsste ich die festen PHP Bestandteile auch dort in der php template datei verschieben! zumindest funktioniert das sauber und einwandfrei! zumindest mit den elementen, die ich in der node.tpl datei finde!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Live-Beispiel?

Eingetragen von Frank Ralf (2135)
am 22.12.2008 - 16:11 Uhr

Zugegeben, Positionierung mit CSS ist nicht ganz ohne...

Kann man sich deine Site live angucken?

Frank

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich kann das ganze zwar mit

Eingetragen von FuXXz (174)
am 22.12.2008 - 16:36 Uhr

Ich kann das ganze zwar mit CSS Positionieren aber dann wird es..naja wie soll ich mich ausdrücken.. aus dem fluss gerissen!

Hier zb mit CSS Positionierung! Also position: relative und top: zb 50px

Schöner und richtig ist es meiner Meinung nach wenn ich die Reihenfolge im node.tpl ändere, was dann so aussieht:

<div class="node <?php print $node_classes ?>" id="node-<?php print $node->nid; ?>"><div class="node-inner">

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


  <?php if ($unpublished) : ?>
    <div class="unpublished"><?php print t('Unpublished'); ?></div>
  <?php endif; ?>

  <?php if ($picture) print $picture; ?>

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

  <div class="content">
    <?php print $content; ?>
  </div>
  
</div></div> <!-- /node-inner, /node -->
 
Diese beiden habe ich einfach unterhalb des Node-inner kopiert

<?php if (count($taxonomy)): ?>
    <div class="taxonomy"><?php print t('  ') . $terms; ?></div>
  <?php endif; ?>
 
<?php if ($links): ?>
    <div class="links">
      <?php print $links; ?>
    </div>
  <?php endif; ?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Beispiele...

Eingetragen von Frank Ralf (2135)
am 22.12.2008 - 17:56 Uhr

Danke für die Beispiele! Was ist jetzt nochmal genau dein Problem? Du willst vom Modul (hier 5 Star) generierten Code woanders hinhaben, oder? (Langsam kapier ich's...)

Frank

PS:
Vielleicht hilft dir dieser Artikel weiter:
Overriding themable output
http://drupal.org/node/341628

oder der hier:
http://www.packtpub.com/article/theming-modules-in-drupal-6

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja genau, man siehts auf dem

Eingetragen von FuXXz (174)
am 22.12.2008 - 18:22 Uhr

ja genau, man siehts auf dem letzen bild noch!

div class content, darin befinden sich alle Elemente, die CCK Felder, die form id vom fivestar! Und diese will ich zb. direkt in den content-inner haben!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Habe aber leider immer noch

Eingetragen von FuXXz (174)
am 23.12.2008 - 00:35 Uhr

Habe aber leider immer noch keine Möglichkeit gefunden :(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du musst da den Hook_nodeapi

Eingetragen von Tobias Bähr (4019)
am 23.12.2008 - 10:46 Uhr

Du musst da den Hook_nodeapi anwenden. Dir den Contentaufbau mit dem Devel-Modul ( Tab-Devel laden) anschauen, dann kannste die Reihenfolge mit ['#weight'] verändern.

Vielleicht hast auch Glück das dieses Widget via CCK steuerbar ist. Kleine Wegbeschreibung -> http://www.drupalcenter.de/node/15257#comment-53455

----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nein, leider nicht! Die

Eingetragen von FuXXz (174)
am 23.12.2008 - 13:09 Uhr

Nein, leider nicht! Die Module bzw. Felder für CCK, die ich kenne und nutze kann man immer nur innerhalb des Nodes Positionieren! Aber ausserhalb nicht :(

Und leider ist das Devel Modul anders als bei Drupal 6. Dort kann man recht gut erkennen was auf der Seite passiert. Diese Quellansicht (ich nenne sie einfach mal so :) gibt es beim devel für drupal 5 nicht :(

Also weiter grübeln! Also Drupal ist da echt unflexibel. Selbst in joomla konnte man frei wählen wo ein Modul hin soll, schade daß das hier nicht geht :(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Achso...der Devel Laden Tab

Eingetragen von FuXXz (174)
am 23.12.2008 - 13:23 Uhr

Achso...der Devel Laden Tab brachte auch nicht zum Erfolg! Er gibt nicht wirklich viele Infos wie zb bei Drupal 6 her. Nur belangloses Zeugs, dessen Inhalt ich ja eh schon kenne wie z.b.

taxonomy

Array
(
    [4] => stdClass Object
        (
            [tid] => 4
            [vid] => 1
            [name] => Italienisch
            [description] =>
            [weight] => 0
        )

)

Aber vielleicht findet sich ja noch jemand der mich zum Ziel führt :) Die Hoffnung stirbt zuletzt^^

  • Anmelden oder Registrieren um Kommentare zu schreiben

Taxonomy ist auch kein

Eingetragen von Tobias Bähr (4019)
am 23.12.2008 - 16:13 Uhr

Taxonomy ist auch kein Fivestar.

Hier wird die Position bestimmt:

<?php
/**
* Implementation of hook_nodeapi()
*
* Adds the fievestar widget to the node view.
*/
function fivestar_nodeapi(&$node, $op, $teaser, $page) {
  switch (
$op) {
    case
'view':
      if (
$node->in_preview == FALSE && !isset($node->modr8_form_teaser) && variable_get('fivestar_'. $node->type, 0)) {
        if (
$teaser) {
         
$position = variable_get('fivestar_position_teaser_'. $node->type, 'above');
        }
        else {
         
$position = variable_get('fivestar_position_'. $node->type, 'above');
        }
        switch (
$position) {
          case
'above':
          case
'below':
            if (
user_access('rate content')) {
             
$node->content['fivestar_widget'] = array(
               
'#value' => fivestar_widget_form($node),
               
'#weight' => $position == 'above' ? -10 : 50,
              );
              break;
            }
// Fall through to static if not allowed to rate.
           
$position .= '_static';
          case
'above_static':
          case
'below_static':
           
$stars = variable_get('fivestar_stars_'. $node->type, 5);
           
$node->content['fivestar_widget'] = array(
             
'#value' => fivestar_static('node', $node->nid, $node->type),
             
'#weight' => strpos($position, 'above') === 0 ? -10 : 50,
            );
            break;
          default:
           
// We'll do nothing.
           
break;
        }
      }
      break;
  }
}
 
?>

Und um selbst zubestimmen, muss mit eigenen Modul dies überschreiben. ( $node->content['fivestar_widget']['#weight']=12456; )
----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Antwort!

Eingetragen von FuXXz (174)
am 23.12.2008 - 18:36 Uhr

Danke für die Antwort! Woher kommt denn dieser Code? Ist der irgendwo im Fivestar Modul? Oder muss ich den komplett neu erstellen ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja der kommt aus dem modul.

Eingetragen von Tobias Bähr (4019)
am 23.12.2008 - 21:48 Uhr

Ja der kommt aus dem modul. Und wenn du die Reihenfolge ändern willst, musst du ein eigenes minimodul erstellen. welches den hook_nodeapi verwende, um die Voteapi angaben überscheiben zu können.

----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/

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