commit 95e31a71756889846510e8a67c87cc62049e8a78
parent f6e130645ef3e5d00b60c17c3244502b45e5eccc
Author: dankert <devnull@localhost>
Date: Wed, 2 May 2007 22:59:21 +0200
Robustheit von "copy" und "linkinfo" verbessert.
Diffstat:
1 file changed, 72 insertions(+), 8 deletions(-)
diff --git a/objectClasses/Value.class.php b/objectClasses/Value.class.php
@@ -528,22 +528,30 @@ SQL
case 'copy':
- list( $linkElementName, $targetElementName ) = explode( '%', $this->element->name );
+ list($linkElementName,$targetElementName) = explode('%',$this->element->name);
+
+ if ( is_null($targetElementName) )
+ break;
+
+ $element = new Element();
+ $element->name = $linkElementName;
+ $element->load();
- $t = new Template( $this->page->templateid );
- $elementId = array_search( $linkElementName, $t->getElementNames() );
+ if ( intval($element->elementid)==0 )
+ break;
-// echo "<pre>";print_r($this); echo "</pre>";
$linkValue = new Value();
- $linkValue->elementid = $elementId;
- $linkValue->element = new Element($elementId);
+ $linkValue->elementid = $element->elementid;
+ $linkValue->element = $element;
$linkValue->pageid = $this->pageid;
$linkValue->languageid = $this->languageid;
$linkValue->load();
+ if ( !Object::available( $linkValue->linkToObjectId ) )
+ break;
+
$linkedPage = new Page( $linkValue->linkToObjectId );
$linkedPage->load();
-// echo "<pre>";print_r($linkValue->linkToObjectId); echo "</pre>";
$linkedPageTemplate = new Template( $linkedPage->templateid );
$targetElementId = array_search( $targetElementName, $linkedPageTemplate->getElementNames() );
@@ -554,13 +562,69 @@ SQL
$targetValue->element->load();
$targetValue->pageid = $linkedPage->pageid;
$targetValue->generate();
-// echo "<pre>";print_r($targetValue); echo "</pre>";
$inhalt = $targetValue->value;
break;
+ case 'linkinfo':
+
+ list( $linkElementName, $name ) = explode('%',$this->element->name);
+ if ( is_null($name) )
+ break;
+
+ $element = new Element();
+ $element->name = $linkElementName;
+ $element->load();
+
+ $linkValue = new Value();
+ $linkValue->elementid = $element->elementid;
+ $linkValue->element = $element;
+ $linkValue->pageid = $this->pageid;
+ $linkValue->languageid = $this->languageid;
+ $linkValue->load();
+
+ //Html::debug( $linkValue );
+
+ if ( !Object::available( $linkValue->linkToObjectId ) )
+ break;
+
+ $linkedObject = new Object( $linkValue->linkToObjectId );
+ $linkedObject->load();
+
+ switch( $this->element->subtype )
+ {
+ case 'width':
+ $f = new File( $linkValue->linkToObjectId );
+ $f->load();
+ if ( $f->isImage() )
+ {
+ $f->getImageSize();
+ $inhalt = $f->width;
+ }
+ unset($f);
+ break;
+
+ case 'height':
+ $f = new File( $linkValue->linkToObjectId );
+ $f->load();
+ if ( $f->isImage() )
+ {
+ $f->getImageSize();
+ $inhalt = $f->height;
+ }
+ unset($f);
+ break;
+
+ default:
+// $inhalt = '';
+ $inhalt = '?subtype for linkinfo not implemented: '.$this->element->subtype.'?';
+ }
+
+ break;
+
+
case 'longtext':
case 'text':
case 'select':