2011-10-24 2 views
0

Pour mon entreprise, je travaille sur un module de traduction personnalisé pour Magento. Sur le formulaire pour traduire une chaîne existante, je voudrais changer le comportement du bouton "Save And Continue" en un bouton "Save And Next". Avec lequel je veux dire qu'au lieu d'éditer encore la même chaîne, vous obtenez le prochain en ligne.Magento Save And Next

J'ai essayé de modifier le lien qui est appelé le Enregistrer et continuer:

Original: 
[save-link] + "/back/edit/" 

To: 
[save-link] + "/back/edit/id/[id]/" 

Mais en vain. J'espère que quelqu'un peut me mettre dans la bonne direction.

Le code inchangé de l'édition forme:

<?php 

class Phpro_Advancedtranslate_Block_Adminhtml_Edit extends Mage_Adminhtml_Block_Widget_Form_Container 
{ 
    public function __construct() 
    { 
     parent::__construct(); 

     $this->_objectId = 'id'; 
     $this->_blockGroup = 'advancedtranslate'; 
     $this->_controller = 'adminhtml'; 

     $this->_updateButton('save', 'label', Mage::helper('advancedtranslate')->__('Save Item')); 
     $this->_updateButton('delete', 'label', Mage::helper('advancedtranslate')->__('Delete Item')); 

     $this->_addButton('saveandcontinue', array(
      'label'  => Mage::helper('adminhtml')->__('Save And Next'), 
      'onclick' => 'saveAndContinueEdit()', 
      'class'  => 'save', 
     ), -100); 

     $currentId = Mage::getSIngleton('adminhtml/session')->getTranslateId(); 
     $strings = Mage::getModel("advancedtranslate/advancedtranslate")->getCollection(); 
     foreach ($strings as $string) { 
      $id = $string->getId(); 

      if ($id != $currentId && $id < $nextId) { 
       $nextId = $id; 
      } 
     } 

     $this->_formScripts[] = " 
      function toggleEditor() { 
       if (tinyMCE.getInstanceById('advancedtranslate_content') == null) { 
        tinyMCE.execCommand('mceAddControl', false, 'advancedtranslate_content'); 
       } else { 
        tinyMCE.execCommand('mceRemoveControl', false, 'advancedtranslate_content'); 
       } 
      } 

      function saveAndContinueEdit(){ 
       editForm.submit($('edit_form').action+'back/edit/'); 
      } 
     "; 
    } 

    public function getHeaderText() 
    { 
     return Mage::helper('advancedtranslate')->__("Edit Item '%s'", 'test'); 

    } 
} 

Répondre

2

Cette fonctionnalité doit se produire dans le contrôleur qui gère le Post. Définissez le _redirect à rediriger vers l'élément suivant.

+0

Fonctionne parfaitement! Merci. – Jeroen