1: <?php
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: class TextBox {
48: 49: 50: 51: 52: 53:
54: public $textObject;
55:
56: 57: 58: 59: 60: 61:
62: public $label;
63:
64: 65: 66: 67: 68: 69:
70: public $name;
71:
72: 73: 74: 75: 76: 77:
78: public $rows;
79:
80: 81: 82: 83: 84: 85:
86: public $identifier;
87:
88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98:
99: public function __construct($text, $label, $name, $rows=5, $identifier=0) {
100: if($text instanceof Text)
101: $this->textObject = $text;
102: else
103: throw new IllegalArguementException('Text object passed ['.var_export($text, true).'] is not a valid Text object!');
104:
105: $this->label = $label;
106: $this->name = $name;
107: $this->rows = $rows;
108: $this->identifier = $identifier;
109: }
110:
111: 112: 113: 114: 115: 116: 117: 118:
119: public function render($tableTags=true, $markdown=false) {
120: global $config;
121:
122: $html = '';
123:
124: if($tableTags) {
125: $html .= '<tr><th colspan="2" style="text-align:center;">';
126: $html .= $this->label;
127: $html .= '</th></tr>';
128:
129: $html .= '<tr><td colspan="2">';
130: }
131:
132: if($markdown) {
133: $html .= '<input type="hidden" id="markdownTextBoxRows" name="markdownTextBoxRows" value=""/>';
134: }
135: $html .= '<textarea class="checkMax" maxlength="'.$this->textObject->getSize().'" id="text_field_'.$this->name.'_'.$this->identifier.'" style="width:100%;" rows="'.$this->rows.'" name="'.$this->name.'">';
136:
137: if($this->textObject->getAllowHTML())
138: $html .= InputFilter::decode($this->textObject->getValue(), true);
139: else
140: $html .= InputFilter::decode($this->textObject->getValue());
141:
142: $html .= '</textarea><br>';
143:
144: if($tableTags) {
145: $html .= '</td></tr>';
146: $html .= '<tr><td colspan="2">';
147: }
148:
149: if($markdown) {
150: $increaseTextArea = new Button("document.getElementById('text_field_".$this->name."_".$this->identifier."').rows = ".
151: "(parseInt(document.getElementById('text_field_".$this->name."_".$this->identifier."').rows) + 10);".
152: "document.getElementById('markdownTextBoxRows').value = (parseInt(document.getElementById('text_field_".$this->name."_".$this->identifier."').rows));",
153: "Increase text area", $this->name."IncBut", $config->get('app.url')."/alpha/images/icons/arrow_down.png");
154: }else{
155: $increaseTextArea = new Button("document.getElementById('text_field_".$this->name."_".$this->identifier."').rows = ".
156: "(parseInt(document.getElementById('text_field_".$this->name."_".$this->identifier."').rows) + 10);",
157: "Increase text area", $this->name."IncBut", $config->get('app.url')."/alpha/images/icons/arrow_down.png");
158: }
159:
160: $html .= $increaseTextArea->render();
161:
162: if($markdown) {
163: $decreaseTextArea = new Button("if(document.getElementById('text_field_".$this->name."_".$this->identifier."').rows > 10) ".
164: "{document.getElementById('text_field_".$this->name."_".$this->identifier."').rows = (parseInt(document.getElementById('text_field_".
165: $this->name."_".$this->identifier."').rows) - 10)};".
166: "document.getElementById('markdownTextBoxRows').value = (parseInt(document.getElementById('text_field_".$this->name."_".$this->identifier."').rows));",
167: "Decrease text area", $this->name."DecBut", $config->get('app.url')."/alpha/images/icons/arrow_up.png");
168: }else{
169: $decreaseTextArea = new Button("if(document.getElementById('text_field_".$this->name."_".$this->identifier."').rows > 10) ".
170: "{document.getElementById('text_field_".$this->name."_".$this->identifier."').rows = (parseInt(document.getElementById('text_field_".
171: $this->name."_".$this->identifier."').rows) - 10)};",
172: "Decrease text area", $this->name."DecBut", $config->get('app.url')."/alpha/images/icons/arrow_up.png");
173: }
174:
175: $html .= $decreaseTextArea->render();
176:
177: if($tableTags)
178: $html .= '</td></tr>';
179:
180: if($this->textObject->getRule() != '') {
181: $html .= '<input type="hidden" id="'.$this->name.'_msg" value="'.$this->textObject->getHelper().'"/>';
182: $html .= '<input type="hidden" id="'.$this->name.'_rule" value="'.$this->textObject->getRule().'"/>';
183: }
184:
185: return $html;
186: }
187:
188: 189: 190: 191: 192: 193: 194:
195: public function setTextObject($text) {
196: if($text instanceof Text)
197: $this->text = $text;
198: else
199: throw new IllegalArguementException('Text object passed ['.var_export($text, true).'] is not a valid Text object!');
200: }
201:
202: 203: 204: 205: 206: 207:
208: function getTextObject() {
209: return $this->textObject;
210: }
211: }
212:
213: ?>
214: