v1.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace zin;
  3. class inputControl extends wg
  4. {
  5. /**
  6. * @var mixed[]
  7. */
  8. protected static $defineProps = array(
  9. 'prefix?: mixed',
  10. 'suffix?: mixed',
  11. 'prefixWidth?: string|int',
  12. 'suffixWidth?: string|int',
  13. 'class?: string'
  14. );
  15. /**
  16. * @var mixed[]
  17. */
  18. protected static $defineBlocks = array(
  19. 'prefix' => array(),
  20. 'suffix' => array()
  21. );
  22. protected function build()
  23. {
  24. list($prefix, $suffix, $prefixWidth, $suffixWidth, $class) = $this->prop(array('prefix', 'suffix', 'prefixWidth', 'suffixWidth', 'class'));
  25. if(empty($prefix)) $prefix = $this->block('prefix');
  26. if(empty($suffix)) $suffix = $this->block('suffix');
  27. $class = "input-control {$class}";
  28. $vars = array();
  29. if(!empty($prefix))
  30. {
  31. if(is_numeric($prefixWidth))
  32. {
  33. $vars['input-control-prefix'] = $prefixWidth . 'px';
  34. $class .= ' has-prefix';
  35. }
  36. elseif(!empty($prefixWidth))
  37. {
  38. $class .= " has-prefix-$prefixWidth";
  39. }
  40. else
  41. {
  42. $class .= ' has-prefix';
  43. }
  44. if(is_array($prefix) && !empty($prefix['widget']))
  45. {
  46. $prefix = createWg('control', set($prefix));
  47. }
  48. }
  49. if(!empty($suffix))
  50. {
  51. if(is_numeric($suffixWidth))
  52. {
  53. $vars['input-control-suffix'] = $suffixWidth . 'px';
  54. $class .= ' has-suffix';
  55. }
  56. elseif(!empty($suffixWidth))
  57. {
  58. $class .= " has-suffix-$suffixWidth";
  59. }
  60. else
  61. {
  62. $class .= ' has-suffix';
  63. }
  64. }
  65. return div
  66. (
  67. setClass($class),
  68. empty($vars) ? null : setCssVar($vars),
  69. $this->children(),
  70. empty($prefix) ? null : div(setClass('input-control-prefix'), $prefix),
  71. empty($suffix) ? null : div(setClass('input-control-suffix'), $suffix)
  72. );
  73. }
  74. }