Pagine

martedì 22 marzo 2011

Cambiare la pagina di errore 404 su Symfony

Modificare la pagina di errore 404 in Symfony è molto semplice e veloce.
  1. Creare il modulo default
    (basta creare la cartella, non è necessario alcun comando particolare)
  2. Create la sottocartella templates
  3. Creare il file error404Success.php
Per eventuali altre modifiche al modulo di default (all'azione error404 ad esempio) basta copiare nel nostro nuovo modulo il file da ridefinire prendendolo dalla cartella

sfConfig::get('sf_symfony_lib_dir')/controller/default/

dove sf_symfony_lib_dir è la cartella che contiene la libreria di Symfony.

Un esempio di contenuto della pagina può essere

<?php decorate_with('mylayout.php') ?>
<div>
<h1>Pagina non trovata</h1>
<h5>Il server ha restituito un errore 404</h5>
<div >
<p><strong>La pagina richiesta non &egrave; disponibile.</strong> 
Se hai inserito l'indirizzo url manualmente 
controlla di averlo scritto correttamente.</p>
<p>
Se invece hai raggiunto questa pagina tramite 
un'altra pagina del sito puoi:
</p>
    <ul>
      <li><a href="javascript:history.go(-1)">Tornare alla pagina precedente</a></li>
      <li><?php echo link_to('Tornare alla homepage', '@homepage') ?></li>
    </ul>
</div>
</div>

L'istruzione decorate_with è facoltativa, serve per dire a symfony quale layout usare (tra quelli nella cartella dei templates)

Per maggiori  informazioni/opzioni vedere la documentazione ufficiale alla pagina
http://www.symfony-project.org/gentle-introduction/1_4/it/19-Mastering-Symfony-s-Configuration-Files

lunedì 7 marzo 2011

Aprire link amministrazione in una nuova finestra

L'admin generator di Symfony è una manna dal cielo, ma stranamente non permette di impostare il target per i link in amministrazione. Nel mio caso ad esempio dovevo aprire un pdf collegato ad un documento.

Realizzarlo con JQuery è molto semplice.

Basta aggiungere un evento al load della pagina (es nel template) e impostare classname al nome della classe del tag che contiene il link (dovrebbe essere un LI).

<script>
$(document).ready(function() {
classname='sf_admin_action_show'; 
$('.'+classname+' a').click(function(){
  if ($(this).parent().hasClass(classname)) {
       window.open($(this).attr('href'),'_blank');
       return false; 
  } 
});
</script> 

mercoledì 9 febbraio 2011

Nascondere il pulsante Aggiungi nell'admin generator

Dopo qualche mese di lavoro serrato ho deciso di ricominciare a postare un po' di codice. Inizio con qualcosa di semplice ma utile specialmente per i neofiti.
Come nascondere il pulsante "Aggiungi" nell'area inferiore dell'interfaccia di amministrazione creata con il comando generate-admin.
Semplice e veloce,basta assegnare delle credenziali inesistenti all'azione new nel file generator.yml

config:
  actions:
    _new:     { label: "Aggiungi" }
    _edit:    { label: "Modifica" }
    _delete:  { label: "Elimina"  }
    _new:     { credentials: [fake] }
  fields: