Back to top

Autore Topic: Div a comparsa in un range di date specifico  (Letto 2826 volte)

Offline otto9due

  • Appassionato
  • ***
  • Post: 689
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Div a comparsa in un range di date specifico
« il: 29 Gen 2014, 22:17:28 »
Ragazzi vorrei creare una condizione per mostrare una parte del template solo se la data odierna è compresa tra quelle contenute in un range di date e l'id della pagina corrisponde ad uno dato.. Avrei pensato a qualcosa del genere..
Qualcuno ha qualche idea.. può funzionare?? Ancora non ho fatto test..


435 è un esempio di Itemid da sostituire con quello di prorpio interesse


Codice: [Seleziona]
<?php
$pageitemid 
JRequest::getVar('Itemid','');
$dataoggi date("Y-m-d H:i:s");


if (
  
$dataoggi > new DateTime("2014-01-01 00:00:00") && 
  
$dataoggi < new DateTime("2014-01-30 23:59:59") && 
  (
$pageitemid != '435')) : ?>



CONTENUTO DA MOSTRARE es: un div


<?php endif; ?>
« Ultima modifica: 30 Gen 2014, 08:07:29 da otto9due »
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #1 il: 30 Gen 2014, 08:34:48 »
di direi di cominciare a fare un po' di test  ;D

comunque dato che $dataoggi è una stringa e le altre date sono oggetti datetime qualche dubbio sul funzionamento potrebbe venire; magari l'interprete applica un cast a stringa e il codice funziona, ma non mi pare per niente elegante. usa sempre datetime e i metodi di comparazione della classe

io utilizzerei la classe aggiuntiva della voce di menù per determinare la pagina da visualizzare e passare le date range. non mi piacciono i valori hard coded nel mezzo del codice (i così detti magic numbers: pessima abitudine)

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline otto9due

  • Appassionato
  • ***
  • Post: 689
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #2 il: 30 Gen 2014, 14:40:36 »
Anzitutto un grazie per aver risposto.. Sono alle prima armi con php e mysql ( sopratutto ad oggetti  :P )
Questo dubbio "$dataoggi è una stringa e le altre date sono oggetti " era venuto anche a me..
Quindi diresti di fare una cosa del genere, sempre che abbia capito bene??
In questo modo sarebbero tutto oggetti.. ma la mia domanda è: in questo modo $dataoggi prende il valore della data di oggi con il formato indicato?


I metodi di comparazione della classe dove posso trovarli, così da impararli??
"la classe aggiuntiva della voce di menù per determinare la pagina da visualizzare e passare le date range" cos'è? intendi coi this => e una funzione che confronta i singoli valori giorno mese anno ecc...?
valori hard coded ?? Cosa sono??
Grazie ancora..


Codice: [Seleziona]
<?php
$pageitemid 
JRequest::getVar('Itemid','');
$dataoggi = new DateTime("Y-m-d H:i:s");


if (
  
$dataoggi > new DateTime("2014-01-01 00:00:00") && 
  
$dataoggi < new DateTime("2014-01-30 23:59:59") && 
  (
$pageitemid != '435')) : ?>



CONTENUTO DA MOSTRARE es: un div


<?php endif; ?>

Mi sa che non funge.. sta roba qui..$dataoggi = new DateTime("Y-m-d H:i:s"); non è conteplata mi sa..
« Ultima modifica: 30 Gen 2014, 19:04:14 da otto9due »
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline otto9due

  • Appassionato
  • ***
  • Post: 689
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #3 il: 30 Gen 2014, 19:18:30 »
Ecco qui.. così funziona.. è un pò grezza ma funge!!



Codice: [Seleziona]

<?php
//data oggi
$dataoggi date("Y-m-d H:i");
// prima data
$datainizio '2014-01-01 13:34'
// seconda data 
$datafine '2014-02-14 15:23'
if(
strtotime($datainizio) < strtotime($dataoggi) && strtotime($datafine) > strtotime($dataoggi)): ?>

<div> mi vedo!! <>
<?php endif; ?>


Ovviamente a questa poi va aggiunta la condizione dell'id
« Ultima modifica: 01 Feb 2014, 19:07:34 da otto9due »
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #4 il: 02 Feb 2014, 08:59:39 »
mi sembra che vada bene.

tutto ciò è ottimo per imparare, comunque mi permetto di ricordare a tutti che in J2.5+ il modulo custom html supporta pubblicazione a tempo ed ovviamente l'assegnazione a pagine specifiche.

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline otto9due

  • Appassionato
  • ***
  • Post: 689
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #5 il: 02 Feb 2014, 13:18:53 »
Certo certo, ma spiego a cosa mi serve.. In pratica ho alcuni clienti che posseggono una certa considerevole quantitá di siti, e durante le varie festivitá, avendo questi siti tutti lo stesso template, vorrebbe far apparire decorazioni natalizie e/o s.valentino eccc. come div con posizione assoluta es sul footer o su uno dei lati dello schermo, che scrollano con la pagina. Avevo pensato ad un metodo del genere, implementato con degli if, che in base alla festivitá mi mostrasse il div corretto.


Con i moduli avrei dovuto fare es: 2 moduli, crearmi le classi che sovrascrivessero quelle predefinite del template e poi nn so se l'anno successivo sarei dovuto rientrare nel sito per reimpostare la data di pubblicazione e di scomparsa.. O sbaglio? Non ricordo se joomla prevede anche la pubblicazione in determinati mesi dell'anno di un modulo..


Ora vorrei riuscire ad impostare nello script, l'incremento automatico del solo anno delle due date, così da non dover entrare più nel sito a modificare nulla..
« Ultima modifica: 02 Feb 2014, 13:32:50 da otto9due »
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #6 il: 02 Feb 2014, 13:39:13 »
Citazione
Ora vorrei riuscire ad impostare nello script, l'incremento automatico del solo anno delle due date, così da non dover entrare più nel sito a modificare nulla..

Così ti fai male a tua insaputa.  ;D

Offline otto9due

  • Appassionato
  • ***
  • Post: 689
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #7 il: 02 Feb 2014, 15:05:19 »
Ecco come ho risolto..
In questo modo, l'anno segue quello attuale e tutto diverrà completamente autonomo ed automatico..


Codice: [Seleziona]
<?php
//data oggi
$dataoggi date("Y-m-d H:i");
// prima data
$datainizio date("Y") . '-01-01 13:34'
// seconda data 
$datafine date("Y") . '-02-01 15:23'
if(
strtotime($datainizio) < strtotime($dataoggi) && strtotime($datafine) > strtotime($dataoggi)): ?>

<div> mi vedo!! <>
<?php endif; ?>


Perchè mi farei del male? C'è qualcosa che non ho calcolato?
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #8 il: 02 Feb 2014, 15:32:23 »
Scherzavo, mi riferivo al fatto che mettersi in condizioni di non intervenire più in un sito ti preclude pissibilità di lavoro come aggiornamenti  e manutenzione

Offline otto9due

  • Appassionato
  • ***
  • Post: 689
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Div a comparsa in un range di date specifico
« Risposta #9 il: 02 Feb 2014, 15:38:41 »
Scherzavo, mi riferivo al fatto che mettersi in condizioni di non intervenire più in un sito ti preclude pissibilità di lavoro come aggiornamenti  e manutenzione


Vero, ma nessuno gli andrà a dire che è uno script che manovra il tutto..  ;D
Fai agli Altri quello che desidereresti fosse fatto a TE!!

 



Web Design Bolzano Kreatif