Foros del Web » Programando para Internet » PHP » Zend »

- Error en plugin

Estas en el tema de - Error en plugin en el foro de Zend en Foros del Web. Muy buenas amigos. Estoy trabajando en un plugin para elegir el idioma para hacer el translate. Si viene por get la variable "idioma" se utiliza ...
  #1 (permalink)  
Antiguo 24/03/2011, 10:50
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 10 años, 1 mes
Puntos: 6
- Error en plugin

Muy buenas amigos.
Estoy trabajando en un plugin para elegir el idioma para hacer el translate.
Si viene por get la variable "idioma" se utiliza para cambiar el idioma.

Me sale este error:
Fatal error: Can't use method return value in write context in C:\wamp\www\Zendf\translate\library\ZC\Controller\ Plugin\LangSelector.php on line 13

No entiendo porque me dice que estoy en un "write context" si estoy en un plugin.
Código PHP:
Ver original
  1. class ZC_Controller_Plugin_LangSelector extends Zend_Controller_Plugin_Abstract
  2.    
  3. {
  4.     public function preDispatch(Zend_Controller_Request_Abstract $request)
  5.     {
  6.        
  7.         if(!empty ($request->getParam('idioma'))){      //esta es la linea 13
  8.         $idioma = $request->getParam('idioma');
  9.     }
  10.     else {
  11.     $idioma = "en";
  12.     }
  13. .
  14. .
  15. .

Si pueden ver porque me pasa esto, agradezco.

Saludos.
  #2 (permalink)  
Antiguo 24/03/2011, 10:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: - Error en plugin

El problema es que empty() como tal no es una función, si no un constructor del lenguaje, y no le puedes hacer directamente eso, tienes que usar algo como if ($request->has('idioma')) o directamente if (isset($request->idioma)) .

Saludos.
  #3 (permalink)  
Antiguo 24/03/2011, 19:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 10 años, 1 mes
Puntos: 6
Respuesta: - Error en plugin

Muchas gracias, el translate quedó bien.
Me quedó un pequeño problema... cuando quiero cambiar de idioma le agrego al link idioma/en (por ej. para ingles)

www.misitio.com/controller/action/idioma/en

El problema es que en los links de la pagina se pliega la variable idioma
ej:
Código PHP:
Ver original
  1. <a href="<?php echo $this->url(array('controller' => 'index', 'action' => 'index'));?>">Index</a>
Este link me queda www.misitio.com/index/index/idioma/en

¿Porque se me acopla la variable que paso por GET a los otros links? que puedo hacer para que esto no suceda.

Saludos.
  #4 (permalink)  
Antiguo 24/03/2011, 19:57
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 11 años, 10 meses
Puntos: 845
Respuesta: - Error en plugin

Que tal principianteZF,

el comportamiento por defecto es ese, te hace un "append" de las variables, pero lo podes resetear, algo asi:

Código HTML:
Ver original
  1. <a href="<?php echo $this->url(array('controller' => 'index', 'action' => 'index'),  null, true);?>">Index</a>

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: frameworks-y-php-orientado-a-objetos, plugin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:57.