commit 46ce16dd1faaeb4a7b4608db2ccc1ffd4a358c56
parent 7fcfbde03ca1423ec7e13f49f327eb445efb7702
Author: Jan Dankert <develop@jandankert.de>
Date: Mon, 21 Sep 2020 23:44:23 +0200
Fixing editing of values.
Diffstat:
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)) {