本文整理汇总了PHP中R::GetPathWebCurrent方法的典型用法代码示例。如果您正苦于以下问题:PHP R::GetPathWebCurrent方法的具体用法?PHP R::GetPathWebCurrent怎么用?PHP R::GetPathWebCurrent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类R
的用法示例。
在下文中一共展示了R::GetPathWebCurrent方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: OutLog
/**
* Протоколирование запросов
*
* @param array|null $aVars
*/
public function OutLog($aVars = null)
{
if (!$this->bLogEnable) {
return;
}
if (!($sLogFile = Config::Get('module.search.logs.file'))) {
$sLogFile = 'search.log';
}
if (!$this->oUser) {
if ($sUserId = E::ModuleSession()->Get('user_id')) {
$this->oUser = E::ModuleUser()->GetUserById($sUserId);
}
}
if (!$this->oUser) {
$sUserLogin = '*anonymous*';
} else {
$sUserLogin = $this->oUser->GetLogin();
}
$path = R::GetPathWebCurrent();
$uri = $_SERVER['REQUEST_URI'];
$sStrLog = 'user=>"' . $sUserLogin . '" ip=>"' . $_SERVER['REMOTE_ADDR'] . '"' . "\n" . str_repeat(' ', 22) . 'path=>' . $path . '"' . "\n" . str_repeat(' ', 22) . 'uri=>' . $uri . '"';
if (is_array($aVars) && sizeof($aVars)) {
foreach ($aVars as $key => $val) {
$sStrLog .= "\n" . str_repeat(' ', 22) . $key . '=>"' . $val . '"';
}
}
E::ModuleLogger()->Dump($sLogFile, $sStrLog);
}
示例2: BuildHeadFiles
/**
* Строит массив для подключения css и js,
* преобразовывает их в строку для HTML
*
*/
protected function BuildHeadFiles()
{
$sPath = R::GetPathWebCurrent();
$this->aFileRules = Config::Get('head.rules');
foreach ((array) $this->aFileRules as $sName => $aRule) {
if (!$aRule['path']) {
continue;
}
foreach ((array) $aRule['path'] as $sRulePath) {
$sPattern = "~" . str_replace(array('/', '*'), array('\\/', '\\w+'), $sRulePath) . "~";
if (preg_match($sPattern, $sPath)) {
// * Преобразование JS
if (isset($aRule['js']['empty']) && $aRule['js']['empty']) {
E::ModuleViewerAsset()->ClearJs();
}
if (isset($aRule['js']['exclude']) && is_array($aRule['js']['exclude'])) {
E::ModuleViewerAsset()->ExcludeJs($aRule['js']['exclude']);
}
if (isset($aRule['js']['include']) && is_array($aRule['js']['include'])) {
E::ModuleViewerAsset()->AddJsFiles($aRule['js']['include']);
}
// * Преобразование CSS
if (isset($aRule['css']['empty']) && $aRule['css']['empty']) {
E::ModuleViewerAsset()->ClearCss();
}
if (isset($aRule['css']['exclude']) && is_array($aRule['css']['exclude'])) {
E::ModuleViewerAsset()->ExcludeCss($aRule['css']['exclude']);
}
if (isset($aRule['css']['include']) && is_array($aRule['css']['include'])) {
E::ModuleViewerAsset()->AddCssFiles($aRule['css']['include']);
}
// * Продолжаем поиск
if (isset($aRule['stop'])) {
break 2;
}
}
}
}
E::ModuleViewerAsset()->Prepare();
// * Объединяем файлы в наборы
$aHeadFiles = array('js' => array(), 'css' => array());
// * Получаем HTML код
$aHtmlHeadFiles = $this->BuildHtmlHeadFiles($aHeadFiles);
$this->SetHtmlHeadFiles($aHtmlHeadFiles);
}
示例3: EventShowTopic
/**
* Show topic
*
* @return string|null
*/
protected function EventShowTopic()
{
$this->sMenuHeadItemSelect = 'index';
$sBlogUrl = '';
$sTopicUrlMask = R::GetTopicUrlMask();
if ($this->oCurrentTopic) {
$this->oCurrentBlog = $this->oCurrentTopic->getBlog();
if ($this->oCurrentBlog) {
$sBlogUrl = $this->oCurrentBlog->getUrl();
}
$this->sMenuItemSelect = 'blog';
} else {
if ($this->GetParamEventMatch(0, 1)) {
// из коллективного блога
$sBlogUrl = $this->sCurrentEvent;
$iTopicId = $this->GetParamEventMatch(0, 1);
$this->sMenuItemSelect = 'blog';
} else {
// из персонального блога
$iTopicId = $this->GetEventMatch(1);
$this->sMenuItemSelect = 'log';
}
// * Проверяем есть ли такой топик
if (!$iTopicId || !($this->oCurrentTopic = E::ModuleTopic()->GetTopicById($iTopicId))) {
return parent::EventNotFound();
}
}
if (!$this->oCurrentTopic->getBlog()) {
// Этого быть не должно, но если вдруг, то надо отработать
return parent::EventNotFound();
}
$this->sMenuSubItemSelect = '';
// Trusted user is admin or owner of topic
if ($this->oUserCurrent && ($this->oUserCurrent->isAdministrator() || $this->oUserCurrent->isModerator() || $this->oUserCurrent->getId() == $this->oCurrentTopic->getUserId())) {
$bTrustedUser = true;
} else {
$bTrustedUser = false;
}
if (!$bTrustedUser) {
// Topic with future date
if ($this->oCurrentTopic->getDate() > date('Y-m-d H:i:s')) {
return parent::EventNotFound();
}
// * Проверяем права на просмотр топика-черновика
if (!$this->oCurrentTopic->getPublish()) {
if (!Config::Get('module.topic.draft_link')) {
return parent::EventNotFound();
} else {
// Если режим просмотра по прямой ссылке включен, то проверяем параметры
$bOk = false;
if ($sDraftCode = F::GetRequestStr('draft', null, 'get')) {
if (strpos($sDraftCode, ':')) {
list($nUser, $sHash) = explode(':', $sDraftCode);
if ($this->oCurrentTopic->GetUserId() == $nUser && $this->oCurrentTopic->getTextHash() == $sHash) {
$bOk = true;
}
}
}
if (!$bOk) {
return parent::EventNotFound();
}
}
}
}
// Если номер топика правильный, но URL блога неверный, то корректируем его и перенаправляем на нужный адрес
if ($sBlogUrl !== '' && $this->oCurrentTopic->getBlog()->getUrl() !== $sBlogUrl) {
R::Location($this->oCurrentTopic->getUrl());
}
// Если запросили топик с определенной маской, не указаным названием блога,
// но ссылка на топик и ЧПУ url разные, и это не запрос RSS
// то перенаправляем на страницу для вывода топика (во избежание дублирования контента по разным URL)
if ($sTopicUrlMask && $sBlogUrl == '' && $this->oCurrentTopic->getUrl() != R::GetPathWebCurrent() . (substr($this->oCurrentTopic->getUrl(), -1) === '/' ? '/' : '') && substr(R::RealUrl(true), 0, 4) !== 'rss/') {
R::Location($this->oCurrentTopic->getUrl());
}
// Checks rights to show content from the blog
if (!$this->oCurrentTopic->getBlog()->CanReadBy($this->oUserCurrent)) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('acl_cannot_show_content'), E::ModuleLang()->Get('not_access'));
return R::Action('error');
}
// Обрабатываем добавление коммента
if (isset($_REQUEST['submit_comment'])) {
$this->SubmitComment();
}
// Достаём комменты к топику
if (!Config::Get('module.comment.nested_page_reverse') && Config::Get('module.comment.use_nested') && Config::Get('module.comment.nested_per_page')) {
$iPageDef = ceil(E::ModuleComment()->GetCountCommentsRootByTargetId($this->oCurrentTopic->getId(), 'topic') / Config::Get('module.comment.nested_per_page'));
} else {
$iPageDef = 1;
}
$iPage = intval(F::GetRequest('cmtpage', 0));
if ($iPage < 1) {
$iPage = $iPageDef;
}
$aReturn = E::ModuleComment()->GetCommentsByTargetId($this->oCurrentTopic, 'topic', $iPage, Config::Get('module.comment.nested_per_page'));
$iMaxIdComment = $aReturn['iMaxIdComment'];
//.........这里部分代码省略.........