Pregunta

Estoy tratando de hacer una redirección de uno de mi módulo a administrador> Administrar cliente> Editar.

Mage::app()->getResponse()->setRedirect(Mage::helper("adminhtml")->getUrl("adminhtml/customer/edit/", array("id"=>$customer_id)));

La URL llamada parece ser buena, con una llave de URL.Pero esta URL conduce a una respuesta de 302 y me redirige automáticamente al tablero.

De hecho, parece que la URL generada es diferente de la URL real: las llaves no son las mismas para ambas, lo que explica por qué estoy redirigido, supongo.

Si deshabilito las teclas en URL desde Admin, la redirección está bien.

¿Puedes ayudarme con este problema? Muchas gracias.

¿Fue útil?

Solución

Eche un vistazo a ¿Cómo puedo¿Generar un enlace de administración desde un controlador frontend?

Respuesta corta: No puede, pero si crea un controlador de administración que actuará como un proxy para obtener la tecla de URL, haga la redirecta (ya que puede deshabilitar la validación de la URL de administración usando $_publicActions).

class MagePal_ProxyCustomerRedirect_Adminhtml_RedirectController extends Mage_Adminhtml_Controller_Action
{
    /**
     * Array of actions which can be processed without secret key validation
     *
     * @var array
     */
    protected $_publicActions = array('redirecttocustomer');

    public function redirecttocustomerAction()
    {
        // get the customer id pass by your observer (url key)
        Mage::app()->getResponse()->setRedirect(Mage::helper("adminhtml")->getUrl("adminhtml/customer/edit/", array("id"=>$customer_id)));

en su observador

  Mage::app()->getResponse()->setRedirect(Mage::helper("adminhtml")->getUrl("adminhtml/redirecttocustomer/edit/", array("id"=>$customer_id)));

Ver GeneracDicetAgCode

protected function _validateSecretKey()
{
    if (is_array($this->_publicActions) && in_array($this->getRequest()->getActionName(), $this->_publicActions)) {
        return true;
    }

    if (!($secretKey = $this->getRequest()->getParam(Mage_Adminhtml_Model_Url::SECRET_KEY_PARAM_NAME, null))
        || $secretKey != Mage::getSingleton('adminhtml/url')->getSecretKey()) {
        return false;
    }
    return true;
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top