Liste d’objets ordonnable via AJAX partie 1


Samuel Breton
Liste d’objets ordonnable via AJAX...

Aujourd’hui, voyons les fonctions sortables permettant de changer la position d’objet, de les ordonner et de sauvegarder l’ordre. C’est toujours pratique pour organiser une galerie photo, ou des éléments dans votre site internet.

Toutes les informations sur l’objet que nous souhaitons ordonner et/ou classer seront stockées en base :
schema.yml

Item:
  columns:
    name:
      type: string(255)
    rank:
      type: integer
      notnull: true
      unique: true

(suite…)

Show Comments (3)

Comments

  • Éric Rogé

    Le plugin csDoctrineActAsSortablePlugin marche déjà pas mal du tout, tu devrais y jeter un coup d’oeil.

    http://www.symfony-project.org/plugins/csDoctrineActAsSortablePlugin

    Pour la réorganisation d’éléments, il est toujours plus agréable de faire ça en drag & drop quand la liste est suffisamment courte.
    Fabien avait rédiger un tutoriel sur la question, il est basé sur Prototype, mais les changements pour l’adapter à jQuery UI et autres sont minimes : http://www.symfony-project.org/cookbook/1_2/en/sortable

    • Article Author
  • Nikaw

    J’ai déjà lu le tuto de Fabien sur le CookBook, je me suis même basé dessus, mais il utilise une méthode du helper javascript, et sachant que les helpers javascript et form seront retirés de symfony sur la version 1.4 il fallait faire sans.

    En revanche, j’avais pas pensé à chercher dans les plugins, et c’est vrai que celui dont tu donnes le lien à l’air puissant, et surtout ultra-pratique ! Merci.

    • Article Author
  • Nikaw

    Pour ceux que ça intéresse, j’ai testé ce plugin.
    Il est effectivement très bien.
    En réalité, c’est le contraction de tout ce qui est expliqué dans ce post dans un behavior, ce qui est excessivement pratique.

    En revanche, il comporte des erreurs, en gros il n’a pas l’air fini.

    J’en ai corrigé une ou deux, il fonctionne sur cette implémentation succinte, mais impossible de savoir s’il subsiste d’autres erreurs (des variables non définies dans les classes, des lettres manquantes : « beginTransation » au lieu de « beginTransaction »).

    Je ferais probablement un petit post dessus prochainement.

    • Article Author

Recevez nos articles