Le sauvegarde des enregistrements en joomla
débuteur joomla
-
prophet design -
prophet design -
Bonjour,
je suis entrain de créer un nouveau composant "Restaurant Reviews "avec joomla en suivant un tutoriel que je l'ai trouver sur internet
tout marche bien mais le bouton sauver et le bouton appliquer ne font pas l'insertion dans la base de donnée et envoie une page vide alors qu'il faut retourner a la page où nous avons tous les enregistrements.le bouton supprimer marche bien
merci de me donner une solution
je suis entrain de créer un nouveau composant "Restaurant Reviews "avec joomla en suivant un tutoriel que je l'ai trouver sur internet
tout marche bien mais le bouton sauver et le bouton appliquer ne font pas l'insertion dans la base de donnée et envoie une page vide alors qu'il faut retourner a la page où nous avons tous les enregistrements.le bouton supprimer marche bien
merci de me donner une solution
A voir également:
- Le sauvegarde des enregistrements en joomla
- Logiciel de sauvegarde gratuit - Guide
- Sauvegarde facile - Télécharger - Sauvegarde
- Sauvegarde des données - Guide
- Sauvegarde windows 10 - Guide
- Sauvegarde facebook - Guide
5 réponses
Bonjour à tous,
même problème : le bouton "Sauver" et "Appliquer" me renvoie à la page de login administrateur, au lieu de retourner à la liste des enregistrements. La suppression fonctionne.
Le message est un peu ancien, mais si quelqu'un passe par là et a une solution...
même problème : le bouton "Sauver" et "Appliquer" me renvoie à la page de login administrateur, au lieu de retourner à la liste des enregistrements. La suppression fonctionne.
Le message est un peu ancien, mais si quelqu'un passe par là et a une solution...
Bonjour ,
cela provient peut-être de la durée de vie du cache limitée par défaut à 15 minutes ;
Donc si en Admin tu bosses + de 15 mn avant d'enregistrer , retour à l'écran de connexion ....
Pour changer , se connecter en Admin , configuration , onglet Système , et partie à droite , cadre paramètres du cache , rentrer une durée au choix -
A tester
Cordialement
Shô
cela provient peut-être de la durée de vie du cache limitée par défaut à 15 minutes ;
Donc si en Admin tu bosses + de 15 mn avant d'enregistrer , retour à l'écran de connexion ....
Pour changer , se connecter en Admin , configuration , onglet Système , et partie à droite , cadre paramètres du cache , rentrer une durée au choix -
A tester
Cordialement
Shô
Bonjour,
j'ai le défaut immédiatement, dès que je me connecte, et cela fonctionne si je supprime un enregistrement, c'est seulement si je veux sauvegarder ou appliquer. Voici mon code :
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once( JApplicationHelper::getPath( 'admin_html' ) );
JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');
switch($task)
{
case 'edit':
case 'add':
editAgent( $option );
break;
case 'apply':
case 'save':
sauveAgent( $option, $task );
break;
case 'remove':
supAgent( $option );
break;
default:
listeAgents( $option );
break;
}
function editAgent( $option )
{
$row =& JTable::getInstance('annuaire', 'Table');
$cid = JRequest::getVar( 'cid', array(0), '', 'array' );
$id = $cid[0];
$row->load($id);
HTML_annuaire::editAgent($row, $lists, $option);
}
function sauveAgent( $option, $task )
{
global $mainframe;
$row =& JTable::getInstance('annuaire', 'Table');
if (!$row->bind(JRequest::get('post')))
{
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}
if (!$row->store())
{
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}
switch ($task)
{
case 'apply':
$msg = 'Modification effectuée';
$link = 'index.php?option=' . $option . '&task=edit&cid[]='. $row->id;
break;
case 'save':
default:
$msg = 'Enregistrement sauvegardé';
$link = 'index.php?option=' . $option;
break;
}
$mainframe->redirect($link, $msg);
}
function listeAgents( $option )
{
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__agents";
$db->setQuery( $query );
$rows = $db->loadObjectList();
if ($db->getErrorNum()) {
echo $db->stderr();
return false;
}
HTML_annuaire::listeAgents( $option, $rows );
}
function supAgent( $option )
{
global $mainframe;
$cid = JRequest::getVar( 'cid', array(), '', 'array' );
$db =& JFactory::getDBO();
if(count($cid))
{
$cids = implode( ',', $cid );
$query = "DELETE FROM #__agents WHERE id IN ( $cids )";
$db->setQuery( $query );
if (!$db->query())
{
echo "<script> alert('".$db->getErrorMsg()."');
window.history.go(-1); </script>\n";
}
}
$mainframe->redirect( 'index.php?option=' . $option );
}
?>
j'ai le défaut immédiatement, dès que je me connecte, et cela fonctionne si je supprime un enregistrement, c'est seulement si je veux sauvegarder ou appliquer. Voici mon code :
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once( JApplicationHelper::getPath( 'admin_html' ) );
JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');
switch($task)
{
case 'edit':
case 'add':
editAgent( $option );
break;
case 'apply':
case 'save':
sauveAgent( $option, $task );
break;
case 'remove':
supAgent( $option );
break;
default:
listeAgents( $option );
break;
}
function editAgent( $option )
{
$row =& JTable::getInstance('annuaire', 'Table');
$cid = JRequest::getVar( 'cid', array(0), '', 'array' );
$id = $cid[0];
$row->load($id);
HTML_annuaire::editAgent($row, $lists, $option);
}
function sauveAgent( $option, $task )
{
global $mainframe;
$row =& JTable::getInstance('annuaire', 'Table');
if (!$row->bind(JRequest::get('post')))
{
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}
if (!$row->store())
{
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}
switch ($task)
{
case 'apply':
$msg = 'Modification effectuée';
$link = 'index.php?option=' . $option . '&task=edit&cid[]='. $row->id;
break;
case 'save':
default:
$msg = 'Enregistrement sauvegardé';
$link = 'index.php?option=' . $option;
break;
}
$mainframe->redirect($link, $msg);
}
function listeAgents( $option )
{
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__agents";
$db->setQuery( $query );
$rows = $db->loadObjectList();
if ($db->getErrorNum()) {
echo $db->stderr();
return false;
}
HTML_annuaire::listeAgents( $option, $rows );
}
function supAgent( $option )
{
global $mainframe;
$cid = JRequest::getVar( 'cid', array(), '', 'array' );
$db =& JFactory::getDBO();
if(count($cid))
{
$cids = implode( ',', $cid );
$query = "DELETE FROM #__agents WHERE id IN ( $cids )";
$db->setQuery( $query );
if (!$db->query())
{
echo "<script> alert('".$db->getErrorMsg()."');
window.history.go(-1); </script>\n";
}
}
$mainframe->redirect( 'index.php?option=' . $option );
}
?>
Bon je crois que j'ai trouvé : en fait il n'aime pas les caractères accentués dans $msg (effectué, sauvegardé,...), en effet si je les enlève cela fonctionne, ou bien je remplace le é par & + eacute";
Bonne continuation.
Bonne continuation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moi aussi j'ai eu des problèmes comme les votres avec la fonction apply et save, je vais essayer de vous expliquer comment régler ça simplement.
dans le model ajouter :
Voilà j'espère avoir aidé qqn...
dans le model ajouter :
function store($data)
{
global $mainframe, $option;
$mainframe->redirect('index.php?option='.$option.'&controller=votre controller&task=edit&cid='.$id, JText::_( 'APPLYED' ));
Voilà j'espère avoir aidé qqn...