Cambio logo ad ogni refresh

Aperto da berethor, Domenica - 29 Luglio 2018 - 16:56

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

berethor

Avete presente quei siti o forum in cui il logo cambia (colore, forma, ecc.) ad ogni aggiornamento della pagina? Vorrei sapere se fosse possibile fare la stessa cosa con Elk, grazie.

Ho trovato questo cercando su google, ma non so se (e dove) possa inserirlo, o se abbia qualche utilità: https://stackoverflow.com/questions/31664952/new-logo-image-for-each-refresh-page-in-wordpress-using-css

La versione è 1.1.3

Flavio93Zena

Hmm sì, non dovrebbe essere difficile modificare l'index.template per inserirlo.

emanuele

Quello che facevo io ai tempi, era di creare uno script php che inviasse direttamente l'immagine random e mettere questo come logo.

hmm... senza "qualcosa tipo", direi che questo è lo script che usavo:
<?php

/**
************************************
* Image Rotator Script
************************************
* Mewz0r!
*
* @copyright    Copyright (C) 2006, Jack Chapple
* @author        Jack Chapple <jack[AT]jcxp[DOT]net>
* @link            http://blog.jackchapple.com/
* @version        1.01
*/

// Directory Path where images are stored. Make sure the path has the trailing slash.
define 'DIRECTORY_PATH''./' );

// Never repeat the same image twice in a row? (true or false)
define 'NEVER_REPEAT'false );

// ==================================
//
// No need to edit below this line!
//
// ==================================

header"Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header"Cache-Control: no-cache" );
header"Pragma: no-cache" );

//$last_file_path = './last_' . str_replace( '.', '-', $_SERVER['REMOTE_ADDR'] ) . '.txt';

$mime_types = array (
                    
"gif"  => "image/gif",
                    
"jpg"  => "image/jpeg",
                    
"jpeg" => "image/jpeg",
                    
"png"  => "image/png",
                    
"bmp"  => "image/x-windows-bmp"
);

if ( 
$handle opendir(DIRECTORY_PATH) )
{
    
$images = array();
    
    if ( 
NEVER_REPEAT == true AND file_exists$last_file_path ) )
    {
        
$last_file file_get_contents$last_file_path );
    }
    
    while ( 
false !== ($file readdir($handle) ) )
    {
        if ( !
preg_match"/\.(jpg)$/i"$file$matches ) )
        {
            continue;
        }
        
        
$images[] = array( $filestrtolower($matches[1]) );
    }
}
else
{
    die();
}

$image_rand $imagesarray_rand($images) ];

if ( 
NEVER_REPEAT == true AND $last_file AND $image_rand[0] == $last_file AND count($images) > )
{
    
// =============================
    // Ut-Oh! No repeats, thank you!
    // =============================
    
    
while ( $image_rand[0] == $last_file )
    {
        
// =============================
        // Keep looping until we get a "fresh" image
        // =============================
        
        
$image_rand $imagesarray_rand($images) ];
    }
}

$image_loc  DIRECTORY_PATH $image_rand[0];
$image_mime $mime_types$image_rand[1] ];

// =============================
// Record last shown image data
// =============================

/*$fp = @fopen( $last_file_path, 'w' );
@fwrite( $fp, $image_rand[0] );
@fclose( $fp );
*/
// =============================
// And output the 'rotica for all to see! *rejoices*
// =============================

$fp fopen$image_loc'rb' );
header'Content-Type: ' $image_mime );
header'Content-Length: ' filesize($image_loc) );
fpassthru$fp );
fclose$fp );
// *pharp*
?>


Metti lo script ad esempio in:
themes/default/loghi/ ("loghi" dovrai crearla perché non esiste)
e lo chiami "rnd.php".
Nella stessa directory gli metti le immagini che vuoi usare come loghi.
Poi vai nel pannello di admin e nelle impostazioni del tema metti come logo l'url dello script, quindi qualcosa tipo:
www.tuodominio.tld/forum/themes/default/loghi/rnd.php
fatto.

berethor

Non funziona. Ho provato a mettere come directory prima "http://urldelsito/forum/" ecc. e ho ottenuto questo errore:

failed to open dir: not implemented in /home/account/public_html/ecc. on line 41

Poi ho tentato con l'url "/home/account/" ecc. e ho ricevuto quest'altro errore:

Undefined index:  in /home/account/public_html/.../rnd.php on line 65
Undefined index:  in /home/account/public_html/.../rnd.php on line 84


Le righe in questione contengono ciò:

Linea 41
if ( $handle = opendir(DIRECTORY_PATH) )

65
$image_rand = $images[ array_rand($images) ];

84
$image_mime = $mime_types[ $image_rand[1] ];

Googlando ho letto in più siti che, al posto di opendir, dovrei fare l'accesso tramite account FTP. Ho provato, ma non è cambiato nulla.

emanuele

Se interpreto correttamente quello che stai dicendo, mi pare di capire che hai cambiato lo script sopra mettendo una directory.
Se così è, non è quello che ho scritto.
Lo script lo devo solo copiare ed incollare pari pari in un file di testo, non c'è niente da cambiare.

berethor

Sì, spiego perchè l'ho fatto altrimenti sembra che sia impazzito ;D
Inizialmente avevo copia-incollato lo script esattamente come dici tu, ma ho ottenuto l'errore "Undefined index" e ho pensato di dover scrivere il percorso della directory.

L'errore è sempre l'undefined index e il log segnala sempre quelle 2 righe dove trovo:

$image_rand = $images[ array_rand($images) ];

e

$image_mime = $mime_types[ $image_rand[1] ];

emanuele

Sei sicuro di aver messo le immagini nella stessa cartella dello script?

berethor

Al 100%, ricontrollato per sicurezza giusto poco fa.

emanuele

Che formato sono?
Segno ma
Modificare qualcosa, lo script considera solo i file con estensione jpg.

Flavio93Zena

Citazione di: emanuele il Giovedì - 02 Agosto 2018 - 07:33
lo script considera solo i file con estensione jpg.
Non anche png, bmp e gif? Sono nell'array O.o

Darknico

Citazione di: Flavio93Zena il Giovedì - 02 Agosto 2018 - 11:13
Citazione di: emanuele il Giovedì - 02 Agosto 2018 - 07:33
lo script considera solo i file con estensione jpg.
Non anche png, bmp e gif? Sono nell'array O.o

Guarda meglio il codice, quello è solo un array per definire i mime types ;)
Dopo considera solo i jpg ;)
Non supporto privatamente, non risponderei e ci rimarreste male....

emanuele

#11
Anch'io ero convinto li usasse tutti, poi mi sono accorto di:
if ( !preg_match( "/\.(jpg)$/i", $file, $matches ) )
se vuoi che legga anche altri formati c'è da cambiare quella riga in:
if ( !preg_match( "/\.(jpg|png|jpeg|gif|bmp)$/i", $file, $matches ) )
Dovrebbe supportare anche le gif animate.

berethor

Ok, il problema era quello. Grazie ^_^

Discussioni simili (3)