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

[gelöst] Region als Block zwischen Teaser und Inhalt im Artikel

Eingetragen von holger@drupal.org (544)
am 06.12.2008 - 14:39 Uhr in
  • Views
  • Allgemeines zu Drupal
  • Drupal 6.x

Hallo allerseits,

Wie kann man einen Block [ID=1] der einer Region zugewiesen ist zwischen Teaser (Anrisstext) und Inhalt im Artikel bei Vollansicht einbringen?

Beispiel:

Teasertext Teasertext Teasertext Teasertext Teasertext
Teasertext Teasertext Teasertext Teasertext Teasertext
!break

[Block ID=1]

Rest vom Artikel ...........

Af Drupal.org gibt es zwar einige Beiträge dazu, aber leider nicht für Drupal 6.6 und die Codeschnipsel sind ja leider nicht kompatibel.

Weiß jemand wie man das realisieren kann?

Gruß Holger

‹ Fehler im Internet explorer 7 Zwei User, ein Text ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Block zwischen Teaser und Inhalt im Artikel

Eingetragen von holger@drupal.org (544)
am 07.12.2008 - 20:19 Uhr

Ich habe heute noch unendlich viel auf Drupal.org dazu gesucht aber leider ohne Erfolg.
Ist es tatsächlich nicht möglich, einen Block zwischen Teaser und Inhalt im Artikel darzustellen?

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Willste nicht einfach die

Eingetragen von dawehner (2639)
am 07.12.2008 - 20:37 Uhr

Willste nicht einfach die Links und mitteilen, dann können wir dir einfacher helfen

Eigentlcih solltest das einfach machbar sein

--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich hatte dieses als Vorlage

Eingetragen von holger@drupal.org (544)
am 08.12.2008 - 17:52 Uhr

ich hatte dieses als Vorlage http://alldrupalthemes.com/blog/automagically-placing-adsense-inside-con...
Da geht es zwar um adsense aber ich dachte einen Block könnte man auch so einfügen.
Leider hat es nicht funktioniert und gab immer nur eine weiße Seite.

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich hatte vor 3 Jahren

Eingetragen von holger@drupal.org (544)
am 10.12.2008 - 11:10 Uhr

Ich hatte vor 3 Jahren schonmal ein ähnliches Problem http://www.drupalcenter.de/node/213
Die Lösung hatte dann zwar funktioniert, aber sehr viel besser wäre es, wenn man nicht dafür in den Core-Dateien rumfummeln muss.
Bislang fand ich leider noch immer keine Variante wie man einen Block zwischen Teaser und Inhalt bei Vollansicht einbringt.
Wenn ich in der node-story.tpl.php vor $content den Block platziere, dann wird dieser leider über dem Teaser in der Vollansicht des Beitrags angezeigt und nicht unter dem Anrisstext.

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Block zwischen Teaser und Inhalt im Artikel

Eingetragen von holger@drupal.org (544)
am 11.12.2008 - 08:23 Uhr

Ich habe jetzt nochmals versucht nach der Anleitung auf http://alldrupalthemes.com/blog/automagically-placing-adsense-inside-con...

Das Ganze unter Drupal 6.6 mit Garland bzw. Minelli als Theme.

Die Dateien sehen wie folgt aus:

minelli.info

; $Id: minnelli.info,v 1.7 2007/12/04 20:58:44 goba Exp $
name = Minnelli
description = Tableless, recolorable, multi-column, fixed width theme.
version = VERSION
core = 6.x
base theme = garland
stylesheets[all][] = minnelli.css

; Information added by drupal.org packaging script on 2008-10-22
version = "6.6"
project = "drupal"
datestamp = "1224703816"

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[belowPost] = Below Posts
regions[incontent] = In Content

garland.info

; $Id: garland.info,v 1.5 2007/07/01 23:27:32 goba Exp $
name = Garland
description = Tableless, recolorable, multi-column, fluid width theme (default).
version = VERSION
core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
stylesheets[print][] = print.css

; Information added by drupal.org packaging script on 2008-10-22
version = "6.6"
project = "drupal"
datestamp = "1224703816"

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[belowPost] = Below Posts
regions[incontent] = In Content

template.php

<?php
// $Id: template.php,v 1.16 2007/10/11 09:51:29 goba Exp $

/**
* Sets the body-tag class attribute.
*
* Adds 'sidebar-left', 'sidebar-right' or 'sidebars' classes as needed.
*/
function phptemplate_body_class($left, $right) {
  if ($left != '' && $right != '') {
    $class = 'sidebars';
  }
  else {
    if ($left != '') {
      $class = 'sidebar-left';
    }
    if ($right != '') {
      $class = 'sidebar-right';
    }
  }

  if (isset($class)) {
    print ' class="'. $class .'"';
  }
}

/**
* Return a themed breadcrumb trail.
*
* @param $breadcrumb
*   An array containing the breadcrumb links.
* @return a string containing the breadcrumb output.
*/
function phptemplate_breadcrumb($breadcrumb) {
  if (!empty($breadcrumb)) {
    return '<div class="breadcrumb">'. implode(' › ', $breadcrumb) .'</div>';
  }
}

/**
* Allow themable wrapping of all comments.
*/
function phptemplate_comment_wrapper($content, $node) {
  if (!$content || $node->type == 'forum') {
    return '<div id="comments">'. $content .'</div>';
  }
  else {
    return '<div id="comments"><h2 class="comments">'. t('Comments') .'</h2>'. $content .'</div>';
  }
}

/**
* Override or insert PHPTemplate variables into the templates.
*/
function phptemplate_preprocess_page(&$vars) {
  $vars['tabs2'] = menu_secondary_local_tasks();

  // Hook into color.module
  if (module_exists('color')) {
    _color_page_alter($vars);
  }

// had to remove a closing brace here, but technically it should be there?

// Only does the check if required - see this node for explanation http://drupal.org/node/129762
  if(!$vars['show_blocks']) {
    global $theme;
    $regions = system_region_list($theme);
    foreach (array_keys($regions) as $region) {
      // Only set left and right regions
      // Drupal core sets the other blocks already
      // IMHO this shows a real lack of design considerations for leaving these out!
      if ($region == 'left' || $region == 'right') {
        $blocks = theme('blocks', $region);
        if(isset($variables[$region])) {
          $vars[$region] .= $blocks;
        }
        else {
          $vars[$region] = $blocks;
        }
      }
    }
  }
}

/**
* Returns the rendered local tasks. The default implementation renders
* them as tabs. Overridden to split the secondary tasks.
*
* @ingroup themeable
*/
function phptemplate_menu_local_tasks() {
  return menu_primary_local_tasks();
}

function phptemplate_comment_submitted($comment) {
  return t('!datetime — !username',
    array(
      '!username' => theme('username', $comment),
      '!datetime' => format_date($comment->timestamp)
    ));
}

function phptemplate_node_submitted($node) {
  return t('!datetime — !username',
    array(
      '!username' => theme('username', $node),
      '!datetime' => format_date($node->created),
    ));
}

/**
* Generates IE CSS links for LTR and RTL languages.
*/
function phptemplate_get_ie_styles() {
  global $language;

  $iecss = '<link type="text/css" rel="stylesheet" media="all" href="'. base_path() . path_to_theme() .'/fix-ie.css" />';
  if (defined('LANGUAGE_RTL') && $language->direction == LANGUAGE_RTL) {
    $iecss .= '<style type="text/css" media="all">@import "'. base_path() . path_to_theme() .'/fix-ie-rtl.css";</style>';
  }

  return $iecss;
}



function phptemplate_preprocess_node(&$vars) {
if (!$vars['teaser']){
         foreach (array('belowPost') as $region) {
         $vars[$region] = theme('blocks', $region);
    }
} 
}

function _phptemplate_variables($hook, $vars) {
//region distributor
$variables = array();
// Load the node region only if we're not in a teaser view.
if ($hook == 'node' && !$vars['teaser']) {
// Load region content assigned via blocks.
foreach (array('incontent') as $region) {
$variables[$region] = theme('blocks', $region);
}
}
return $variables;
return $vars;
}

node-story.tpl.php

<?php
$arr
= explode ("</p>", $content);
if (
strpos ($arr[0], "</span>") > 0 ) {
$arr[1] = $incontent . $arr[1];
} else {
$arr[0] = $incontent . $arr[0];
}
$content = implode("</p>", $arr);
endif;
?>


<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 format_date($node->created, 'custom', 'd.m.Y'); ?></span>
  <?php endif; ?>

  <div class="content clear-block">
 
 
    <?php print $content ?>
<?php print $belowPost ?>
<!--Start Anpassung Tags-->
  <?php
$termsCategories
= taxonomy_node_get_terms_by_vocabulary($node, $vid = 1, $key = 'tid'); // Holt nur Kategorien
foreach ( $termsCategories as $term ) {    $nodeCategories .= l($term->name,'taxonomy/term/'.$term->tid, array('title' => $term->name)); }
$termsTags = taxonomy_node_get_terms_by_vocabulary($node, $vid = 2, $key = 'tid'); // Holt nur Tags
foreach ( $termsTags as $term ) { $nodeTags .= ' '.l($term->name,'taxonomy/term/'.$term->tid, array('title' => $term->name));}
?>

  <div class="nodebottom">
  <?php if ($page): ?><strong><?php print t('Kategorie: ') .$nodeCategories; ?><?php if (count($taxonomy)): ?><?php endif; ?>
<?php print t('<br /><br /> Schlagworte: ').$nodeTags; ?></strong><?php endif; ?>
  </div>
   <!--Ende Anpassung Tags-->
  </div>

  <div class="clear-block">
    <?php if ($links): ?>
     <?php if ($picture): ?>
        <br class="clear" />
     <?php endif; ?>
     <div class="links" style="text-align:right;">
        <?php if (!$page) { ?>
          <a href="<?php print $node_url ?>" class="node_view_more" title="<?php print $title ?>">&raquo; zum Artikel</a>
        <?php }
          else {
            print
$links;
          }
?>

     </div>
  <?php endif; ?>
  </div>

</div>

Resultat: eine weiße Seite :-(

Ich vermute, das es am code in der node-story.tpl.php liegt aber laut der Anleitung soll dieser Bereich ja dort ganz oben eingefügt werden oder versteh ich das falsch?

$arr = explode ("</p>", $content);
if ( strpos ($arr[0], "</span>") > 0 ) {
$arr[1] = $incontent . $arr[1];
} else {
$arr[0] = $incontent . $arr[0];
}
$content = implode("</p>", $arr);
endif;

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

EIn Problem ist sicher dass

Eingetragen von dawehner (2639)
am 11.12.2008 - 12:48 Uhr

EIn Problem ist sicher dass $taxonomy nur ein String ist, und deshalb Nicht gezählt werden kann

<?php
if ($taxonomy) :
endif;
?>

reicht völlig
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie meinst du das? Beste

Eingetragen von holger@drupal.org (544)
am 11.12.2008 - 13:08 Uhr

Wie meinst du das?

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

<div class="nodebottom">

Eingetragen von r4s6 (1383)
am 11.12.2008 - 13:15 Uhr

Ich bin jetztnicht der php-Crack abe ich denke du solltest den Code für <div class="nodebottom"> ändern, dort zählst du die Variable.
Hier noch den ganzen Abschnitt aus deiner node-story.tpl.php

<div class="nodebottom">
  <?php if ($page): ?><strong><?php print t('Kategorie: ') .$nodeCategories; ?><?php if (count($taxonomy)): ?><?php endif; ?>
  <?php print t('<br /><br /> Schlagworte: ').$nodeTags; ?></strong><?php endif; ?>
</div>

Gruss Roger

  • Anmelden oder Registrieren um Kommentare zu schreiben

Rabbit69 schrieb Ich bin

Eingetragen von holger@drupal.org (544)
am 11.12.2008 - 14:07 Uhr
Rabbit69 schrieb

Ich bin jetztnicht der php-Crack abe ich denke du solltest den Code für <div class="nodebottom"> ändern, dort zählst du die Variable.
Hier noch den ganzen Abschnitt aus deiner node-story.tpl.php

<div class="nodebottom">
  <?php if ($page): ?><strong><?php print t('Kategorie: ') .$nodeCategories; ?><?php if (count($taxonomy)): ?><?php endif; ?>
  <?php print t('<br /><br /> Schlagworte: ').$nodeTags; ?></strong><?php endif; ?>
</div>

Gruss Roger

Um diesen Bereich geht es nicht, der funktioniert ja :-)

ich glaube der Fehler liegt hier:

$arr = explode ("</p>", $content);
if ( strpos ($arr[0], "</span>") > 0 ) {
$arr[1] = $incontent . $arr[1];
} else {
$arr[0] = $incontent . $arr[0];
}
$content = implode("</p>", $arr);
endif;

Laut der Anleitung auf http://alldrupalthemes.com/blog/automagically-placing-adsense-inside-con... soll dies ja in der node-story.tpl.php ganz oben rein. Dann bekomm ich aber wenn ich es hochlade nur eine weiße Seite angezeigt.

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Region als Block zwischen Teaser und Content

Eingetragen von holger@drupal.org (544)
am 11.12.2008 - 18:56 Uhr

Ich hab auf drupal.org auch mal was dazu geschrieben, http://drupal.org/node/345214#comment-1150631

Es muss doch möglich sein eine Region als Block zwischen Teaser und Content darzustellen oder ?
Hier mal ein Bild wie ich das meine http://w3projekt.com/demo.png

Beste Grüße, Holger

  • Anmelden oder Registrieren um Kommentare zu schreiben

Region als Block zwischen Teaser und Content

Eingetragen von holger@drupal.org (544)
am 11.12.2008 - 21:48 Uhr

Ich habe es jetzt so versucht in der node-story.tpl.php:

<?php if ($page) && if ($teaser) {
      print
$teaser;
print
$block = module_invoke('block', 'block', 'view', 1);
print
$block['content'];
print
$content; }
?>

Leider gibt das wieder nur eine weiße Seite und keine Lösung -.-
Es ist zum Verzweifeln.
Sollte es tatsächlich nicht möglich sein, eine Region als Block zwischen Teaser und Content darzustellen?

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

[gelöst] Region als Block zwischen Teaser und Inhalt im Artikel

Eingetragen von holger@drupal.org (544)
am 13.12.2008 - 09:55 Uhr

Ansich war die Lösung einfacher als man denkt:

Ich beschreibe kurz wie es geht, ohne das man in den Core Dateien etwas ändern muss.
Realisiert mit Drupal 6.8 und dem Garland Theme, sollte aber auch mit jedem anderen Theme realisierbar sein ;-)

1. Benötigte Module: CCK und Content Templates (ConTemplate)

2. Man legt erstmal einen neuen Block an -> admin/build/block Der Inhalt des Blocks ist beliebig, zum Beispiel kann man Banner oder Adsense einfügen, aber auch anderen Inhalt. Der Block kann einer Region zugewiesen werden, muss es aber nicht.

3. Damit das Ganze dann ein einheitliches Bild bei der Ausgabe der Artikel ergibt hab ich für CCK neue Felder angelegt -> admin/content/node-type/story/fields a) Textfeld: Haupttext (Dieser soll unter dem Block dargestellt sein.) b) Imagefield (optional) c) TextUnten (optional, wird genutzt um Text unter einer Grafik darzustellen)

4. Nun wird der Block mit ConTemplate eingebracht -> admin/content/templates/story
Dazu bei "Textkörper" den Haken setzen bei "Affect body output" und in das Formular die Werte eintragen welche dann letztendlich dargestellt werden sollen. Diese findet man bei "Body Variables".

In meinem Fall sind das:

<?php print $node->content['body']['#value'] ?> //gibt den Teaser aus

<?php
$block
= module_invoke('block', 'block', 'view', 1);
print
$block['content'];
?>
//gibt den Block aus, in dem Fall Block ID = 1

<?php print $node->field_1[0]['view'] ?> //gibt den Haupttext unter dem Block aus

<?php print $node->content['field_bild']['#children'] ?> //gibt Grafiken des Imagefield aus wenn vorhanden

<div align="center"><em><?php print $node->content['field_bild']['field']['items'][0]['#item']['data']['description'] ?></em></div> //gibt die Beschreibung des Bildes darunter aus, sofern vorhanden

<?php print $node->field_2[0]['view'] ?> //gibt den Inhalt des Textfeldes "TextUnten" aus, unterhalb von Grafiken

<p><?php print $node->content['trackback']['#children'] ?></p> //Trackback Link

Das wars schon. Die Variablen für den Output kann man beliebig anpassen, HTML und PHP Code sind möglich.

Beste Grüße, Holger

---
IT-News und IT-Jobs auf w3Projekt.com

  • 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 5 Tagen
  • Hey danke
    vor 1 Woche 6 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 12 Stunden
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 4 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 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 6 Tagen

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