MIOLO20
Carregando...
Procurando...
Nenhuma entrada encontrada
mtoolbar.class
Ir para a documentação deste ficheiro.
1<?php
35{
39 const TYPE_ICON_ONLY = 'icon-only';
40 const TYPE_ICON_TEXT = 'icon-text';
41
42 public $name;
43 public $caption;
44 public $enabled;
45 public $visible = true;
46
47 protected $url;
48 protected $hint;
49 protected $enabledImage;
50 protected $disabledImage;
51 protected $button;
52 protected $method='';
53 protected $order;
54 protected $target = '_self';
55 protected static $type = self::TYPE_ICON_ONLY;
56
58 {
59 $this->name = $name;
60 $this->caption = $caption;
61 $this->url = $url;
62 $this->hint = $hint;
63 $this->enabled = $enabled;
64 $this->method = $method;
65 $this->order = $order;
66 $this->enabledImage = $enabledImage;
67 $this->disabledImage = $disabledImage;
68 }
69
70 public function setMethod($method='post')
71 {
72 $this->method = $method;
73 }
74
80 public static function setType($type)
81 {
82 self::$type = $type;
83 }
84
85 public function getButton()
86 {
87 if ( $this->visible )
88 {
89 if ( $this->enabled )
90 {
91 if ( self::$type == self::TYPE_ICON_ONLY )
92 {
93 if( $this->method == 'post')
94 {
95 $this->button = new MImageButton($this->name, $this->caption, $this->url, $this->enabledImage);
96 }
97 else
98 {
99 $this->button = new MImageLink($this->name, $this->caption, $this->url, $this->enabledImage);
100 }
101 }
102 else
103 {
104 if( $this->method == 'post')
105 {
106 $this->button = new MImageButtonLabel($this->name, $this->caption, $this->url, $this->enabledImage);
107 }
108 else
109 {
110 $this->button = new MImageLinkLabel($this->name, $this->caption, $this->url, $this->enabledImage);
111 }
112 }
113
114 $this->button->setTarget($this->target);
115 $this->button->setBoxClass('m-toolbar-button btn btn-default btn-group');
116 }
117 else
118 {
119 if ( self::$type == self::TYPE_ICON_ONLY )
120 {
121 $this->button = new MImage($this->name, $this->caption, $this->disabledImage);
122 }
123 else
124 {
125 $this->button = new MImageLabel($this->name, $this->caption, $this->disabledImage);
126 }
127
128 $this->button->setBoxClass('m-toolbar-button m-toolbar-button-disabled btn btn-default btn-group');
129 }
130
131 if ( $this->button )
132 {
133 $this->button->setJSHint($this->hint);
134 }
135 }
136 return $this->button;
137 }
138
139 public function show()
140 {
141 $this->enable();
142 }
143
147 public function hide()
148 {
149 $this->visible = false;
150 }
151
152 public function enable()
153 {
154 $this->enabled = true;
155 }
156
157 public function disable()
158 {
159 $this->enabled = false;
160 }
161
165 public function getUrl()
166 {
167 return $this->url;
168 }
169
173 public function setUrl($url)
174 {
175 $this->url = $url;
176 }
177
181 public function getHint()
182 {
183 return $this->hint;
184 }
185
189 public function setHint($hint)
190 {
191 $this->hint = $hint;
192 }
193
197 public function getEnabledImage()
198 {
199 return $this->enabledImage;
200 }
201
206 {
207 $this->enabledImage = $enabledImage;
208 }
209
213 public function getDisabledImage()
214 {
216 }
217
222 {
223 $this->disabledImage = $disabledImage;
224 }
225
229 public function setTarget($target)
230 {
231 $this->target = $target;
232 }
233
237 public function getTarget()
238 {
239 return $this->target;
240 }
241
242 public function getOrder() {
243 return $this->order;
244 }
245
246 public function setOrder($order) {
247 $this->order = $order;
248 }
249}
250
251class MToolBar extends MBaseGroup
252{
256 const BUTTON_BACK = 'tbBtnBack';
257 const BUTTON_NEW = 'tbBtnNew';
258 const BUTTON_SAVE = 'tbBtnSave';
259 const BUTTON_DELETE = 'tbBtnDelete';
260 const BUTTON_SEARCH = 'tbBtnSearch';
261 const BUTTON_PRINT = 'tbBtnPrint';
262 const BUTTON_EXIT = 'tbBtnExit';
263 const BUTTON_RESET = 'tbBtnReset';
264
266 protected $hideToolbar = false;
267
268 public function __construct($name='toolBar', $url='')
269 {
270 parent::__construct($name, '');
271
272 $this->name = $name;
273
275 if( ! $url )
276 {
277 $url = $MIOLO->getCurrentURL();
278 }
279
280 $enabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'new-20x20.png');
281 $disabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'new-disabled-20x20.png');
282 $newUrl = $url . '&function=insert&event=tbBtnNew:click';
283 $this->toolBarButtons['tbBtnNew'] = new MToolBarButton( 'tbBtnNew', _M('New'), $newUrl, _M('New'), true, $enabledImage, $disabledImage, NULL);
284
285 $enabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'save-20x20.png' );
286 $disabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'save-disabled-20x20.png' );
287 $newUrl = $url . '&function=' . MIOLO::_REQUEST('function').'&event=tbBtnSave:click';
288 $this->toolBarButtons['tbBtnSave'] = new MToolBarButton('tbBtnSave', _M('Save'), $newUrl, _M('Save'), true, $enabledImage, $disabledImage, 'post');
289
290 $enabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'delete-20x20.png');
291 $disabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'delete-disabled-20x20.png');
292 $newUrl = $url . '&function=delete&event=tbBtnDelete:click';
293 $this->toolBarButtons['tbBtnDelete'] = new MToolBarButton('tbBtnDelete', _M('Delete'), $newUrl, _M('Delete'), true, $enabledImage, $disabledImage, 'post');
294
295 $enabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'search-20x20.png');
296 $disabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'search-disabled-20x20.png');
297 $newUrl = $url . '&function=search&event=tbBtnSearch:click';
298 $this->toolBarButtons['tbBtnSearch'] = new MToolBarButton('tbBtnSearch', _M('Search'), $newUrl, _M('Search'), true, $enabledImage, $disabledImage, NULL);
299
300 $enabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'print-20x20.png');
301 $disabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'print-disabled-20x20.png');
302 $newUrl = $url . '&function=print&event=tbBtnPrint:click';
303 $this->toolBarButtons['tbBtnPrint'] = new MToolBarButton('tbBtnPrint', _M('Print'), $newUrl, _M('Print'), true, $enabledImage, $disabledImage, 'post');
304
305 $enabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'reset-20x20.png');
306 $disabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'reset-disabled-20x20.png');
307 $this->toolBarButtons['tbBtnReset'] = new MToolBarButton( 'tbBtnReset', _M('Reset'), 'javascript:document.forms[0].reset();', _M('Reset'), true, $enabledImage, $disabledImage, 'javaScript');
308
309 //begin stack
310 $refererFunction = MIOLO::_REQUEST('refererFunction');
311 // getallheaders may not exist if we're running out of apache
312 $headers = function_exists('getallheaders') ? getallheaders() : array('Referer', '');
313 $newUrl = str_replace('&refererFunction=back','',$headers['Referer']);
314 $session = $MIOLO->session;
315 $mioloPromptEvent= ( $session->GetValue('mioloPromptEvent') == 'true' ) ? true : false;
316 $mioloStack = $session->IsRegistered('mioloStack') ?
317 unserialize($session->GetValue('mioloStack')) :
318 null;
319
320 if ( $refererFunction == 'back' )
321 {
322 if ( $mioloPromptEvent == true )
323 {
324 unset($mioloStack[(count($mioloStack)-1)]);
325 $session->SetValue('mioloPromptEvent','false');
326 }
327 $newUrl = $mioloStack[(count($mioloStack)-2)];
328 unset($mioloStack[(count($mioloStack)-1)]);
329 }
330 else
331 {
332 $pn_page = MIOLO::_REQUEST('pn_page');
333 $__filter = MIOLO::_REQUEST('__filter');
334 $pn_page = strlen($pn_page)>0 ? $pn_page : 1;
335 $__filter = strlen($__filter)>0 ? $__filter : 0;
336 $mioloStackPost= $session->GetValue('mioloStackPost');
337
338 if ( count($_POST)>0 )
339 {
340 $string = $this->getArrayAsUrl($_POST);
341 $session->SetValue('mioloStackPost','&pn_page=' . $pn_page . '&__filter=' . $__filter . str_replace('&pn_page=1&__filter=0','',$string));
342 }
343 else
344 {
345 $session->SetValue('mioloStackPost',null);
346 }
347
348 if ( strstr($mioloStackPost,'pn_page') )
349 {
350 $mioloStack[count($mioloStack)] = str_replace('&pn_page=1&__filter=0','',$newUrl) . $mioloStackPost;
351 }
352 else
353 {
354 $mioloStack[count($mioloStack)] = str_replace('&pn_page=1&__filter=0','',$newUrl) . "&pn_page=$pn_page&__filter=$__filter$mioloStackPost";
355 }
356 if ( $mioloPromptEvent == true )
357 {
358 unset($mioloStack[(count($mioloStack)-1)]);
359 $session->SetValue('mioloPromptEvent','false');
360 }
361 $newUrl = $mioloStack[(count($mioloStack)-1)];
362 }
363 $session->SetValue('mioloStack',serialize($mioloStack));
364 //finish stack
365
366 $enabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'back-20x20.png');
367 $disabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'back-disabled-20x20.png');
368 $this->toolBarButtons['tbBtnBack'] = new MToolBarButton('tbBtnBack', _M('Back'), $newUrl . '&refererFunction=back', _M('Back'), count($mioloStack)>0, $enabledImage, $disabledImage, NULL);
369
370 $enabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'exit-20x20.png');
371 $disabledImage = $MIOLO->getUI()->GetImageTheme($MIOLO->theme->id, 'exit-disabled-20x20.png');
372
373 $newUrl = $MIOLO->getPreviousURL();
374 $this->toolBarButtons['tbBtnExit'] = new MToolBarButton('tbBtnExit', _M('Exit'), $newUrl, _M('Exit'), true, $enabledImage, $disabledImage, NULL);
375
376 $this->setShowChildLabel(false);
377 }
378
379 public function hideToolbar()
380 {
381 $this->hideToolbar = true;
382 }
383
384 public function getArrayAsUrl( $var )
385 {
386 $string = '';
387 foreach ( $var as $key => $value )
388 {
389 if ( is_array($value) )
390 {
391 $string .= '&' . $key . '=' . $this->getArrayAsUrl($value);
392 }
393 else
394 {
395 $string .= '&' . $key . '=' . urlencode($value);
396 }
397 }
398 return $string;
399 }
400
401 private function sortButtons()
402 {
403 usort($this->toolBarButtons, function($a, $b)
404 {
405 return $a->getOrder() > $b->getOrder();
406 });
407 }
408
409 public function getButtons()
410 {
411 foreach ( $this->toolBarButtons as $b )
412 {
413 if( method_exists($b,'getButton') )
414 {
415 $buttons[] = $b->getButton();
416 }
417 else
418 {
419 $buttons[] = $b;
420 }
421 }
422
423 return $buttons;
424 }
425
426 public function addButton($name =null, $caption =null, $url =null, $hint =null, $enabled =null, $enabledImage =null, $disabledImage =null, $type=MToolBarButton::TYPE_ICON_ONLY, $order = 0)
427 {
428 $this->toolBarButtons[$name] = new MToolBarButton($name, $caption, $url, $hint, $enabled, $enabledImage, $disabledImage, NULL, $type, $order);
429 }
430
431 public function showButton($name)
432 {
433 $this->toolBarButtons[$name]->show();
434 }
435
436 public function hideButton($name)
437 {
438 $this->toolBarButtons[$name]->hide();
439 }
440
441 public function enableButton($name)
442 {
443 $this->toolBarButtons[$name]->enable();
444 }
445
446 public function disableButtons($names = array())
447 {
448 foreach ( $names as $name )
449 {
450 $this->toolBarButtons[$name]->disable();
451 }
452 }
453
454 public function disableButton($name)
455 {
456 $this->toolBarButtons[$name]->disable();
457 }
458
459 public function setIsPost($name,$post=true)
460 {
461 $this->toolBarButtons[$name]->setMethod( $post ? 'post' : '' );
462 }
463
464 public function generateInner()
465 {
466 $this->sortButtons();
467 parent::__construct( $this->name, '', $this->getButtons() );
468 parent::generateInner();
469 $this->inner = str_replace(
470 '<fieldset id="toolBar" class="">',
471 '<fieldset id="toolBar" class="navbar navbar-default">',
472 $this->inner
473 );
474 if ($this->hideToolbar)
475 $this->inner = '';
476 }
477
481 public function getButtonUrl($name)
482 {
483 return $this->toolBarButtons[$name]->getUrl();
484 }
485
489 public function setButtonUrl($name, $url, $target='_self')
490 {
491 $this->toolBarButtons[$name]->setUrl($url);
492 $this->toolBarButtons[$name]->setTarget($target);
493 }
494
498 public function getButtonHint($name)
499 {
500 return $this->toolBarButtons[$name]->getHint();
501 }
502
506 public function setButtonHint($name, $hint)
507 {
508 $this->toolBarButtons[$name]->setHint($hint);
509 }
510
514 public function getButtonCaption($name)
515 {
516 return $this->toolBarButtons[$name]->caption;
517 }
518
523 {
524 $this->toolBarButtons[$name]->caption = $caption;
525 }
526
531 {
532 return $this->toolBarButtons[$name]->getEnabledImage();
533 }
534
538 public function setButtonEnabledImage($name, $enabledImage)
539 {
540 $this->toolBarButtons[$name]->setEnabledImage($enabledImage);
541 }
542
547 {
548 return $this->toolBarButtons[$name]->getDisabledImage();
549 }
550
554 public function setButtonDisabledImage($name, $disabledImage)
555 {
556 $this->toolBarButtons[$name]->setDisabledImage($disabledImage);
557 }
558
562 public function getButtonOrder($name)
563 {
564 return $this->toolBarButtons[$name]->getOrder();
565 }
566
570 public function setButtonOrder($name, $order)
571 {
572 $this->toolBarButtons[$name]->setOrder($order);
573 }
574
578 public function getToolBarButtons()
579 {
581 }
582
587 {
588 $this->toolBarButtons = $toolBarButtons;
589 }
590}
591
592?>
setShowChildLabel($visible=true, $recursive=true)
static _REQUEST( $vars, $from='ALL')
Definição miolo.class:1109
static getInstance()
Definição miolo.class:134
setOrder($order)
Definição mtoolbar.class:246
setTarget($target)
Definição mtoolbar.class:229
static setType($type)
Definição mtoolbar.class:80
setEnabledImage($enabledImage)
Definição mtoolbar.class:205
__construct($name, $caption, $url, $hint, $enabled, $enabledImage, $disabledImage, $method='', $type=null, $order=0)
Definição mtoolbar.class:57
setDisabledImage($disabledImage)
Definição mtoolbar.class:221
const TYPE_ICON_TEXT
Definição mtoolbar.class:40
const TYPE_ICON_ONLY
Definição mtoolbar.class:39
setMethod($method='post')
Definição mtoolbar.class:70
const BUTTON_SEARCH
Definição mtoolbar.class:260
getButtonEnabledImage($name)
Definição mtoolbar.class:530
setButtonEnabledImage($name, $enabledImage)
Definição mtoolbar.class:538
getButtonOrder($name)
Definição mtoolbar.class:562
addButton($name=null, $caption=null, $url=null, $hint=null, $enabled=null, $enabledImage=null, $disabledImage=null, $type=MToolBarButton::TYPE_ICON_ONLY, $order=0)
Definição mtoolbar.class:426
const BUTTON_EXIT
Definição mtoolbar.class:262
setButtonOrder($name, $order)
Definição mtoolbar.class:570
getButtonCaption($name)
Definição mtoolbar.class:514
generateInner()
Definição mtoolbar.class:464
hideButton($name)
Definição mtoolbar.class:436
getButtonUrl($name)
Definição mtoolbar.class:481
setButtonCaption($name, $caption)
Definição mtoolbar.class:522
const BUTTON_DELETE
Definição mtoolbar.class:259
setIsPost($name, $post=true)
Definição mtoolbar.class:459
setButtonUrl($name, $url, $target='_self')
Definição mtoolbar.class:489
__construct($name='toolBar', $url='')
Definição mtoolbar.class:268
getButtonDisabledImage($name)
Definição mtoolbar.class:546
const BUTTON_NEW
Definição mtoolbar.class:257
enableButton($name)
Definição mtoolbar.class:441
disableButtons($names=array())
Definição mtoolbar.class:446
getButtonHint($name)
Definição mtoolbar.class:498
getArrayAsUrl( $var)
Definição mtoolbar.class:384
const BUTTON_BACK
Definição mtoolbar.class:256
setButtonHint($name, $hint)
Definição mtoolbar.class:506
showButton($name)
Definição mtoolbar.class:431
disableButton($name)
Definição mtoolbar.class:454
const BUTTON_SAVE
Definição mtoolbar.class:258
setButtonDisabledImage($name, $disabledImage)
Definição mtoolbar.class:554
getToolBarButtons()
Definição mtoolbar.class:578
const BUTTON_RESET
Definição mtoolbar.class:263
setToolBarButtons($toolBarButtons)
Definição mtoolbar.class:586
const BUTTON_PRINT
Definição mtoolbar.class:261
$url
Definição base.php:2