Luca Saba
Il risultato non è stato esaltante:

Come si può "intuire" il grafico non passa in secondo piano, rendendo l'effetto lightbox decisamente poco gradevole.
Il primo tentativo è stato quello di settare correttamente lo z-index, a livello di css, sia dell'oggetto flash che di lightbox. Questo approccio però non funziona poichè il browser interpreterà sempre l'oggetto embedded come primario e lo mostrerà al di sopra di tutti gli altri elementi.
Un ulteriore approccio sarebbe quello di inserire il flash all'interno di oggetti javascript i quali si occuperanno di ordinare correttamente i livelli. Questo approccio mi è però sembrato troppo complicato.
Infine la soluzione più semplice si è rilevata anche la più efficace: la proprietà wmode.
< param name="wmode" value="transparent" />
< param name="bgcolor" value="#ffffff" />
< embed wmode="transparent" src="Untitled-1.swf" ...... />
E' bastato inserire il parametro wmode ed ecco l'effetto finale:

Luca Saba
Il problema è cercare di filtrare i dati in base alla presenza o meno di un campo in un'altra tabella.
Per esemplificare, diciamo che ho la seguente base dati:

Come faccio a filtrare i soli utenti che non sono associati ad alcuna squadra ?
I filtri non mi sono di molto aiuto poiché mi permettono di filtrare i tifosi appartenenti di una determinata squadra ma nient'altro.
Dopo aver letto pagine e pagine, ecco la soluzione che sono riuscito a realizzare.
Per prima cosa modifico apps/backend/modules/tifosi/config/generator.yml e aggiungo il campo "associato" tra i filtri:
filter:
display: [nome,associato]
A questo punto devo modificare il form dei filtri in modo che compaia la voce desiderata, quindi apro lib/filter/TifosoFormFilter.class.php e faccio l'overload del setup:
public function configure()
{
parent::configure();
$this->widgetSchema['associato'] = new sfWidgetFormChoice(
array('choices' => array(
'' => 'Si o No',
1 => 'Si',
0 => 'No')));
$this->validatorSchema['associato'] = new sfValidatorChoice(
array('required' => false,
'choices' => array('', 1, 0)));
}
Questo farà comparire la voce nel filtro. A questo punto devo intercettare il filtro e modificare i criteri di ricerca. Per fare ciò, faccio, sempre in lib/filter/TifosoFormFilter.class.php l'overload del metodo buildCriteria:
public function buildCriteria(array $values)
{
$c = parent::buildCriteria($values);
if(isset($values['tifoso']) && $values['tifoso'] != '')
{
$c->addJoin(TifosoPeer::ID, TifosoHasSquadraPeer::TIFOSO_ID,
Criteria::LEFT_JOIN);
if($values['associato'] == 1)
$c->add(TifosoHasSquadraPeer::UTENTE_ID, null, Criteria::ISNOTNULL);
else
$c->add(TifosoHasSquadraPeer::UTENTE_ID, null, Criteria::ISNULL);
}
return $c;
}
E il gioco è fatto!