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

Ocultar Boton En Zend Framework

Estas en el tema de Ocultar Boton En Zend Framework en el foro de Zend en Foros del Web. Saludos gente del Foro. Sucede que estoy haciendo una aplicacion en Zend Framework, en la cual manejo una tabla de herramientas la cual debe dar ...
  #1 (permalink)  
Antiguo 21/11/2011, 09:07
Avatar de danj  
Fecha de Ingreso: octubre-2011
Ubicación: Calarcho
Mensajes: 53
Antigüedad: 12 años, 6 meses
Puntos: 1
Información Ocultar Boton En Zend Framework

Saludos gente del Foro.

Sucede que estoy haciendo una aplicacion en Zend Framework, en la cual manejo una tabla de herramientas la cual debe dar la opcion de agregar nueva herramienta solamente a los roles de administrador y super Administrador los cuales selecciono por medio de un select, pero necesito que los demas roles que tengo que son los de almacenista y de usuario no tengan esa opcion. eso lo estoy manejando con un javascript, para que me desaparezca un div dentro del cual puse el boton añadir nueva herramienta, necesito que me colaboren con esto, ya que no me llama el script de java en la vista.

el script lo estoy llamando de la siguiente manera:

Código PHP:
Ver original
  1. <script src="<?php $this->baseUrl()?>/js/menus.js"></script>

y el boton lo estoy bloqueando por el momento con un div, pero no es nada funcional, ya que me lo bloquea para todos los roles. el codigo es este:

Código PHP:
Ver original
  1. <div id="div_5" class="contenido" style="display: none;"><a href="<?php echo $this->url(array('controller'=>'herramientas', 'action'=>'add'));?>"><input id="del" type="button" value="Agregar herramienta" style="width: auto;"></a></div>

Espero me puedan ayudar.

Por favor decirme si no he sido lo bastante claro.

Saludos.

Última edición por danj; 21/11/2011 a las 10:03
  #2 (permalink)  
Antiguo 21/11/2011, 10:47
Avatar de juliostyle69  
Fecha de Ingreso: agosto-2011
Ubicación: Medellin
Mensajes: 10
Antigüedad: 12 años, 8 meses
Puntos: 0
Exclamación Respuesta: Ocultar Boton En Zend Framework

Hola danj.

Segun lo que entendi puedes hacer lo siguiente...

Crear una variable de session con el nivel de la cuenta, Supongo que 1 es invitado, 2 es almacenista y 3 admin; o 4 SuperAdmin...
Pues en el panel donde necesitas las herramietas, puedes hacer un If.

Código PHP:
if($_SESSION['nivel'] == "3")
{
   <script src="<?php $this->baseUrl()?>/js/menus.js"></script>
}
else
{
     <div id="div_5" class="contenido" style="display: none;"><a href="<?php     echo $this->url(array('controller'=>'herramientas''action'=>'add'));?>"><input id="del" type="button" value="Agregar herramienta" style="width: auto;"></a></div>

}

espero que te sirva, si tienes dudas, Comenta
  #3 (permalink)  
Antiguo 21/11/2011, 11:11
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: Ocultar Boton En Zend Framework

No te recomiendo utilizar variables de sesión en la vista.

Yo en la vista sólo utilizo helpers y controles de fujo (if, else, foreach while, etc).

Con lo cual, lo que haría (suponiendo que ya tienes funcionando el ACL y puedes, desde el controller de la vista correspondiente,saber que tipo de usuario está identificado), sería pasarle a la vista un variable tal que así:

Código PHP:
Ver original
  1. $this->view->role = $loqueseaqueuses;

Y luego en la vista, ayudándote de un helper, o no (yo aqui me baso en si voy a reutilizar este código o no) puedes hacer:

Código PHP:
Ver original
  1. $mostrar = '';
  2.  
  3. if( $this->role == "admin" ) {
  4.      $mostrar = 'style="display: none;"';
  5. }

... mas abajo

Código PHP:
Ver original
  1. <div id="div_5" class="contenido" <?php echo $mostar ?> >...</div>

Por supuesto, adáptalo a las necesidades.

Saludos
  #4 (permalink)  
Antiguo 21/11/2011, 12:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ocultar Boton En Zend Framework

Eso lo puedes controlar desde el mismo formulario, solo es cuestión de verificar el rol del usuario y añadir el formulario o no. ¿Estas usando Zend_Form? Si es así solo añade if donde lo necesites.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 21/11/2011, 13:56
Avatar de vanegasjd  
Fecha de Ingreso: octubre-2011
Ubicación: Armenia, Quindio
Mensajes: 20
Antigüedad: 12 años, 6 meses
Puntos: 0
SAludos a Todos !!!

La cuestion es la siguiente
Tengo un formulario con sus respectivos campos

lo que que quiero es que solo salgan las opciones de editar eliminar agregar y guardar para los administradores y almacenista

para los usuarios solo quiero q salga el formulario con los datos registrados...


Código PHP:
Ver original
  1. <a href="<?php echo $this->url(array('controller'=>'materiales','action'=>'anyadir'));?>"><input id="del" type="button" value="Agregar material" style="width: auto;"></a>
  2. <br><br>
  3. <div id="contend">
  4. <table id="tablas" cellpadding="0" cellspacing="0" border="0" class="display">
  5. <thead>
  6.     <tr>
  7.         <th>NOMBRE</th>
  8.         <th>UNIDAD</th>
  9.         <th>DESCRIPCION</th>
  10.         <th>ESTADO</th>
  11.         <th>ALMACEN</th>
  12.         <th>BODEGA</th>
  13.         <th>&nbsp;</th>
  14.     </tr>
  15.     </thead>
  16.     <tbody>
  17.     <?php foreach($this->materiales as $material) : ?>
  18.     <tr>
  19.         <td><?php echo $this->escape($material->nombre);?></td>
  20.         <td><?php echo $this->escape($material->unidad);?></td>
  21.         <td><?php echo $this->escape($material->descripcion);?></td>
  22.         <td><?php echo $this->escape($material->nomestado);?></td>
  23.         <td><?php echo $this->escape($material->nomalmacen);?></td>
  24.         <td><?php echo $this->escape($material->nombodega);?></td>
  25.         <td>
  26.             <a href="<?php echo $this->url
  27. (array('controller'=>'materiales', 'action'=>'editar', 'idmateriales'=>$material->idmateriales));?>"><img src="<?php echo $this->baseUrl()?>/img/tablas/update.png" title="Editar"  style="cursor: pointer; border: 0;" /></a>
  28.             <a href="<?php echo $this->url(array('controller'=>'materiales', 'action'=>'borrar', 'idmateriales'=>$material->idmateriales));?>"><img src="<?php echo $this->baseUrl()?>/img/tablas/cancel.png" title="Eliminar"   style="cursor: pointer; border: 0;" /></a>
  29.         </td>
  30.     </tr>
  31.     <?php endforeach; ?>
  32.     </tbody>
  33. </table>
  34. </div>

Alguien me puede orientar como puedo deshabilitar estas opciones estos metods?

Para los Usuarios

Última edición por GatorV; 21/11/2011 a las 14:24
  #6 (permalink)  
Antiguo 21/11/2011, 14:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Formulario zend framework

¿Como manejas los permisos de los usuarios?, si usas Zend_Acl por ejemplo es cuestión de que uses isAllowed para verificar.

Saludos.
  #7 (permalink)  
Antiguo 21/11/2011, 15:45
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Ocultar Boton En Zend Framework

Me parece según entiendo el quiere hacer un link que de acuerdo al rol se muestre o no, no conozco en detalle a Zend pero me imagino que debería tener un helper anchor que reciba como parámetro esos datos y de acuerdo a ello se muestre o no. Ahora si no lo tiene..... me decepcionaría mucho.

Saludos
__________________
Drupal Argentina
  #8 (permalink)  
Antiguo 21/11/2011, 16:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Ocultar Boton En Zend Framework

Tiene algo mejor, debería de usar Zend_Acl para eso, y en el controller haces esa verificación, recuerda que la vista debe de ser simple:
Código PHP:
Ver original
  1. //controller
  2. $this->view->canAdd = $Acl->isAllowed($currentUser, 'add');

En la vista:
Código PHP:
Ver original
  1. <?php if ($this->canAdd) { ?>
  2. <Boton para agregar>
  3. <?php } ?>

Saludos.
  #9 (permalink)  
Antiguo 21/11/2011, 19:24
 
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Exclamación Variables de session en ZEND

Sucede que estoy haciendo una aplicacion en Zend Framework, en la cual manejo una tabla de herramientas la cual debe dar la opcion de agregar nueva herramienta solamente a los roles de administrador y super Administrador los cuales selecciono por medio de un select, pero necesito que los demas roles que tengo que son los de almacenista y de usuario no tengan esa opcion. eso lo estoy manejando con un javascript, para que me desaparezca un div dentro del cual puse el boton añadir nueva herramienta, necesito que me colaboren con esto, ya que no me llama el script de java en la vista.

he estado deshabilitando botones con
Código PHP:
Ver original
  1. style="display: none;"
, para deshabilitar el div contiene el boton

pero pasa que la vista herramientas, la uso para el rol administrador y usuario entonces la funcion
Código PHP:
Ver original
  1. style="display: none;"
no sirve por que se deshabilita en las dos y necesito que se deshabilite solo en usuarios

lo hice usando javascript

function menus(){
switch (document.opciones.opcion.value) {

case "1":
document.getElementById('div_5').style.display = "none";
break;
case "2":
document.getElementById('div_5').style.display = "block";
break;
case "3":
document.getElementById('div_5').style.display = "block";
break;

aqui digo que me esconda la division 5, el caso 1 es usuario

y asi lo llamo en la vista pero no pasa nada

Código Javascript:
Ver original
  1. <script src="<?php $this->baseUrl()?>/js/menus.js"></script>
y la division

Código HTML:
Ver original
  1. <div id="div_5" class="contenido" style="display: none;"><a href="<?php echo $this->url(array('controller'=>'herramientas', 'action'=>'add'));?>"><input id="del" type="button" value="Agregar herramienta" style="width: auto;"></a></div>

me han dicho que se puede hacer con variables de session pero no las se manejar muy bien... me pueden ayudar ! he estaho haciendo esto desde la semana pasada y es para mañana
gracias de antemano !
  #10 (permalink)  
Antiguo 21/11/2011, 19:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Variables de session en ZEND

De hecho necesitas una forma de "recordar" que tipo de usuario es el actual, y eso lo haces con una variable de sesión, luego es conveniente usar Zend_Acl para ello.

Aquí hay 3 temas que tratan de lo mismo, supongo es una tarea así que voy a unir los 3 temas.

Saludos.
  #11 (permalink)  
Antiguo 24/11/2011, 14:41
 
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Ocultar Boton En Zend Framework

Lo He Resuelto... He Creado Una Variable Get y Por Medio de Url He Dicho Que Si Es Igual a 4 que es usuario no me muestre el boton y que si es igual a 3 me lo muestre
  #12 (permalink)  
Antiguo 24/11/2011, 16:31
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Ocultar Boton En Zend Framework

Mas fácil lo hubieras hecho con un link que diga "No pulse aqui!" ¬¬
__________________
Drupal Argentina

Etiquetas: formulario, framework, javascript, php, select, session, variables
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 14:16.