2012-11-13 19 views
7

Ho un modulo di modifica Symfony2 per un'entità e uno dei campi è per l'immagine del profilo dell'utente.Symfony2 & Twig - widget di caricamento file tematico

Sto tentando di applicare il tema al widget di caricamento del file di Twig in modo che l'immagine corrente impostata per il campo sia visualizzata sopra l'input del file.

Finora, ho:

{% form_theme edit_form _self %} 
{% block field_widget %} 
    {% set type = type|default('text') %} 

    {% if type == 'file' %} 
     <img src="{{ value }}" /> 
    {% endif %} 

    {{ block('form_widget_simple') }} 
{% endblock %} 

Tutto funziona bene, tranne che la variabile valore è vuoto (che ha senso immagino).

La mia domanda è: come posso ottenere il percorso del file? C'è un modo per sceglierlo dai valori del modulo per il campo? Potrei forse passare attraverso un'opzione sul campo?

SRZ se questa è una domanda stupida, ancora abbastanza nuovo per Symfony e Twig ..

risposta

0

Quindi sembra Sono terribile a googling per Symfony roba. Alla fine ho trovato questa parte del ricettario Symfony: http://symfony.com/doc/master/cookbook/form/form_customization.html

Symfony2 lo chiama estensione del tipo di modulo e in realtà utilizzano l'aggiunta di un tag immagine al widget del file come esempio.

+2

Immagino che abbiano rimosso l'esempio lì. L'ho trovato in http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html – sglessard

5

Un modo migliore per personalizzare il widget del file sarà

{% block file_widget %} 
    {% spaceless %} 
    //Your custom content here 
    {% endspaceless %} 
{% endblock file_widget %} 

Ad esempio:

{% block file_widget %} 
    {% spaceless %} 
    <td>{% set type = type|default('file') %} 
     <input type="{{ type }}" {{ block('widget_attributes') }} /> 
    </td> 
    {% endspaceless %} 
{% endblock file_widget %} 

Ricorda che "{% senza spazio%}" è molto importante

+0

Ho visto 'spaceless' essere usato anche nei template di default. Ma ancora non so perché è importante. Cura di elaborare? – Taylan

+1

@Taylan sta per rimuovere gli spazi bianchi dall'output risultante. Questo non dovrebbe essere un grosso problema, ma ho visto un comportamento strano o addirittura non funziona quando non lo uso. Questo è ciò che dice ramoscello http://twig.sensiolabs.org/doc/tags/spaceless.html ma, ancora una volta, anche solo per rimuovere gli spazi, ho dei comportamenti strani quando no. –

Problemi correlati