source: sourcecode/system/libraries/javascript/Jquery.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 23.6 KB
Line 
1<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2
3/**
4 * CodeIgniter
5 *
6 * An open source application development framework for PHP 4.3.2 or newer
7 *
8 * @package             CodeIgniter
9 * @author              ExpressionEngine Dev Team
10 * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc.
11 * @license             http://www.codeigniter.com/user_guide/license.html
12 * @link                http://www.codeigniter.com
13 * @since               Version 1.0
14 * @filesource
15 */
16
17/**
18 * Jquery Class
19 *
20 * @package             CodeIgniter
21 * @subpackage  Libraries
22 * @author              ExpressionEngine Dev Team
23 * @category    Loader
24 * @link                http://www.codeigniter.com/user_guide/libraries/javascript.html
25 */
26 
27class CI_Jquery extends CI_Javascript {
28
29        var $_javascript_folder = 'js';
30        var $jquery_code_for_load = array();
31        var $jquery_code_for_compile = array();
32        var $jquery_corner_active = FALSE;
33        var $jquery_table_sorter_active = FALSE;
34        var $jquery_table_sorter_pager_active = FALSE;
35        var $jquery_ajax_img = '';
36
37        public function __construct($params)
38        {
39                $this->CI =& get_instance();   
40                extract($params);
41
42                if ($autoload === TRUE)
43                {
44                        $this->script();                       
45                }
46               
47                log_message('debug', "Jquery Class Initialized");
48        }
49       
50        // -------------------------------------------------------------------- 
51        // Event Code
52        // --------------------------------------------------------------------
53
54        /**
55         * Blur
56         *
57         * Outputs a jQuery blur event
58         *
59         * @access      private
60         * @param       string  The element to attach the event to
61         * @param       string  The code to execute
62         * @return      string
63         */
64        function _blur($element = 'this', $js = '')
65        {
66                return $this->_add_event($element, $js, 'blur');
67        }
68       
69        // --------------------------------------------------------------------
70       
71        /**
72         * Change
73         *
74         * Outputs a jQuery change event
75         *
76         * @access      private
77         * @param       string  The element to attach the event to
78         * @param       string  The code to execute
79         * @return      string
80         */
81        function _change($element = 'this', $js = '')
82        {
83                return $this->_add_event($element, $js, 'change');
84        }
85       
86        // --------------------------------------------------------------------
87       
88        /**
89         * Click
90         *
91         * Outputs a jQuery click event
92         *
93         * @access      private
94         * @param       string  The element to attach the event to
95         * @param       string  The code to execute
96         * @param       boolean whether or not to return false
97         * @return      string
98         */
99        function _click($element = 'this', $js = '', $ret_false = TRUE)
100        {
101                if ( ! is_array($js))
102                {
103                        $js = array($js);
104                }
105
106                if ($ret_false)
107                {
108                        $js[] = "return false;";
109                }
110
111                return $this->_add_event($element, $js, 'click');
112        }
113
114        // --------------------------------------------------------------------
115       
116        /**
117         * Double Click
118         *
119         * Outputs a jQuery dblclick event
120         *
121         * @access      private
122         * @param       string  The element to attach the event to
123         * @param       string  The code to execute
124         * @return      string
125         */
126        function _dblclick($element = 'this', $js = '')
127        {
128                return $this->_add_event($element, $js, 'dblclick');
129        }
130
131        // --------------------------------------------------------------------
132       
133        /**
134         * Error
135         *
136         * Outputs a jQuery error event
137         *
138         * @access      private
139         * @param       string  The element to attach the event to
140         * @param       string  The code to execute
141         * @return      string
142         */
143        function _error($element = 'this', $js = '')
144        {
145                return $this->_add_event($element, $js, 'error');
146        }
147
148        // --------------------------------------------------------------------
149       
150        /**
151         * Focus
152         *
153         * Outputs a jQuery focus event
154         *
155         * @access      private
156         * @param       string  The element to attach the event to
157         * @param       string  The code to execute
158         * @return      string
159         */
160        function _focus($element = 'this', $js = '')
161        {
162                return $this->_add_event($element, $js, 'focus');
163        }
164
165        // --------------------------------------------------------------------
166       
167        /**
168         * Hover
169         *
170         * Outputs a jQuery hover event
171         *
172         * @access      private
173         * @param       string  - element
174         * @param       string  - Javascript code for mouse over
175         * @param       string  - Javascript code for mouse out
176         * @return      string
177         */
178        function _hover($element = 'this', $over, $out)
179        {
180                $event = "\n\t$(" . $this->_prep_element($element) . ").hover(\n\t\tfunction()\n\t\t{\n\t\t\t{$over}\n\t\t}, \n\t\tfunction()\n\t\t{\n\t\t\t{$out}\n\t\t});\n";
181
182                $this->jquery_code_for_compile[] = $event;
183
184                return $event;
185        }
186
187        // --------------------------------------------------------------------
188       
189        /**
190         * Keydown
191         *
192         * Outputs a jQuery keydown event
193         *
194         * @access      private
195         * @param       string  The element to attach the event to
196         * @param       string  The code to execute
197         * @return      string
198         */
199        function _keydown($element = 'this', $js = '')
200        {
201                return $this->_add_event($element, $js, 'keydown');
202        }
203
204        // --------------------------------------------------------------------
205       
206        /**
207         * Keyup
208         *
209         * Outputs a jQuery keydown event
210         *
211         * @access      private
212         * @param       string  The element to attach the event to
213         * @param       string  The code to execute
214         * @return      string
215         */
216        function _keyup($element = 'this', $js = '')
217        {
218                return $this->_add_event($element, $js, 'keyup');
219        }       
220
221        // --------------------------------------------------------------------
222       
223        /**
224         * Load
225         *
226         * Outputs a jQuery load event
227         *
228         * @access      private
229         * @param       string  The element to attach the event to
230         * @param       string  The code to execute
231         * @return      string
232         */
233        function _load($element = 'this', $js = '')
234        {
235                return $this->_add_event($element, $js, 'load');
236        }       
237       
238        // --------------------------------------------------------------------
239       
240        /**
241         * Mousedown
242         *
243         * Outputs a jQuery mousedown event
244         *
245         * @access      private
246         * @param       string  The element to attach the event to
247         * @param       string  The code to execute
248         * @return      string
249         */
250        function _mousedown($element = 'this', $js = '')
251        {
252                return $this->_add_event($element, $js, 'mousedown');
253        }
254
255        // --------------------------------------------------------------------
256       
257        /**
258         * Mouse Out
259         *
260         * Outputs a jQuery mouseout event
261         *
262         * @access      private
263         * @param       string  The element to attach the event to
264         * @param       string  The code to execute
265         * @return      string
266         */
267        function _mouseout($element = 'this', $js = '')
268        {
269                return $this->_add_event($element, $js, 'mouseout');
270        }
271
272        // --------------------------------------------------------------------
273       
274        /**
275         * Mouse Over
276         *
277         * Outputs a jQuery mouseover event
278         *
279         * @access      private
280         * @param       string  The element to attach the event to
281         * @param       string  The code to execute
282         * @return      string
283         */
284        function _mouseover($element = 'this', $js = '')
285        {
286                return $this->_add_event($element, $js, 'mouseover');
287        }
288
289        // --------------------------------------------------------------------
290
291        /**
292         * Mouseup
293         *
294         * Outputs a jQuery mouseup event
295         *
296         * @access      private
297         * @param       string  The element to attach the event to
298         * @param       string  The code to execute
299         * @return      string
300         */
301        function _mouseup($element = 'this', $js = '')
302        {
303                return $this->_add_event($element, $js, 'mouseup');
304        }
305
306        // --------------------------------------------------------------------
307
308        /**
309         * Output
310         *
311         * Outputs script directly
312         *
313         * @access      private
314         * @param       string  The element to attach the event to
315         * @param       string  The code to execute
316         * @return      string
317         */
318        function _output($array_js = '')
319        {
320                if ( ! is_array($array_js))
321                {
322                        $array_js = array($array_js);
323                }
324               
325                foreach ($array_js as $js)
326                {
327                        $this->jquery_code_for_compile[] = "\t$js\n";
328                }
329        }
330
331        // --------------------------------------------------------------------
332
333        /**
334         * Resize
335         *
336         * Outputs a jQuery resize event
337         *
338         * @access      private
339         * @param       string  The element to attach the event to
340         * @param       string  The code to execute
341         * @return      string
342         */
343        function _resize($element = 'this', $js = '')
344        {
345                return $this->_add_event($element, $js, 'resize');
346        }
347
348        // --------------------------------------------------------------------
349
350        /**
351         * Scroll
352         *
353         * Outputs a jQuery scroll event
354         *
355         * @access      private
356         * @param       string  The element to attach the event to
357         * @param       string  The code to execute
358         * @return      string
359         */
360        function _scroll($element = 'this', $js = '')
361        {
362                return $this->_add_event($element, $js, 'scroll');
363        }
364       
365        // --------------------------------------------------------------------
366
367        /**
368         * Unload
369         *
370         * Outputs a jQuery unload event
371         *
372         * @access      private
373         * @param       string  The element to attach the event to
374         * @param       string  The code to execute
375         * @return      string
376         */
377        function _unload($element = 'this', $js = '')
378        {
379                return $this->_add_event($element, $js, 'unload');
380        }
381
382        // -------------------------------------------------------------------- 
383        // Effects
384        // --------------------------------------------------------------------
385       
386        /**
387         * Add Class
388         *
389         * Outputs a jQuery addClass event
390         *
391         * @access      private
392         * @param       string  - element
393         * @return      string
394         */
395        function _addClass($element = 'this', $class='')
396        {
397                $element = $this->_prep_element($element);
398                $str  = "$({$element}).addClass(\"$class\");";
399                return $str;
400        }
401
402        // --------------------------------------------------------------------
403
404        /**
405         * Animate
406         *
407         * Outputs a jQuery animate event
408         *
409         * @access      private
410         * @param       string  - element
411         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
412         * @param       string  - Javascript callback function
413         * @return      string
414         */
415        function _animate($element = 'this', $params = array(), $speed = '', $extra = '')
416        {
417                $element = $this->_prep_element($element);
418                $speed = $this->_validate_speed($speed);
419               
420                $animations = "\t\t\t";
421               
422                foreach ($params as $param=>$value)
423                {
424                        $animations .= $param.': \''.$value.'\', ';
425                }
426
427                $animations = substr($animations, 0, -2); // remove the last ", "
428
429                if ($speed != '')
430                {
431                        $speed = ', '.$speed;
432                }
433               
434                if ($extra != '')
435                {
436                        $extra = ', '.$extra;
437                }
438               
439                $str  = "$({$element}).animate({\n$animations\n\t\t}".$speed.$extra.");";
440               
441                return $str;
442        }
443
444        // --------------------------------------------------------------------
445               
446        /**
447         * Fade In
448         *
449         * Outputs a jQuery hide event
450         *
451         * @access      private
452         * @param       string  - element
453         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
454         * @param       string  - Javascript callback function
455         * @return      string
456         */
457        function _fadeIn($element = 'this', $speed = '', $callback = '')
458        {
459                $element = $this->_prep_element($element);     
460                $speed = $this->_validate_speed($speed);
461               
462                if ($callback != '')
463                {
464                        $callback = ", function(){\n{$callback}\n}";
465                }
466               
467                $str  = "$({$element}).fadeIn({$speed}{$callback});";
468               
469                return $str;
470        }
471               
472        // --------------------------------------------------------------------
473       
474        /**
475         * Fade Out
476         *
477         * Outputs a jQuery hide event
478         *
479         * @access      private
480         * @param       string  - element
481         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
482         * @param       string  - Javascript callback function
483         * @return      string
484         */
485        function _fadeOut($element = 'this', $speed = '', $callback = '')
486        {
487                $element = $this->_prep_element($element);
488                $speed = $this->_validate_speed($speed);
489               
490                if ($callback != '')
491                {
492                        $callback = ", function(){\n{$callback}\n}";
493                }
494               
495                $str  = "$({$element}).fadeOut({$speed}{$callback});";
496               
497                return $str;
498        }
499
500        // --------------------------------------------------------------------
501
502        /**
503         * Hide
504         *
505         * Outputs a jQuery hide action
506         *
507         * @access      private
508         * @param       string  - element
509         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
510         * @param       string  - Javascript callback function
511         * @return      string
512         */
513        function _hide($element = 'this', $speed = '', $callback = '')
514        {
515                $element = $this->_prep_element($element);     
516                $speed = $this->_validate_speed($speed);
517               
518                if ($callback != '')
519                {
520                        $callback = ", function(){\n{$callback}\n}";
521                }
522               
523                $str  = "$({$element}).hide({$speed}{$callback});";
524
525                return $str;
526        }
527       
528        // --------------------------------------------------------------------
529
530        /**
531         * Remove Class
532         *
533         * Outputs a jQuery remove class event
534         *
535         * @access      private
536         * @param       string  - element
537         * @return      string
538         */
539        function _removeClass($element = 'this', $class='')
540        {
541                $element = $this->_prep_element($element);
542                $str  = "$({$element}).removeClass(\"$class\");";
543                return $str;
544        }
545
546        // --------------------------------------------------------------------
547                       
548        /**
549         * Slide Up
550         *
551         * Outputs a jQuery slideUp event
552         *
553         * @access      private
554         * @param       string  - element
555         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
556         * @param       string  - Javascript callback function
557         * @return      string
558         */
559        function _slideUp($element = 'this', $speed = '', $callback = '')
560        {
561                $element = $this->_prep_element($element);     
562                $speed = $this->_validate_speed($speed);
563               
564                if ($callback != '')
565                {
566                        $callback = ", function(){\n{$callback}\n}";
567                }
568               
569                $str  = "$({$element}).slideUp({$speed}{$callback});";
570               
571                return $str;
572        }
573               
574        // --------------------------------------------------------------------
575       
576        /**
577         * Slide Down
578         *
579         * Outputs a jQuery slideDown event
580         *
581         * @access      private
582         * @param       string  - element
583         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
584         * @param       string  - Javascript callback function
585         * @return      string
586         */
587        function _slideDown($element = 'this', $speed = '', $callback = '')
588        {
589                $element = $this->_prep_element($element);
590                $speed = $this->_validate_speed($speed);
591               
592                if ($callback != '')
593                {
594                        $callback = ", function(){\n{$callback}\n}";
595                }
596               
597                $str  = "$({$element}).slideDown({$speed}{$callback});";
598               
599                return $str;
600        }
601
602        // --------------------------------------------------------------------
603       
604        /**
605         * Slide Toggle
606         *
607         * Outputs a jQuery slideToggle event
608         *
609         * @access      public
610         * @param       string  - element
611         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
612         * @param       string  - Javascript callback function
613         * @return      string
614         */
615        function _slideToggle($element = 'this', $speed = '', $callback = '')
616        {
617                $element = $this->_prep_element($element);
618                $speed = $this->_validate_speed($speed);
619               
620                if ($callback != '')
621                {
622                        $callback = ", function(){\n{$callback}\n}";
623                }
624               
625                $str  = "$({$element}).slideToggle({$speed}{$callback});";
626               
627                return $str;
628        }
629               
630        // --------------------------------------------------------------------
631       
632        /**
633         * Toggle
634         *
635         * Outputs a jQuery toggle event
636         *
637         * @access      private
638         * @param       string  - element
639         * @return      string
640         */
641        function _toggle($element = 'this')
642        {
643                $element = $this->_prep_element($element);
644                $str  = "$({$element}).toggle();";
645                return $str;
646        }
647       
648        // --------------------------------------------------------------------
649       
650        /**
651         * Toggle Class
652         *
653         * Outputs a jQuery toggle class event
654         *
655         * @access      private
656         * @param       string  - element
657         * @return      string
658         */
659        function _toggleClass($element = 'this', $class='')
660        {
661                $element = $this->_prep_element($element);
662                $str  = "$({$element}).toggleClass(\"$class\");";
663                return $str;
664        }
665       
666        // --------------------------------------------------------------------
667       
668        /**
669         * Show
670         *
671         * Outputs a jQuery show event
672         *
673         * @access      private
674         * @param       string  - element
675         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
676         * @param       string  - Javascript callback function
677         * @return      string
678         */
679        function _show($element = 'this', $speed = '', $callback = '')
680        {
681                $element = $this->_prep_element($element);     
682                $speed = $this->_validate_speed($speed);
683               
684                if ($callback != '')
685                {
686                        $callback = ", function(){\n{$callback}\n}";
687                }
688               
689                $str  = "$({$element}).show({$speed}{$callback});";
690               
691                return $str;
692        }
693
694        // --------------------------------------------------------------------
695
696        /**
697         * Updater
698         *
699         * An Ajax call that populates the designated DOM node with
700         * returned content
701         *
702         * @access      private
703         * @param       string  The element to attach the event to
704         * @param       string  the controller to run the call against
705         * @param       string  optional parameters
706         * @return      string
707         */
708       
709        function _updater($container = 'this', $controller, $options = '')
710        {       
711                $container = $this->_prep_element($container);
712               
713                $controller = (strpos('://', $controller) === FALSE) ? $controller : $this->CI->config->site_url($controller);
714               
715                // ajaxStart and ajaxStop are better choices here... but this is a stop gap
716                if ($this->CI->config->item('javascript_ajax_img') == '')
717                {
718                        $loading_notifier = "Loading...";
719                }
720                else
721                {
722                        $loading_notifier = '<img src=\'' . $this->CI->config->slash_item('base_url') . $this->CI->config->item('javascript_ajax_img') . '\' alt=\'Loading\' />';
723                }
724               
725                $updater = "$($container).empty();\n"; // anything that was in... get it out
726                $updater .= "\t\t$($container).prepend(\"$loading_notifier\");\n"; // to replace with an image
727
728                $request_options = '';
729                if ($options != '')
730                {
731                        $request_options .= ", {";
732                        $request_options .= (is_array($options)) ? "'".implode("', '", $options)."'" : "'".str_replace(":", "':'", $options)."'";
733                        $request_options .= "}";
734                }
735
736                $updater .= "\t\t$($container).load('$controller'$request_options);";
737                return $updater;
738        }
739
740
741        // --------------------------------------------------------------------
742        // Pre-written handy stuff
743        // --------------------------------------------------------------------
744         
745        /**
746         * Zebra tables
747         *
748         * @access      private
749         * @param       string  table name
750         * @param       string  plugin location
751         * @return      string
752         */
753        function _zebraTables($class = '', $odd = 'odd', $hover = '')
754        {
755                $class = ($class != '') ? '.'.$class : '';
756               
757                $zebra  = "\t\$(\"table{$class} tbody tr:nth-child(even)\").addClass(\"{$odd}\");";
758
759                $this->jquery_code_for_compile[] = $zebra;
760
761                if ($hover != '')
762                {
763                        $hover = $this->hover("table{$class} tbody tr", "$(this).addClass('hover');", "$(this).removeClass('hover');");
764                }
765
766                return $zebra;
767        }
768
769
770
771        // --------------------------------------------------------------------
772        // Plugins
773        // --------------------------------------------------------------------
774       
775        /**
776         * Corner Plugin
777         *
778         * http://www.malsup.com/jquery/corner/
779         *
780         * @access      public
781         * @param       string  target
782         * @return      string
783         */
784        function corner($element = '', $corner_style = '')
785        {
786                // may want to make this configurable down the road
787                $corner_location = '/plugins/jquery.corner.js';
788
789                if ($corner_style != '')
790                {
791                        $corner_style = '"'.$corner_style.'"';
792                }
793
794                return "$(" . $this->_prep_element($element) . ").corner(".$corner_style.");";
795        }
796       
797        // --------------------------------------------------------------------
798
799        /**
800         * modal window
801         *
802         * Load a thickbox modal window
803         *
804         * @access      public
805         * @return      void
806         */
807        function modal($src, $relative = FALSE)
808        {       
809                $this->jquery_code_for_load[] = $this->external($src, $relative);
810        }
811
812        // --------------------------------------------------------------------
813
814        /**
815         * Effect
816         *
817         * Load an Effect library
818         *
819         * @access      public
820         * @return      void
821         */
822        function effect($src, $relative = FALSE)
823        {
824                $this->jquery_code_for_load[] = $this->external($src, $relative);
825        }
826
827        // --------------------------------------------------------------------
828
829        /**
830         * Plugin
831         *
832         * Load a plugin library
833         *
834         * @access      public
835         * @return      void
836         */
837        function plugin($src, $relative = FALSE)
838        {
839                $this->jquery_code_for_load[] = $this->external($src, $relative);
840        }
841
842        // --------------------------------------------------------------------
843
844        /**
845         * UI
846         *
847         * Load a user interface library
848         *
849         * @access      public
850         * @return      void
851         */
852        function ui($src, $relative = FALSE)
853        {
854                $this->jquery_code_for_load[] = $this->external($src, $relative);
855        }
856        // --------------------------------------------------------------------
857
858        /**
859         * Sortable
860         *
861         * Creates a jQuery sortable
862         *
863         * @access      public
864         * @return      void
865         */
866        function sortable($element, $options = array())
867        {
868
869                if (count($options) > 0)
870                {
871                        $sort_options = array();
872                        foreach ($options as $k=>$v)
873                        {
874                                $sort_options[] = "\n\t\t".$k.': '.$v."";
875                        }
876                        $sort_options = implode(",", $sort_options);
877                }
878                else
879                {
880                        $sort_options = '';
881                }
882
883                return "$(" . $this->_prep_element($element) . ").sortable({".$sort_options."\n\t});";
884        }
885
886        // --------------------------------------------------------------------
887
888        /**
889         * Table Sorter Plugin
890         *
891         * @access      public
892         * @param       string  table name
893         * @param       string  plugin location
894         * @return      string
895         */
896        function tablesorter($table = '', $options = '')
897        {
898                $this->jquery_code_for_compile[] = "\t$(" . $this->_prep_element($table) . ").tablesorter($options);\n";
899        }
900       
901        // --------------------------------------------------------------------
902        // Class functions
903        // --------------------------------------------------------------------
904
905        /**
906         * Add Event
907         *
908         * Constructs the syntax for an event, and adds to into the array for compilation
909         *
910         * @access      private
911         * @param       string  The element to attach the event to
912         * @param       string  The code to execute
913         * @param       string  The event to pass
914         * @return      string
915         */     
916        function _add_event($element, $js, $event)
917        {
918                if (is_array($js))
919                {
920                        $js = implode("\n\t\t", $js);
921
922                }
923
924                $event = "\n\t$(" . $this->_prep_element($element) . ").{$event}(function(){\n\t\t{$js}\n\t});\n";
925                $this->jquery_code_for_compile[] = $event;
926                return $event;
927        }
928
929        // --------------------------------------------------------------------
930
931        /**
932         * Compile
933         *
934         * As events are specified, they are stored in an array
935         * This funciton compiles them all for output on a page
936         *
937         * @access      private
938         * @return      string
939         */
940        function _compile($view_var = 'script_foot', $script_tags = TRUE)
941        {
942                // External references
943                $external_scripts = implode('', $this->jquery_code_for_load);
944                $this->CI->load->vars(array('library_src' => $external_scripts));
945
946                if (count($this->jquery_code_for_compile) == 0 )
947                {
948                        // no inline references, let's just return
949                        return;
950                }
951
952                // Inline references
953                $script = '$(document).ready(function() {' . "\n";
954                $script .= implode('', $this->jquery_code_for_compile);
955                $script .= '});';
956               
957                $output = ($script_tags === FALSE) ? $script : $this->inline($script);
958
959                $this->CI->load->vars(array($view_var => $output));
960
961        }
962       
963        // --------------------------------------------------------------------
964       
965        /**
966         * Clear Compile
967         *
968         * Clears the array of script events collected for output
969         *
970         * @access      public
971         * @return      void
972         */
973        function _clear_compile()
974        {
975                $this->jquery_code_for_compile = array();
976        }
977
978        // --------------------------------------------------------------------
979       
980        /**
981         * Document Ready
982         *
983         * A wrapper for writing document.ready()
984         *
985         * @access      private
986         * @return      string
987         */
988        function _document_ready($js)
989        {
990                if ( ! is_array($js))
991                {
992                        $js = array ($js);
993
994                }
995               
996                foreach ($js as $script)
997                {
998                        $this->jquery_code_for_compile[] = $script;
999                }
1000        }
1001
1002        // --------------------------------------------------------------------
1003
1004        /**
1005         * Script Tag
1006         *
1007         * Outputs the script tag that loads the jquery.js file into an HTML document
1008         *
1009         * @access      public
1010         * @param       string
1011         * @return      string
1012         */
1013        function script($library_src = '', $relative = FALSE)
1014        {
1015                $library_src = $this->external($library_src, $relative);
1016                $this->jquery_code_for_load[] = $library_src;
1017                return $library_src;
1018        }
1019       
1020        // --------------------------------------------------------------------
1021
1022        /**
1023         * Prep Element
1024         *
1025         * Puts HTML element in quotes for use in jQuery code
1026         * unless the supplied element is the Javascript 'this'
1027         * object, in which case no quotes are added
1028         *
1029         * @access      public
1030         * @param       string
1031         * @return      string
1032         */
1033        function _prep_element($element)
1034        {
1035                if ($element != 'this')
1036                {
1037                        $element = '"'.$element.'"';
1038                }
1039               
1040                return $element;
1041        }
1042       
1043        // --------------------------------------------------------------------
1044
1045        /**
1046         * Validate Speed
1047         *
1048         * Ensures the speed parameter is valid for jQuery
1049         *
1050         * @access      private
1051         * @param       string
1052         * @return      string
1053         */     
1054        function _validate_speed($speed)
1055        {
1056                if (in_array($speed, array('slow', 'normal', 'fast')))
1057                {
1058                        $speed = '"'.$speed.'"';
1059                }
1060                elseif (preg_match("/[^0-9]/", $speed))
1061                {
1062                        $speed = '';
1063                }
1064       
1065                return $speed;
1066        }
1067
1068}
1069
1070/* End of file Jquery.php */
1071/* Location: ./system/libraries/Jquery.php */
Note: See TracBrowser for help on using the repository browser.