C:\xampp\htdocs\kptv\admin\spaw2\class\theme.class.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
<?php
/**
 * SPAW Editor v.2 Theme classes
 * 
 * Theme (skin) related classes
 *   
 * @package spaw2
 * @subpackage Theme  
 * @author Alan Mendelevich <alan@solmetra.lt> 
 * @copyright UAB Solmetra
 */ 

require_once(str_replace('\\\\','/',dirname(__FILE__)).'/config.class.php');

/**
 * Theme (skin) class
 * 
 * Stores and retrieves data related to editor themes (skins)
 * @package spaw2
 * @subpackage Theme
 */     
class SpawTheme
{
  
/**
   * Name of the theme
   * @access private
   * @var string
   */           
  
var $name;
  
  
/**
   * Returns the name of the theme
   * @returns string
   */        
  
function getName()
  {
    return 
$this->name;
  }
  
  
/**
   * Initializes Theme object
   * @param string @name Theme name
   */
  
function SpawTheme($name)
  {
    
$this->name $name;
  }

  
/**
   * Returns Theme object
   * @param string $name Theme name
   * @returns SpawTheme SpawTheme object   
   * @static
   */
  
function getTheme($name)
  {
    
$theme = new SpawTheme($name);
    
$theme->loadData();
    return 
$theme;
  }
             
  
/**
   * Default toolbar button style
   * @access private   
   * @var string
   */
  
var $default_tb_button_style;
  
/**
   * Sets default toolbar button style
   * @param string $style Style string
   */           
  
function setDefaultTbButtonStyle($style)
  {
    
$this->default_tb_button_style $style;
  }
  
/**
   * Returns default toolbar button style
   * @returns string
   */           
  
function getDefaultTbButtonStyle()
  {
    return 
$this->default_tb_button_style;
  }
  
/**
   * Default toolbar image style
   * @var string
   */
  
var $default_tb_image_style;
  
/**
   * Sets default toolbar image style
   * @param string $style Style string
   */           
  
function setDefaultTbImageStyle($style)
  {
    
$this->default_tb_image_style $style;
  }
  
/**
   * Returns default toolbar image style
   * @returns string
   */           
  
function getDefaultTbImageStyle()
  {
    return 
$this->default_tb_image_style;
  }
  
/**
   * Default toolbar dropdown style
   * @var string
   */
  
var $default_tb_dropdown_style;
  
/**
   * Sets default toolbar dropdown style
   * @param string $style Style string
   */           
  
function setDefaultTbDropdownStyle($style)
  {
    
$this->default_tb_dropdown_style $style;
  }
  
/**
   * Returns default toolbar dropdown style
   * @returns string
   */           
  
function getDefaultTbDropdownStyle()
  {
    return 
$this->default_tb_dropdown_style;
  }

  
/**
   * Stores custom styles for specific toolbar items
   * @access private
   * @var array
   */           
  
var $custom_tbi_styles = array();
  
/**
   * Returns true if specified toolbar item has custom style
   * @param string $name Toolbar item name
   * @returns bool
   */           
  
function isCustomStyleTbi($name)
  {
    if (isset(
$this->custom_tbi_styles[$name]))
      return 
true;
    else
      return 
false;
  }
  
/**
   * Returns custom style for specified toolbar item
   * @param string $name Toolbar item name
   * @returns string
   */           
  
function getCustomTbiStyle($name)
  {
    if (isset(
$this->custom_tbi_styles[$name]))
      return 
$this->custom_tbi_styles[$name];
    else
      return 
NULL;
  }

  
/**
   * Default toolbar button CSS class
   * @access private   
   * @var string
   */
  
var $default_tb_button_css_class;
  
/**
   * Sets default toolbar button CSS class
   * @param string $css_class CssClass string
   */           
  
function setDefaultTbButtonCssClass($css_class)
  {
    
$this->default_tb_button_css_class $css_class;
  }
  
/**
   * Returns default toolbar button CSS class
   * @returns string
   */           
  
function getDefaultTbButtonCssClass()
  {
    return 
$this->default_tb_button_css_class;
  }
  
/**
   * Default toolbar image CSS class
   * @var string
   */
  
var $default_tb_image_css_class;
  
/**
   * Sets default toolbar image CSS class
   * @param string $css_class CssClass string
   */           
  
function setDefaultTbImageCssClass($css_class)
  {
    
$this->default_tb_image_css_class $css_class;
  }
  
/**
   * Returns default toolbar image CSS class
   * @returns string
   */           
  
function getDefaultTbImageCssClass()
  {
    return 
$this->default_tb_image_css_class;
  }
  
/**
   * Default toolbar dropdown CSS class
   * @var string
   */
  
var $default_tb_dropdown_css_class;
  
/**
   * Sets default toolbar dropdown CSS class
   * @param string $css_class CssClass string
   */           
  
function setDefaultTbDropdownCssClass($css_class)
  {
    
$this->default_tb_dropdown_css_class $css_class;
  }
  
/**
   * Returns default toolbar dropdown CSS class
   * @returns string
   */           
  
function getDefaultTbDropdownCssClass()
  {
    return 
$this->default_tb_dropdown_css_class;
  }

  
/**
   * Stores custom CSS classs for specific toolbar items
   * @access private
   * @var array
   */           
  
var $custom_tbi_css_classes = array();
  
/**
   * Returns true if specified toolbar item has custom CSS class
   * @param string $name Toolbar item name
   * @returns bool
   */           
  
function isCustomCssClassTbi($name)
  {
    if (isset(
$this->custom_tbi_css_classes[$name]))
      return 
true;
    else
      return 
false;
  }
  
/**
   * Returns custom CSS class for specified toolbar item
   * @param string $name Toolbar item name
   * @returns string
   */           
  
function getCustomTbiCssClass($name)
  {
    if (isset(
$this->custom_tbi_css_classes[$name]))
      return 
$this->custom_tbi_css_classes[$name];
    else
      return 
NULL;
  }


  
/**
   * Default toolbar button events
   * @access private   
   * @var array
   */
  
var $default_tb_button_events;
  
/**
   * Sets default toolbar button events
   * @param array $events array representing events (key) and their respective handler functions (value)
   */           
  
function setDefaultTbButtonEvents($events)
  {
    
$this->default_tb_button_events $events;
  }
  
/**
   * Returns default toolbar button events
   * @returns array
   */           
  
function getDefaultTbButtonEvents()
  {
    return 
$this->default_tb_button_events;
  }

  
/**
   * Stores custom events for specific toolbar items
   * @access private
   * @var array
   */           
  
var $custom_tbi_events = array();
  
/**
   * Returns true if specified toolbar item has custom events
   * @param string $name Toolbar item name
   * @returns bool
   */           
  
function isCustomEventsTbi($name)
  {
    if (isset(
$this->custom_tbi_events[$name]))
      return 
true;
    else
      return 
false;
  }
  
/**
   * Returns custom events for specified toolbar item
   * @param string $name Toolbar item name
   * @returns string
   */           
  
function getCustomTbiEvents($name)
  {
    if (isset(
$this->custom_tbi_events[$name]))
      return 
$this->custom_tbi_events[$name];
    else
      return 
NULL;
  }



  
/**
   * Holds editor layout template
   * @var string
   * @access private   
   */
  
var $template;
  
  
/**
   * Sets template variable
   * @param string $template Template code
   */
  
function setTemplate($template)
  {
    
$this->template $template;
  }
  
  
/**
   * Returns layout template
   * @returns string
   */
  
function getTemplate()
  {
    return 
$this->template;
  }        
                  
  
/**
   * Holds editor layout template when in floating mode
   * @var string
   * @access private   
   */
  
var $template_floating;
  
  
/**
   * Sets editor template variable for floating mode 
   * @param string $template Template code
   */
  
function setTemplateFloating($template)
  {
    
$this->template_floating $template;
  }
  
  
/**
   * Returns editor layout template for floating toolbar mode
   * @returns string
   */
  
function getTemplateFloating()
  {
    return 
$this->template_floating;
  }        
                  
  
/**
   * Holds toolbar layout template when in floating mode
   * @var string
   * @access private   
   */
  
var $template_toolbar;
  
  
/**
   * Sets toolbar template variable for floating mode 
   * @param string $template Template code
   */
  
function setTemplateToolbar($template)
  {
    
$this->template_toolbar $template;
  }
  
  
/**
   * Returns toolbar layout template for floating toolbar mode
   * @returns string
   */
  
function getTemplateToolbar()
  {
    return 
$this->template_toolbar;
  }        

  
/**
   * Holds standard template for dialog header
   * @var string
   * @access private   
   */
  
var $template_dialog_header;
  
  
/**
   * Sets standard template for dialog header 
   * @param string $template Template code
   */
  
function setTemplateDialogHeader($template)
  {
    
$this->template_dialog_header $template;
  }
  
  
/**
   * Returns standard template for dialog header
   * @returns string
   */
  
function getTemplateDialogHeader()
  {
    return 
$this->template_dialog_header;
  }        

  
/**
   * Holds standard template for dialog footer
   * @var string
   * @access private   
   */
  
var $template_dialog_footer;
  
  
/**
   * Sets standard template for dialog footer 
   * @param string $template Template code
   */
  
function setTemplateDialogFooter($template)
  {
    
$this->template_dialog_footer $template;
  }
  
  
/**
   * Returns standard template for dialog footer
   * @returns string
   */
  
function getTemplateDialogFooter()
  {
    return 
$this->template_dialog_footer;
  }        


  
/**
   * Loads theme data
   * @access private
   */
  
function loadData()
  {
    
$pgdir SpawConfig::getStaticConfigValue("SPAW_ROOT").'plugins/';
    if (
is_dir($pgdir)) {
     
// load theme settings
     
if ($dh opendir($pgdir)) {
       while ((
$pg readdir($dh)) !== false) {
        if (
file_exists($pgdir.$pg.'/lib/theme/'.$this->name.'/config/theme.config.php'))
        {
          
// load theme config file for each plugin
          
include($pgdir.$pg.'/lib/theme/'.$this->name.'/config/theme.config.php');
          
// load default styles for "core" only
          
if ($pg == "core")
          {
            if (isset(
$default_tb_button_style))
            {
              
$this->default_tb_button_style $default_tb_button_style;
              unset(
$default_tb_button_style);
            }
            if (isset(
$default_tb_image_style))
            {
              
$this->default_tb_image_style $default_tb_image_style;
              unset(
$default_tb_image_style);
            }
            if (isset(
$default_tb_dropdown_style))
            {
              
$this->default_tb_dropdown_style $default_tb_dropdown_style;
              unset(
$default_tb_dropdown_style);
            }
            if (isset(
$default_tb_button_css_class))
            {
              
$this->default_tb_button_css_class $default_tb_button_css_class;
              unset(
$default_tb_button_css_class);
            }
            if (isset(
$default_tb_image_css_class))
            {
              
$this->default_tb_image_css_class $default_tb_image_css_class;
              unset(
$default_tb_image_css_class);
            }
            if (isset(
$default_tb_dropdown_css_class))
            {
              
$this->default_tb_dropdown_css_class $default_tb_dropdown_css_class;
              unset(
$default_tb_dropdown_css_class);
            }
            if (isset(
$default_tb_button_events))
            {
              
$this->default_tb_button_events $default_tb_button_events;
              unset(
$default_tb_button_events);
            }
          }
          if (isset(
$custom_tbi_styles))
          {
            
$this->custom_tbi_styles array_merge($this->custom_tbi_styles$custom_tbi_styles);
            unset(
$custom_tbi_styles);
          }
          if (isset(
$custom_tbi_css_classes))
          {
            
$this->custom_tbi_css_classes array_merge($this->custom_tbi_css_classes$custom_tbi_css_classes);
            unset(
$custom_tbi_css_classes);
          }
          if (isset(
$custom_tbi_events))
          {
            
$this->custom_tbi_events array_merge($this->custom_tbi_events$custom_tbi_events);
            unset(
$custom_tbi_events);
          }
        }
       }
       
closedir($dh);
     }
     
// load template
     
if (file_exists($pgdir."core/lib/theme/".$this->name."/templates/editor.tpl"))
     {
      
$fn $pgdir."core/lib/theme/".$this->name."/templates/editor.tpl";
      
$handle fopen($fn"r");
      
$this->template fread($handlefilesize($fn));
      
fclose($handle);
     }
     
// load editor template for floating toolbar mode
     
if (file_exists($pgdir."core/lib/theme/".$this->name."/templates/editor_floating.tpl"))
     {
      
$fn $pgdir."core/lib/theme/".$this->name."/templates/editor_floating.tpl";
      
$handle fopen($fn"r");
      
$this->template_floating fread($handlefilesize($fn));
      
fclose($handle);
     }
     
// load toolbar template for floating toolbar mode
     
if (file_exists($pgdir."core/lib/theme/".$this->name."/templates/toolbar_floating.tpl"))
     {
      
$fn $pgdir."core/lib/theme/".$this->name."/templates/toolbar_floating.tpl";
      
$handle fopen($fn"r");
      
$this->template_toolbar fread($handlefilesize($fn));
      
fclose($handle);
     }
     
// load template for standard dialog header
     
if (file_exists($pgdir."core/lib/theme/".$this->name."/templates/dialog_header.tpl"))
     {
      
$fn $pgdir."core/lib/theme/".$this->name."/templates/dialog_header.tpl";
      
$handle fopen($fn"r");
      
$this->template_dialog_header fread($handlefilesize($fn));
      
fclose($handle);
     }
     
// load template for standard dialog footer
     
if (file_exists($pgdir."core/lib/theme/".$this->name."/templates/dialog_footer.tpl"))
     {
      
$fn $pgdir."core/lib/theme/".$this->name."/templates/dialog_footer.tpl";
      
$handle fopen($fn"r");
      
$this->template_dialog_footer fread($handlefilesize($fn));
      
fclose($handle);
     }
    }    
  }                
}
?>
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586