X-Git-Url: https://git-public.kairo.at/?p=php-utility-classes.git;a=blobdiff_plain;f=include%2Fcbsm%2Futil%2Fdocument.php-class;h=b708d1cb3a32c779575016b40beb70d0f2587c18;hp=d023c997d781afeafe809a6ad6e4fb8a5259cd5d;hb=14014b8f766b1c6af7c67eb2b902144510d25e69;hpb=a8816f4353d72c047dd754a9c4952e9a7c7ae99d diff --git a/include/cbsm/util/document.php-class b/include/cbsm/util/document.php-class index d023c99..b708d1c 100755 --- a/include/cbsm/util/document.php-class +++ b/include/cbsm/util/document.php-class @@ -27,11 +27,9 @@ class ExtendedDocument extends DOMDocument { // CONSTRUCTOR // construct a new DOM Document that uses our element definitions // - // private $xmheader - // the default XML header - // - // private $xhtmldtype - // the XHTML doctype to use by default + // static function initHTML5() + // initialize as an HTML5 document and return references to its basic elements. + // returns an associative array with the following elements: 'html', 'head', 'title', 'body' // // function appendElement($name, [$value]) // appends a DOMDocument::createElement() as a child of this document (see there for params) @@ -82,6 +80,10 @@ class ExtendedDocument extends DOMDocument { // appends an ExtendedDocument::createElementInputCheckbox() as a child of this document (see there for params) // returns the new child // + // function appendInputFile($name, $id, $accept) + // appends an ExtendedDocument::createElementInputFile() as a child of this document (see there for params) + // returns the new child + // // function appendInputSubmit($value) // appends an ExtendedDocument::createElementInputSubmit() as a child of this document (see there for params) // returns the new child @@ -163,6 +165,9 @@ class ExtendedDocument extends DOMDocument { // returns an ExtendedElement that is an HTML of type 'checkbox' with the given name, id, value and // checked state // + // function createElementInputFile($name, $id, $accept) + // returns an ExtendedElement that is an HTML of type 'file' with the given name, id and accept + // // function createElementInputSubmit($value) // returns an ExtendedElement that is an HTML of type 'submit' with the given value as label // @@ -198,6 +203,23 @@ class ExtendedDocument extends DOMDocument { $this->registerNodeClass('DOMDocumentFragment', 'ExtendedDocumentFragment'); } + static function initHTML5() { + $doc = new ExtendedDocument(); + $doc->loadHTML(''); // this seems to be the only way to get the DOCTYPE set properly. + + // Created basic HTML document structure. + $root = $doc->getElementsByTagName('html')->item(0); + $head = $root->appendElement('head'); + $title = $head->appendElement('title'); + $body = $root->appendElement('body'); + + return array('document' => $doc, + 'html' => $root, + 'head' => $head, + 'title' => $title, + 'body' => $body); + } + function appendElement($name, $value = '') { return $this->appendChild($this->createElement($name, $value)); } @@ -238,6 +260,9 @@ class ExtendedDocument extends DOMDocument { function appendInputCheckbox($name, $id, $value, $checked) { return $this->appendChild($this->createElementInputCheckbox($name, $id, $value, $checked)); } + function appendInputFile($name, $id, $accept) { + return $this->appendChild($this->createElementInputFile($name, $id, $accept)); + } function appendInputSubmit($value) { return $this->appendChild($this->createElementInputSubmit($value)); } @@ -361,7 +386,7 @@ class ExtendedDocument extends DOMDocument { $radio = $this->createElement('input'); $radio->setAttribute('type', 'radio'); $radio->setAttribute('name', $name); - $radio->setAttribute('id', $id); + if (!is_null($id)) { $radio->setAttribute('id', $id); } $radio->setAttribute('value', $value); if ($checked) { $radio->setAttribute('checked', ''); } return $radio; @@ -371,12 +396,21 @@ class ExtendedDocument extends DOMDocument { $cbox = $this->createElement('input'); $cbox->setAttribute('type', 'checkbox'); $cbox->setAttribute('name', $name); - $cbox->setAttribute('id', $id); + if (!is_null($id)) { $cbox->setAttribute('id', $id); } $cbox->setAttribute('value', $value); if ($checked) { $cbox->setAttribute('checked', ''); } return $cbox; } + function createElementInputFile($name, $id, $accept) { + $fileinput = $this->createElement('input'); + $fileinput->setAttribute('type', 'file'); + $fileinput->setAttribute('name', $name); + if (!is_null($id)) { $fileinput->setAttribute('id', $id); } + $fileinput->setAttribute('accept', $accept); + return $fileinput; + } + function createElementInputSubmit($value) { $submitbtn = $this->createElement('input'); $submitbtn->setAttribute('type', 'submit'); @@ -495,6 +529,10 @@ class ExtendedElement extends DOMElement { // appends an ExtendedDocument::createElementInputCheckbox() as a child of this element (see there for params) // returns the new child // + // function appendInputFile($name, $id, $accept) + // appends an ExtendedDocument::createElementInputFile() as a child of this element (see there for params) + // returns the new child + // // function appendInputSubmit($value) // appends an ExtendedDocument::createElementInputSubmit() as a child of this element (see there for params) // returns the new child @@ -582,6 +620,9 @@ class ExtendedElement extends DOMElement { function appendInputCheckbox($name, $id, $value, $checked) { return $this->appendChild($this->ownerDocument->createElementInputCheckbox($name, $id, $value, $checked)); } + function appendInputFile($name, $id, $accept) { + return $this->appendChild($this->ownerDocument->createElementInputFile($name, $id, $accept)); + } function appendInputSubmit($value) { return $this->appendChild($this->ownerDocument->createElementInputSubmit($value)); } @@ -673,6 +714,10 @@ class ExtendedDocumentFragment extends DOMDocumentFragment { // appends an ExtendedDocument::createElementInputCheckbox() as a child of this fragment (see there for params) // returns the new child // + // function appendInputFile($name, $id, $accept) + // appends an ExtendedDocument::createElementInputFile() as a child of this fragment (see there for params) + // returns the new child + // // function appendInputSubmit($value) // appends an ExtendedDocument::createElementInputSubmit() as a child of this fragment (see there for params) // returns the new child @@ -760,6 +805,9 @@ class ExtendedDocumentFragment extends DOMDocumentFragment { function appendInputCheckbox($name, $id, $value, $checked) { return $this->appendChild($this->ownerDocument->createElementInputCheckbox($name, $id, $value, $checked)); } + function appendInputFile($name, $id, $accept) { + return $this->appendChild($this->ownerDocument->createElementInputFile($name, $id, $accept)); + } function appendInputSubmit($value) { return $this->appendChild($this->ownerDocument->createElementInputSubmit($value)); }