it-swarm-es.tech

Redireccionamiento de campo modal de Joomla

He creado un campo modal de carga para cargar contenido en el directorio de imágenes y todo funciona perfectamente bien, excepto la redirección después de la carga.

Este es el formulario de carga en la ventana modal:

<form action="<?php echo JUri::base(); ?>index.php?option=com_file_manager&amp;task=file.upload&amp;tmpl=component&amp;<?php echo $this->session->getName() . '=' . $this->session->getId(); ?>&amp;<?php echo JSession::getFormToken();?>=1&amp;view=file" id="uploadForm" class="form-horizontal" name="uploadForm" method="post" enctype="multipart/form-data">
    <div id="uploadform" class="well">
        <fieldset id="upload-noflash" class="actions">
            <div class="control-group">
                <div class="control-label">
                    <label for="upload-file" class="control-label"><?php echo JText::_('COM_MEDIA_UPLOAD_FILE'); ?></label>
                </div>
                <div class="controls">
                    <input type="file" id="upload-file" name="Filedata[]" multiple /><button class="btn btn-primary" id="upload-submit"><i class="icon-upload icon-white"></i> <?php echo JText::_('COM_MEDIA_START_UPLOAD'); ?></button>
                </div>
            </div>
        </fieldset>
                <input type="hidden" name="return-url" value="<?php echo base64_encode('index.php?option=com_fal_manager&amp;view=file&amp;layout=modal&amp;tmpl=component'); ?>" />

    </div>
</form>

Y así es como se ve la redirección en el controlador:

public function upload() {
        // Check for request forgeries
        JSession::checkToken('request') or jexit(JText::_('JINVALID_TOKEN'));
        $files        = $this->input->files->get('Filedata', '', 'array');
        $return       = $this->input->post->get('return-url', null, 'base64');
        $this->folder = $this->input->get('folder', '', 'path');
        if ($return) {
            $this->setRedirect(base64_decode($return));
        }
}

Solo necesito que me lleve de vuelta al lugar original donde estaba antes de cargarlo, la url del modal es:

index.php?option=com_file_manager&view=videofile&layout=modal&tmpl=component&function=jSelectVideofile_jform_video

y después de subir:

index.php?option=com_file_manager&view=videofile&layout=modal&tmpl=component&function=jSelectVideofile_jform_video

Extraño, lo sé, es la misma URL, pero no es la misma página. Me lleva a la vista de lista de esa página.

Cualquier ayuda muy apreciada

3

El problema resultó ser algo tan simple como &amp;, Cambio simple:

<input type="hidden" name="return-url" value="<?php echo base64_encode('index.php?option=com_file_manager&amp;view=file&amp;layout=modal&amp;tmpl=component'); ?>" />

a:

<input type="hidden" name="return-url" value="<?php echo base64_encode('index.php?option=com_file_manager&view=file&layout=modal&tmpl=component'); ?>" />

Hizo el truco. Gracias a todos por sus aportes.

3

Tienes view=files en tus return-url entrada oculta del formulario. Luego, en el controlador, lo asigna a $return var y redirige utilizándolo. Es por eso que está siendo redirigido a la vista de lista.

1
Dmitry Rekun