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:
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>