openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit ac3ba1741026afdcccd70e3b44a2363599ad45f9
parent 8a6511cf5ea045b52423ebb4cb843011b474fb3f
Author: Jan Dankert <develop@jandankert.de>
Date:   Thu,  2 Jun 2022 01:04:54 +0200

New: Element type "checkbox"

Diffstat:
Mmodules/cms/action/PageelementAction.class.php | 15++++++++++++++-
Mmodules/cms/action/element/ElementAdvancedAction.class.php | 247+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
Mmodules/cms/action/page/PageAllAction.class.php | 18++++++++++--------
Mmodules/cms/action/pageelement/PageelementAllAction.class.php | 7+++++++
Mmodules/cms/generator/ValueGenerator.class.php | 210+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Mmodules/cms/model/Element.class.php | 28++--------------------------
Mmodules/cms/ui/themes/default/html/views/page/all.php | 24+++++++++++++++++++++++-
Mmodules/cms/ui/themes/default/html/views/page/all.tpl.src.xml | 15++++++++++++++-
Mmodules/cms/ui/themes/default/html/views/pageelement/all.php | 24+++++++++++++++++++++++-
Mmodules/cms/ui/themes/default/html/views/pageelement/all.tpl.src.xml | 15++++++++++++++-
Mmodules/cms/ui/themes/default/html/views/pageelement/value.php | 12+++++++++++-
Mmodules/cms/ui/themes/default/html/views/pageelement/value.tpl.src.xml | 9++++++++-
12 files changed, 428 insertions(+), 196 deletions(-)

diff --git a/modules/cms/action/PageelementAction.class.php b/modules/cms/action/PageelementAction.class.php @@ -329,6 +329,11 @@ class PageelementAction extends BaseAction $this->setTemplateVar( 'text',$this->value->text ); } + protected function editCheckbox() + { + $this->setTemplateVar( 'number',$this->value->number ); + } + protected function saveData() { $this->saveText(); @@ -537,7 +542,12 @@ class PageelementAction extends BaseAction - /** + protected function saveCheckbox() + { + $this->saveNumber(); + } + + /** * Element speichern * * Der Inhalt eines Elementes wird abgespeichert @@ -681,6 +691,9 @@ class PageelementAction extends BaseAction case Element::ELEMENT_TYPE_NUMBER: return $value->number; + case Element::ELEMENT_TYPE_CHECKBOX: + return $value->number?'ON':'OFF'; + default: return ''; } diff --git a/modules/cms/action/element/ElementAdvancedAction.class.php b/modules/cms/action/element/ElementAdvancedAction.class.php @@ -5,6 +5,7 @@ use cms\action\ElementAction; use cms\action\Method; use cms\action\RequestParams; use cms\base\Configuration; +use cms\generator\ValueGenerator; use cms\model\BaseObject; use cms\model\Element; use cms\model\Folder; @@ -18,127 +19,167 @@ use util\Text; class ElementAdvancedAction extends ElementAction implements Method { - public function view() { + + const PROP_INHERIT = 'inherit'; + const PROP_WITHICON = 'withIcon'; + const PROP_ALL_LANGUAGES = 'allLanguages'; + const PROP_WRITABLE = 'writable'; + const PROP_HTML = 'html'; + const PROP_DEFAULT_TEXT = 'defaultText'; + const PROP_FORMAT = 'format'; + const PROP_LINKTYPE = 'linktype'; + const PROP_FOLDER_OBJECTID ='folderObjectId'; + const PROP_DEFAULT_OBJECTID ='defaultObjectId'; + const PROP_SUBTYPE = 'subtype'; + const PROP_DECPOINT = 'decPoint'; + const PROP_DECIMALS = 'decimals'; + const PROP_THOUSANDSEP = 'thousandSep'; + const PROP_CODE = 'code'; + const PROP_DATEFORMAT = 'dateformat'; + const PROP_PREFIX = 'prefix'; + const PROP_NAME = 'name'; + + public function view() { + $this->setTemplateVar('type',$this->element->getTypeName() ); // Abhaengig vom aktuellen Element-Typ die Eigenschaften anzeigen - $properties = $this->element->getRelatedProperties(); - - foreach( $this->element->getRelatedProperties() as $propertyName ) + foreach( $this->getRelatedProperties() as $propertyName ) { switch( $propertyName ) { - case 'withIcon': + case self::PROP_WITHICON: $this->setTemplateVar('with_icon' ,$this->element->withIcon ); break; - case 'allLanguages': + case self::PROP_ALL_LANGUAGES: $this->setTemplateVar('all_languages',$this->element->allLanguages); break; - case 'writable': + case self::PROP_WRITABLE: $this->setTemplateVar('writable' ,$this->element->writable ); break; - case 'inherit': + case self::PROP_INHERIT: $this->setTemplateVar('inherit' ,$this->element->inherit ); break; - case 'html': + case self::PROP_HTML: $this->setTemplateVar('html' ,$this->element->html ); break; - case 'subtype': + case self::PROP_SUBTYPE: $convertToLang = false; switch( $this->element->typeid ) { case Element::ELEMENT_TYPE_INFO: - $subtypes = Array('db_id', - 'db_name', - 'project_id', - 'project_name', - 'language_id', - 'language_iso', - 'language_name', - 'page_id', - 'page_name', - 'page_desc', - 'page_fullfilename', - 'page_filename', - 'page_extension', - 'edit_url', - 'edit_fullurl', - 'lastch_user_username', - 'lastch_user_fullname', - 'lastch_user_mail', - 'lastch_user_desc', - 'lastch_user_tel', - 'create_user_username', - 'create_user_fullname', - 'create_user_mail', - 'create_user_desc', - 'create_user_tel', - 'act_user_username', - 'act_user_fullname', - 'act_user_mail', - 'act_user_desc', - 'act_user_tel' ); + $subtypes = [ + ValueGenerator::INFO_DB_ID, + ValueGenerator::INFO_DB_NAME, + ValueGenerator::INFO_PROJECT_ID, + ValueGenerator::INFO_PROJECT_NAME, + ValueGenerator::INFO_LANGUAGE_ID, + ValueGenerator::INFO_LANGUAGE_ISO, + ValueGenerator::INFO_LANGUAGE_NAME, + ValueGenerator::INFO_PAGE_ID, + ValueGenerator::INFO_PAGE_NAME, + ValueGenerator::INFO_PAGE_DESC, + ValueGenerator::INFO_PAGE_FULLFILENAME, + ValueGenerator::INFO_PAGE_FILENAME, + ValueGenerator::INFO_PAGE_EXTENSION, + ValueGenerator::INFO_EDIT_URL, + ValueGenerator::INFO_EDIT_FULLURL, + ValueGenerator::INFO_LASTCHANGE_USER_USERNAME, + ValueGenerator::INFO_LASTCHANGE_USER_FULLNAME, + ValueGenerator::INFO_LASTCHANGE_USER_MAIL, + ValueGenerator::INFO_LASTCHANGE_USER_DESC, + ValueGenerator::INFO_LASTCHANGE_USER_TEL, + ValueGenerator::INFO_CREATION_USER_USERNAME, + ValueGenerator::INFO_CREATION_FULLNAME, + ValueGenerator::INFO_CREATION_MAIL, + ValueGenerator::INFO_CREATION_DESC, + ValueGenerator::INFO_CREATION_TEL, + ValueGenerator::INFO_ACT_USERNAME, + ValueGenerator::INFO_ACT_FULLNAME, + ValueGenerator::INFO_ACT_MAIL, + ValueGenerator::INFO_ACT_DESC, + ValueGenerator::INFO_ACT_TEL, + ValueGenerator::INFO_PUB_USERNAME, + ValueGenerator::INFO_PUB_FULLNAME, + ValueGenerator::INFO_PUB_MAIL, + ValueGenerator::INFO_PUB_DESC, + ValueGenerator::INFO_PUB_TEL + ]; $convertToLang = true; break; case Element::ELEMENT_TYPE_INFODATE: case Element::ELEMENT_TYPE_LINKDATE: - $subtypes = Array('date_published', - 'date_saved', - 'date_created' ); + $subtypes = [ + ValueGenerator::INFO_DATE_PUBLISHED, + ValueGenerator::INFO_DATE_SAVED, + ValueGenerator::INFO_DATE_CREATED, + ]; $convertToLang = true; break; case Element::ELEMENT_TYPE_LINK: - $subtypes = Array( - 'file', - 'image', - 'image_data_uri', - 'page', - 'folder', - 'link' ); + $subtypes = [ + ValueGenerator::LINK_FILE_, + ValueGenerator::LINK_IMAGE, + ValueGenerator::LINK_IMAGE_DATE_URI, + ValueGenerator::LINK_PAGE, + ValueGenerator::LINK_FOLDER, + ValueGenerator::LINK_LINK + ]; $convertToLang = true; break; case Element::ELEMENT_TYPE_CODE: + $subtypes = [ - 'php', - 'js', - ]; + ValueGenerator::CODE_PHP, + ValueGenerator::CODE_SCRIPT, + ValueGenerator::CODE_MUSTACHE, + ]; $convertToLang = true; break; case Element::ELEMENT_TYPE_LINKINFO: - $subtypes = Array('width', - 'height', - 'id', - 'name', - 'description', - 'mime_type', - 'lastch_user_username', - 'lastch_user_fullname', - 'lastch_user_mail', - 'lastch_user_desc', - 'lastch_user_tel', - 'create_user_username', - 'create_user_fullname', - 'create_user_mail', - 'create_user_desc', - 'create_user_tel', - 'filename', - 'full_filename' ); + $subtypes = [ + ValueGenerator::LINKINFO_WIDTH, + ValueGenerator::LINKINFO_HEIGHT, + ValueGenerator::LINKINFO_ID, + ValueGenerator::LINKINFO_NAME, + ValueGenerator::LINKINFO_DESCRIPTION, + ValueGenerator::LINKINFO_MIME_TYPE, + ValueGenerator::INFO_LASTCHANGE_USER_USERNAME, + ValueGenerator::INFO_LASTCHANGE_USER_FULLNAME, + ValueGenerator::INFO_LASTCHANGE_USER_MAIL, + ValueGenerator::INFO_LASTCHANGE_USER_DESC, + ValueGenerator::INFO_LASTCHANGE_USER_TEL, + ValueGenerator::INFO_CREATION_USER_USERNAME, + ValueGenerator::INFO_CREATION_FULLNAME, + ValueGenerator::INFO_CREATION_MAIL, + ValueGenerator::INFO_CREATION_DESC, + ValueGenerator::INFO_CREATION_TEL, + ValueGenerator::INFO_PUB_USERNAME, + ValueGenerator::INFO_PUB_FULLNAME, + ValueGenerator::INFO_PUB_MAIL, + ValueGenerator::INFO_PUB_DESC, + ValueGenerator::INFO_PUB_TEL, + ValueGenerator::INFO_FILENAME, + ValueGenerator::INFO_FULL_FILENAME + ]; $convertToLang = true; break; case Element::ELEMENT_TYPE_INSERT: - $subtypes = Array('inline', - 'ssi' ); + $subtypes = [ + ValueGenerator::INSERT_INLINE, + ValueGenerator::INSERT_SSI, + ]; $convertToLang = true; break; @@ -147,8 +188,8 @@ class ElementAdvancedAction extends ElementAction implements Method { case Element::ELEMENT_TYPE_COORD: $subtypes = [ - 'olc', - 'coordinates', + ValueGenerator::COORD_OLC, + ValueGenerator::COORD_COORDINATES, ]; $convertToLang = true; break; @@ -191,7 +232,7 @@ class ElementAdvancedAction extends ElementAction implements Method { break; - case 'dateformat': + case self::PROP_DATEFORMAT: $ini_date_format = Configuration::subset('date')->get('format',[]); $dateformat = array(); @@ -214,7 +255,7 @@ class ElementAdvancedAction extends ElementAction implements Method { // Eigenschaften Text und Text-Absatz - case 'defaultText': + case self::PROP_DEFAULT_TEXT: switch( $this->element->typeid ) { @@ -230,7 +271,7 @@ class ElementAdvancedAction extends ElementAction implements Method { break; - case 'format': + case self::PROP_FORMAT: $this->setTemplateVar('format', $this->element->format ); $formats = Element::getAvailableFormats(); @@ -245,12 +286,12 @@ class ElementAdvancedAction extends ElementAction implements Method { $this->setTemplateVar('formatlist', $formats); break; - case 'linktype': + case self::PROP_LINKTYPE: $this->setTemplateVar('linktype', $this->element->wiki ); $this->setTemplateVar('linktypelist', array('page','file','link') ); break; - case 'prefix': + case self::PROP_PREFIX: $t = new Template( $this->element->templateid ); $elements = array(); @@ -268,7 +309,7 @@ class ElementAdvancedAction extends ElementAction implements Method { break; - case 'name': + case self::PROP_NAME: $names = array(); @@ -297,7 +338,7 @@ class ElementAdvancedAction extends ElementAction implements Method { break; // Eigenschaften PHP-Code - case 'code': + case self::PROP_CODE: switch( $this->element->typeid ) { @@ -357,21 +398,21 @@ class ElementAdvancedAction extends ElementAction implements Method { break; - case 'decimals': + case self::PROP_DECIMALS: $this->setTemplateVar('decimals' ,$this->element->decimals ); break; - case 'decPoint': + case self::PROP_DECPOINT: $this->setTemplateVar('dec_point' ,$this->element->decPoint ); break; - case 'thousandSep': + case self::PROP_THOUSANDSEP: $this->setTemplateVar('thousand_sep' ,$this->element->thousandSep ); break; // Eigenschaften Link - case 'defaultObjectId': + case self::PROP_DEFAULT_OBJECTID: $objects = array(); @@ -425,7 +466,7 @@ class ElementAdvancedAction extends ElementAction implements Method { break; - case 'folderObjectId': + case self::PROP_FOLDER_OBJECTID: // Ermitteln aller verf?gbaren Objekt-IDs @@ -524,4 +565,36 @@ class ElementAdvancedAction extends ElementAction implements Method { $this->addNoticeFor( $this->element, Messages::SAVED); } + + + + /** + * Abhaengig vom Element-Typ werden die zur Darstellung notwendigen Eigenschaften ermittelt. + * @return string[] + */ + protected function getRelatedProperties() + { + $relatedProperties = [ + Element::ELEMENT_TYPE_TEXT => [self::PROP_INHERIT,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_HTML,self::PROP_DEFAULT_TEXT,self::PROP_FORMAT], + Element::ELEMENT_TYPE_LONGTEXT => [self::PROP_INHERIT,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_HTML,self::PROP_DEFAULT_TEXT,self::PROP_FORMAT], + Element::ELEMENT_TYPE_SELECT => [self::PROP_INHERIT,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_DEFAULT_TEXT,self::PROP_CODE], + Element::ELEMENT_TYPE_NUMBER => [self::PROP_INHERIT,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_DECPOINT,self::PROP_DECIMALS,self::PROP_THOUSANDSEP,self::PROP_CODE], + Element::ELEMENT_TYPE_CHECKBOX => [self::PROP_INHERIT,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE], + Element::ELEMENT_TYPE_LINK => [self::PROP_INHERIT,self::PROP_SUBTYPE,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_LINKTYPE,self::PROP_FOLDER_OBJECTID,self::PROP_DEFAULT_OBJECTID], + Element::ELEMENT_TYPE_DATE => [self::PROP_INHERIT,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_DATEFORMAT,self::PROP_DEFAULT_TEXT], + Element::ELEMENT_TYPE_INSERT => [self::PROP_INHERIT,self::PROP_SUBTYPE,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_FOLDER_OBJECTID,self::PROP_DEFAULT_OBJECTID], + Element::ELEMENT_TYPE_COPY => [self::PROP_INHERIT,self::PROP_PREFIX,self::PROP_NAME,self::PROP_DEFAULT_TEXT], + Element::ELEMENT_TYPE_LINKINFO => [self::PROP_PREFIX,self::PROP_SUBTYPE,self::PROP_DEFAULT_TEXT], + Element::ELEMENT_TYPE_LINKDATE => [self::PROP_PREFIX,self::PROP_SUBTYPE,self::PROP_DATEFORMAT], + Element::ELEMENT_TYPE_CODE => [self::PROP_CODE,self::PROP_SUBTYPE], + Element::ELEMENT_TYPE_DYNAMIC => [self::PROP_SUBTYPE,self::PROP_CODE], + Element::ELEMENT_TYPE_INFO => [self::PROP_SUBTYPE], + Element::ELEMENT_TYPE_INFODATE => [self::PROP_SUBTYPE,self::PROP_DATEFORMAT], + Element::ELEMENT_TYPE_DATA => [self::PROP_INHERIT,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_CODE], + Element::ELEMENT_TYPE_COORD => [self::PROP_INHERIT,self::PROP_WITHICON,self::PROP_ALL_LANGUAGES,self::PROP_WRITABLE,self::PROP_SUBTYPE], + ]; + + return $relatedProperties[ $this->element->typeid ]; + } + } diff --git a/modules/cms/action/page/PageAllAction.class.php b/modules/cms/action/page/PageAllAction.class.php @@ -151,6 +151,10 @@ class PageAllAction extends PageAction implements Method { $content = $value->number / pow(10, $element->decimals); break; + case Element::ELEMENT_TYPE_CHECKBOX: + $content = $value->number; + break; + case Element::ELEMENT_TYPE_LONGTEXT: if ($requestFormat = $this->request->getText('format')) // Individual format from request. @@ -227,14 +231,6 @@ class PageAllAction extends PageAction implements Method { $value->text = $this->compactOIDs($this->request->getText($element->name)); break; - case Element::ELEMENT_TYPE_COORD: - $value->text = $this->request->getText($element->name); - break; - - case Element::ELEMENT_TYPE_DATA: - $value->text = $this->request->getText($element->name); - break; - case Element::ELEMENT_TYPE_DATE: $value->date = strtotime($this->request->getText($element->name . '_date') . $this->request->getText($element->name . '_time')); break; @@ -242,6 +238,9 @@ class PageAllAction extends PageAction implements Method { case Element::ELEMENT_TYPE_SELECT: $value->text = $this->request->getText($element->name); break; + case Element::ELEMENT_TYPE_CHECKBOX: + $value->number = $this->request->getText($element->name)?1:0; + break; case Element::ELEMENT_TYPE_LINK: case Element::ELEMENT_TYPE_INSERT: $value->linkToObjectId = intval($this->request->getNumber($element->name)); @@ -250,6 +249,9 @@ class PageAllAction extends PageAction implements Method { case Element::ELEMENT_TYPE_NUMBER: $value->number = $this->request->getText($element->name) * pow(10, $element->decimals); break; + case Element::ELEMENT_TYPE_CHECKBOX: + $value->number = $this->request->getText($element->name) * pow(10, $element->decimals); + break; default: throw new \LogicException('Unknown element type: ' . $element->getTypeName()); } diff --git a/modules/cms/action/pageelement/PageelementAllAction.class.php b/modules/cms/action/pageelement/PageelementAllAction.class.php @@ -148,6 +148,10 @@ class PageelementAllAction extends PageelementAction implements Method { $content = $value->number / pow(10, $element->decimals); break; + case Element::ELEMENT_TYPE_CHECKBOX: + $content = $value->number; + break; + case Element::ELEMENT_TYPE_LONGTEXT: if ($requestedFormat = $this->request->getText('format')) // Individual format from request. @@ -241,6 +245,9 @@ class PageelementAllAction extends PageelementAction implements Method { case Element::ELEMENT_TYPE_NUMBER: $value->number = $this->request->getText($language->isoCode) * pow(10, $element->decimals); break; + case Element::ELEMENT_TYPE_CHECKBOX: + $value->number = $this->request->getText($language->isoCode)?1:0; + break; default: throw new \LogicException('Unknown element type: ' . $element->getTypeName()); } diff --git a/modules/cms/generator/ValueGenerator.class.php b/modules/cms/generator/ValueGenerator.class.php @@ -29,8 +29,6 @@ use cms\model\Project; use cms\model\Template; use cms\model\Value; use dsl\DslException; -use dsl\DslParserException; -use dsl\DslRuntimeException; use dsl\executor\DslInterpreter; use logger\Logger; use LogicException; @@ -52,6 +50,74 @@ use util\YAML; class ValueGenerator extends BaseGenerator { + const CODE_PHP = 'php'; + const CODE_SCRIPT = 'js'; + const CODE_MUSTACHE = 'mustache'; + + const INFO_DB_ID = 'db_id'; + const INFO_DB_NAME = 'db_name'; + const INFO_PROJECT_ID = 'project_id'; + const INFO_PROJECT_NAME = 'project_name'; + const INFO_LANGUAGE_ID = 'language_id'; + const INFO_LANGUAGE_ISO = 'language_iso'; + const INFO_LANGUAGE_NAME = 'language_name'; + const INFO_PAGE_ID = 'page_id'; + const INFO_PAGE_NAME = 'page_name'; + const INFO_PAGE_DESC = 'page_desc'; + const INFO_PAGE_FULLFILENAME = 'page_fullfilename'; + const INFO_PAGE_FILENAME = 'page_filename'; + const INFO_PAGE_EXTENSION = 'page_extension'; + const INFO_EDIT_URL = 'edit_url'; + const INFO_EDIT_FULLURL = 'edit_fullurl'; + const INFO_LASTCHANGE_USER_USERNAME = 'lastch_user_username'; + const INFO_LASTCHANGE_USER_FULLNAME = 'lastch_user_fullname'; + const INFO_LASTCHANGE_USER_MAIL = 'lastch_user_mail'; + const INFO_LASTCHANGE_USER_DESC = 'lastch_user_desc'; + const INFO_LASTCHANGE_USER_TEL = 'lastch_user_tel'; + const INFO_CREATION_USER_USERNAME = 'create_user_username'; + const INFO_CREATION_FULLNAME = 'create_user_fullname'; + const INFO_CREATION_MAIL = 'create_user_mail'; + const INFO_CREATION_DESC = 'create_user_desc'; + const INFO_CREATION_TEL = 'create_user_tel'; + const INFO_ACT_USERNAME = 'act_user_username'; + const INFO_ACT_FULLNAME = 'act_user_fullname'; + const INFO_ACT_MAIL = 'act_user_mail'; + const INFO_ACT_DESC = 'act_user_desc'; + const INFO_ACT_TEL = 'act_user_tel'; + const INFO_PUB_USERNAME = 'pub_user_username'; + const INFO_PUB_FULLNAME = 'pub_user_fullname'; + const INFO_PUB_MAIL = 'pub_user_mail'; + const INFO_PUB_DESC = 'pub_user_desc'; + const INFO_PUB_TEL = 'pub_user_tel'; + const INFO_FILENAME = 'filename'; + const INFO_FULL_FILENAME = 'full_filename'; + + const COORD_OLC = 'olc'; + const COORD_COORDINATES = 'coordinates'; + + const INFO_DATE_PUBLISHED = 'date_published'; + const INFO_DATE_SAVED = 'date_saved'; + const INFO_DATE_CREATED = 'date_created'; + + const INSERT_SSI = 'ssi'; + const INSERT_INLINE = 'inline'; + + + const LINK_FILE_ = 'file'; + const LINK_IMAGE = 'image'; + const LINK_IMAGE_DATE_URI = 'image_data_uri'; + const LINK_PAGE = 'page'; + const LINK_FOLDER = 'folder'; + const LINK_LINK = 'link'; + + const LINKINFO_WIDTH = 'width'; + const LINKINFO_HEIGHT = 'height'; + const LINKINFO_ID = 'id'; + const LINKINFO_NAME = 'name'; + const LINKINFO_DESCRIPTION = 'description'; + const LINKINFO_MIME_TYPE = 'mime_type'; + + /** * Constructor. * @@ -157,7 +223,7 @@ class ValueGenerator extends BaseGenerator switch( $element->subtype ) { case '': - case 'inline': + case self::INSERT_INLINE: $o = new BaseObject( $oid ); $o->load(); switch( $o->typeid ) @@ -188,7 +254,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'ssi': + case self::INSERT_SSI: $linkScheme = $pageContext->getLinkScheme(); $inhalt .= '<!--#include virtual="'.$linkScheme->linkToObject( $page,new BaseObject($oid)).'" -->'; break; @@ -273,7 +339,7 @@ class ValueGenerator extends BaseGenerator $o->load(); $inhalt = $o->filename; } - elseif ($element->subtype == 'image_data_uri' ) + elseif ($element->subtype == self::LINK_IMAGE_DATE_URI ) { $context = new FileContext( $objectid,Producer::SCHEME_PUBLIC ); $generator = new FileGenerator( $context ); @@ -370,7 +436,7 @@ class ValueGenerator extends BaseGenerator switch( $element->subtype ) { - case 'width': + case self::LINKINFO_WIDTH: $f = new Image( $objectid ); $f->load(); if ( $f->typeid == BaseObject::TYPE_IMAGE ) @@ -381,7 +447,7 @@ class ValueGenerator extends BaseGenerator unset($f); break; - case 'height': + case self::LINKINFO_HEIGHT: $f = new Image( $objectid ); $f->load(); if ( $f->typeid == BaseObject::TYPE_IMAGE ) @@ -392,19 +458,19 @@ class ValueGenerator extends BaseGenerator unset($f); break; - case 'id': + case self::LINKINFO_ID: $inhalt = $objectid; break; - case 'name': + case self::LINKINFO_NAME: $inhalt = $linkedObject->getDefaultName()->getName(); break; - case 'description': + case self::LINKINFO_DESCRIPTION: $inhalt = $linkedObject->getDefaultName()->description; break; - case 'create_user_desc': + case self::INFO_CREATION_DESC: $user = $linkedObject->createUser; try { @@ -416,7 +482,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'create_user_fullname': + case self::INFO_CREATION_FULLNAME: $user = $linkedObject->createUser; try { @@ -428,7 +494,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'create_user_mail': + case self::INFO_CREATION_MAIL: $user = $linkedObject->createUser; try { @@ -440,7 +506,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'create_user_tel': + case self::INFO_CREATION_TEL: $user = $linkedObject->createUser; try { @@ -452,7 +518,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'create_user_username': + case self::INFO_CREATION_USER_USERNAME: $user = $linkedObject->createUser; try { @@ -464,7 +530,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'lastch_user_desc': + case self::INFO_LASTCHANGE_USER_DESC: $user = $linkedObject->lastchangeUser; try { @@ -476,7 +542,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'lastch_user_fullname': + case self::INFO_LASTCHANGE_USER_FULLNAME: $user = $linkedObject->lastchangeUser; try { @@ -488,7 +554,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'lastch_user_mail': + case self::INFO_LASTCHANGE_USER_MAIL: $user = $linkedObject->lastchangeUser; try { @@ -500,7 +566,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'lastch_user_tel': + case self::INFO_LASTCHANGE_USER_TEL: $user = $linkedObject->lastchangeUser; try { @@ -513,7 +579,7 @@ class ValueGenerator extends BaseGenerator break; - case 'lastch_user_username': + case self::INFO_LASTCHANGE_USER_USERNAME: $user = $linkedObject->lastchangeUser; try { @@ -525,7 +591,7 @@ class ValueGenerator extends BaseGenerator } break; - case 'mime_type': + case self::LINKINFO_MIME_TYPE: if ( $linkedObject->isFile || $linkedObject->isImage || $linkedObject->isText ) { $context = new FileContext( $objectid,Producer::SCHEME_PUBLIC ); @@ -535,17 +601,17 @@ class ValueGenerator extends BaseGenerator } break; - case 'filename': + case self::INFO_FILENAME: $inhalt = $linkedObject->filename(); break; - case 'full_filename': + case self::INFO_FULL_FILENAME: $inhalt = $linkedObject->full_filename(); break; default: $inhalt = ''; - Logger::warn('subtype for linkinfo not implemented:'.$element->subtype); + Logger::error('Subtype for linkinfo not implemented:'.$element->subtype); // should not happen } break; @@ -586,23 +652,23 @@ class ValueGenerator extends BaseGenerator switch( $element->subtype ) { - case 'date_published': + case self::INFO_DATE_PUBLISHED: // START_TIME wird zu Beginn im Controller gesetzt. // So erh�lt jede Datei das gleiche Ver�ffentlichungsdatum. $date = Startup::getStartTime(); break; - case 'date_saved': + case self::INFO_DATE_SAVED: $date = $linkedObject->lastchangeDate; break; - case 'date_created': + case self::INFO_DATE_CREATED: $date = $linkedObject->createDate; break; default: Logger::warn('element:'.$element->name.', '. - 'type:'.$element->type.', '. + 'type:'.$element->typeid.', '. 'unknown subtype:'.$element->subtype); $date = Startup::getStartTime(); } @@ -727,6 +793,11 @@ class ValueGenerator extends BaseGenerator // Zahl // // wird im entsprechenden Format angezeigt. + case Element::ELEMENT_TYPE_CHECKBOX: + + $inhalt = boolval($value->number); + break; + case Element::ELEMENT_TYPE_NUMBER: @@ -771,7 +842,7 @@ class ValueGenerator extends BaseGenerator case Element::ELEMENT_TYPE_CODE: switch( $element->subtype ) { - case 'php': + case self::CODE_PHP: // Die Ausführung von benutzer-erzeugtem PHP-Code kann in der // Konfiguration aus Sicherheitsgründen deaktiviert sein. if ( Configuration::subset('security')->is('disable_dynamic_code',false) ) @@ -801,7 +872,7 @@ class ValueGenerator extends BaseGenerator $inhalt = $output; break; - case 'js': + case self::CODE_SCRIPT: ob_start(); $executor = new DslInterpreter(); $executor->addContext( [ @@ -828,6 +899,9 @@ class ValueGenerator extends BaseGenerator // Ausgabe ermitteln. $inhalt = $output; break; + case self::CODE_MUSTACHE: + // TODO + default: } @@ -867,17 +941,17 @@ class ValueGenerator extends BaseGenerator switch( $element->subtype ) { - case 'date_published': + case self::INFO_DATE_PUBLISHED: // START_TIME wird zu Beginn im Controller gesetzt. // So erh�lt jede Datei das gleiche Ver�ffentlichungsdatum. $date = Startup::getStartTime(); break; - case 'date_saved': + case self::INFO_DATE_SAVED: $date = $page->lastchangeDate; break; - case 'date_created': + case self::INFO_DATE_CREATED: $date = $page->createDate; break; @@ -905,149 +979,149 @@ class ValueGenerator extends BaseGenerator switch( $element->subtype ) { - case 'db_id': + case self::INFO_DB_ID: $inhalt = DB::get()->id; break; - case 'db_name': + case self::INFO_DB_NAME: $inhalt = @DB::get()->getLabel(); break; - case 'project_id': + case self::INFO_PROJECT_ID: $inhalt = $page->projectid; break; - case 'project_name': + case self::INFO_PROJECT_NAME: $inhalt = Project::create( $page->projectid )->load()->name; break; - case 'language_id': + case self::INFO_LANGUAGE_ID: $inhalt = $pageContext->languageId; break; - case 'language_iso': + case self::INFO_LANGUAGE_ISO: $language = new Language( $pageContext->languageId ); $language->load(); $inhalt = $language->isoCode; break; - case 'language_name': + case self::INFO_LANGUAGE_NAME: $language = new Language( $pageContext->languageId ); $language->load(); $inhalt = $language->name; break; - case 'page_id': + case self::INFO_PAGE_ID: $inhalt = $page->objectid; break; - case 'page_name': + case self::INFO_PAGE_NAME: $inhalt = $page->getNameForLanguage( $pageContext->languageId )->name; break; - case 'page_desc': + case self::INFO_PAGE_DESC: $inhalt = $page->getNameForLanguage( $pageContext->languageId )->description; break; - case 'page_fullfilename': + case self::INFO_PAGE_FULLFILENAME: $inhalt = $this->getPublicFilename(); break; - case 'page_filename': + case self::INFO_PAGE_FILENAME: $inhalt = $page->filename(); break; - case 'page_extension': + case self::INFO_PAGE_EXTENSION: $inhalt = ''; break; - case 'edit_url': + case self::INFO_EDIT_URL: $raw = true; $inhalt = Html::locationUrl('page',$page->objectid ); break; - case 'edit_fullurl': + case self::INFO_EDIT_FULLURL: $raw = true; $inhalt = Http::getServer(); $inhalt .= Html::locationUrl('page',$page->objectid ); break; - case 'lastch_user_username': + case self::INFO_LASTCHANGE_USER_USERNAME: $user = $page->lastchangeUser; if ( $user->userid ) $user->load(); $inhalt = $user->name; break; - case 'lastch_user_fullname': + case self::INFO_LASTCHANGE_USER_FULLNAME: $user = $page->lastchangeUser; if ( $user->userid ) $user->load(); $inhalt = $user->fullname; break; - case 'lastch_user_mail': + case self::INFO_LASTCHANGE_USER_MAIL: $user = $page->lastchangeUser; if ( $user->userid ) $user->load(); $inhalt = $user->mail; break; - case 'lastch_user_desc': + case self::INFO_LASTCHANGE_USER_DESC: $user = $page->lastchangeUser; if ( $user->userid ) $user->load(); $inhalt = $user->desc; break; - case 'lastch_user_tel': + case self::INFO_LASTCHANGE_USER_TEL: $user = $page->lastchangeUser; if ( $user->userid ) $user->load(); $inhalt = $user->tel; break; - case 'create_user_username': + case self::INFO_CREATION_USER_USERNAME: $user = $page->createUser; if ( $user->userid ) $user->load(); $inhalt = $user->name; break; - case 'create_user_fullname': + case self::INFO_CREATION_FULLNAME: $user = $page->createUser; if ( $user->userid ) $user->load(); $inhalt = $user->fullname; break; - case 'create_user_mail': + case self::INFO_CREATION_MAIL: $user = $page->createUser; if ( $user->userid ) $user->load(); $inhalt = $user->mail; break; - case 'create_user_desc': + case self::INFO_CREATION_DESC: $user = $page->createUser; if ( $user->userid ) $user->load(); $inhalt = $user->desc; break; - case 'create_user_tel': + case self::INFO_CREATION_TEL: $user = $page->createUser; if ( $user->userid ) $user->load(); $inhalt = $user->tel; break; - case 'act_user_username': + case self::INFO_ACT_USERNAME: $user = Request::getUser(); if ( $user ) $inhalt = $user->name; break; - case 'act_user_fullname': + case self::INFO_ACT_FULLNAME: $user = Request::getUser(); if ( $user ) $inhalt = $user->fullname; break; - case 'act_user_mail': + case self::INFO_ACT_MAIL: $user = Request::getUser(); if ( $user ) $inhalt = $user->mail; break; - case 'act_user_desc': + case self::INFO_ACT_DESC: $user = Request::getUser(); if ( $user ) $inhalt = $user->desc; break; - case 'act_user_tel': + case self::INFO_ACT_TEL: $user = Request::getUser(); if ( $user ) $inhalt = $user->tel; break; default: Logger::warn('element:'.$element->name.', '. - 'type:'.$element->type.', '. + 'type:'.$element->getTypeName().', '. 'unknown subtype:'.$element->subtype); // Keine Fehlermeldung in erzeugte Seite schreiben. } @@ -1083,11 +1157,11 @@ class ValueGenerator extends BaseGenerator } - switch( $element->type ) + switch( $element->typeid ) { - case 'longtext': - case 'text': - case 'select': + case Element::ELEMENT_TYPE_LONGTEXT: + case Element::ELEMENT_TYPE_TEXT: + case Element::ELEMENT_TYPE_SELECT: if ( Configuration::subset('publish')->is('encode_utf8_in_html') ) // Wenn HTML-Ausgabe, dann UTF-8-Zeichen als HTML-Code uebersetzen diff --git a/modules/cms/model/Element.class.php b/modules/cms/model/Element.class.php @@ -44,6 +44,7 @@ class Element extends ModelBase * Coordinates. */ const ELEMENT_TYPE_COORD = 16; + const ELEMENT_TYPE_CHECKBOX = 17; const ELEMENT_FORMAT_TEXT = 0; const ELEMENT_FORMAT_HTML = 1; @@ -429,32 +430,6 @@ SQL } - /** - * Abhaengig vom Element-Typ werden die zur Darstellung notwendigen Eigenschaften ermittelt. - * @return string[] - */ - public function getRelatedProperties() - { - $relatedProperties = [ - self::ELEMENT_TYPE_TEXT => ['inherit','withIcon','allLanguages','writable','html','defaultText','format'], - self::ELEMENT_TYPE_LONGTEXT => ['inherit','withIcon','allLanguages','writable','html','defaultText','format'], - self::ELEMENT_TYPE_SELECT => ['inherit','withIcon','allLanguages','writable','defaultText','code'], - self::ELEMENT_TYPE_NUMBER => ['inherit','withIcon','allLanguages','writable','decPoint','decimals','thousandSep','code'], - self::ELEMENT_TYPE_LINK => ['inherit','subtype','withIcon','allLanguages','writable','linktype','folderObjectId','defaultObjectId'], - self::ELEMENT_TYPE_DATE => ['inherit','withIcon','allLanguages','writable','dateformat','defaultText'], - self::ELEMENT_TYPE_INSERT => ['inherit','subtype','withIcon','allLanguages','writable','folderObjectId','defaultObjectId'], - self::ELEMENT_TYPE_COPY => ['inherit','prefix','name','defaultText'], - self::ELEMENT_TYPE_LINKINFO => ['prefix','subtype','defaultText'], - self::ELEMENT_TYPE_LINKDATE => ['prefix','subtype','dateformat'], - self::ELEMENT_TYPE_CODE => ['code','subtype'], - self::ELEMENT_TYPE_DYNAMIC => ['subtype','code'], - self::ELEMENT_TYPE_INFO => ['subtype'], - self::ELEMENT_TYPE_INFODATE => ['subtype','dateformat'], - self::ELEMENT_TYPE_DATA => ['inherit','withIcon','allLanguages','writable','code'], - self::ELEMENT_TYPE_COORD => ['inherit','withIcon','allLanguages','writable','subtype'], - ]; - return $relatedProperties[ $this->typeid ]; - } /** @@ -512,6 +487,7 @@ SQL self::ELEMENT_TYPE_LONGTEXT => 'longtext', self::ELEMENT_TYPE_SELECT => 'select', self::ELEMENT_TYPE_NUMBER => 'number', + self::ELEMENT_TYPE_CHECKBOX => 'checkbox', self::ELEMENT_TYPE_LINK => 'link', self::ELEMENT_TYPE_DATE => 'date', self::ELEMENT_TYPE_INSERT => 'insert', diff --git a/modules/cms/ui/themes/default/html/views/page/all.php b/modules/cms/ui/themes/default/html/views/page/all.php @@ -134,7 +134,29 @@ <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> <div class="<?php echo O::escapeHtml('or-') ?>"><?php echo O::escapeHtml('') ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('decimals') ?>" value="<?php echo O::escapeHtml('decimals') ?>" /><?php echo O::escapeHtml('') ?> - <input name="<?php echo O::escapeHtml(''.@$name.'') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('20') ?>" value="<?php echo O::escapeHtml(''.@$value.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> + <?php $if7=($decimals); if($if7) { ?> + <?php { $type= 'number'; ?> + <?php } ?> + <?php } ?> + <?php if(!$if7) { ?> + <?php { $type= text; ?> + <?php } ?> + <?php } ?> + <input name="<?php echo O::escapeHtml(''.@$name.'') ?>" type="<?php echo O::escapeHtml(''.@$type.'') ?>" maxlength="<?php echo O::escapeHtml('20') ?>" value="<?php echo O::escapeHtml(''.@$value.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> + </div> + </div> + </section> + <?php } ?> + <?php $if4=($type=='checkbox'); if($if4) { ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?></h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <div class="<?php echo O::escapeHtml('or-') ?>"><?php echo O::escapeHtml('') ?> + <label><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" data-name="<?php echo O::escapeHtml(''.@$name.'') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if($value){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml(''.@$name.'') ?>" <?php if($value){ ?>value="<?php echo O::escapeHtml('1') ?>"<?php } ?> /><?php echo O::escapeHtml('') ?> + <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@$label.'') ?></span> + </label> </div> </div> </section> diff --git a/modules/cms/ui/themes/default/html/views/page/all.tpl.src.xml b/modules/cms/ui/themes/default/html/views/page/all.tpl.src.xml @@ -118,7 +118,20 @@ <fieldset> <part> <hidden name="decimals" default="decimals"/> - <input size="15" maxlength="20" name="${name}" default="${value}"/> + <if value="${decimals}" equals="0"> + <set var="type" value="'number'" /> + </if> + <else> + <set var="type" value="text" /> + </else> + <input type="${type}" size="15" maxlength="20" name="${name}" default="${value}"/> + </part> + </fieldset> + </if> + <if value="${type}" equals="checkbox"> + <fieldset> + <part> + <checkbox name="${name}" default="${value}" label="${label}" /> </part> </fieldset> </if> diff --git a/modules/cms/ui/themes/default/html/views/pageelement/all.php b/modules/cms/ui/themes/default/html/views/pageelement/all.php @@ -127,13 +127,35 @@ </div> </section> <?php } ?> + <?php $if5=($type=='checkbox'); if($if5) { ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?></h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <div class="<?php echo O::escapeHtml('or-') ?>"><?php echo O::escapeHtml('') ?> + <label><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" data-name="<?php echo O::escapeHtml(''.@$name.'') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if($value){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml(''.@$name.'') ?>" <?php if($value){ ?>value="<?php echo O::escapeHtml('1') ?>"<?php } ?> /><?php echo O::escapeHtml('') ?> + <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@$label.'') ?></span> + </label> + </div> + </div> + </section> + <?php } ?> <?php $if5=($type=='number'); if($if5) { ?> <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?></h3> <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> <div class="<?php echo O::escapeHtml('or-') ?>"><?php echo O::escapeHtml('') ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('decimals') ?>" value="<?php echo O::escapeHtml('decimals') ?>" /><?php echo O::escapeHtml('') ?> - <input name="<?php echo O::escapeHtml(''.@$name.'') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('20') ?>" value="<?php echo O::escapeHtml(''.@$value.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> + <?php $if8=($decimals); if($if8) { ?> + <?php { $type= 'number'; ?> + <?php } ?> + <?php } ?> + <?php if(!$if8) { ?> + <?php { $type= text; ?> + <?php } ?> + <?php } ?> + <input name="<?php echo O::escapeHtml(''.@$name.'') ?>" type="<?php echo O::escapeHtml(''.@$type.'') ?>" maxlength="<?php echo O::escapeHtml('20') ?>" value="<?php echo O::escapeHtml(''.@$value.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> </div> </div> </section> diff --git a/modules/cms/ui/themes/default/html/views/pageelement/all.tpl.src.xml b/modules/cms/ui/themes/default/html/views/pageelement/all.tpl.src.xml @@ -109,11 +109,24 @@ <selectbox list="objects" name="${name}" default="${value}" /> </fieldset> </if> + <if value="${type}" equals="checkbox"> + <fieldset> + <part> + <checkbox name="${name}" default="${value}" label="${label}" /> + </part> + </fieldset> + </if> <if value="${type}" equals="number"> <fieldset> <part> <hidden name="decimals" default="decimals"/> - <input size="15" maxlength="20" name="${name}" default="${value}"/> + <if value="${decimals}" equals="0"> + <set var="type" value="'number'" /> + </if> + <else> + <set var="type" value="text" /> + </else> + <input type="${type}" size="15" maxlength="20" name="${name}" default="${value}"/> </part> </fieldset> </if> diff --git a/modules/cms/ui/themes/default/html/views/pageelement/value.php b/modules/cms/ui/themes/default/html/views/pageelement/value.php @@ -200,13 +200,23 @@ </div> </section> <?php } ?> + <?php $if3=($type=='checkbox'); if($if3) { ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?></h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <div class="<?php echo O::escapeHtml('or-') ?>"><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('number') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$number){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + </div> + </div> + </section> + <?php } ?> <?php $if3=($type=='number'); if($if3) { ?> <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-open or-collapsible--is-visible or-collapsible--show') ?>"><?php echo O::escapeHtml('') ?> <h2 class="<?php echo O::escapeHtml('or-collapsible-title or-group-title or-collapsible-act-switch') ?>"><?php echo O::escapeHtml('') ?></h2> <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> <div class="<?php echo O::escapeHtml('or-') ?>"><?php echo O::escapeHtml('') ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('decimals') ?>" value="<?php echo O::escapeHtml('decimals') ?>" /><?php echo O::escapeHtml('') ?> - <input name="<?php echo O::escapeHtml('number') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('20') ?>" value="<?php echo O::escapeHtml(''.@$number.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> + <input name="<?php echo O::escapeHtml('number') ?>" type="<?php echo O::escapeHtml('number') ?>" maxlength="<?php echo O::escapeHtml('20') ?>" value="<?php echo O::escapeHtml(''.@$number.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> </div> </div> </section> diff --git a/modules/cms/ui/themes/default/html/views/pageelement/value.tpl.src.xml b/modules/cms/ui/themes/default/html/views/pageelement/value.tpl.src.xml @@ -114,11 +114,18 @@ </part> </group> </if> + <if value="${type}" equals="checkbox"> + <fieldset> + <part> + <checkbox name="number" /> + </part> + </fieldset> + </if> <if value="${type}" equals="number"> <group> <part> <hidden name="decimals" default="decimals"/> - <input size="15" maxlength="20" name="number"/> + <input type="number" size="15" maxlength="20" name="number"/> </part> </group> </if>