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 :lol:

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? :roll:

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 :roll:

non sapendo dove metterlo l'ho messo all'inizio :P

Inviato: 08/09/2008, 8:34
da Fabrizio88
Non saprei.. forse è colpa del EasyPhp, aspettiamo qualche utente più esperto che ci possa aiutare :wink:

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 :P