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));
}