public function GetURLForConnectedRecord()
    {
        $oSpotObject = &$this->GetFieldLinkedRecord();
        $oCmsConfig = &TdbCmsConfig::GetInstance();
        $sLink = $this->fieldUrl;
        if (is_object($oSpotObject)) {
            if ($oSpotObject instanceof TdbCmsTplPage) {
                $sLink = $this->getPageService()->getLinkToPageObjectRelative($oSpotObject);
            } elseif ($oSpotObject instanceof TdbShopArticle) {
                $sLink = $oSpotObject->GetDetailLink();
            } elseif ($oSpotObject instanceof TdbShopCategory) {
                $sLink = $oSpotObject->GetLink();
            } elseif ($oCmsConfig->GetConfigParameter('pkgArticle', false, true)) {
                if ($oSpotObject instanceof TPkgArticle_BreadcrumbItem) {
                    $sLink = $oSpotObject->GetLink();
                } elseif ($oSpotObject instanceof TPkgArticleCategory_BreadcrumbItem) {
                    $sLink = $oSpotObject->GetLink();
                } elseif ($oSpotObject instanceof TdbPkgArticle) {
                    $sLink = $oSpotObject->GetLinkDetailPage();
                } elseif ($oSpotObject instanceof TdbPkgArticleCategory) {
                    $sLink = $oSpotObject->GetURL();
                }
            } else { //nothing that we know matched - try to use  generic method
                $sLink = $oSpotObject->GetURL();
                // still no url? trigger a user error
                if (empty($sLink)) {
                    trigger_error("couldn't get url from connected record object make sure you implement a method for fetching the url - maybe you have to extend ".__CLASS__.' and overwrite the method GetLinkFromConnectedRecord()', E_USER_ERROR);
                }
            }
        }

        return $sLink;
    }