Pagina 1 di 1

Cambio automatico immagine Header

Inviato: 22/01/2015, 14:18
da Ares
Vorrei sostituire il bg_header.gif con due o tre immagini che cambino a seconda l'ora locale. Chiedo troppo? :o Un tempo c'era una mod che permetteva di farlo, ma cambiava casualmente ad ogni refresh, adesso non so

Re: R: Cambio automatico immagine Header

Inviato: 22/01/2015, 14:24
da brunino
In che senso a seconda dell'ora locale? tipo giorno/notte? non.dovrebbe essere difficile

Inviato dal mio GT-S5360 con Tapatalk 2

Re: Cambio automatico immagine Header

Inviato: 22/01/2015, 14:30
da Ares
Esatto. Un immagine per il giorno, una per la sera.

Re: R: Cambio automatico immagine Header

Inviato: 22/01/2015, 15:12
da brunino
In linea teorica basta fare un controllo sull'ora e assegnare ai template una variabile 1 o 0
Nei template controlli la variabile e metti un'immagine o l'altra

Inviato dal mio GT-S5360 con Tapatalk 2

Re: Cambio automatico immagine Header

Inviato: 22/01/2015, 16:14
da Ares
Questo è un vecchio codice che ho ritrovato. Riusciresti a trarre spunto da questo? Questo cambia ad ogni refresh in modo casuale

Codice: Seleziona tutto

<?php

/*

   AUTOMATIC IMAGE ROTATOR
   Version 2.2 - December 4, 2003
   Copyright (c) 2002-2003 Dan P. Benjamin, Automatic, Ltd.
   All Rights Reserved.

   http://www.hiveware.com/imagerotator.php
   
   http://www.automaticlabs.com/
   
   
   DISCLAIMER
   Automatic, Ltd. makes no representations or warranties about
   the suitability of the software, either express or
   implied, including but not limited to the implied
   warranties of merchantability, fitness for a particular
   purpose, or non-infringement. Dan P. Benjamin and Automatic, Ltd.
   shall not be liable for any damages suffered by licensee
   as a result of using, modifying or distributing this
   software or its derivatives.
   
   
   ABOUT
   This PHP script will randomly select an image file from a
   folder of images on your webserver.  You can then link to it
   as you would any standard image file and you'll see a random
   image each time you reload.
   
   When you want to add or remove images from the rotation-pool,
   just add or remove them from the image rotation folder.


   VERSION CHANGES
   Version 1.0
      - Release version
   
   Version 1.5
      - Tweaked a few boring bugs
   
   Version 2.0
      - Complete rewrite from the ground-up
      - Made it clearer where to make modifications
      - Made it easier to specify/change the rotation-folder
      - Made it easier to specify/change supported image types
      - Wrote better instructions and info (you're them reading now)
      - Significant speed improvements
      - More error checking
      - Cleaner code (albeit more PHP-specific)
      - Better/faster random number generation and file-type parsing
      - Added a feature where the image to display can be specified
      - Added a cool feature where, if an error occurs (such as no
        images being found in the specified folder) *and* you're
        lucky enough to have the GD libraries compiled into PHP on
        your webserver, we generate a replacement "error image" on
        the fly.
      
    Version 2.1
        - Updated a potential security flaw when value-matching
          filenames

    Version 2.2
        - Updated a few more potential security issues
        - Optimized the code a bit.
        - Expanded the doc for adding new mime/image types.

        Thanks to faithful ALA reader Justin Greer for
        lots of good tips and solid code contribution!


   INSTRUCTIONS
   1. Modify the $folder setting in the configuration section below.
   2. Add image types if needed (most users can ignore that part).
   3. Upload this file (rotate.php) to your webserver.  I recommend
      uploading it to the same folder as your images.
   4. Link to the file as you would any normal image file, like this:

         <img src="http://example.com/rotate.php">

   5. You can also specify the image to display like this:

         <img src="http://example.com/rotate.php?img=gorilla.jpg">
      
      This would specify that an image named "gorilla.jpg" located
      in the image-rotation folder should be displayed.
   
   That's it, you're done.

*/




/* ------------------------- CONFIGURATION -----------------------


   Set $folder to the full path to the location of your images.
   For example: $folder = '/user/me/example.com/images/';
   If the rotate.php file will be in the same folder as your
   images then you should leave it set to $folder = '.';

*/


   $folder = '.';


/*   

   Most users can safely ignore this part.  If you're a programmer,
   keep reading, if not, you're done.  Go get some coffee.

    If you'd like to enable additional image types other than
   gif, jpg, and png, add a duplicate line to the section below
   for the new image type.
   
   Add the new file-type, single-quoted, inside brackets.
   
   Add the mime-type to be sent to the browser, also single-quoted,
   after the equal sign.
   
   For example:
   
   PDF Files:

      $extList['pdf'] = 'application/pdf';
   
    CSS Files:

        $extList['css'] = 'text/css';

    You can even serve up random HTML files:

       $extList['html'] = 'text/html';
       $extList['htm'] = 'text/html';

    Just be sure your mime-type definition is correct!

*/

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

// You don't need to edit anything after this point.


// --------------------- END CONFIGURATION -----------------------

$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);
   }
}

?>

Re: R: Cambio automatico immagine Header

Inviato: 22/01/2015, 17:48
da brunino
da includere nel common

Codice: Seleziona tutto

$ora=date("H",time());
if ($ora>=20 or $ora<=9)
{
$template->assign_var('DAY_NIGHT', false);
}else{
 $template->assign_var('DAY_NIGHT', true); 
}
 
nei template usi questo:

Codice: Seleziona tutto

<!-- IF DAY_NIGHT -->
banner giorno
<!-- ELSE -->
banner notte
<!-- ENDIF -->
Inviato dal mio GT-S5360 con Tapatalk 2

Re: Cambio automatico immagine Header

Inviato: 22/01/2015, 20:10
da Ares
E se invece si trova la modifica nel CSS, come in questo caso, come posso assegnare queste due variabili?

Il codice è

Codice: Seleziona tutto

background-image: url("./images/bg_header.gif");
Incorporando il CSS nel Template?

Re: Cambio automatico immagine Header

Inviato: 22/01/2015, 20:12
da vargas
Molto carino, grazie.

Io sul "vecchio" forum avevo la modifica "rotate header", su questo, visto che non c'è, ho deciso di fare una cosa molto più semplice, e di uguale effetto.

Con jasc Animation Shop, ho riunito tutte i vecchi header in un'unica gif animata, con rotazione infinita, e cambio immagine ogni 5 secondi...

Risultato identico senza dover ricorrere a nessuna estensione, il risultato si può vedere dal mio forum, se vi piace:
http://spearfishingteam.altervista.org/forum/index.php

Re: Cambio automatico immagine Header

Inviato: 22/01/2015, 20:15
da Ares
Il risultato della gif animata è sia semplice che funzionale, ma la mia idea è un altra. Servire un immagine che ricordi il giorno con sole ecc, e una che ricordi la notte con luna, ecc. Tutto questo ovviamente deve avvenire in determinate ore della giornata. Cosi ... tanto per dare un tocco al forum

Re: Cambio automatico immagine Header

Inviato: 22/01/2015, 20:23
da brunino
O inserisci css nei template oppure crei due div uno per notte e uno per il giorno e li gestisci da css. poi li inserisci nel mio codice