/** * The function returns link for current object. * * @static * @access public * @param mixed $Object The object. * @param string $tag The tag. * @param bool $restoreGet If TRUE returns link with GET parameters. * @return string The URL. */ public static function get($Object, $tag = '', $restoreGet = false) { $link = ''; if ($restoreGet && count($_GET)) { $link .= strpos($link, '?') === false ? '?' : '&'; $link .= http_build_query($_GET); } if ($Object instanceof Content_Page) { if (!$Object->Link && $Object->Children) { foreach (Content_Page::getChildren($Object->Id) as $Child) { if ($Child->Link) { return self::abs($Child->Link); } } } return self::abs($Object->Link); } if ($Object instanceof Paginator) { $data = $_GET; if (isset($data['page'])) { unset($data['page']); } $data['page'] = $tag; $arr = explode('?', Request::get('REQUEST_URI', '/', 'SERVER')); return self::abs($arr[0] . '?' . http_build_query($data)); } if ($Object instanceof Article) { if ($tag) { if ($tag instanceof Product) { return self::abs($Object->getParentLink() . '/view/' . $Object->Id . '?backto=' . Article_Reference::PRODUCT . '-' . $tag->Id . self::restoreGet('&')); } else { return self::abs($Object->getParentLink() . '?tag=' . urlencode($tag instanceof Tag ? $tag->Name : $tag) . self::restoreGet('&')); } } else { return self::abs($Object->getParentLink() . '/view/' . $Object->Id . self::restoreGet()); } return self::abs($Object->getParentLink() . '/view/' . $Object->Id . self::restoreGet()); } if ($Object instanceof Article_Tag) { return self::abs(_L('Controller_Frontend_Articles') . '?tag=' . urlencode($Object->getTag()->Name) . self::restoreGet('&')); } if ($Object instanceof Gallery) { return self::abs(_L('Controller_Frontend_Gallery') . '/view/' . $Object->Id . self::restoreGet()); } if ($Object instanceof Product) { /* $Layout = $Object->getCategory()->getLayout(); $url = _L('Controller_Frontend_Catalog'); if ( $Layout instanceof Product_Layout_Hardware ) { $url = _L('Controller_Frontend_Catalog_Hardware'); } if ( $Layout instanceof Product_Layout_Product || $Layout instanceof Product_Layout_Custom ) { $url = _L('Controller_Frontend_Catalog_Product'); } if ( $Layout instanceof Product_Layout_Standard ) { $url = _L('Controller_Frontend_Catalog_Standard'); } if ( $Layout instanceof Product_Layout_Custom ) { $url = _L('Controller_Frontend_Catalog_Custom'); } * */ return self::abs($Object->getCategory()->Slug . '/view/' . $Object->Id . self::restoreGet()); } if ($Object instanceof Product_Category) { return self::abs($Object->Slug . self::restoreGet()); } if ($Object instanceof Proud) { return self::abs('clients/view/' . $Object->Id . self::restoreGet()); } if ($Object instanceof Product_Brand) { return self::abs(_L('Controller_Frontend_Brands') . '/' . String::toLinkCase($Object->Name)); } if ($Object instanceof Banner) { return self::abs($Object->getURL()); } if ($Object instanceof Subscription) { return self::abs(_L('Controller_Frontend_Articles') . '/unsubscribe/' . $Object->getCode()); } if ($Object instanceof Controller) { return self::abs(_L($Object)); } if (is_string($Object) && $Object != '') { return self::abs($Object); } return self::abs(_L('Controller_Frontend')); }