Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Zmieniające się tło forum

Założony przez  szymex71.

Cześć.
Na pierwszym forumowym stylu tło strony zmieniało się co wejście.
Doszedłem do tego, że ogólnie za tło odpowiada ta linia w body
background: #005a8f url(bg.php)  top center no-repeat;
idąc za ścieżką wskazaną przez url doszedłem do takiego pliku:
<?php


   $folder = 'slider';


   $extList = array();
   $extList['gif'] = 'image/gif';
   $extList['jpg'] = 'image/jpeg';
   $extList['jpeg'] = 'image/jpeg';
   $extList['png'] = 'image/png';


$img = null;


if (substr($folder,-1) != '/') {
   $folder = $folder.'/';
}


if (isset($_GET['img'])) {
   $imageInfo = pathinfo($_GET['img']);
   if (
       isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
       file_exists( $folder.$imageInfo['basename'] )
) {
   $img = $folder.$imageInfo['basename'];
}
} else {
   $fileList = array();
   $handle = opendir($folder);
   while ( false !== ( $file = readdir($handle) ) ) {
       $file_info = pathinfo($file);
       if (
           isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
           $fileList[] = $file;
       }
   }
   closedir($handle);


   if (count($fileList) > 0) {
       $imageNumber = time() % count($fileList);
       $img = $folder.$fileList[$imageNumber];
   }
}
if ($img!=null) {
   $imageInfo = pathinfo($img);
   $contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
   header ($contentType);
   readfile($img);
} else {
   if ( function_exists('imagecreate') ) {
       header ("Content-type: image/png");
       $im = @imagecreate (100, 100)
           or die ("Cannot initialize new GD image stream");
       $background_color = imagecolorallocate ($im, 255, 255, 255);
       $text_color = imagecolorallocate ($im, 0,0,0);
       imagestring ($im, 2, 5, 5, "IMAGE ERROR", $text_color);
       imagepng ($im);
       imagedestroy($im);
   }
}
?>

a w folderze images znalazłem pięć plików png (1,2(...),5) z obrazkami z tła strony.

Jednak po usunięciu trzech obrazków nie stało się nic. ctrl + f5 nie zadziałało, odczekanie z dobrej godziny również. Zamykanie i włączanie przeglądarki razem z wykorzystaniem innej to samo - zero efektów. Nawet podmiana obrazka 1.png na jakiś inny o tej samej nazwie nic nie zrobiła.

A więc mam parę pytań.
 Przede wszystkim czemu zmiana obrazków/wykasowanie ich nic nie zdziałało oraz co zrobić by je zmienić?
 Czy jeżeli zostawię np. 3 obrazki z tych pięciu to ten kod będzie działał? Czy wywali puste tło? :E W sumie właśnie to chciałem sprawdzić ale  albo moja przeglądarka odmówiła posłuszeństwa albo strona :E


I taka mała prośba, mógłby mi ktoś wyjaśnić jak ten kod w ogóle działa? Bo jakoś nie mogę dojść nawet do tego skąd bierze te obrazki 1,2,3,4,5.png


Może jest inny sposób na tło zmieniające się co wejście na stronę? (na razie wszystko co znalazłem to tło zmieniające się co x sekund)

Zaznaczę jeszcze raz że zmieniające się tło jest na starym stylu.
Dobra, mniejsza z tym... Próbowałem z paru stron kody php przerabiać ale nic z tego... A więc po prostu zapytam..
Zna ktoś jakiś prosty (albo i nie) kod który losował by jeden z np. 3 obrazków które wrzucę na serwer a potem żeby były ustawiane jako banner?
JS:
https://stackoverflow.com/questions/4116...-a-webpage
PHP:
https://css-tricks.com/snippets/php/rand...und-image/
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
Wolałbym rozwiązanie z php (które też jest mi trochę obce) niż z JS którego w ogóle nie ogarniam :E
W każdym razie co mam zrobić z tym kodem php? Zrobić plik php i wrzucić to na serwer? Tylko wtedy by css nie za bardzo pasował. (chyba :E)

Sorry że takie głupie pytania ale akurat tych kwestii jeszcze nie ogarniam :E
Z tego co mi się wydaje jak dasz
body{
background: url(images/<?php echo $selectedBg; ?>) no-repeat;
}
To w css
a to w plikach

<?php
  $bg 
= array('bg-01.jpg''bg-02.jpg''bg-03.jpg''bg-04.jpg''bg-05.jpg''bg-06.jpg''bg-07.jpg' ); // array of filenames

 
 $i rand(0count($bg)-1); // generate random number size of the array
 
 $selectedBg "$bg[$i]"// set variable equal to which random filename was chosen
?>
To i tak powinno działać, chyba. (Nie mam akurat jak sprawdzić)

A jak nie to usuń tło z plików css i zrób jak w tutorialu.
Tanie konta Premium (Netflix, Spotify,HBO i inne) - https://epremki.eu
No to o ile dobrze zrozumiałem to zrobiłem tak:

w global.css mam tak:
#logo {
background: #d5eaff url(<?php echo $selectedBg; ?>) no-repeat 0% 5%;
background-size: cover;
-webkit-background-size: cover;
-moz-background-size: cover;
padding: 10px 400px 12.725em 0px;
}

a do public html wrzuciłem plik "banner.php" i?
Jakżeby inaczej, nie działa :E

Próbowałem również tak:
#logo {
background: #d5eaff url(banner.php) no-repeat 0% 5%;
background-size: cover;
-webkit-background-size: cover;
-moz-background-size: cover;
padding: 10px 400px 12.725em 0px;
}

i również nic.
W css usuń całe #logo

W hederze przed </head> daj
<style type="text/css">
<!--
#logo{
background: url(images/<?php echo $selectedBg; ?>) no-repeat;
}
-->
</style>

a za </head> daj

<?php
 $bg = array('bg-01.jpg', 'bg-02.jpg', 'bg-03.jpg', 'bg-04.jpg', 'bg-05.jpg', 'bg-06.jpg', 'bg-07.jpg' ); // array of filenames

 $i = rand(0, count($bg)-1); // generate random number size of the array
 $selectedBg = "$bg[$i]"; // set variable equal to which random filename was chosen
?>

U mnie z tłem działa, z logiem nie próbowałem.
Tanie konta Premium (Netflix, Spotify,HBO i inne) - https://epremki.eu
Czyli w index robię coś takiego?
<html>
<head>
<title>{$mybb->settings['bbname']}</title>
{$headerinclude}
<script type="text/javascript">
<!--
   lang.no_new_posts = "{$lang->no_new_posts}";
   lang.click_mark_read = "{$lang->click_mark_read}";
// -->
</script>
<style type="text/css">
<!--
#logo{
background: url(<?php echo $selectedBg; ?>) no-repeat;
}
-->
</style>
</head>
<?php
 $bg = array('1.png', '2.png', '3.png'); // array of filenames

 $i = rand(0, count($bg)-1); // generate random number size of the array
 $selectedBg = "$bg[$i]"; // set variable equal to which random filename was chosen
?>
<body>

Jeżeli tak, to dalej nie działa
Zeby uzyc kodu PHP w szablonie musisz posiadać wtyczkę PHP in teamplates
Posiadam :)
Wywołujesz zmienną przed stworzeniem jej. Przenieś kod php wyżej.
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
Dzięki, wygląda na to że działa :)



Użytkownicy przeglądający ten wątek:

1 gości