Re: Need a little suggestion how to get my javascript file invoked

2007-01-07 Thread Mikee Freedom


morning mate,

I've included the Js Calendar code successfully in a few applications.
You might be able to use the method I have employed.

1. Structure
- Put the `jscalendar` dir in your `vendors` directory (at the same
level as your Cake dir).
- Put the `jscalendar` dir in your `js` directory (within your webroot)
- NOTE: you probably only need the calendar.php file in part 1 of this
step, but for now just drop the whole thing in there

2. Component
- I've put my calendar code in a component as I use it quite often
- Create a calendar component (or I've created a general form
component) and include the following function

   /**
*
* Allows a form to include calendar elements
*
* @return boolean success
*/
   function initCalendar()
   {
   // include required vendors
   vendor('jscalendar/calendar');
   $calendar_lang = 'en';
   $calendar = new DHTML_Calendar($this-controller-base .
'/js/jscalendar/', $calendar_lang, 'calendar-win2k-2', false);
   $this-controller-set('calendar', $calendar);

   // set any header elements that may be required
   if (isset($this-controller-Header))
   {
   
$this-controller-Header-addHeader($calendar-get_load_files_code());
   }
   else
   {
$this-controller-set('headers', $calendar-get_load_files_code());
   }

   }

- NOTE: I use an additional Header component in the above code, you
will need to remove reference to it.

3. Controller
- Now we have this code wrapped up nicely you can call it wherever you like
- e.g.

   // init calendar
   $this-ExtForm-initCalendar();

- NOTE: My component is called ExtForm
- NOTE: don't forget to include your component in the controller that
calls it using the $components variable.

4. Layout
- In your layout you need to include the headers required for the calendar
- we set these in our component earlier
- NOTE: I'm using a helper again, you'll need to remove that code and
just output the $headers value

?php if (isset($headers)) $header-generateHeaders($headers); ?

5. View / Helper
- Again, I've packaged my code so I can reuse it all the time.
- My method of doing this is fairly cumbersome and has quickly become
outdated since the release of CakePHP v1.2 so I will try and summarize
with some code snippets.
- Basically, have a look at the calendar.php file and you can see how
it goes about outputting a calendar field. I also created a function
called get_input_field that returned the rendered input field as a
string as opposed to outputting it.

   $calendarOptions = array(
   'firstDay'   = 1, // show Monday first
   'showsTime'  = false,
   'showOthers' = true,
   'ifFormat'   = '%Y-%m-%d',
   'daFormat'   = '%Y-%m-%d',
   'timeFormat' = '12',
   'align'  = 'cR'
   );

  $calendar-get_input_field($calendarOptions,$calendarFieldAttributes);

- NOTE: set $calendarFieldAttributes to represent the attributes of
the text field to go along side the calendar.

I think that about covers it. I may have forgotten something, and the
instructions get a bit patchy towards the end - my apologies. The way
I've done it (in total) is too bulky to include here. I need to
streamline my code a lot more. Hope to do this when I venture in to
1.2.

Good luck,
mikee

On 06/01/07, keymaster [EMAIL PROTECTED] wrote:


Can someone please offer some instruction on how to get my javascript
popup menu working within cake?

The calendar javascript files are contained in:

webroot/js/jscalendar-1.0/


In the header of my views/layout, I have:
--

link rel=stylesheet type=text/css media=all
href=calendar-win2k-cold-1.css title=win2k-cold-1 /

script type=text/javascript src=?php echo
$html-url('/js/jscalendar-1.0/calendar.js'); ?/script

script type=text/javascript src=?php echo
$html-url('/js/jscalendar-1.0/lang/calendar-en.js'); ?/script

script type=text/javascript src=?php echo
$html-url('/js/jscalendar-1.0/calendar-setup.js'); ?/script


To invoke the calendar I do:


script type=text/javascript
Calendar.setup({
inputField :f_date_b,
ifFormat   :%m/%d/%Y %I:%M %p,
showsTime  :true,
button :f_trigger_b,
singleClick:false,
step   :1   });
/script


I am not at the stage where I want to get back the parameters from the
dates selected. Just want the javascript invoked (so I  can see the
popup calendar).

Any help will be appreciated. Thx.






--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Cake 
PHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 

Need a little suggestion how to get my javascript file invoked

2007-01-05 Thread keymaster


Can someone please offer some instruction on how to get my javascript
popup menu working within cake?

The calendar javascript files are contained in:

webroot/js/jscalendar-1.0/


In the header of my views/layout, I have:
--

link rel=stylesheet type=text/css media=all
href=calendar-win2k-cold-1.css title=win2k-cold-1 /

script type=text/javascript src=?php echo
$html-url('/js/jscalendar-1.0/calendar.js'); ?/script

script type=text/javascript src=?php echo
$html-url('/js/jscalendar-1.0/lang/calendar-en.js'); ?/script

script type=text/javascript src=?php echo
$html-url('/js/jscalendar-1.0/calendar-setup.js'); ?/script


To invoke the calendar I do:


script type=text/javascript
Calendar.setup({
   inputField :f_date_b,
   ifFormat   :%m/%d/%Y %I:%M %p,
   showsTime  :true,
   button :f_trigger_b,
   singleClick:false,
   step   :1   });
/script


I am not at the stage where I want to get back the parameters from the
dates selected. Just want the javascript invoked (so I  can see the
popup calendar).

Any help will be appreciated. Thx.


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