[sfWidgetFormDoctrineJQueryUISortable], je n'y arrive pas !
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:
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:
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:
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:
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 :ccool: