openrat-cms

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

commit 28599943cdc0d92a4ae67ddef3ad17d2a9d1443e
parent ec3f506093d3b89e9b19c6f038aa5caf1b3b8d28
Author: Jan Dankert <devnull@localhost>
Date:   Thu, 24 Jul 2014 22:49:12 +0200

Das Link-Element kann nun auch auf Ordner verlinken. Makros können als Parameter den Inhalt eines Elements der gleichen Seite erhalten.

Diffstat:
action/ElementAction.class.php | 1+
action/PageelementAction.class.php | 8+++++---
language/de.ini.php | 1+
language/en.ini.php | 1+
model/Value.class.php | 38+++++++++++++++++++++++++++++++++++++-
themes/default/templates/pageelement/edit.tpl.src.xml | 2+-
6 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/action/ElementAction.class.php b/action/ElementAction.class.php @@ -230,6 +230,7 @@ class ElementAction extends Action 'image', 'image_data_uri', 'page', + 'folder', 'link' ); $convertToLang = true; break; diff --git a/action/PageelementAction.class.php b/action/PageelementAction.class.php @@ -472,10 +472,10 @@ class PageelementAction extends Action if ( substr($type,0,5) == 'image' ) $type = 'file'; - if ( !in_array($type,array('file','page','link')) ) - $types = array('file','page','link'); + if ( !in_array($type,array('file','page','link','folder')) ) + $types = array('file','page','link'); // Fallback: Der Link kann auf Seiten,Dateien und Verknüpfungen zeigen else - $types = array($type); + $types = array($type); // gewünschten Typ verwenden $objects = array(); @@ -499,6 +499,8 @@ class PageelementAction extends Action $this->setTemplateVar('objects' ,$objects); $this->setTemplateVar('linkobjectid',$this->value->linkToObjectId); + + $this->setTemplateVar('types',implode(',',$types)); if ( $this->getSessionVar('pageaction') != '' ) $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); diff --git a/language/de.ini.php b/language/de.ini.php @@ -234,6 +234,7 @@ EL_LINKDATE = "Link-Datum-Info" EL_LINKDATE = "Link-Info-Datum" EL_LINK_DESC = "Ein Link ist eine Verknüpfung mit einer Seite oder einer Datei" EL_LINK_FILE = "Link auf Dateien" +EL_LINK_FOLDER = "Link auf Ordner" EL_LINK_IMAGE_DATA_URI = "Link auf Bilder mit Data-URI" EL_LINK_IMAGE = "Link auf Bilder" EL_LINKINFO_CREATE_USER_DESC = "Erstellungsautor: Beschreibung" diff --git a/language/en.ini.php b/language/en.ini.php @@ -236,6 +236,7 @@ EL_LINKDATE_DESC = "The Link-Info-Date is a date of a linked object" EL_LINKDATE = "Link-Info-Date" EL_LINK_DESC = "Link to a page or a file" EL_LINK_FILE = "Link to files" +EL_LINK_FOLDER = "Link to directories" EL_LINK_IMAGE_DATA_URI = "Link to images with Data-URI" EL_LINK_IMAGE = "Link to images" EL_LINKINFO = "Anchor-Info" diff --git a/model/Value.class.php b/model/Value.class.php @@ -1221,6 +1221,24 @@ SQL foreach( $this->element->getDynamicParameters() as $param_name=>$param_value ) { + if ( $param_value[0]=='{') + { + $elName = substr($param_value,1,strpos($param_value,'}')-1); + $template = new Template($this->page->templateid); + $elements = $template->getElementNames(); + $elementid = array_search($elName,$elements); + + $value = new Value(); + $value->elementid = $elementid; + $value->element = new Element( $elementid ); + $value->pageid = $this->page->pageid; + $value->languageid = $this->page->languageid; + $value->load(); + + Logger::debug('TEST: '.$value->linkToObjectId); + + $param_value = $value->getRawValue(); + } if ( isset( $dynEl->$param_name ) ) { Logger::debug("Setting parameter for macro Class $className, ".$param_name.':'.$param_value ); @@ -1622,5 +1640,23 @@ SQL - + /** + * Ermittelt den unbearbeiteten, "rohen" Inhalt. + * + * @return Inhalt + */ + public function getRawValue() + { + switch( $this->element->type ) + { + case 'link': + return $this->linkToObjectId; + + case 'date'; + return $this->number; + + default: + return $this->text; + } + } } \ No newline at end of file diff --git a/themes/default/templates/pageelement/edit.tpl.src.xml b/themes/default/templates/pageelement/edit.tpl.src.xml @@ -188,7 +188,7 @@ <!-- <selectbox list="objects" name="linkobjectid" addempty="true"></selectbox> --> - <selector param="linkobjectid" types="page,file,link" name="var:linkobjectid" + <selector param="linkobjectid" types="var:types" name="var:linkobjectid" id="var:linkobjectid" folderid="var:rootfolderid" /> </part>