/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/system/libraries/javascript/Jquery.php

  • Committer: gustav.hartvigsson at gmail
  • Date: 2013-04-03 08:13:05 UTC
  • mfrom: (8.1.1 lenasys)
  • Revision ID: gustav.hartvigsson@gmail.com-20130403081305-l2n3uwmrvjuzrzyt
Merged the new structure.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
 
27
 
class 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 */
 
 
b'\\ No newline at end of file'