v1.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace zin;
  3. class sidebar extends wg
  4. {
  5. /**
  6. * @var mixed[]
  7. */
  8. protected static $defineProps = array(
  9. 'side?:string="left"',
  10. 'width?:string|number=160',
  11. 'maxWidth?:string|number=360',
  12. 'minWidth?:string|number=160',
  13. 'showToggle?:bool=true',
  14. 'parent?:string',
  15. 'preserve?:string',
  16. 'dragToResize?:bool=true',
  17. 'toggleBtn?:bool=true',
  18. 'onToggle?:function'
  19. );
  20. protected function checkErrors()
  21. {
  22. list($maxWidth, $minWidth, $width) = $this->prop(array('maxWidth', 'minWidth', 'width'));
  23. if(is_numeric($width))
  24. {
  25. if(is_numeric($maxWidth) && $width > $maxWidth) trigger_error('[ZIN] The property "width" value ' . $width . ' must be less than or equal to the property "maxWidth" value ' . $maxWidth . ' in sidebar().', E_USER_WARNING);
  26. if(is_numeric($minWidth) && $width < $minWidth) trigger_error('[ZIN] The property "width" value ' . $width . ' must be greater than or equal to the property "minWidth" value ' . $minWidth . ' in sidebar().', E_USER_WARNING);
  27. }
  28. }
  29. protected function build()
  30. {
  31. list($side, $showToggle, $width, $preserve, $parent, $maxWidth, $minWidth, $dragToResize, $onToggle, $toggleBtn) = $this->prop(array('side', 'showToggle', 'width', 'preserve', 'parent', 'maxWidth', 'minWidth', 'dragToResize', 'onToggle', 'toggleBtn'));
  32. if($preserve === null)
  33. {
  34. global $app;
  35. $preserve = $app->rawModule . '-' . $app->rawMethod;
  36. }
  37. return div
  38. (
  39. setClass('sidebar'),
  40. zui::create('sidebar', array('side' => $side, 'toggleBtn' => $showToggle, 'preserve' => $preserve, 'parent' => $parent, 'maxWidth' => $maxWidth, 'minWidth' => $minWidth, 'width' => $width, 'dragToResize' => $dragToResize, 'onToggle' => $onToggle, 'toggleBtn' => $toggleBtn)),
  41. set($this->getRestProps()),
  42. $this->children()
  43. );
  44. }
  45. }