openrat-cms

OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs | README

commit 3d48814710c4031b9f7ba3d1f0d99d72a9fea34f
parent 911e3956977611dcb6f83ef04f4c7f03db71c482
Author: Jan Dankert <develop@jandankert.de>
Date:   Sun, 15 Nov 2020 00:00:33 +0100

Fix: Editing of names and descriptions for pages and other objects.

Diffstat:
Mmodules/cms/action/ObjectAction.class.php | 54++++++++++++++++++++++++++++++++++++------------------
Mmodules/cms/action/PageAction.class.php | 9+++++----
Mmodules/cms/ui/themes/default/html/views/object/info.php | 30++++++++++++++++++++++++++++++
Mmodules/cms/ui/themes/default/html/views/object/info.tpl.src.xml | 16++++++++++++++++
Mmodules/cms/ui/themes/default/html/views/object/name.php | 16++++------------
Mmodules/cms/ui/themes/default/html/views/object/name.tpl.src.xml | 6+++---
Mmodules/cms/ui/themes/default/html/views/page/info.php | 46+++++++++++++++++++++++-----------------------
Mmodules/cms/ui/themes/default/html/views/page/info.tpl.src.xml | 22+++++++++++++---------
Mmodules/template_engine/components/html/component_text/TextComponent.class.php | 3+++
9 files changed, 133 insertions(+), 69 deletions(-)

diff --git a/modules/cms/action/ObjectAction.class.php b/modules/cms/action/ObjectAction.class.php @@ -2,6 +2,7 @@ namespace cms\action; +use language\Messages; use util\ArrayUtils; use cms\model\Acl; use cms\model\Project; @@ -13,6 +14,7 @@ use cms\model\BaseObject; use cms\model\Language; use cms\model\File; use cms\model\Link; +use util\exception\ValidationException; use util\Html; use util\Http; use util\Session; @@ -485,7 +487,7 @@ class ObjectAction extends BaseAction public function propPost() { if ( ! $this->hasRequestVar('filename' ) ) - throw new \util\exception\ValidationException('filename'); + throw new ValidationException('filename'); $this->baseObject->filename = BaseObject::urlify( $this->getRequestVar('filename') ); $this->baseObject->save(); @@ -517,19 +519,16 @@ class ObjectAction extends BaseAction public function namePost() { if ( ! $this->hasRequestVar('name' ) ) - throw new \util\exception\ValidationException('name'); + throw new ValidationException('name'); $name = $this->baseObject->getNameForLanguage( $this->getRequestId('languageid')); - $language = new Language( $name->languageid ); - $language->load(); - - $name->name = $this->getRequestVar( 'name' ); + $name->name = $this->getRequestVar( 'name' ); $name->description = $this->getRequestVar( 'description' ); $name->save(); - $this->addNotice($this->baseObject->getType(), 0, $this->baseObject->filename, 'SAVED', 'ok'); + $this->addNoticeFor($this->baseObject, Messages::SAVED); } @@ -559,14 +558,12 @@ class ObjectAction extends BaseAction { $name = $this->baseObject->getNameForLanguage( $this->getRequestId('languageid') ); - $nameProps = get_object_vars( $name ); + $nameProps = $name->getProperties(); $language = new Language( $name->languageid ); $language->load(); - $nameProps[ 'languageName' ] = $language->name; - $this->setTemplateVars($nameProps); - - + $nameProps[ 'languageName' ] = $language->name; + $this->setTemplateVars( $nameProps ); } @@ -590,7 +587,7 @@ class ObjectAction extends BaseAction } catch( \Exception $e ) { - throw new \util\exception\ValidationException( 'settings' ); + throw new ValidationException( 'settings' ); } // Gültigkeitszeiträume speichern. @@ -640,17 +637,37 @@ class ObjectAction extends BaseAction $this->setTemplateVar( 'name' , $this->baseObject->getDefaultName()->name ); $this->setTemplateVar( 'description' , $this->baseObject->getDefaultName()->description ); + $languages = $this->baseObject->getProject()->getLanguages(); + $languagesVars = array(); + + foreach( $languages as $languageId => $languageName ) + { + $name = $this->baseObject->getNameForLanguage( $languageId ); + + + $languagesVar = [ + 'name' => $name->name, + 'description' => $name->description, + 'languagename' => $languageName, + 'languageid' => $languageId, + ]; + + $languagesVars[] = $languagesVar; + } + + $this->setTemplateVar('languages',$languagesVars ); + // Read all objects linking to us. $pages = $this->baseObject->getDependentObjectIds(); $list = array(); - foreach( $pages as $id ) + foreach( $pages as $languageid ) { - $o = new BaseObject( $id ); + $o = new BaseObject( $languageid ); $o->load(); - $list[$id] = array(); - $list[$id]['name'] = $o->filename; - $list[$id]['type'] = $o->getType(); + $list[$languageid] = array(); + $list[$languageid]['name'] = $o->filename; + $list[$languageid]['type'] = $o->getType(); } asort( $list ); @@ -665,4 +682,5 @@ class ObjectAction extends BaseAction $this->setTemplateVar('settings', ArrayUtils::dryFlattenArray( $totalSettings,$pad ) ); } + } \ No newline at end of file diff --git a/modules/cms/action/PageAction.class.php b/modules/cms/action/PageAction.class.php @@ -387,12 +387,13 @@ class PageAction extends ObjectAction */ function nameView() { - $this->page->load(); + $languageId = $this->getRequestVar('languageid'); - $this->setTemplateVars( $this->page->getProperties() ); - $this->setTemplateVar( 'languageid', $this->page->languageid ); + $name = $this->page->getNameForLanguage($languageId); + + $this->setTemplateVars( $name->getProperties() ); - $alias = $this->page->getAliasForLanguage( $this->page->languageid ); + $alias = $this->page->getAliasForLanguage( $languageId ); $this->setTemplateVar( 'alias_filename', $alias->filename ); $this->setTemplateVar( 'alias_folderid', $alias->parentid ); diff --git a/modules/cms/ui/themes/default/html/views/object/info.php b/modules/cms/ui/themes/default/html/views/object/info.php @@ -37,6 +37,36 @@ </section> </div> </section> + <?php foreach((array)$languages as $list_key=>$list_value) { extract($list_value); ?> + <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-open 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('') ?> + <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-closed or-collapsible--on-closed') ?>"><?php echo O::escapeHtml('') ?> + </i> + <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-open or-collapsible--on-open') ?>"><?php echo O::escapeHtml('') ?> + </i> + <span><?php echo O::escapeHtml(''.@$languagename.'') ?> + </span> + </h2> + <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> + <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(''.@O::lang('name').'') ?> + </h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@$name.'') ?> + </span> + <small><?php echo O::escapeHtml(''.@$description.'') ?> + </small> + <div class="<?php echo O::escapeHtml('or-act-clickable') ?>"><?php echo O::escapeHtml('') ?> + <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('edit') ?>" data-action="<?php echo O::escapeHtml('object') ?>" data-method="<?php echo O::escapeHtml('name') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-languageid="<?php echo O::escapeHtml(''.@$languageid.'') ?>" data-extra="<?php echo O::escapeHtml('{\'languageid\':\''.@$languageid.'\'}') ?>" href="<?php echo O::escapeHtml('#/object') ?>" class="<?php echo O::escapeHtml('or-link or-btn') ?>"><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@O::lang('edit').'') ?> + </span> + </a> + </div> + </div> + </section> + </div> + </section> + <?php } ?> <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-open 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('') ?> <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-closed or-collapsible--on-closed') ?>"><?php echo O::escapeHtml('') ?> diff --git a/modules/cms/ui/themes/default/html/views/object/info.tpl.src.xml b/modules/cms/ui/themes/default/html/views/object/info.tpl.src.xml @@ -15,6 +15,22 @@ <text value="${description}"/> </fieldset> </group> + + <list list="${languages}" extract="true"> + <group title="${languagename}"> + <fieldset label="${message:name}"> + <text value="${name}"/> + <text type="small" value="${description}"/> + <part class="act-clickable"> + <link class="btn" type="edit" action="object" subaction="name" var1="languageid" + value1="${languageid}"> + <text value="${message:edit}"/> + </link> + </part> + </fieldset> + </group> + </list> + <group title="${message:additional_info}"> <fieldset label="${message:full_filename}"> <text value="${full_filename}"/> diff --git a/modules/cms/ui/themes/default/html/views/object/name.php b/modules/cms/ui/themes/default/html/views/object/name.php @@ -8,13 +8,9 @@ <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('subaction') ?>" value="<?php echo O::escapeHtml('name') ?>" /><?php echo O::escapeHtml('') ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('id') ?>" value="<?php echo O::escapeHtml(''.@$_id.'') ?>" /><?php echo O::escapeHtml('') ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('languageid') ?>" value="<?php echo O::escapeHtml(''.@$languageid.'') ?>" /><?php echo O::escapeHtml('') ?> - <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-open or-collapsible--show') ?>"><?php echo O::escapeHtml('') ?> + <section class="<?php echo O::escapeHtml('or-group or-collapsible--is-open 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('') ?> - <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-closed or-collapsible--on-closed') ?>"><?php echo O::escapeHtml('') ?> - </i> - <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-open or-collapsible--on-open') ?>"><?php echo O::escapeHtml('') ?> - </i> - <span><?php echo O::escapeHtml(''.@O::lang('alias').'') ?> + <span><?php echo O::escapeHtml(''.@O::lang('language').' '.@$languagename.'') ?> </span> </h2> <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> @@ -22,18 +18,14 @@ <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('name').'') ?> </h3> <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-form-row or-form-input') ?>"><?php echo O::escapeHtml('') ?> - <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml('name') ?> - </span> - <input name="<?php echo O::escapeHtml('name') ?>" required="<?php echo O::escapeHtml('required') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('255') ?>" value="<?php echo O::escapeHtml(''.@$name.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> - </label> + <input name="<?php echo O::escapeHtml('name') ?>" required="<?php echo O::escapeHtml('required') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('255') ?>" value="<?php echo O::escapeHtml(''.@$name.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> </div> </section> <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(''.@O::lang('description').'') ?> </h3> <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> - <textarea name="<?php echo O::escapeHtml('description') ?>" maxlength="<?php echo O::escapeHtml('255') ?>" class="<?php echo O::escapeHtml('or-input or-description') ?>"><?php echo O::escapeHtml(''.@$description.'') ?> + <textarea name="<?php echo O::escapeHtml('description') ?>" maxlength="<?php echo O::escapeHtml('255') ?>" class="<?php echo O::escapeHtml('or-input or-input--description') ?>"><?php echo O::escapeHtml(''.@$description.'') ?> </textarea> </div> </section> diff --git a/modules/cms/ui/themes/default/html/views/object/name.tpl.src.xml b/modules/cms/ui/themes/default/html/views/object/name.tpl.src.xml @@ -2,12 +2,12 @@ xsi:schemaLocation="http://www.openrat.de/template ../../../../../../../template_engine/components/template.xsd"> <form label="${message:save}"> <hidden name="languageid"/> - <group title="${message:alias}" open="true"> + <group title="${message:language} ${languagename}" collapsible="false"> <fieldset label="${message:name}"> - <input label="name" name="name" maxlength="255" required="true"/> + <input name="name" maxlength="255" required="true"/> </fieldset> <fieldset label="${message:description}"> - <inputarea name="description" class="description" maxlength="255"/> + <inputarea name="description" class="input--description" maxlength="255"/> </fieldset> </group> </form> diff --git a/modules/cms/ui/themes/default/html/views/page/info.php b/modules/cms/ui/themes/default/html/views/page/info.php @@ -82,30 +82,30 @@ </span> </h2> <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-form-row') ?>"><?php echo O::escapeHtml('') ?> - <span class="<?php echo O::escapeHtml('or-form-input') ?>"><?php echo O::escapeHtml('') ?> - </span> - <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('name').'') ?> - </span> - </label> - <label class="<?php echo O::escapeHtml('or-form-row') ?>"><?php echo O::escapeHtml('') ?> - <span class="<?php echo O::escapeHtml('or-form-input') ?>"><?php echo O::escapeHtml('') ?> - </span> - <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('description').'') ?> - </span> - </label> - <label class="<?php echo O::escapeHtml('or-form-row') ?>"><?php echo O::escapeHtml('') ?> - <span class="<?php echo O::escapeHtml('or-form-input') ?>"><?php echo O::escapeHtml('') ?> - </span> - <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('alias').'') ?> - </span> - </label> - <div class="<?php echo O::escapeHtml('or-act-clickable') ?>"><?php echo O::escapeHtml('') ?> - <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('edit') ?>" data-action="<?php echo O::escapeHtml('page') ?>" data-method="<?php echo O::escapeHtml('name') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-languageid="<?php echo O::escapeHtml(''.@$languageid.'') ?>" data-extra="<?php echo O::escapeHtml('{\'languageid\':\''.@$languageid.'\'}') ?>" href="<?php echo O::escapeHtml('#/page') ?>" class="<?php echo O::escapeHtml('or-link or-btn') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('edit').'') ?> + <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(''.@O::lang('name').'') ?> + </h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@$name.'') ?> </span> - </a> - </div> + <small><?php echo O::escapeHtml(''.@$description.'') ?> + </small> + </div> + </section> + <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(''.@O::lang('alias').'') ?> + </h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@$alias.'') ?> + </span> + <div class="<?php echo O::escapeHtml('or-act-clickable') ?>"><?php echo O::escapeHtml('') ?> + <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('edit') ?>" data-action="<?php echo O::escapeHtml('page') ?>" data-method="<?php echo O::escapeHtml('name') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-languageid="<?php echo O::escapeHtml(''.@$languageid.'') ?>" data-extra="<?php echo O::escapeHtml('{\'languageid\':\''.@$languageid.'\'}') ?>" href="<?php echo O::escapeHtml('#/page') ?>" class="<?php echo O::escapeHtml('or-link or-btn') ?>"><?php echo O::escapeHtml('') ?> + <span><?php echo O::escapeHtml(''.@O::lang('edit').'') ?> + </span> + </a> + </div> + </div> + </section> </div> </section> <?php } ?> diff --git a/modules/cms/ui/themes/default/html/views/page/info.tpl.src.xml b/modules/cms/ui/themes/default/html/views/page/info.tpl.src.xml @@ -39,15 +39,19 @@ </group> <list list="${languages}" extract="true"> <group title="${languagename}"> - <text label="name" value="${name}"/> - <text label="description" value="${description}"/> - <text label="alias" value="${alias}"/> - <part class="act-clickable"> - <link class="btn" type="edit" action="page" subaction="name" var1="languageid" - value1="${languageid}"> - <text value="${message:edit}"/> - </link> - </part> + <fieldset label="${message:name}"> + <text value="${name}"/> + <text type="small" value="${description}"/> + </fieldset> + <fieldset label="${message:alias}"> + <text value="${alias}"/> + <part class="act-clickable"> + <link class="btn" type="edit" action="page" subaction="name" var1="languageid" + value1="${languageid}"> + <text value="${message:edit}"/> + </link> + </part> + </fieldset> </group> </list> <group title="${message:additional_info}" open="false"> diff --git a/modules/template_engine/components/html/component_text/TextComponent.class.php b/modules/template_engine/components/html/component_text/TextComponent.class.php @@ -48,6 +48,9 @@ class TextComponent extends HtmlComponent case 'code': $tag = 'code'; break; + case 'small': + $tag = 'small'; + break; default: $tag = 'span'; }