Bonjour.
J'ai un sérieux problème. J'ai passé des heures à vérifier mon code et à le comparer à d'autres composants mais je ne vois aucune erreur.
Lorsque je clique sur le bouton "Editer" ou sur le titre d'un élément pour le modifier, la vue s'affiche (avec comme titre "Slide: [Editer]") avec le formulaire et tous les champs en question, mais tous les champs sont vides. J'ai l'impression que mon modèle n'arrive pas à récupérer les informations de l'élément à éditer. Et lorsque je remplis les champs et je clique sur "Sauver", un nouveau élément est ajouté (c'est donc la tâche "Add" qui est exécutée). Chose que je ne comprend pas.
Je vous donne le code de mon modèle car je crois que c'est de là que viens le problème.
com_skitter/models/slide.php
J'ai un sérieux problème. J'ai passé des heures à vérifier mon code et à le comparer à d'autres composants mais je ne vois aucune erreur.
Lorsque je clique sur le bouton "Editer" ou sur le titre d'un élément pour le modifier, la vue s'affiche (avec comme titre "Slide: [Editer]") avec le formulaire et tous les champs en question, mais tous les champs sont vides. J'ai l'impression que mon modèle n'arrive pas à récupérer les informations de l'élément à éditer. Et lorsque je remplis les champs et je clique sur "Sauver", un nouveau élément est ajouté (c'est donc la tâche "Add" qui est exécutée). Chose que je ne comprend pas.
Je vous donne le code de mon modèle car je crois que c'est de là que viens le problème.
com_skitter/models/slide.php
Code:
<?php defined('_JEXEC') or die( 'Restricted access' ); jimport('joomla.application.component.model'); class SkitterModelSlide extends JModel { var $_id = null; var $_data = null; function __construct() { parent::__construct(); $array = JRequest::getVar('cid', array(0), '', 'array'); $edit = JRequest::getVar('edit', true); if ($edit) { $this->setId((int)$array[0]); } } function setId($id) { $this->_id = $id; $this->_data = null; } function &getData() { if (empty($this->_data)) { $query = 'SELECT w.*, cc.title AS category,'. ' FROM #__skitter AS w' . ' LEFT JOIN #__categories AS cc ON cc.id = w.catid' . ' WHERE w.id = '.(int) $this->_id; $this->_db->setQuery($query); $this->_data = $this->_db->loadObject(); } if (!$this->_data) { $this->_data = new stdClass(); $this->_data->id = 0; $this->_data->catid = 0; $this->_data->image = null; $this->_data->link = null; $this->_data->label = null; $this->_data->checked_out = 0; $this->_data->checked_out_time = 0; $this->_data->published = 0; $this->_data->ordering = 0; } return $this->_data; } function store() { $row =& $this->getTable(); $data = JRequest::get('post'); // Bind the form fields to the slide table if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } // Make sure the slide table is valid if (!$row->check()) { $this->setError($this->_db->getErrorMsg()); return false; } // Store the slide table to the database if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); return false; } $this->_id = $row->id; return true; } function delete() { $cids = JRequest::getVar('cid', array(0), 'post', 'array'); $row =& $this->getTable(); if (count($cids)) { foreach ($cids as $cid) { if (!$row->delete($cid)) { $this->setError($row->getErrorMsg()); return false; } } } return true; } function publish($cid = array(), $publish = 1) { $user =& JFactory::getUser(); if (count($cid)) { JArrayHelper::toInteger($cid); $cids = implode(',', $cid); $query = 'UPDATE #__skitter' . ' SET published = '.(int) $publish . ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ) )' ; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } return true; } }