00001 <?php
00035
00036
00037 class Form {
00038 private $id;
00039 private $method;
00040 private $action;
00041 private $dataform;
00042 private $groups = NULL;
00043 private $readperm;
00044 private $writeperm;
00045 private $groupreadperm;
00046 private $groupwriteperm;
00047 private $form = array();
00048 private $permvisible = FALSE;
00049 private $submit = LANG_CONFIRM;
00050 private $cancelvisible = FALSE;
00062 function __construct($id, $method, $action = "", $dataform = FALSE) {
00063 global $cfg;
00064
00065 $this->id = $id;
00066 $this->method = $method;
00067 if (!$action) { $action = $cfg->getConfig("DEFAULT_PAGE"); }
00068 $this->action = $action;
00069 $this->dataform = $dataform;
00070 }
00071
00077 private function getFormHeader() {
00078 if ($this->dataform) { $enctype = " enctype=\"multipart/form-data\""; }
00079 if ($this->permvisible) {
00080 $javascript = "<script type=\"text/javascript\">\n//<![CDATA[\n" .
00081 "function showChkPermsGroup(element, group) {\n" .
00082 "document.getElementById(group).style.display=((document.getElementById(element).value == 2) ? '' : 'none');\n" .
00083 "}\n" .
00084 "//]]>\n</script>\n";
00085 }
00086 return $javascript . "<form class=\"cmskeyform\" id=\"" . $this->_id .
00087 "\" method=\"" . $this->method .
00088 "\"" . $enctype . " action=\"" . $this->action . "\">\n";
00089 }
00090
00098 private function getFCKEditor($name, $defaulttext = "") {
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114 }
00115
00124 private function getRenderedElement($label, $element, $tip) {
00125 if ($label) { $item = "<div class=\"formitemcaption\">" . $label . "</div>\n"; }
00126 if ($element) { $item .= "<div class=\"formiteminput\">" . $element . "</div>\n"; }
00127 if ($tip) { $item .= "<div class=\"formitemtip\">" . $tip . "</div>\n"; }
00128 if ($item) { $item = "<div class=\"formitem\">\n" . $item . "</div><!-- formitem -->\n"; }
00129 return $item;
00130 }
00131
00137 private function getCancelButton() {
00138 if ($this->cancelvisible) {
00139 $qs = Content::getDecodedString($_GET['lp']);
00140 if ($qs) { $qs = "?" . $qs; }
00141 return "<input type=\"button\" name=\"cancel\" value=\" " . LANG_CANCEL .
00142 " \" onclick=\"document.location='" . $cfg->getConfig("DEFAULT_PAGE") . $qs . "';\" />\n";
00143 }
00144 }
00145
00156 public function addElement($type, $name, $label, $value, $attrs, $tips = "") {
00157 $item = array();
00158 $item['type'] = $type;
00159 $item['label'] = $label;
00160 $item['value'] = $value;
00161 $item['default'] = "";
00162 $item['attrs'] = "";
00163 if ($attrs) { $item['attrs'] = " " . $attrs; }
00164 $item['tips'] = $tips;
00165 $this->form[$name] = $item;
00166 }
00167
00174 public function addHidden($name, $value) {
00175 $this->addElement("hidden", $name, "", $value, "");
00176 }
00177
00183 public function addHTML($html) {
00184 $this->addElement("html", "", "", $html, "");
00185 }
00186
00192 public function setSubmitValue($value) {
00193 $this->submit = $value;
00194 }
00195
00199 public function showPermControls() {
00200 $this->permvisible = TRUE;
00201 }
00202
00206 public function showCancel() {
00207 $this->cancelvisible = TRUE;
00208 }
00209
00216 public function setValue($name, $value) {
00217 $this->form[$name]['value'] = $value;
00218 }
00219
00229 function addFileUploadBox($fieldname, $fieldcaption, $fieldtips, $filecode = "") {
00230
00231
00232
00233 }
00234
00241 private function setContentPartForm($tags, $values = NULL) {
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291 }
00292
00298 private function setPropertiesPartForm($id = 0) {
00299 }
00300
00308 private function getGroupsCheckBoxes($permtype, $selgroups) {
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326 }
00327
00336 function _getPermsBox($permtype, $value = "", $selgroups = "0") {
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351 }
00352
00361 function setPerms($readperm, $writeperm, $groupreadperm, $groupwriteperm) {
00362
00363
00364
00365
00366 }
00367
00375 function setForm($value) {
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402 }
00403
00410 public function setDefaultValue($name, $value) {
00411 $this->form[$name]['default'] = $value;
00412 }
00413
00419 public function getHTML() {
00420 foreach ($this->form as $key => $value) {
00421 switch ($value['type']) {
00422 case "button":
00423 case "reset":
00424 case "hidden":
00425 if ($hiddenlist) { $hiddenlist .= "\n"; }
00426 $hiddenlist .= "<input type=\"hidden\" name=\"" . $key . "\" value=\"" . $value['value'] . "\"" . $value['attrs'] . " />";
00427 break;
00428
00429 case "select":
00430 for ($i = 0; $i < count($value['value']); $i++) {
00431 $e .= "<option value=\"" . $value['value'][$i][0] . "\"";
00432 if ($value['value'][$i][0] == $value['default']) { $e .= " selected"; }
00433 $e .= ">" . $value['value'][$i][1] . "</options>\n";
00434 }
00435 $itemlist .= $this->getRenderedElement($value['label'],
00436 "<select name=\"" . $key . "\"" . $value['attrs'] . ">\n" . $e . "</select>",
00437 $value['tips']);
00438 break;
00439
00440 case "textarea":
00441 $itemlist .= $this->getRenderedElement($value['label'],
00442 "<textarea name=\"" . $key . "\"" . $value['attrs'] . ">" . $value['value'] . "</textarea>",
00443 $value['tips']);
00444 break;
00445
00446 case "checkbox":
00447 $itemlist .= $this->getRenderedElement("",
00448 "<input type=\"checkbox\" name=\"" . $key . "\" value=\"" . $key . "\" " . ($value['value'] ? " checked=\"checked\"" : "") . " /> " .
00449 $value['label'],
00450 $value['tips']);
00451 break;
00452
00453
00454
00455
00456 case "html":
00457 $itemlist .= $this->getRenderedElement($value['label'], $value['value'], $value['tips']);
00458 break;
00459
00460
00461
00462
00463
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484 default:
00485 $newitem = $this->getRenderedElement($value['label'],
00486 "<input type=\"" . $value['type'] . "\" name=\"" . $key . "\" value=\"" . $value['value'] . "\"" . $value['attrs'] . " />",
00487 $value['tips']);
00488
00489 $itemlist .= $newitem;
00490 }
00491 }
00492
00493
00494 if ($this->permvisible) {
00495 $permcontrols = $this->getPermsBox("r", $this->readperm, $this->groupreadperm) .
00496 $this->getPermsBox("w", $this->writeperm, $this->groupwriteperm);
00497 }
00498
00499 $btnlist = "<input class=\"submitbutton\" type=\"submit\" name=\"submit\" value=\" " . $this->submit . " \" />\n" . $this->getCancelButton();
00500 if ($hiddenlist) { $btnlist = $hiddenlist . "\n" . $btnlist; }
00501 if ($btnlist) { $btnlist = "<div class=\"formbuttons\">\n" . $btnlist . "\n</div><!-- formbuttons -->\n"; }
00502 $f = $itemlist . $permcontrols . $btnlist;
00503 if ($f) { $f = $this->getFormHeader() . "<fieldset>\n" . $f . "</fieldset>\n</form>\n"; }
00504 return $f;
00505 }
00506 }
00507 ?>