/** * Возвращает полный web-адрес до плагина * * @param string $sName * @return string */ public static function GetWebPath($sName) { $sName = self::GetPluginCode($sName); return Router::GetPathRootWeb() . '/application/plugins/' . $sName . '/'; }
/** * Формирует и возвращает полный ЧПУ URL для топика * * @param ModuleTopic_EntityTopic $oTopic * @param bool $bAbsolute При false вернет относительный УРЛ * @return string */ public function BuildUrlForTopic($oTopic, $bAbsolute = true) { $sUrlMask = Config::Get('module.topic.url'); $iDateCreate = strtotime($oTopic->getDatePublish()); $aReplace = array('%year%' => date("Y", $iDateCreate), '%month%' => date("m", $iDateCreate), '%day%' => date("d", $iDateCreate), '%hour%' => date("H", $iDateCreate), '%minute%' => date("i", $iDateCreate), '%second%' => date("s", $iDateCreate), '%login%' => '', '%blog%' => '', '%id%' => $oTopic->getId(), '%title%' => $oTopic->getSlug(), '%type%' => $oTopic->getType()); /** * Получаем связанные данные только если в этом есть необходимость */ if (strpos($sUrlMask, '%blog%') !== false) { if (!($oBlog = $oTopic->GetBlog())) { $oBlog = $this->Blog_GetBlogById($oTopic->getBlogId()); } if ($oBlog) { if ($oBlog->getType() == 'personal') { $sUrlMask = str_replace('%blog%', '%login%', $sUrlMask); } else { $aReplace['%blog%'] = $oBlog->getUrl(); } } } if (strpos($sUrlMask, '%login%') !== false) { if (!($oUser = $oTopic->GetUser())) { $oUser = $this->User_GetUserById($oTopic->getUserId()); } if ($oUser) { $aReplace['%login%'] = $oUser->getLogin(); } } $sUrl = strtr($sUrlMask, $aReplace); return $bAbsolute ? Router::GetPathRootWeb() . '/' . $sUrl : $sUrl; }
/** * Возвращает веб путь из относительного * * @param string $sPath * * @return string */ public function GetPathWebFromRelative($sPath) { return Router::GetPathRootWeb() . '/' . ltrim($sPath, '/'); }