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

Zufällige Position Hintergrundbild

Eingetragen von 2464 (9)
am 06.02.2009 - 12:56 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hallo,

wie kann ich erreichen, dass sich mit jedem Seitenaufruf die Position des Hintergrundbilds zufällig ändert.

Grundsätzliches Prinzip ist mir klar: mit PHP rand() Zufallswert berechnen und CSS-Befehl mit berechneter Variable ausgeben. PHP-Code direkt in die CSS-Datei schreiben funktioniert leider nicht. Mein Server verarbeitet anscheinend keinen PHP-Code in CSS-Dateien.

Ausschnitt aus CSS-Datei:

background-image: url(images/polygon.png);
background-repeat: no-repeat;
background-attachment: fixed;

<?php
$zufallx
=rand(-200,733);
$zufally=rand(-200,407);
echo
"background-position:'. $zufallx .'px'. $zufally .'px;"
?>

background-color: white;

Ich benutze ein Theme auf Zen-Basis.

Link zur Seite:

http://stereo33.com/stereo33_master/node

Wie kann ich das anders lösen? Ich hab schon viel probiert, aber bisher hat nichts funktioniert.

Danke.

‹ [Gelöst] Überschrift (title) Weblogs gesucht Farben von Theme Litajazz ändern. ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Habs jetzt nicht probiert

Eingetragen von einfachfragen (150)
am 06.02.2009 - 13:59 Uhr

aber teste mal das hier bitte (ist vielleicht auch nicht die beste Lösung, sollte aber klappen.)

Pack das hier da rein, wo du das Hintergrundbild haben willst:

style="<?php $zufallx=rand(-200,733); $zufally=rand(-200,407); echo "background-position: " .$zufallx."px ".$zufally ."px;"?> background-image: url(images/newshead.jpg); background-repeat: no-repeat; background-attachment: fixed;"

Zitat:

PHP-Code direkt in die CSS-Datei schreiben funktioniert leider nicht. Mein Server verarbeitet anscheinend keinen PHP-Code in CSS-Dateien.

Das hat mit deinem Server nix zu tun, das geht generell nicht. Du kannst keinen PHP-Code in eine CSS-Datei packen, die wird nicht geparst (man möge mich steinigen, wenn ich was falsches erzähle :D).

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, Nur so eine Idee:

Eingetragen von leda.ch (977)
am 06.02.2009 - 14:04 Uhr

Hallo,

Nur so eine Idee: Anstatt zu versuchen, an der CSS-Datei zu schrauben, könntest Du das ganze im page.tpl.php einbauen. Ein Style lässt sich ja auch mit Tags direkt im HTML-Bereich definieren:

<style type="text/css">
<!--
/* ... Hier werden die Formate definiert ... */
-->
</style>

Wahrscheinlich werden sich die Profis darob die Haare raufen ;-)...

lg leda

  • Anmelden oder Registrieren um Kommentare zu schreiben

Verstehe ich das richtig?

Eingetragen von 2464 (9)
am 06.02.2009 - 14:19 Uhr

Verstehe ich das richtig? Style-Attribute in das entsprechende div in der page.tpl.php packen? In meinem Fall:

  <div id="page" class="round" style="background-image: url(images/polygon.png); background-repeat: no-repeat; background-attachment: fixed; <?php $zufallx=rand(-200,733); $zufally=rand(-200,407); echo "background-position: " .$zufallx."px ".$zufally ."px;"?>">

Klappt leider auch nicht. Was mache ich falsch?

  • Anmelden oder Registrieren um Kommentare zu schreiben

So in der Art? <head> 

Eingetragen von 2464 (9)
am 06.02.2009 - 14:24 Uhr

So in der Art?

<head>
  <title><?php print $head_title; ?></title>
  <?php print $head; ?>
  <?php print $styles; ?>
  <?php print $scripts; ?>
  <script type="text/javascript"><?php /* Needed to avoid Flash of Unstyled Content in IE */ ?> </script>
<style type="text/css">
#page,
#closure-blocks
{
background-image: url(images/polygon.png); background-repeat: no-repeat; background-attachment: fixed; <?php $zufallx=rand(-200,733); $zufally=rand(-200,407); echo "background-position: " .$zufallx."px ".$zufally ."px;"?>"
}
</style>
</head>

Klappt leider auch nicht. Jetzt wird kein Hintergrund mehr angezeigt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

<div id="page"

Eingetragen von einfachfragen (150)
am 06.02.2009 - 14:36 Uhr

<div id="page" class="round" style="background-image: url(images/polygon.png); background-repeat: no-repeat; background-attachment: fixed; <?php $zufallx=rand(-200,733); $zufally=rand(-200,407); echo "background-position: " .$zufallx."px ".$zufally ."px;"?>">

Jo, genau wie das bloß stimmt die Pfadangabe zum Bild nicht. Ich kenn da leider noch nicht die variable für, aber trage mal den kompletten Pfad ein:

url(themes/deinTemplate/images/polygon.png);

Das sollte gehen.

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Code, den ich gepostet

Eingetragen von leda.ch (977)
am 06.02.2009 - 14:41 Uhr

Der Code, den ich gepostet habe ist ja purer "HTML"-Code, den könntest Du ja in einem normalen HTML auch verwenden. Du musst diesen Text im PHP-Code als String auscodieren und dann "printen" (oder "echoen", weiss jetzt grad nicht auswendig). Zwischen den Style-Tags kommt der Text, der auch im CSS drin wäre, nur kannst Du so eben auch eine PHP-Variable hineinbringen.
Du hast ja das Problem, dass es mit dem CSS mit fixer Positionierung funktioniert. Da Du aber die CSS-Datei nicht manipulieren kannst, musst Du das mit PHP machen.

Dem IMG weist Du eine Class zu, deren fixen Werte im .CSS definiert sind und die variablen Teile werden über den PHP Code hinzugefügt.

lg leda

  • Anmelden oder Registrieren um Kommentare zu schreiben

Update: Klappt leider nur auf der Startseite

Eingetragen von 2464 (9)
am 06.02.2009 - 15:36 Uhr
Zitat:

Jo, genau wie das bloß stimmt die Pfadangabe zum Bild nicht. Ich kenn da leider noch nicht die variable für, aber trage mal den kompletten Pfad ein:

url(themes/deinTemplate/images/polygon.png);

Das sollte gehen.

Vielen Dank! Jetzt hat es endlich geklappt. So ein blöder kleiner Fehler kann einen echt zum Wahnsinn treiben.

Update: Zu früh gefreut. Leider funktioniert es nicht auf allen Seiten. Bei URLs wie http://stereo33.com/stereo33_test/forum funktioniert es. Ist noch ein "Ordner" dazwischen, z.B. http://stereo33.com/stereo33_test/users/admin funktioniert es nicht mehr.

Was ist jetzt wieder falsch?

Ich dreh gleich durch!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Evtl. musst Du den Cache

Eingetragen von leda.ch (977)
am 06.02.2009 - 15:19 Uhr

Evtl. musst Du den Cache leeren...

lg leda

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aha, Admin - ich glaube, die

Eingetragen von leda.ch (977)
am 06.02.2009 - 15:21 Uhr

Aha, Admin - ich glaube, die gehen nicht über die page.tpl.php...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hab ich probiert...

Eingetragen von 2464 (9)
am 06.02.2009 - 15:27 Uhr

daran liegt es leider nicht.

Zitat:

Evtl. musst Du den Cache leeren...

lg leda

  • Anmelden oder Registrieren um Kommentare zu schreiben

leda@drupal.org

Eingetragen von 2464 (9)
am 06.02.2009 - 15:31 Uhr
leda@drupal.org schrieb

Aha, Admin - ich glaube, die gehen nicht über die page.tpl.php...

War nur ein Beispiel. Andere Seiten wie http://stereo33.com/stereo33_test/node/2 oder http://stereo33.com/stereo33_test/node/add/forum gehen auch nicht.

Über welches Template gehen die sonst, wenn nicht page.tpl.php?

Danke und Grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich schätze, die gehen

Eingetragen von leda.ch (977)
am 06.02.2009 - 15:46 Uhr

Ich schätze, die gehen schon über page.tpl.php, aber ev. in anderer Reihenfolge...
Dem Quelltext Deiner Seite nach, wird das Bild eingebunden, aber nicht angezeigt. Ich habe den Verdacht, dass hier ein Z-Index-Problem vorliegt

lg leda

  • Anmelden oder Registrieren um Kommentare zu schreiben

Verschieb dein Bild mal

Eingetragen von einfachfragen (150)
am 06.02.2009 - 15:53 Uhr

in den Templateordner. Da sollte doch eigentlich das Theme liegen. Du hast das aber in sites/all/themes

Jetzt weiß ich nicht (bin ja noch nicht lange dabei), ob man Themes da rein packen kann oder wie das zu machen ist. Teste es aber einfach mal, dass in den Pfad der normalen Themes zu packen.

background-image: url(themes/stereo33/images/polygon.png);

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

einfachfragen schrieb in

Eingetragen von 2464 (9)
am 06.02.2009 - 16:02 Uhr
einfachfragen schrieb

in den Templateordner. Da sollte doch eigentlich das Theme liegen. Du hast das aber in sites/all/themes

Jetzt weiß ich nicht (bin ja noch nicht lange dabei), ob man Themes da rein packen kann oder wie das zu machen ist. Teste es aber einfach mal, dass in den Pfad der normalen Themes zu packen.

background-image: url(themes/stereo33/images/polygon.png);

Gruß

Daran liegt es leider nicht. Habs probiert. Das Theme ist aber im Sites/all/ Ordner gut aufgehoben. Ist ab Drupal 6 so, dass Core und Erweiterungen getrennt sind. Macht es leichter upzudaten, oder eine Drupal.Installation für mehrere Seiten zu verwenden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Noch ein Versuch

Eingetragen von einfachfragen (150)
am 07.02.2009 - 12:52 Uhr

Probier es mal damit:

<div id="page" class="round" style="background-image: url(<?php echo base_path() . path_to_theme(); ?>/images/polygon.png); background-repeat: no-repeat; background-attachment: fixed; <?php $zufallx=rand(-200,733); $zufally=rand(-200,407); echo "background-position: " .$zufallx."px ".$zufally ."px;"?>">

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, danke, dass Du noch

Eingetragen von 2464 (9)
am 07.02.2009 - 13:08 Uhr

Hallo, danke, dass Du noch dran bist an dem Problem.

Habs versucht. Jetzt bleibt der Hintergrund schwarz. Schade.

  • Anmelden oder Registrieren um Kommentare zu schreiben

2464 schriebHallo, danke,

Eingetragen von einfachfragen (150)
am 07.02.2009 - 13:59 Uhr
2464 schrieb

Hallo, danke, dass Du noch dran bist an dem Problem.

Habs versucht. Jetzt bleibt der Hintergrund schwarz. Schade.

Klar, warum auch nicht. Wenn ich helfen kann, dann versuch ich es auch :D.

Was dein Problem angeht, bei mir klappt es, habe es gerade mal ausprobiert. Springt schön auf jeder Seite hin und her. Natürlich ist es nicht immer sichtbar, da es manchmal durch die Positionierung außerhalb des sichtbaren Bereichs ist.

Vielleicht liegt es daran, dass du das Theme im sites-ordner hast. Ich habe einfach das Haupttemplatverzeichnis genommen (obs jetz richtig ist, weiß ich nicht, aber es geht).

Gruß


Nachtrag:

Bei mir sieht es so aus:

<div id="contentleft" style="background-image: url(<?php echo base_path() . path_to_theme(); ?>/images/mheader.jpg); background-repeat: no-repeat; background-attachment: fixed; <?php $zufallx=rand(-200,733); $zufally=rand(-200,407); echo "background-position: " .$zufallx."px ".$zufally ."px;"?>"> 

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich verstehe es zwar nicht.

Eingetragen von 2464 (9)
am 07.02.2009 - 14:09 Uhr

Ich verstehe es zwar nicht. Aber im normalen Theme Ordner klappt es jetzt. Vielleicht ein Bug? Danke und noch ein schönes Wochenende.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich weiß zwar nicht ob du

Eingetragen von einfachfragen (150)
am 27.02.2009 - 17:02 Uhr

Ich weiß zwar nicht ob du es noch brauchst aber hier ist noch eine Lösung, wie es auch mit Themes im Templateordner geht:

In die page.tpl.php oben einfügen:

    <?php global $theme_path; ?>

Und den Bilderpfad gibst du dann wie folgt an:

<?php print base_path() . $theme_path ?>/images/dot.gif

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 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 13 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 5 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 14 Stunden

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