CCK Funzione Default value PHP code

5 contenuti / 0 new
Ultimo contenuto
CCK Funzione Default value PHP code

Ciao, vi spiego il mio problema e spero m possiate aiiutare.

Lavoro con Drupal 7.34 con installato il modulo CCK, ho impostato un campo di selezione per la scelta dell'anno di riferimento di un documento ed ho impostato i valori ammessi con la seguente funzione:

$annoattuale=(int)date('Y',time());
for ($x=$annoattuale; $x>1999; $x--)
{$lista[$x]=$x;}
return $lista;

in modo da avere un elenco che va, a ristroso, dall'anno attuale al 2000.

La cosa funziona ma non riesco ad impostare come valore predefinito l'anno attuale, ho provato con varie funzioni come:

$annoattuale=(int)date('Y',time());
$lista[$annoattuale]=$annoattuale;
return array(0 => $lista);

oppure
$annoattuale=(int)date('Y',time());
return array( 0 =>$annoattuale);

ma non hanno prodotto alcun risultato.

dov'è l'errore?
grazie.

Drupal Version:

Meggis (non verificato)
Ritratto di Anonimo

Ciao, ho testato:

<?php

$lista = alfa();
print_r($lista);

function alfa(){
$annoattuale=(int)date('Y',time());
$lista = array();
for ($x = $annoattuale; $x>1999; $x--) {
$lista[$x]=$x;
}
return $lista;
}

result:
Array ( [2015] => 2015 [2014] => 2014 [2013] => 2013 [2012] => 2012 [2011] => 2011 [2010] => 2010 [2009] => 2009 [2008] => 2008 [2007] => 2007 [2006] => 2006 [2005] => 2005 [2004] => 2004 [2003] => 2003 [2002] => 2002 [2001] => 2001 [2000] => 2000 )

Puoi utilizzare:

$annoattuale=(int)date('Y',time());
$lista = array();
for ($x = $annoattuale; $x>1999; $x--) {
$lista[$x]=$x;
}
return $lista;

Quindi l'errore era la mancata inizializzazione dell'array lista.
Spero che è cosi

Ciao,

ma perché non usi il modulo date, che oltre ad offrirti questo (hai l'opzione per mostrare solo l'anno e solo nel futuro) ti mette a disposizione anche ottimi filtri per le viste?

Mi trovi su Google+

Ciao, vi ringrazio per la vostra attenzione, ma forse non sono stato molto chiaro:
la funzione

$annoattuale=(int)date('Y',time());
for ($x=$annoattuale; $x>1999; $x--)
{$lista[$x]=$x;}
return $lista;

che definisce l'elenco dei valori ammessi funziona anche senza l'inizializzazione dell'array lista e mi fornisce la lista degli anni dal 2000 a quello attuale.

Il problema è che intendo impostare il valore predefinito con una funzione che punti sempre all'anno attuale, aggiornandosi automaticamente di anno in anno!
Le funzioni finora provate non danno alcun risultato, vorrei capire quel è l'errore.

Proverò, in seguito ad utilizzare per lo scopo il modulo date, ma per adesso vorrei capire come si scrivono le funzioni Default value.

Risolto,
l'errore era nel passaggio dell'array
la funzione corretta è:

$annoattuale=date('Y',time());
return array( 0 => array( 'value'=>$annoattuale));

grazie a tutti!