un Tema per un Evento

Questo forum è dedicato alle discussioni riguardanti le contribution per osCommerce

Moderatore: mod Generali

Rispondi
Fabrizio88
membro Senior
membro Senior
Messaggi: 488
Iscritto il: 11/10/2005, 21:49
Contatta:

un Tema per un Evento

Messaggio 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?
Fabrizio88
membro Senior
membro Senior
Messaggi: 488
Iscritto il: 11/10/2005, 21:49
Contatta:

Messaggio 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
Fabrizio88
membro Senior
membro Senior
Messaggi: 488
Iscritto il: 11/10/2005, 21:49
Contatta:

Messaggio 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:
Fabrizio88
membro Senior
membro Senior
Messaggi: 488
Iscritto il: 11/10/2005, 21:49
Contatta:

Messaggio 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?
Fabrizio88
membro Senior
membro Senior
Messaggi: 488
Iscritto il: 11/10/2005, 21:49
Contatta:

Messaggio 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 //-->
dynamo
membro Master
membro Master
Messaggi: 1976
Iscritto il: 13/11/2007, 17:47
Contatta:

Messaggio 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
www.vinidimo.it

visitate e criticate se è il caso... solo con le critiche posso migliorarlo ^_^
Fabrizio88
membro Senior
membro Senior
Messaggi: 488
Iscritto il: 11/10/2005, 21:49
Contatta:

Messaggio da Fabrizio88 »

Scusa ma alla riga 15 dell' Index che codice hai?
dynamo
membro Master
membro Master
Messaggi: 1976
Iscritto il: 13/11/2007, 17:47
Contatta:

Messaggio da dynamo »

l'inizio del codice da te postato :roll:

non sapendo dove metterlo l'ho messo all'inizio :P
www.vinidimo.it

visitate e criticate se è il caso... solo con le critiche posso migliorarlo ^_^
Fabrizio88
membro Senior
membro Senior
Messaggi: 488
Iscritto il: 11/10/2005, 21:49
Contatta:

Messaggio da Fabrizio88 »

Non saprei.. forse è colpa del EasyPhp, aspettiamo qualche utente più esperto che ci possa aiutare :wink:
dynamo
membro Master
membro Master
Messaggi: 1976
Iscritto il: 13/11/2007, 17:47
Contatta:

Messaggio 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
www.vinidimo.it

visitate e criticate se è il caso... solo con le critiche posso migliorarlo ^_^
Rispondi