openrat-cms

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

commit 46ce16dd1faaeb4a7b4608db2ccc1ffd4a358c56
parent 7fcfbde03ca1423ec7e13f49f327eb445efb7702
Author: Jan Dankert <develop@jandankert.de>
Date:   Mon, 21 Sep 2020 23:44:23 +0200

Fixing editing of values.

Diffstat:
modules/cms/action/PageelementAction.class.php | 22+++++++++++++++-------
modules/cms/generator/Publish.class.php | 41-----------------------------------------
modules/cms/generator/PublishEdit.class.php | 50--------------------------------------------------
modules/cms/generator/ValueGenerator.class.php | 3+--
modules/cms/macros/MacroRunner.class.php | 1-
modules/cms/macros/macro/SearchIndex.class.php | 2--
modules/cms/model/Value.class.php | 47++++++++++++++++++++++++++++++++++++-----------
modules/cms/ui/themes/default/html/views/pageelement/advanced.php | 10++++++++--
modules/cms/ui/themes/default/html/views/pageelement/advanced.tpl.src.xml | 7++++++-
modules/cms/ui/themes/default/html/views/pageelement/edit.php | 2+-
modules/cms/ui/themes/default/html/views/pageelement/edit.tpl.src.xml | 2+-
modules/util/Tree.class.php | 1-
12 files changed, 68 insertions(+), 120 deletions(-)

diff --git a/modules/cms/action/PageelementAction.class.php b/modules/cms/action/PageelementAction.class.php @@ -87,7 +87,7 @@ class PageelementAction extends BaseAction { $this->value = new Value(); - $this->value->publisher = new PublishPreview(); + //$this->value->publisher = new PublishPreview(); $id = $this->request->id; $ids = explode('_',$id); @@ -231,9 +231,9 @@ class PageelementAction extends BaseAction $this->value->objectid = $this->page->objectid; $this->value->pageid = $this->page->pageid; $this->value->page = $this->page; - $this->value->element = &$this->element; + $this->value->element = &$this->element; + $this->value->elementid = $this->element->elementid; $this->value->element->load(); - $this->value->publisher = new PublishEdit(); $this->setTemplateVar('name' ,$this->value->element->label ); $this->setTemplateVar('description',$this->value->element->desc ); @@ -250,8 +250,12 @@ class PageelementAction extends BaseAction $languages[$languageId] = array( 'languageid' => $languageId, 'languagename' => $languageName, - 'value' => $this->value->value - ); + 'value' => $this->value->text, + 'text' => $this->value->text, + 'number' => $this->value->number, + 'date' => $this->value->date, + 'linkObjectId' => $this->value->linkToObjectId, + ); } $this->setTemplateVar('languages',$languages); @@ -272,7 +276,6 @@ class PageelementAction extends BaseAction $this->value->page = $this->page; $this->value->element = &$this->element; $this->value->element->load(); - $this->value->publisher = new PublishEdit(); $this->setTemplateVar('name' ,$this->value->element->label ); $this->setTemplateVar('description',$this->value->element->desc ); @@ -289,7 +292,11 @@ class PageelementAction extends BaseAction $languages[$languageId] = array( 'languageid' => $languageId, 'languagename' => $languageName, - 'value' => $this->value->value, + 'value' => $this->value->text, + 'text' => $this->value->text, + 'number' => $this->value->number, + 'date' => $this->value->date, + 'linkObjectId' => $this->value->linkToObjectId, 'editors' => Element::getAvailableFormats() ); } @@ -305,6 +312,7 @@ class PageelementAction extends BaseAction $this->value->objectid = $this->page->objectid; $this->value->pageid = $this->page->pageid; $this->value->element = &$this->element; + $this->value->elementid = &$this->element->elementid; $this->value->element->load(); $this->value->publish = false; diff --git a/modules/cms/generator/Publish.class.php b/modules/cms/generator/Publish.class.php @@ -1,41 +0,0 @@ -<?php -// OpenRat Content Management System -// Copyright (C) 2002-2012 Jan Dankert, cms@jandankert.de -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -namespace cms\generator; - -use cms\model\BaseObject; - -/** - * Strategy-baseclass for generating and publishing content. - * - * @author Jan Dankert - */ -abstract class Publish -{ - abstract public function isPublic(); - - abstract public function linkToObject( BaseObject $from, BaseObject $to ); - - abstract public function isSimplePreview(); - - abstract public function copy($tmp_filename,$dest_filename,$lastChangeDate=null); - - abstract public function clean(); - - abstract public function close(); -} - diff --git a/modules/cms/generator/PublishEdit.class.php b/modules/cms/generator/PublishEdit.class.php @@ -1,49 +0,0 @@ -<?php - -namespace cms\generator; - -use cms\model\BaseObject; -use cms\model\Link; -use cms\model\Url; - -/** - * @author Jan Dankert - */ - -class PublishEdit extends Publish -{ - /** - * @param $from \cms\model\BaseObject - * @param $to \cms\model\BaseObject - */ - public function linkToObject( BaseObject $from, BaseObject $to ) - { - return '->'.$to; - } - - public function isPublic() - { - return false; - } - - public function copy($tmp_filename,$dest_filename,$lastChangeDate=null) - { - // nothing to do. - } - - public function clean() - { - // nothing to do. - } - - public function close() - { - // nothing to do. - } - - public function isSimplePreview() - { - return true; - } - -}- \ No newline at end of file diff --git a/modules/cms/generator/ValueGenerator.class.php b/modules/cms/generator/ValueGenerator.class.php @@ -173,7 +173,7 @@ class ValueGenerator extends BaseGenerator } elseif ( $object->isPage ) { - if ( $value->publisher->isSimplePreview() ) + if ( false&&$value->publisher->isSimplePreview() ) { $p = new Page( $objectid ); $p->context = $page->context; @@ -321,7 +321,6 @@ class ValueGenerator extends BaseGenerator $linkValue->element = $element; $linkValue->pageid = $page->pageid; $linkValue->languageid = $value->languageid; - $linkValue->publisher = $value->publisher; $linkValue->load(); $objectid = $linkValue->linkToObjectId; diff --git a/modules/cms/macros/MacroRunner.class.php b/modules/cms/macros/MacroRunner.class.php @@ -55,7 +55,6 @@ class MacroRunner $elementid = array_search($var, $elements); $value = new Value(); - $value->publisher = $this->page->publisher; $value->elementid = $elementid; $value->element = new Element($elementid); $value->element->load(); diff --git a/modules/cms/macros/macro/SearchIndex.class.php b/modules/cms/macros/macro/SearchIndex.class.php @@ -5,10 +5,8 @@ use cms\generator\ValueContext; use cms\generator\ValueGenerator; use cms\model\Element; use cms\model\Folder; -use cms\model\Name; use cms\model\Page; use cms\model\Project; -use cms\generator\PublishEdit; use JSON; use util\Macro; diff --git a/modules/cms/model/Value.class.php b/modules/cms/model/Value.class.php @@ -1,5 +1,6 @@ <?php namespace cms\model; +use cms\base\DB; use util\ArrayUtils; use cms\generator\Publish; use cms\macros\MacroRunner; @@ -139,8 +140,7 @@ class Value extends ModelBase public $publisher; /** - * @type Publish - * @deprecated use #publisher + * @type boolean */ var $publish = false; @@ -179,20 +179,13 @@ class Value extends ModelBase /** * Laden des aktuellen Inhaltes aus der Datenbank */ - function load() + function loadForPublic() { - if ( 1==1 || $this->publisher->isPublic() ) - $stmt = db()->sql( 'SELECT * FROM {{value}}'. + $stmt = Db::sql( 'SELECT * FROM {{value}}'. ' WHERE elementid ={elementid}'. ' AND pageid ={pageid}'. ' AND languageid={languageid}'. ' AND publish=1' ); - else - $stmt = db()->sql( 'SELECT * FROM {{value}}'. - ' WHERE elementid ={elementid}'. - ' AND pageid ={pageid}'. - ' AND languageid={languageid}'. - ' AND active=1' ); $stmt->setInt( 'elementid' ,$this->elementid ); $stmt->setInt( 'pageid' ,$this->pageid ); $stmt->setInt( 'languageid',$this->languageid); @@ -215,6 +208,38 @@ class Value extends ModelBase } } + /** + * Laden des aktuellen Inhaltes aus der Datenbank + */ + function load() + { + $stmt = Db::sql( 'SELECT * FROM {{value}}'. + ' WHERE elementid ={elementid}'. + ' AND pageid ={pageid}'. + ' AND languageid={languageid}'. + ' AND active=1' ); + $stmt->setInt( 'elementid' ,$this->elementid ); + $stmt->setInt( 'pageid' ,$this->pageid ); + $stmt->setInt( 'languageid',$this->languageid); + $row = $stmt->getRow(); + + if ( count($row) > 0 ) // Wenn Inhalt gefunden + { + $this->text = $row['text' ]; + $this->format = $row['format']; + $this->valueid = intval($row['id'] ); + $this->linkToObjectId = intval($row['linkobjectid']); + $this->number = intval($row['number' ]); + $this->date = intval($row['date' ]); + + $this->active = ( $row['active' ]=='1' ); + $this->publish = ( $row['publish']=='1' ); + + $this->lastchangeTimeStamp = intval($row['lastchange_date' ]); + $this->lastchangeUserId = intval($row['lastchange_userid']); + } + } + /** * Laden eines bestimmten Inhaltes aus der Datenbank diff --git a/modules/cms/ui/themes/default/html/views/pageelement/advanced.php b/modules/cms/ui/themes/default/html/views/pageelement/advanced.php @@ -27,8 +27,14 @@ </td> <td class="<?php echo escapeHtml('clickable') ?>"><?php echo escapeHtml('') ?> <a target="<?php echo escapeHtml('_self') ?>" data-type="<?php echo escapeHtml('edit') ?>" data-action="<?php echo escapeHtml('pageelement') ?>" data-method="<?php echo escapeHtml('value') ?>" data-id="<?php echo escapeHtml('') ?>" data-extra="<?php echo escapeHtml('{\'languageid\':\''.@$languageid.'\'}') ?>" href="<?php echo escapeHtml('/#/pageelement/') ?>"><?php echo escapeHtml('') ?> - <span><?php echo escapeHtml(''.@$value.'') ?> - </span> + <?php $if1=($date); if($if1) { ?> + <?php include_once( 'modules/template_engine/components/html/date/component-date.php'); { component_date($date); ?> + <?php } ?> + <?php } ?> + <?php $if1=($text); if($if1) { ?> + <span><?php echo escapeHtml(''.@$text.'') ?> + </span> + <?php } ?> </a> </td> <td><?php echo escapeHtml('') ?> diff --git a/modules/cms/ui/themes/default/html/views/pageelement/advanced.tpl.src.xml b/modules/cms/ui/themes/default/html/views/pageelement/advanced.tpl.src.xml @@ -21,7 +21,12 @@ </column> <column class="clickable"> <link subaction="value" var1="languageid" value1="${languageid}" type="edit" action="pageelement"> - <text value="${value}" maxlength="30" escape="true" /> + <if true="${date}"> + <date date="${date}" /> + </if> + <if true="${text}"> + <text value="${text}" maxlength="30" escape="true" /> + </if> </link> </column> <column> diff --git a/modules/cms/ui/themes/default/html/views/pageelement/edit.php b/modules/cms/ui/themes/default/html/views/pageelement/edit.php @@ -23,7 +23,7 @@ </td> <td title="<?php echo escapeHtml(''.@$value.'') ?>"><?php echo escapeHtml('') ?> <a target="<?php echo escapeHtml('_self') ?>" data-type="<?php echo escapeHtml('edit') ?>" data-action="<?php echo escapeHtml('pageelement') ?>" data-method="<?php echo escapeHtml('value') ?>" data-id="<?php echo escapeHtml('') ?>" data-extra="<?php echo escapeHtml('{\'languageid\':\''.@$languageid.'\'}') ?>" href="<?php echo escapeHtml('/#/pageelement/') ?>"><?php echo escapeHtml('') ?> - <span><?php echo escapeHtml(''.@$value.'') ?> + <span><?php echo escapeHtml(''.@$text.'') ?> </span> </a> </td> diff --git a/modules/cms/ui/themes/default/html/views/pageelement/edit.tpl.src.xml b/modules/cms/ui/themes/default/html/views/pageelement/edit.tpl.src.xml @@ -18,7 +18,7 @@ </column> <column title="${value}"> <link subaction="value" var1="languageid" value1="${languageid}" type="edit" action="pageelement"> - <text value="${value}" maxlength="120" escape="true" /> + <text value="${text}" maxlength="120" escape="true" /> </link> </column> </row> diff --git a/modules/util/Tree.class.php b/modules/util/Tree.class.php @@ -369,7 +369,6 @@ class Tree $value->pageid = $page->pageid; $value->element = $element; $value->languageid = $page->languageid; - $value->publisher = new \cms\generator\PublishPreview(); $value->load(); if (BaseObject::available($value->linkToObjectId)) {