openrat-cms

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

commit 95e31a71756889846510e8a67c87cc62049e8a78
parent f6e130645ef3e5d00b60c17c3244502b45e5eccc
Author: dankert <devnull@localhost>
Date:   Wed,  2 May 2007 22:59:21 +0200

Robustheit von "copy" und "linkinfo" verbessert.

Diffstat:
objectClasses/Value.class.php | 80+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
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':