Pagina 1 di 1
un Tema per un Evento
Inviato: 30/08/2008, 21:48
da Fabrizio88
Ciao
mi ricordo che tempo addietro avevo trovato una contribution che in pratica riusciva a cambiare automaticamente il tema a natale, pasqua ecc...
mi aiutate nella ricerca?
Inviato: 30/08/2008, 22:38
da Fabrizio88
ho trovato questo codice per il phpnuke, ma sempre php è...
$prendidata = getdate();
$giorno = $prendidata['mday'];
$mese = $prendidata['mon'];
$dataattuale = "$giorno-$mese";
switch ($dataattuale)
{
case "1-1":
$immaginedata = "capodanno.jpg";
break;
case "2-6":
$immaginedata = "festarepubblica.jpg";
break;
case "25-12":
$immaginedata = "natale.jpg";
break;
default:
$immaginedata = "default.jpg";
}
$imglogo = "<img src=\"themes/TuoTema/immagini/$immaginedata\">";
Veramente questo pezzo di codice cambia un logo ad una festività.
io vorrei sostituire la sola immagine con un file intero, ad esempio il file header.php
Inviato: 30/08/2008, 22:50
da Fabrizio88
o raga.. non ci credo, son già riuscito
questo è il codice da sostituire nel file index.php al posto del richiamo tradizionale del file header.php
<!-- AUTO CHANGE THEME HEADER//-->
<?php
$prendidata = getdate();
$giorno = $prendidata['mday'];
$mese = $prendidata['mon'];
$dataattuale = "$giorno-$mese";
switch ($dataattuale)
{
case "1-1":
$data = "headerCAPODANNO.php";
break;
case "2-6":
$data = "headerFESTAREPUBBLICA.php";
break;
case "25-12":
$data = "headerNATALE.php";
break;
default:
$data = "header.php";
}
require(DIR_WS_INCLUDES . $data);
?>
<!-- AUTO CHANGE THEME HEADER_eof //-->
ora però vorrei che un tema rimanesse un mese o una settimana prima dell'effettivo evento..
chi mi aiuta?
Inviato: 31/08/2008, 14:29
da Fabrizio88
Mi sono accorto che bisogna aggiungere un controllo, IF ELSEIF credo..
perchè se passa una data scritta nel codice e per sbaglio non trova il file esce un errore e non visualizza nulla.
bisognerebbe aggiungere un IF non trova il file ELSE visualizza il file di default.
mi aiutate?
qual'è il codice per un file inesistente?
Inviato: 31/08/2008, 14:31
da Fabrizio88
dimenticavo che ieri sera ho scritto alla veloce una guida e fatto alcuni cambiamenti per utilizzare il codice più velocemente per tutti i file che volete cambiare automaticamente.
Questa Contribution Cambia Automaticamente il Tema da voi scelto in base all'Evento che stà per arrivare;
per esempio potrete avere un header.php con il logo Natalizio o/e uno script con neve o babbonatale nel periodo Natalizio, ed un Tema diverso per ogni stagione;
La Modifica sceglierà solamente il file che avrete modificato precedentemente in base ad una data prefissata, quindi per esempio: header.php,column-left.php,column.right.php,footer.php.
ISTRUZIONI
Aprite il file Index.php nel vostro catalogo, ed aggiungete questo codice:
<!-- AUTO CHANGE THEME START //-->
<?php
$prendidata = getdate();
$giorno = $prendidata['mday'];
$mese = $prendidata['mon'];
$dataattuale = "$giorno-$mese";
switch ($dataattuale)
{
case "1-1": $data = "CAPODANNO";
break;
case "21-3": $data = "PRIMAVERA";
break;
case "23-3": $data = "PASQUA";
break;
case "2-6": $data = "FESTAREPUBBLICA";
break;
case "21-6": $data = "ESTATE";
break;
case "23-9": $data = "AUTUNNO";
break;
case "22-12": $data = "INVERNO";
break;
case "25-12": $data = "NATALE";
break;
default: $data = "";
}
?>
<!-- AUTO CHANGE THEME END //-->
Potrete aggiungere o togliere a piacimento gli Eventi, come file di default ho lasciato l'originale del vostro OSC.
Ora basta semplicemente aggiungere questo pezzo di codice tra il file che vorreste che cambi automaticamente:
'.$data.'
Esempio
da:
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- left_navigation_eof //-->
a:
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'header'.$data.'.php'); ?>
<!-- left_navigation_eof //-->
Inviato: 04/09/2008, 10:41
da dynamo
ho provato a seguire quello che hai scritto...
ma esce questo errore
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at d:\programmi2\easyphp1-8\www\index.php:15) in d:\programmi2\easyphp1-8\www\includes\functions\sessions.php on line 97
Inviato: 05/09/2008, 22:55
da Fabrizio88
Scusa ma alla riga 15 dell' Index che codice hai?
Inviato: 06/09/2008, 8:52
da dynamo
l'inizio del codice da te postato
non sapendo dove metterlo l'ho messo all'inizio
Inviato: 08/09/2008, 8:34
da Fabrizio88
Non saprei.. forse è colpa del EasyPhp, aspettiamo qualche utente più esperto che ci possa aiutare
Inviato: 09/09/2008, 10:27
da dynamo
ok risolto...
ho tolto l'apertura e la chiusura dei tag php e li ho messi direttamente dentro alla prima apertura...
in parole povere da così
Codice: Seleziona tutto
<?php
/*
$Id: index.php,v 1.1 2003/06/11 17:37:59 hpdl Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
Released under the GNU General Public License
*/
?>
<!-- AUTO CHANGE THEME START //-->
<?php
$prendidata = getdate();
$giorno = $prendidata['mday'];
$mese = $prendidata['mon'];
$dataattuale = "$giorno-$mese";
switch ($dataattuale)
{
case "1-1": $data = "CAPODANNO";
break;
case "21-3": $data = "PRIMAVERA";
break;
case "23-3": $data = "PASQUA";
break;
case "2-6": $data = "FESTAREPUBBLICA";
break;
case "21-6": $data = "ESTATE";
break;
case "23-9": $data = "AUTUNNO";
break;
case "22-12": $data = "INVERNO";
break;
case "25-12": $data = "NATALE";
break;
case "4-9": $data = "PROVA";
break;
default: $data = "";
}
?>
<!-- AUTO CHANGE THEME END //-->
<?php
require('includes/application_top.php');
a così
Codice: Seleziona tutto
<?php
/*
$Id: index.php,v 1.1 2003/06/11 17:37:59 hpdl Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
Released under the GNU General Public License
*/
$prendidata = getdate();
$giorno = $prendidata['mday'];
$mese = $prendidata['mon'];
$dataattuale = "$giorno-$mese";
switch ($dataattuale)
{
case "1-1": $data = "CAPODANNO";
break;
case "21-3": $data = "PRIMAVERA";
break;
case "23-3": $data = "PASQUA";
break;
case "2-6": $data = "FESTAREPUBBLICA";
break;
case "21-6": $data = "ESTATE";
break;
case "23-9": $data = "AUTUNNO";
break;
case "22-12": $data = "INVERNO";
break;
case "25-12": $data = "NATALE";
break;
case "9-9": $data = "PROVA";
break;
default: $data = "";
}
require('includes/application_top.php');
e non ho più problemi