Re: Como llamo una metodo de AppController desde un modelo

2008-01-28 Por tema Arantxa Grajal
Hola,

yo tenía la misma duda que tu, la solución que tome fue crear en el
bootstrap una función que me lee la variable de session del usuario y me
devuelve los datos del usuario.

me queda algo así

function getUserSession () {
$vsession=new CakeSession;
$datos=$vsession-read(Configure::read('Session.cookie'));
return $datos;
}

Espero que te sirva.

Un saludo

El día 26/01/08, Joaquin Windmüller [EMAIL PROTECTED] escribió:

 No se hay acceso al controller desde el modelo. Pasa desde el controlador
 al modelo los valores como parámetros.

 2008/1/26 Kurt [EMAIL PROTECTED]:

 
  Si pero yo no quiero llamar un metodo del controlador de ese modelo
  desde el modelo.
 
   Quiero llamar un metodo creado en AppController desde un modelo X.
 
  Yo entre las cosas que quiero hacer es que me devuelva el id del
  usuario de sesion logueado y eso lo hace un metodo q cree en
  AppController quiero que lo haga a lo q cargeu el modelo porq
  dependiendo de eso el hace la consulta. Pero eso es una de las tantas
  cosas que quiero hacer usando metodos desde AppController.
 http://aikon.com.ve/
   
 

--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: Cambiar layout en funcion del tipo de usuario en OthAuth

2008-01-28 Por tema Narel

Buenas dandreta,

Según el resultado que te devuelva el método que compruebe el logueo,
puedes decirle en tu controlador que cambie el layout, en su variable
para ello ($this-layout = 'el_layout_que_quieres' -- estando en el
controlador).

Revisa http://api.cakephp.org/1.2/class_controller.html para ver todos
los métodos y variables del controlador. Más de una vez me ha venido
bien a mi.

Un saludo.

On 27 ene, 14:48, dandreta [EMAIL PROTECTED] wrote:
 Hola!!
 He aplicado el componente othauth para definir los grupos de usuarios
 y sus permisos siguiendo el artículo de Bakery.
 Quiero que al loguearse un usuario, muestre la pantalla principal con
 un layout diferente en funcion del grupo al que pertenezca el usuario
 que se ha logueado.
 ¿Sabeis como puedo hacerlo?
 ¿alguna sugerencia o enlace sobre esto?

 Gracias de antemano y un saludo
--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: i18n con cakephp 1.2

2008-01-28 Por tema minskog
¿Me llegaste a enviar algo?

El día 22/01/08, minskog [EMAIL PROTECTED] escribió:

 E mismo de la lista, muchas gracias :)

 El día 22/01/08, boriscy [EMAIL PROTECTED] escribió:
 
 
  No tengo eso pero si quieres te puedo pasar el codigo fuente para que
  lo revises. Solo dame tu email te lo envio para que puedas hacer lo
  que dices
 
  On 21 ene, 08:58, minskog  [EMAIL PROTECTED] wrote:
   Tienes por ahí a mano enlaces donde se explique como va el translation
   behaviour de 1.2-beta? Me refiero al tema de crear y actualizar
  registros
   amén de sacar el campo del idioma por defecto si no existe el del
  idioma
   activo.
  
   El día 17/01/08, boriscy [EMAIL PROTECTED] escribió:
  
  
  
Bueno esto servira como respuesta para algunas Personas que lo
necesiten.
Yo quiero almacenar la información original en mi language español
(default) en el modelo en este caso Page y tiene como tabla
  pages·
y cuando use otro idioma busque esto en la tabla i18n que cake
  obtiene
automaticamente. Obviamente para hay que hacer uso de la
  localizacion
  
En el app_controller.php lo hice de esta manera, esto permite l10n
Localizacion pero no internacionalizacion
  
function beforeFilter()
{
$this-L10n = new L10n();
$languages = array('eng', 'spa');
  
$lang = $this-Session-check('lang') ? $this-Session-
read('lang'):'spa';
  
if(isset($this-params['named']['lang'])  in_array($this-
params['named']['lang'],$languages) ){
$lang = $this-params['named']['lang'];
$this-Session-write('lang',$lang);
}else{
$this-Session-write('lang',$lang);
}
  
$this-L10n-get($lang);
Configure::write('Config.language', $lang);
}
  
Para que pueda funcionar correctamente la localizacion es necesario
  un
archivo locale/esp/LC_MESSAGES/default.po en esa ruta donde se
realiza las traducciones de la sigueinte manera
  
msgid content
msgstr Contenido
  
Mejor si codificas los archivos .po con UTF8
  
para poder presentar lo haces asi
__('content')
  
y en caso de que este en español la localizacion te presentara
Contenido.
tamiben puedes usar de esta forma
echo __('content', true);
  
Ahora te recomiento de que en archivo bootstrap.php
crees la constante
define('DEFAULT_LANGUAGE', 'spa');
  
Una ves ya hayas terminado la localización ahora debemos realizar la
internacionalización
  
Para esto he creado una tabla con el nombre pages y su modelo Page y
 
oviamente con su controlador Pages
  
En el modelo Page haz lo siguiente:
  
class Page extends AppModel
{
var $displayField = 'name';
var $actsAs = array();
  
function setLanguage()
{
$lang = Configure::read('Config.language');
if(DEFAULT_LANGUAGE!=$lang)
$this-actsAs = array('Translate' = array('content',
'name'));
$this-__construct(false, null, null);
}
}
  
Como puedes ver solo los campos (content, name) seran traducidos
  
Y para que puedas desplegar correctamente el contenido original que
  se
saca de la tabla pages y el traducido de la tabla i18n haces lo
siguiente
en tu controlador PagesController
  
public function index($page = null)
{
$this-Page-setLanguage();
if($page==null){
$text = $this-Page-findByUrl('Inicio');
}else{
$text = $this-Page-findByUrl($page);
}
$this-set('texto', $text);
}
  
Ya en tu vista manejas los datos como lo harias con cualquier otro
controlador.
   
 


--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: i18n con cakephp 1.2

2008-01-28 Por tema boriscy

como estas por favor dame la dirección de tu email no se a que email
debo enviar las muestras?


On 28 ene, 08:45, minskog [EMAIL PROTECTED] wrote:
 ¿Me llegaste a enviar algo?

 El día 22/01/08, minskog [EMAIL PROTECTED] escribió:



  E mismo de la lista, muchas gracias :)

  El día 22/01/08, boriscy [EMAIL PROTECTED] escribió:

   No tengo eso pero si quieres te puedo pasar el codigo fuente para que
   lo revises. Solo dame tu email te lo envio para que puedas hacer lo
   que dices

   On 21 ene, 08:58, minskog  [EMAIL PROTECTED] wrote:
Tienes por ahí a mano enlaces donde se explique como va el translation
behaviour de 1.2-beta? Me refiero al tema de crear y actualizar
   registros
amén de sacar el campo del idioma por defecto si no existe el del
   idioma
activo.

El día 17/01/08, boriscy [EMAIL PROTECTED] escribió:

 Bueno esto servira como respuesta para algunas Personas que lo
 necesiten.
 Yo quiero almacenar la información original en mi language español
 (default) en el modelo en este caso Page y tiene como tabla
   pages·
 y cuando use otro idioma busque esto en la tabla i18n que cake
   obtiene
 automaticamente. Obviamente para hay que hacer uso de la
   localizacion

 En el app_controller.php lo hice de esta manera, esto permite l10n
 Localizacion pero no internacionalizacion

 function beforeFilter()
 {
 $this-L10n = new L10n();
 $languages = array('eng', 'spa');

 $lang = $this-Session-check('lang') ? $this-Session-
 read('lang'):'spa';

 if(isset($this-params['named']['lang'])  in_array($this-
 params['named']['lang'],$languages) ){
 $lang = $this-params['named']['lang'];
 $this-Session-write('lang',$lang);
 }else{
 $this-Session-write('lang',$lang);
 }

 $this-L10n-get($lang);
 Configure::write('Config.language', $lang);
 }

 Para que pueda funcionar correctamente la localizacion es necesario
   un
 archivo locale/esp/LC_MESSAGES/default.po en esa ruta donde se
 realiza las traducciones de la sigueinte manera

 msgid content
 msgstr Contenido

 Mejor si codificas los archivos .po con UTF8

 para poder presentar lo haces asi
 __('content')

 y en caso de que este en español la localizacion te presentara
 Contenido.
 tamiben puedes usar de esta forma
 echo __('content', true);

 Ahora te recomiento de que en archivo bootstrap.php
 crees la constante
 define('DEFAULT_LANGUAGE', 'spa');

 Una ves ya hayas terminado la localización ahora debemos realizar la
 internacionalización

 Para esto he creado una tabla con el nombre pages y su modelo Page y

 oviamente con su controlador Pages

 En el modelo Page haz lo siguiente:

 class Page extends AppModel
 {
 var $displayField = 'name';
 var $actsAs = array();

 function setLanguage()
 {
 $lang = Configure::read('Config.language');
 if(DEFAULT_LANGUAGE!=$lang)
 $this-actsAs = array('Translate' = array('content',
 'name'));
 $this-__construct(false, null, null);
 }
 }

 Como puedes ver solo los campos (content, name) seran traducidos

 Y para que puedas desplegar correctamente el contenido original que
   se
 saca de la tabla pages y el traducido de la tabla i18n haces lo
 siguiente
 en tu controlador PagesController

 public function index($page = null)
 {
 $this-Page-setLanguage();
 if($page==null){
 $text = $this-Page-findByUrl('Inicio');
 }else{
 $text = $this-Page-findByUrl($page);
 }
 $this-set('texto', $text);
 }

 Ya en tu vista manejas los datos como lo harias con cualquier otro
 controlador.
--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: llamada a funciones - requestAction

2008-01-28 Por tema pepejose

gracias por responder a los 2.

@ Fran Iglesias

no, precisamente no quiero que sea una accion jeje

por lo que lo que comentas es lo que haré.

gracias

On 28 ene, 19:38, Fran Iglesias [EMAIL PROTECTED] wrote:
 Hola,

 El 28/01/2008, a las 18:50, pepejose escribió:

  digamos que quiero una accion que llame a una funcion, no a
  otra accion, no se si me explico jeje ejemplo $this-funcion()
  objeto.funcion();

 Eh...

 ¿la acción accept_recomendation tiene que ser una acción?

 Si es que sí, fin del mensaje.

 Si es que no, ¿no te es mejor ponerla como método del controlador o
 del modelo y llamarla normalmente?

 Nota: si quieres tener métodos en el controlador que no sean
 accesibles con una URL usa la convención de nombre para métodos
 privados (entonces dejan de ser acciones):

 function _metodo() {

 }

 --
 Fran Iglesias
 [EMAIL PROTECTED]
--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: llamada a funciones - requestAction

2008-01-28 Por tema Fran Iglesias

Hola,

El 28/01/2008, a las 18:50, pepejose escribió:

 digamos que quiero una accion que llame a una funcion, no a
 otra accion, no se si me explico jeje ejemplo $this-funcion()
 objeto.funcion();


Eh...

¿la acción accept_recomendation tiene que ser una acción?

Si es que sí, fin del mensaje.

Si es que no, ¿no te es mejor ponerla como método del controlador o  
del modelo y llamarla normalmente?

Nota: si quieres tener métodos en el controlador que no sean  
accesibles con una URL usa la convención de nombre para métodos  
privados (entonces dejan de ser acciones):

function _metodo() {
}


--
Fran Iglesias
[EMAIL PROTECTED]




--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: llamada a funciones - requestAction

2008-01-28 Por tema Matias Lespiau
Creo que lo que podrias hacer es:


   function accept_recomendation($id_to = null, $id_from = null,
$situation = 1) {
   $this-autoRender = false;
   if( isset($this-params['requested'] ) ) {
   $this-User-query(UPDATE recomendations SET
situation = $situation
WHERE recomendations.from=$id_from
and recomendations.to=$id_to);
   return true;
   }
   $this-redirect('/'); // o redirect if a users enter this url
   }

2008/1/28 pepejose [EMAIL PROTECTED]:


 hola!

 tengo una duda, a ver si me podeis echar una mano

 la situación es la siguiente:

 en uno de los controladores de mi aplicación tengo por ejemplo estas 2
 funciones.
 solo una de ellas tiene vista, la otra no...


function degrees ($id_to = null, $id_from = null, $id_path = null){


$this-requestAction('/users/accept_recomendation/'. $to.
 '/'.
 $from . '/'. 3);

function accept_recomendation($id_to = null, $id_from = null,
 $situation = 1) {
$this-autoRender = false;
$this-User-query(UPDATE recomendations SET situation =
 $situation
 WHERE recomendations.from=$id_from
 and recomendations.to=$id_to);
}

 entonces esto me trae algun que otro problema, como que el usuario
 metiendo la URL adecuada pueda ejecutar la acción que llamo desde la
 principal que si tiene vista.

 entonces la idea es como tengo que hacer (declarar la funcion) o hacer
 la llamada (supongo que no se usará request action...) para evitar
 estodigamos que quiero una accion que llame a una funcion, no a
 otra accion, no se si me explico jeje ejemplo $this-funcion()
 objeto.funcion();

 GRACIAS!
 



-- 
Matias Lespiau
http://www.gignus.com/

--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: llevar foco a campo con error

2008-01-28 Por tema pvilas

Hola:

Me auto-respondo a mi mismo en http://pvilas.com/?p=67 Como el
artículo está escrito en mi inglés macarrónico os comento que se trata
de llevar el foco al primer campo de la ficha de la clase .form-error.
Si usáis prototype sólo hay que declarar esta función

function goToFirstError(form)
{
var f = $$('#'+form+' .form-error');
if (f.length0) {
f[0].activate();
}
}

y llamarla poniendo scriptgoToFirstError('form_id');/script al
final de las vistas de add y update. activate() selecciona todo el
contenido del campo y da foco. Si no hay ningún error en la ficha, el
código simplemente no hará nada.

Saludos y gracias a todos.

Pere Vilás.
http://besinformatica.es



On Jan 9, 11:44 pm, pvilas [EMAIL PROTECTED] wrote:
 ¿Alguien sabe cómo llevar el foco al primer campo con error de una
 form?.
--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: Como colocar mensajes de error a un formulario?

2008-01-28 Por tema Asinox

Gracias Boriscy

On Jan 28, 12:48 pm, boriscy [EMAIL PROTECTED] wrote:
 Creo que deberias poner

 echo $form-input('username', array('error'='Usuario existente');

 en caso de que hata mas de 2 validaciones debes hacer lo siguiente:

 echo $form-input('username', array('error'=array('1'='Usuario
 existente',
 '1'='Segunda validación')));

 Te recomiendo uses la versión 1.2 ya que es la que se usara.
--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Es obligatorio usar la opcion de console bake??

2008-01-28 Por tema Asinox

Hola, yo como estoy liando con tutoriales, algunos me salen con
utilizar la consola bake , pero he tenido problemas con las
variables de ambientes en windows, asi que yo pregunto:

para que sirve el Bake?
es obligatorio hacer uso de bake?


Saludos
--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



Re: Como configurar al consola?

2008-01-28 Por tema Asinox

Gracias,

pero si no es obligatoria, por que usarla?

osea, (pregunta de tonto), ¿ella que hace por mi?


On Jan 28, 11:55 am, boriscy [EMAIL PROTECTED] wrote:
 Bueno como dice Matias ese video te ayudara mucho para que puedas
 configurar el cakephp y pudas usar en modo consola.
 lo que si te recomiendo es de que hagas correr los comandos en el
 directorio con tu aplicacion. Por ejemplo yo tengo isntalado mi wamp
 en el D: en windows
 lo que debes hacer es ir a dir donde este tu aplicacion cake ej: D:
 \wamp\www\cake\app

 On 27 ene, 18:00, Matias Lespiau [EMAIL PROTECTED] wrote:

  Buenas Asinox,

  La consola no es obligatoria, pero agiliza el desarrollo ya que genera
  codigo. Quizas si nos cuentas a que tutorial te refieres te podamos ayudar
  mas. Para configurar la consola hay un screencast que lo explica muy bien
  (en ingles).

 http://cakephp.org/screencasts

  Espero que te sirva, cualquier cosa pasate por el canal de irc de freenode
  #cakephp-es

  Saludos,

  --
  Matias Lespiauhttp://www.gignus.com/

  2008/1/27 Asinox [EMAIL PROTECTED]:

   Hola, estoy tratando de empezar con cakephp, todo muy bien hasta que
   en el tutorial me encontre con que tengo que usar algo via consola.

   es obligatorio?

   trate de usarla, pero no pude

   alguien me dice como configurar?

   Saludos
--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---



RESTful en CakePHP

2008-01-28 Por tema Axelx5

alguien por casualidad sabe donde puedo encontrar algun buen tutorial
de como realizar un webservices con  RESTful y cakephp, ya vi el de
bakery, pero alguien conoce otro mas completo.
--~--~-~--~~~---~--~~
Has recibido este mensaje porque estás suscrito a Grupo CakePHP-es de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~--~~~~--~~--~--~---