Re: MVC-way to obtain common data formatting

2009-08-27 Thread Bert Van den Brande

Hmm I see ... well, I think this can only be accomplished with some
kind of helper method/class in the view, just like Jon Bennet says.

Imho a class like that will get bloated very quickly , because there
will be different options to choose from on how to display the data.

A small helper for translating model-specific values would be my
personal choice.

On Wed, Aug 26, 2009 at 3:51 PM, ark0n3nicolabeg...@gmail.com wrote:

 @ Bert: yes that's the problem, I'm looking for a way to accomplish in
 an automatic way and not only for boolean fields (which aren't
 difficult to implement with an ad-hoc behavior)

 On 26 Ago, 15:46, Bert Van den Brande cyr...@gmail.com wrote:
 I don't really understand the problem you present.

 Either you display a model field as a read-only piece of information
 in the view, and then there is no problem with data being updated.

 Or you display model data in a form that can be edited, and in case of
 for example the boolean you provide a dropdown list or use a radio
 button that displays a readable string to the user but holds the raw
 data as the value.

 On Wed, Aug 26, 2009 at 2:46 PM, ark0n3nicolabeg...@gmail.com wrote:

  Hi Jon
  thanks for your kind reply but that's just what I'd avoid: I'm trying
  to accomplish an automatic way to achieve that result, I know it's not
  right to use a model function and I asked for an MVC and non-
  validation-breaking way..

  On 26 Ago, 11:23, Jon Bennett jmbenn...@gmail.com wrote:
  Hi Nicola.

   I'm trying to understand if and in which way could be possible to
   achieve such a result. Maybe I've explained the wrong way: I need to
   format some common fields like boolean value and achieve this adding
   an afterFind(results) callback in the app_model.php. I'd like to know
   if this is the best way to accomplish this 'cause I noticed that (of
   course) it causes problems when trying to edit something: the datas
   are formatted as I requested in the app_model but this causes
   validation problems (super simple example: boolean humanized as Yes/
   No and no more as 1/0).

  I would have thought the only time you need to display 1 or 0 as yes
  or no is in the view. You're quite right that if you adjust the data
  in app_model, it will break your DB.

  I have a Config value set in my bootstrap, and output that. eg:

  // bootstrap.php
  Configure::write('yesno', array(0='No', 1='Yes');

  // View
  Configure::read('yesno.'.$row[$modelClass]['field']); // outputs 'Yes'
  for 1, and 'No' for 0.

  hth

  Jon

  --

  jon bennett
  w:http://www.jben.net/
  iChat (AIM): jbendotnet Skype: jon-bennett


 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-27 Thread benjamwelker

You can try creating a couple of methods in your model.
One afterFind, and another beforeSave.

You can convert the data however you want in the afterFind, and then
convert it back in the beforeSave so that it doesn't mess up your
validation and save methods.

But you're going to run into other problems with this method as well.
The form helper might;' have some issues with the newly formatted
data, and not knowing exactly what to do with it.

Your best bet is to convert the data how you want right before
viewing.  It's not the easiest to edit a lot of files, but it will
save you headache in the long run.

Also...  to convert a 0/1 to a No/Yes, you can use the built in
Set::enum($select, $list = null) method, leaving the $list var empty
will auto populate it with a yes/no array.

echo Set::enum($data['boolean_field']) will output yes or no
depending on value. Wrap that in a ucfirst or ucwords to get Yes
No, done.

On Aug 26, 3:52 pm, ark0n3 nicolabeg...@gmail.com wrote:
 That's a good starting point but there's need to change every
 interested line in the views, while I'd like to obtain an automatic
 and centralized solution i.e. if I write a new page there should be no
 need to remember that work-around

 On 26 Ago, 15:42, Jon Bennett jmbenn...@gmail.com wrote:



  Hi Nicola,

   thanks for your kind reply but that's just what I'd avoid: I'm trying
   to accomplish an automatic way to achieve that result, I know it's not
   right to use a model function and I asked for an MVC and non-
   validation-breaking way..

  Another way would be to create a helper.

  How about this helper:http://pastie.org/595351

  // use it like so
  $data = array('Model'=array('status'=1));
  echo $dataConverter-nice('Model.status', 'onoff', $data);

  IMHO the thing to remember is that you only adjust the data for
  presentation only, hence it's done in either the view or the
  controller.

  hth

  jon

  --

  jon bennett
  w:http://www.jben.net/
  iChat (AIM): jbendotnet Skype: jon-bennett
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



MVC-way to obtain common data formatting

2009-08-26 Thread ark0n3

Hi
I'm trying to understand if and in which way could be possible to
achieve such a result. Maybe I've explained the wrong way: I need to
format some common fields like boolean value and achieve this adding
an afterFind(results) callback in the app_model.php. I'd like to know
if this is the best way to accomplish this 'cause I noticed that (of
course) it causes problems when trying to edit something: the datas
are formatted as I requested in the app_model but this causes
validation problems (super simple example: boolean humanized as Yes/
No and no more as 1/0).

Thanks
ark0n3
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-26 Thread Jon Bennett

Hi Nicola.

 I'm trying to understand if and in which way could be possible to
 achieve such a result. Maybe I've explained the wrong way: I need to
 format some common fields like boolean value and achieve this adding
 an afterFind(results) callback in the app_model.php. I'd like to know
 if this is the best way to accomplish this 'cause I noticed that (of
 course) it causes problems when trying to edit something: the datas
 are formatted as I requested in the app_model but this causes
 validation problems (super simple example: boolean humanized as Yes/
 No and no more as 1/0).

I would have thought the only time you need to display 1 or 0 as yes
or no is in the view. You're quite right that if you adjust the data
in app_model, it will break your DB.

I have a Config value set in my bootstrap, and output that. eg:

// bootstrap.php
Configure::write('yesno', array(0='No', 1='Yes');

// View
Configure::read('yesno.'.$row[$modelClass]['field']); // outputs 'Yes'
for 1, and 'No' for 0.

hth

Jon

-- 

jon bennett
w: http://www.jben.net/
iChat (AIM): jbendotnet Skype: jon-bennett

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-26 Thread ark0n3

Hi Jon
thanks for your kind reply but that's just what I'd avoid: I'm trying
to accomplish an automatic way to achieve that result, I know it's not
right to use a model function and I asked for an MVC and non-
validation-breaking way..



On 26 Ago, 11:23, Jon Bennett jmbenn...@gmail.com wrote:
 Hi Nicola.

  I'm trying to understand if and in which way could be possible to
  achieve such a result. Maybe I've explained the wrong way: I need to
  format some common fields like boolean value and achieve this adding
  an afterFind(results) callback in the app_model.php. I'd like to know
  if this is the best way to accomplish this 'cause I noticed that (of
  course) it causes problems when trying to edit something: the datas
  are formatted as I requested in the app_model but this causes
  validation problems (super simple example: boolean humanized as Yes/
  No and no more as 1/0).

 I would have thought the only time you need to display 1 or 0 as yes
 or no is in the view. You're quite right that if you adjust the data
 in app_model, it will break your DB.

 I have a Config value set in my bootstrap, and output that. eg:

 // bootstrap.php
 Configure::write('yesno', array(0='No', 1='Yes');

 // View
 Configure::read('yesno.'.$row[$modelClass]['field']); // outputs 'Yes'
 for 1, and 'No' for 0.

 hth

 Jon

 --

 jon bennett
 w:http://www.jben.net/
 iChat (AIM): jbendotnet Skype: jon-bennett
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-26 Thread Jon Bennett

Hi Nicola,

 thanks for your kind reply but that's just what I'd avoid: I'm trying
 to accomplish an automatic way to achieve that result, I know it's not
 right to use a model function and I asked for an MVC and non-
 validation-breaking way..

Another way would be to create a helper.

How about this helper: http://pastie.org/595351

// use it like so
$data = array('Model'=array('status'=1));
echo $dataConverter-nice('Model.status', 'onoff', $data);

IMHO the thing to remember is that you only adjust the data for
presentation only, hence it's done in either the view or the
controller.

hth

jon



-- 

jon bennett
w: http://www.jben.net/
iChat (AIM): jbendotnet Skype: jon-bennett

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-26 Thread ark0n3

@ Bert: yes that's the problem, I'm looking for a way to accomplish in
an automatic way and not only for boolean fields (which aren't
difficult to implement with an ad-hoc behavior)

On 26 Ago, 15:46, Bert Van den Brande cyr...@gmail.com wrote:
 I don't really understand the problem you present.

 Either you display a model field as a read-only piece of information
 in the view, and then there is no problem with data being updated.

 Or you display model data in a form that can be edited, and in case of
 for example the boolean you provide a dropdown list or use a radio
 button that displays a readable string to the user but holds the raw
 data as the value.

 On Wed, Aug 26, 2009 at 2:46 PM, ark0n3nicolabeg...@gmail.com wrote:

  Hi Jon
  thanks for your kind reply but that's just what I'd avoid: I'm trying
  to accomplish an automatic way to achieve that result, I know it's not
  right to use a model function and I asked for an MVC and non-
  validation-breaking way..

  On 26 Ago, 11:23, Jon Bennett jmbenn...@gmail.com wrote:
  Hi Nicola.

   I'm trying to understand if and in which way could be possible to
   achieve such a result. Maybe I've explained the wrong way: I need to
   format some common fields like boolean value and achieve this adding
   an afterFind(results) callback in the app_model.php. I'd like to know
   if this is the best way to accomplish this 'cause I noticed that (of
   course) it causes problems when trying to edit something: the datas
   are formatted as I requested in the app_model but this causes
   validation problems (super simple example: boolean humanized as Yes/
   No and no more as 1/0).

  I would have thought the only time you need to display 1 or 0 as yes
  or no is in the view. You're quite right that if you adjust the data
  in app_model, it will break your DB.

  I have a Config value set in my bootstrap, and output that. eg:

  // bootstrap.php
  Configure::write('yesno', array(0='No', 1='Yes');

  // View
  Configure::read('yesno.'.$row[$modelClass]['field']); // outputs 'Yes'
  for 1, and 'No' for 0.

  hth

  Jon

  --

  jon bennett
  w:http://www.jben.net/
  iChat (AIM): jbendotnet Skype: jon-bennett


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-26 Thread Bert Van den Brande

I don't really understand the problem you present.

Either you display a model field as a read-only piece of information
in the view, and then there is no problem with data being updated.

Or you display model data in a form that can be edited, and in case of
for example the boolean you provide a dropdown list or use a radio
button that displays a readable string to the user but holds the raw
data as the value.


On Wed, Aug 26, 2009 at 2:46 PM, ark0n3nicolabeg...@gmail.com wrote:

 Hi Jon
 thanks for your kind reply but that's just what I'd avoid: I'm trying
 to accomplish an automatic way to achieve that result, I know it's not
 right to use a model function and I asked for an MVC and non-
 validation-breaking way..



 On 26 Ago, 11:23, Jon Bennett jmbenn...@gmail.com wrote:
 Hi Nicola.

  I'm trying to understand if and in which way could be possible to
  achieve such a result. Maybe I've explained the wrong way: I need to
  format some common fields like boolean value and achieve this adding
  an afterFind(results) callback in the app_model.php. I'd like to know
  if this is the best way to accomplish this 'cause I noticed that (of
  course) it causes problems when trying to edit something: the datas
  are formatted as I requested in the app_model but this causes
  validation problems (super simple example: boolean humanized as Yes/
  No and no more as 1/0).

 I would have thought the only time you need to display 1 or 0 as yes
 or no is in the view. You're quite right that if you adjust the data
 in app_model, it will break your DB.

 I have a Config value set in my bootstrap, and output that. eg:

 // bootstrap.php
 Configure::write('yesno', array(0='No', 1='Yes');

 // View
 Configure::read('yesno.'.$row[$modelClass]['field']); // outputs 'Yes'
 for 1, and 'No' for 0.

 hth

 Jon

 --

 jon bennett
 w:http://www.jben.net/
 iChat (AIM): jbendotnet Skype: jon-bennett
 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-26 Thread ark0n3

That's a good starting point but there's need to change every
interested line in the views, while I'd like to obtain an automatic
and centralized solution i.e. if I write a new page there should be no
need to remember that work-around

On 26 Ago, 15:42, Jon Bennett jmbenn...@gmail.com wrote:
 Hi Nicola,

  thanks for your kind reply but that's just what I'd avoid: I'm trying
  to accomplish an automatic way to achieve that result, I know it's not
  right to use a model function and I asked for an MVC and non-
  validation-breaking way..

 Another way would be to create a helper.

 How about this helper:http://pastie.org/595351

 // use it like so
 $data = array('Model'=array('status'=1));
 echo $dataConverter-nice('Model.status', 'onoff', $data);

 IMHO the thing to remember is that you only adjust the data for
 presentation only, hence it's done in either the view or the
 controller.

 hth

 jon

 --

 jon bennett
 w:http://www.jben.net/
 iChat (AIM): jbendotnet Skype: jon-bennett
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-26 Thread Jon Bennett

Hi ark0n3,

 That's a good starting point but there's need to change every
 interested line in the views, while I'd like to obtain an automatic
 and centralized solution i.e. if I write a new page there should be no
 need to remember that work-around

I don't see a way around that really. You need to know what the data
is, what you want it to be and only need to change it once it's got to
the view.

You could create a helper with a set of rules which could mangle the
data in one hit for you I suppose.

j


-- 

jon bennett
w: http://www.jben.net/
iChat (AIM): jbendotnet Skype: jon-bennett

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: MVC-way to obtain common data formatting

2009-08-26 Thread Jon Bennett

 That's a good starting point but there's need to change every
 interested line in the views, while I'd like to obtain an automatic
 and centralized solution i.e. if I write a new page there should be no
 need to remember that work-around

I think you'll find it easier to tackle this issue once Cakephp 1.3 (I
think) is out and data is moved from arrays to objects. Then, you
could detect that you're in a view and when you call $model-field it
can convert the data for you on the fly.

Until then, there is no perfect solution.

hth

j

-- 

jon bennett
w: http://www.jben.net/
iChat (AIM): jbendotnet Skype: jon-bennett

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---