Bonjour,

Je n'arrive pas à faire fonctionner le plugin sfWidgetFormDoctrineJQueryUISortable.
Dès que je déplace un élément, j'ai une alerte javascript qui affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
theres an error with AJAX
Je pense que l'erreur vient de la requête dans l'action du plugin, il doit y avoir un problème dans mon schéma.

shema.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TypeCarte:
  columns:
    id:
      type: integer(11)
      primary: true
      autoincrement: true
    name:
      type: string(100)
      notnull: true
      unique: true
    visuel:
      type: string(100)
    ordre:
      type: integer(11)
TypeCarteForm.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
    $this->widgetSchema['ordre'] = new sfWidgetFormDoctrineJQueryUISortable(array(
		'model'     => 'TypeCarte',
		'parent_object' => $this->getObject(),
		'method' => 'getTypeCarteMini', // Retourne le visuel du type de carte
		'key_method' => 'getPrimaryKey',
		'parent_key_method' => 'getPrimaryKey',
//		'order_by' => 'ordre',
		'query' => null,
		'table_method' => null,
		'grid' => true,
		'rank_field' => 'ordre'
    ));
J'ai pensé à créer une table TypeCarteOrdre car dans l'action du plugin on peut voir qu'il y a une liaison entre la table du modèle et un modèle parent que je ne pense pas avoir mais ca ne passe pas non plus, la même erreur s'affiche.

/plugins/sfWidgetFormDoctrineJQueryUISortable/modules/sfDoctrineJQueryUISortable/actions/actions.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class sfDoctrineJQueryUISortableActions extends sfActions
{
  public function executeSaveOrder(sfWebRequest $request)
  { 
    $model = $request->getParameter('model');
    $order = 'sfDoctrineJQueryUISortable' . $model;
    $parentModel = $request->getParameter('parent_model');
    $parentId = $request->getParameter('parent_id');
 
    if (empty($model) || empty($order) || empty($parentModel) || empty($parentId)
        || !is_array($request->getParameter($order)))
    {
      return sfView::NONE;
    }
 
    foreach ($request->getParameter($order) as $rank => $objectId)
    {
      $query = Doctrine_Query::create()
        ->from($model . ' m')
        ->innerJoin('m.' . $parentModel . ' p')
        ->where('m.id=? AND p.id=?', array($objectId, $parentId));
 
      $object = $query->fetchOne();
 
      if ($object instanceOf $model)
      {
        $object->setRank($rank);
        $object->save();
      }
    }
 
    return sfView::HEADER_ONLY;
  }
}

Merci pour votre aide