Urls amigables para páginas estáticas

Buenas

Veamos, tengo un proyecto con bastantes páginas estáticas. En mi urlmanager tengo esto




 '<view:(laboratorio|calidad)>' => array('site/page', 'urlSuffix' => '.html'),

'analisis-clinicos' => array('analitica/index', 'urlSuffix' => '.html'),



Funciona correctamente, pero no se como hacer que al crear las urls me las cree ya "bonitas" directamente (es decir, laboratorio.html, analisis-clinicos.html, etc.

Esto lo he usado en otro proyecto con anterioridad y las urls me las genera correctamente, solo que en el anterior use para crear el menú zii.widgets.cmenu y en este estoy poniendo los enlaces con CHtml::link




echo CHtml::link('El laboratorio', array('site/page', 'view' => 'laboratorio'));



Alguien me puede echar un cable? gracias desde ya

No deberías simplemente poner




CHtml::link('El Laboratorio',$this->createUrl('site/page',array('view'=>'laboratorio')); 



?

Mañana lo pruebo cuando llegue al curro. El tema es que en la documentación

http://www.yiiframework.com/doc/api/1.1/CHtml#link-detail

dice que si la url la pasas como array createUrl se llama por defecto

http://www.yiiframework.com/doc/api/1.1/CHtml#normalizeUrl-detail

Con lo cual, en teoría, no hace falta no?

Vale que tontería, tenía las reglas por defecto que trae yii y me chafaban la mía… simplemente con las reglas que he puesto funciona.

Antonio, como tu dices tambien funciona, gracias, pero si pasas la url como array la genera el (internamente hace lo mismo).

Gracias a todos

Hola espero esten bien, me llamo la atención el control que indicaron, ando realizando el color una imágen en x módulo de yii, pero necesito posicionarlo con css y ponerle una imágen con el siguiente código que ustedes indicaron:




CHtml::link('El Laboratorio',$this->createUrl('site/page',array('view'=>'laboratorio')); 



Se puede poner una imágen y posicionamiento CSS???, si es asi como se realiza eso???

No he entendido muy bien lo que dices, pero si lo que quieres es poner un estilo a un vinculo entonces debes hacerlo con el parametro htmlOptions:




// con una clase CSS

CHtml::link('El Laboratorio',$this->createUrl('site/page',array('view'=>'laboratorio'),array('class'=>'myclaseCSS')); 

// con estilos

CHtml::link('El Laboratorio',$this->createUrl('site/page',array('view'=>'laboratorio'),array('style'=>'aquiMisEstilos')); 



A ok ok, muchas gracias si había visto que el css se indica de esa manera pero pense que habría otra manera de indicarlo, por eso pregunte, pero bueno les planteare mi problema, necesito poner "x" imágenes con links, estaba pensando utilizar la que tu planteas Antonio que es la que veo que maneja en la búsqueda avanzada:




echo CHtml::link('','#',array('class'=>'search-button'));

//Aquí le quite el texto y se lo puse dentro de un css, forzando a que aparezca la imágen ya que no encontre la

//clase donde se encuentra search-button, si alguien me podría decir en que parte de yii se encuentra les //agradecería mucho.



Entonces pregunte en el foro porque tengo la necesidad de cambiar los textos que se muestran en Operations como los cuales son List, Create, Manage etc, estas etiquetas las deseo cambiar por imágenes para el usuario para una mayor referencia para usuarios mortales y me indicaron que lo haga de la siguiente manera:




$this->widget('zii.widgets.CMenu', array(

        'items'=>array(

                 array('label'=>'<img title="Agregar" src="'.Yii::app()->request->baseUrl.'/images/iconos/agregar.png">', 

				 'url'=>array('create'),'itemOptions'=>array('class'=>'agrega'),

                ),

        ),

        'encodeLabel' => false,

));



Notése que estoy agregando un tag de html para indicar imagenes, y estoy obteniendo la ruta de la imágen y le digo a donde viaje cuando le de clic, pero la verdad se me hace mucho código, usaré la linea anterior a esta o como tu das el ejemplo Antonio, veo que le indicas una URL para cuando el usuario de clic, lo envie por ejemplo a Create, y dentro de la clase agrega yo indique con el background la imágen y no ponerla como el ejemplo que me dieron ya que de esta manera estoy batallando para hacer indicar un hover en esa clase, espero me haya dado a entender y por último abusando de tu generosidad sabes en donde se encuentra el código CSS de search-form???, es el de la búsqueda avanzada nada mas he podido encontrar el id pero necesito encontrar las clases agradeceria mucho tu ayuda dejo una imágen de como llevo el diseño.

P.D. El diseño que estoy mostrando es de otro sistema, nada mas tome mas las imágenes mientras me diseñan las que usare…

Hola de nuevo, sobre el código que dejaste antonio de esta manera no me funciono me desaparece la imágen si es que tengo esto $this->createUrl(‘usuario/create’, de hecho no me aparece la capa dentro de yii, pero si al principio le pongo cualquier texto si aparece eso la verdad no supe por que.




echo CHtml::link('',$this->createUrl('usuario/create',array('class'=>'agregaNew')));



Pero se me ocurrio hacerlo de la siguiente manera la cuál si me aparece la imágen y si hago clic en ella si me envia a la parte que le indico, no se si esta bien indicado la manera en que lo pongo espero me puedas decir si esta bien o mal ya que aunque en el css le indique display:block; no aparece como en el código anterior.




echo CHtml::link('','index.php?r=usuario/create',array('class'=>'agregaNew','title'=>'Agregar'));



Saludos…