PageRenderTime 25ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/phpSurvey/library/Snake/Ext/Checkbox.php

http://devj.googlecode.com/
PHP | 117 lines | 57 code | 4 blank | 56 comment | 8 complexity | 0b9b692be0d9d7950afe6c27ceb0b8de MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause
  1. <?php
  2. /**
  3. * ???????
  4. *
  5. * @param string $name
  6. * @param array $arr
  7. * @param array $selected
  8. * @param string $separator
  9. * @param string $extra
  10. */
  11. class Ext_Checkbox extends Ext_Snake {
  12. /**
  13. * HTML??input?name
  14. *
  15. * @var string
  16. */
  17. var $name = 'checkbox';
  18. /**
  19. * ??label??????
  20. *
  21. * @var array
  22. */
  23. var $vt = array();
  24. /**
  25. * ?????
  26. *
  27. * @var array
  28. */
  29. var $selected = array();
  30. /**
  31. * ????
  32. *
  33. * @var unknown_type
  34. */
  35. var $extra = null;
  36. /**
  37. * ???????
  38. *
  39. * @var unknown_type
  40. */
  41. var $method = 'xtype';
  42. /**
  43. * ????????true?echo
  44. * ???flase?return
  45. *
  46. * @var boolean
  47. */
  48. var $output = false;
  49. var $anchor = '20%';
  50. /**
  51. * ???????
  52. *
  53. */
  54. function group() {
  55. // ???????????
  56. $echo = array();
  57. if (!is_array($this->selected)) {
  58. $this->selected = array($this->selected);
  59. }
  60. foreach ((array)$this->vt as $value => $title) {
  61. if (in_array($value, $this->selected)) {
  62. $selected = true;
  63. }else {
  64. $selected = false;
  65. }
  66. $echo[] = $this->xtype($this->name,$value,$title,$selected,$this->anchor,$this->extra);
  67. }
  68. $output = implode(',',$echo);
  69. if ($this->output == true) {
  70. echo $output;
  71. }else {
  72. return $output;
  73. }
  74. }
  75. /**
  76. * ?xtype????????ITEM?
  77. *
  78. * @param string $name
  79. * @param string $value
  80. * @param string $label
  81. * @param boolean $selected
  82. * @param string $anchor
  83. * @param string $extra
  84. */
  85. function xtype($name,$value = 'on',$label='', $selected = false,$anchor = '20%', $extra = null)
  86. {
  87. if (empty($name)) {
  88. return ;
  89. }
  90. if (empty($name)) {
  91. $id = $name.'_'.mt_rand(0,99);
  92. }
  93. // ??????
  94. $label = st($label);
  95. $value = Basic::h($value);
  96. $string = "{ \r";
  97. if (!empty($label)) {
  98. $string .= "fieldLabel:'{$label}',\r";
  99. }
  100. $string .= " xtype:'checkbox',\r
  101. name:'{$name}[]',\r";
  102. if (is_numeric($value)){
  103. $string .= " inputValue:{$value},\r";
  104. }else {
  105. $string .= " inputValue:'{$value}',\r";
  106. }
  107. $string .= " anchor:'{$anchor}'\r";
  108. if ($selected){$string.=',checked:true';}
  109. if (!empty($extra)){$string.=','.$extra;}
  110. $string .= "}";
  111. return $string;
  112. }
  113. }