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

[gelöst] Banner ändern, je nach angezeigter Seite

Eingetragen von codab (16)
am 09.04.2011 - 17:47 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hallo und einen schönen Abend Euch allen.

Ich habe einen Block erstellt in dem ich folgenden PHP-Code hinzugefügt habe:

<?php $banner = rand(1,5); ?>

<?php if ($banner == 1): ?>
  <p><img  src="../sites/all/themes/codab/img/header1.gif"><p>
<?php endif;?>
<?php if ($banner == 2): ?>
  <p><img  src="../sites/all/themes/codab/img/header2.gif"><p>
<?php endif;?>
<?php if ($banner == 3): ?>
  <p><img  src="../sites/all/themes/codab/img/header3.gif"><p>
<?php endif;?>
<?php if ($banner == 4): ?>
  <p><img  src="../sites/all/themes/codab/img/header4.gif"><p>
<?php endif;?>
<?php if ($banner == 5): ?>
  <p><img  src="../sites/all/themes/codab/img/header5.gif"><p>
<?php endif;?>

Soweit funktioniert das auch super.
Nun würde ich das ganze aber nicht dem Zufall überlassen wollen, sondern je nach Menüpunkt, also dem Titel der jeweiligen Seite, ändern lassen.
Hatte hier auch schon im Forum gesucht und evtl. Möglichkeiten via 'if ($breadcrumb == "Home") etc. ausprobiert, aber irgendwas habe ich da sicherlich nicht bedacht bzw. vergessen. Denn da passiert gar nichts.

Kann mir jemand Unterstützung anbieten?

Vielen Dank und beste Grüße
codab

‹ [ERLEDIGT] Postgre Timeout nach 30 Sek. Kein JS nach Ajax request ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

hi codab! ich würde das ohne

Eingetragen von john_doe_2011 (80)
am 09.04.2011 - 18:46 Uhr

hi codab!

ich würde das ohne php lösen.

mach einfach einen inhaltstyp banner, der aus dem titel und dem bannerbild besteht (mit cck und imagefield). den body braucht man nicht.

den titel wählst du entspechend der seite, die diesen banner zeigen soll.

dann einen view für diese banner-nodes bauen. einen einzelnen davon in einem block-display anzeigen und mit einem argument den entsprechenden banner rausholen (einfach den seiten-titel als argument auf banner-titel mappen).

so geht das ohne code und das ganze bleibt vor allem ziemlich flexibel, wenn mehr seiten und mehr banner dazukommmen.

hope this helps
lg
jd

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hey jd, schon mal vielen Dank

Eingetragen von codab (16)
am 09.04.2011 - 20:51 Uhr

Hey jd,

schon mal vielen Dank für die Alternative.
Hättest Du dennoch eine Idee, wie sich das mit meinem Vorschlag lösen lassen würde?
Es gibt nicht so sehr viele Seiten und Banner, somit schien mir das für eine einfache Möglichkeit und ich lerne ja auch gerne hinzu. ;-)

Vllt. hast Du ne Idee, wie es sich auch mit dem "kurzen" PHP-Code lösen lässt.

Beste Grüße
codab

  • Anmelden oder Registrieren um Kommentare zu schreiben

wenn's dir erstmal nur drum

Eingetragen von john_doe_2011 (80)
am 09.04.2011 - 21:06 Uhr

wenn's dir erstmal nur drum geht, den php-code zu kürzen oder einfacher zu machen (das mit den if's ist ein wenig sehr "zu fuss" ;-) ):

<?php
$banner_anzahl
= 5;  # bei mehr bannern hier im bedarfsfall ändern
$banner_nr = rand(1,$banner_anzahl);
print
"<p><img  src=\"../sites/all/themes/codab/img/header".$banner_nr.".gif\"><p>";
?>

lg
jd

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist sehr nett. Also mit

Eingetragen von codab (16)
am 09.04.2011 - 23:32 Uhr

Das ist sehr nett. Also mit der Codierung kenne ich mich echt nicht so aus, aber das ist echt einleuchtend. Ist ja so in etwa wie Basic. :-D

Nee, also, was mir mehr am Herzen liegt, ist die Abfrage des Breadcrumbs oder des entsprechenden Seiten-Titels ( nicht der der Webseite, sondern der des ausgewählten Menüpunktes). Oder geht das gar nicht so in PHP, wie ich mir das vorstelle?

Eine Abfrage in der Form von "if ($breadcrumb == home) (then do) (else)" gibt es doch auch oder nicht?

Sorry für die Umständlichkeiten, aber man lernt ja nie aus.

Beste Grüße
codab

  • Anmelden oder Registrieren um Kommentare zu schreiben

den seitentitel mit dem

Eingetragen von john_doe_2011 (80)
am 10.04.2011 - 13:06 Uhr

den seitentitel mit dem breadcrumb oder per menu rauszuziehen geht auch, das ist richtig, ist aber komplizierter.

wenn du nur den seitentitel allein haben willst: $node->title

lg
jd

  • Anmelden oder Registrieren um Kommentare zu schreiben

active trail

Eingetragen von stBorchert (6003)
am 10.04.2011 - 18:25 Uhr

Hallo.
Direkt den aktuellen Breadcrumb könntest Du über [api:menu_get_active_breadcrumb:7] abfragen. Da das jedoch schon eine Liste mit fertig gerenderten Links zurückgibt, ist diese Funktion für Dein Vorhaben eher nicht zu gebrauchen.
Besser sieht es da schon mit [api:menu_get_active_trail:7] aus.

<?php
function get_image_by_active_menu_title() {
 
$active_trail = menu_get_active_trail();
 
$end = end($active_trail);
 
 
// Define images for specific menu titles.
 
$images = array(
   
t('Home') => 'home',
   
t('Dingens') => 'irgendwas',
   
t('Guestbook') => 'irgendwas',
   
t('Imprint') => 'imprint',
  );
 
// Get image name for current title (or "default" if title is unknown).
 
$image_name = isset($images[$end['title']]) ? $images[$end['title']] : 'default';
 
  return
theme('image', array(
   
'path' => drupal_get_path('theme', 'THEMENAME') . '/images/' . $image_name . '.png',
   
'alt' => $image_name,
  ));
}

// Print current image.
print get_image_by_active_menu_title();
?>

Ungetestet, sollte jedoch funktionieren.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Erstmal ganz einfach geloest

Eingetragen von codab (16)
am 11.04.2011 - 14:46 Uhr

Danke fuer die Anregungen!

Werde mir das noch mal genauer ansehen, moechte aber meine kurze nicht ganz so schoene Loesung dennoch mal hier ablegen.

<?php
    
if (file_exists(DRUPAL_ROOT . '/' . $directory . '/img/'.$title.'.gif')) {
         print
"<p><img  src=\"".$directory."/img/".$title.".gif\"><p>";
         } else {
         print
"<p><img  src=\"".$directory."/img/banner.gif\"><p>";
         }
?>

Sobald sich ein Banner-Bild im Theme-Verzeichnis unter IMG befindet, welches den gleichen Namen traegt, wie der Titel der Seite lautet, wird dieses angezeigt.

Wie gesagt, nicht wirklich schoene Loesung, aber es funktioniert.

Besten Dank noch einmal.

LG
codab

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

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