Symfony, Admin Generator, personalizzare la lista

Symfony Admin Generator crea una action executeList in automatico basandosi sul model di riferimento.

Il comportamento predefinito è quello di recuperare tutti i record (paginandoli). Poi, le operazioni di “filtro” sono demandate all’utente il quale avrà nella parte destra a disposizione i filtri (definiti nella sezione filters).

Se si vuole recuperare fin dall’inizio un sottoinsieme di record (quindi alterando il comportamento di default) è possibile definire quale metodo della classe xxxTable si farà carico della definizione dei parametri di base per la query.

Un esempio pratico: nella lista non si vogliono vedere mai i record relativi ad un determinato status.

Nel file generator.yml nella sezione config list definire il parametro table_method (configurazione per Doctrine):

    config:
      list:
        title:   Suggestion list
        table_method: retrieveBackendSuggestionList

Nella classe Table del Model implementare il metodo definito nella configurazione dal parametro table_method:

public function retrieveBackendSuggestionList(Doctrine_Query $q) {
    $rootAlias = $q->getRootAlias();
    $q->andWhere($rootAlias.".status <> ?", 0);
    return $q;
  }

Symfony e google maps api V3

sfEasyGMap è un plugin per Symfony per utilizzare facilmente le Google Maps.

Questo plugin mette a disposizione Helpers e classi (in Symfony style) che offrono un livello di astrazione sulle API di google.

Il plugin sfEasyGMap che sfrutta le API di Google Maps versione 3 è:

http://svn.symfony-project.com/plugins/sfEasyGMapPlugin/branches/v3/

Admin Generator: definire la action principale

Per definire la action principale in una applicazione Symfony, generata con l’Admin Generator occorre modificare il file di configurazione di routing routing.yml.
Nel file:
apps/backend/config/routing.yml
Modificare e/o aggiungere la sezione homepage:

homepage:
  url:   /
  param: { module: events, action: index }

Dove in questo esempio:

  • backend: è il nome dell’applicazione genarata con l’admin generator;
  • events: è il nome del modulo principale;
  • index: è il nome della action di default.

Infine eliminare la cache affinchè le modifiche risultino attive:

php symfony cc

[symfony] formattare una data

Nella view è possibile gestire il formato delle date tramite la funzione format_date.
Esempio:

format_date($events->getApprovedAt(), "D");

Dato che tale funzione è fornita dell’helper Date, occorre inserire in cima al file di template (xxxSuccess.php) l’inclusione di tale helper:

use_helper("Date");
%d blogger hanno fatto clic su Mi Piace per questo: