/** * ¬озвращает представление даты в виде "X дней Y часов Z минут назад" * ≈сли с указанной в параметре $date даты прошло более $maxDays дней, то возвращает просто отформатированную функцией $this::formatDate дату * @param $date * @param int $maxDays * @return mixed */ public function dateDiffStr($date, $maxDays = 1) { $now = new DateTime(); $past = new DateTime(); $past->setTimestamp($date); $dateInterval = $now->diff($past); if ($dateInterval->days < $maxDays) { $diffStrs = array(); if ($dateInterval->h > 0) { $diffStrs[] = $dateInterval->h . ' ' . \MH\FrontSite::o()->text->plural($dateInterval->h, 'час', 'часа', 'часов'); } if ($dateInterval->i > 0) { $diffStrs[] = $dateInterval->i . ' ' . \MH\FrontSite::o()->text->plural($dateInterval->i, 'минута', 'минуты', 'минут'); } // if ($dateInterval->s > 0) { // $diffStrs[] = $dateInterval->s . ' ' . \MH\FrontSite::o()->text->plural($dateInterval->s, 'секунда', 'секунды', 'секунд'); // } if (count($diffStrs) > 0) { return join(' ', $diffStrs) . ' назад'; } else { return $this->formatDate($date); } } else { return $this->formatDate($date); } }
public function getLastUrl() { $cacheTime = 3600; $cacheId = "last_issue_url"; $cacheDir = SITE_ID . '/issues'; $cache = new CPhpCache(); if ($cache->initCache($cacheTime, $cacheId, $cacheDir)) { return $cache->getVars(); } CModule::IncludeModule("iblock"); $arFilter = array("IBLOCK_ID" => $this->_iblock, 'ACTIVE_DATE' => "Y"); $res = CIBlockElement::GetList(array("ACTIVE_FROM" => "DESC"), $arFilter, false, array("nTopCount" => 1), array("ID")); $arIssues = array(); if ($arIssue = $res->GetNext()) { $url = \MH\FrontSite::o()->router->makeUrl('issues_issue', array('ID' => $arIssue['ID'])); } if ($cache->startDataCache()) { $cache->endDataCache($url); } return $url; }
public function _renderVotes($text) { if (stripos($text, '[vote]') !== false) { $text = preg_replace_callback('/\\[vote\\](\\d+?)\\[\\/vote\\]/si', function ($matches) { return '<div class="vote-article poll"><h2>опрос</h2><span class="mini-logo"></span>' . \MH\FrontSite::o()->vote->getById($matches[1], 'article') . '</div>'; }, $text); } return preg_replace('/\\[vote\\](\\d+?)\\[\\/vote\\]/si', '', $text); }
<?php $config = array('admin' => array(), 'front' => array(array('module' => 'main', 'event' => 'OnAfterUserAuthorize', 'handler' => array(\MH\FrontSite::o()->social, 'OnAfterUserAuthorizeHandler')), array('module' => 'main', 'event' => 'OnBeforeProlog', 'handler' => array(\MH\FrontSite::o()->social, 'OnBeforePrologHandler')), array('module' => 'main', 'event' => 'OnEndBufferContent', 'handler' => array(\MH\FrontSite::o()->publishingStatus, 'OnEndBufferContentHandler'))));
public function __construct($url) { $this->_url = $url; $this->_config = \MH\FrontSite::o()->getConfig('expert'); }
public function checkBitrixUrlName(&$arFields) { $arNeedSections = array('articles'); $config = \MH\FrontSite::o()->iblock->getConfig(); $arIblocks = array(); foreach ($arNeedSections as $section) { $id = $config[$section]; if (is_array($config[$section])) { $id = $config[$section]['iblock']; } $arIblocks[] = $id; } if (in_array($arFields["IBLOCK_ID"], $arIblocks)) { global $USER; if (isset($arFields["CODE"]) && !$USER->IsAdmin()) { unset($arFields["CODE"]); } if ($arFields["ACTIVE"] != "Y") { return true; } $rsRes = CIBlockElement::GetList(array(), array("ID" => $arFields["ID"], "CODE" => false), false, false, array("ID", "CODE")); /*если это будет активный элемент, и кода еще нет*/ if ($arRes = $rsRes->GetNext()) { $code = \MH\FrontSite::o()->text->getCodeByName($arFields["NAME"]); if (!$code) { $error = true; } /*уникальность*/ if (!$error) { CModule::IncludeModule("iblock"); $arFilter = array("IBLOCK_ID" => $arFields["IBLOCK_ID"], "CODE" => $code); $rsRes = CIBlockElement::GetList(array(), $arFilter, false, false, array("ID")); if ($arRes = $rsRes->GetNext()) { $error = true; } } if (!$error) { $arFields["CODE"] = $code; } else { global $APPLICATION; $APPLICATION->throwException("ѕроверьте правильность и уникальность названи¤"); return false; } } } return true; }
<?php // подключаемые в head (headd), верхней части body (top-body) в нижней части body(bottom-body) скрипты $socConfig = \MH\FrontSite::o()->getConfig('social'); $config = array('facebook' => array('head' => '<meta property="fb:app_id" content="' . $socConfig['facebook']['appId'] . '" /><meta content="article" property="og:type" />', 'top-body' => <<<FBTOP <div id="fb-root"></div> <script src="http://connect.facebook.net/ru_RU/all.js"></script> <script type="text/javascript"> FB.init({ appId : '{$socConfig['facebook']['appId']}', channelUrl : 'http://'+window.document.location.hostname+'/static/channel.php', oauth : false, status : true, // check login status cookie : true, // enable cookies to allow the server to access the session xfbml : true // parse XFBML }); </script> FBTOP ), 'vk' => array('head' => <<<VKHEAD <script type="text/javascript" src="http://userapi.com/js/api/openapi.js?52"></script> <script type="text/javascript"> VK.init({apiId: {$socConfig['vkontakte']['appId']}, onlyWidgets: true}); </script> VKHEAD ), 'twitter' => array('head' => <<<TWHEAD <script src="http://platform.twitter.com/anywhere.js?id={$socConfig['twitter']['consumer_key']}&v=1" type="text/javascript"></script> TWHEAD ));
<?php // �������������� ��������� define('LOG_FILENAME', $_SERVER['DOCUMENT_ROOT'] . '/_sb/mh_log.txt'); include_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/all/libraries/Site.php'; require_once 'FrontSite.php'; //require_once 'classes/Facebook/facebook.php'; // ������� �������������� ����� ������ \MH\FrontSite::o()->setErrorLevel(); AddEventHandler('main', 'OnEpilog', array(\MH\FrontSite::o()->meta, 'setupBitrixMeta')); //AddEventHandler( 'iblock', 'OnBeforeIBlockElementAdd', Array( \MH\FrontSite::o()->url, 'getBitrixCodeByName' ) ); AddEventHandler('main', 'OnBeforeUserAdd', 'OnBeforeUserAddHandler'); AddEventHandler('main', 'OnAfterUserAuthorize', array(\MH\FrontSite::o()->social, 'OnBeforePrologHandler')); CPageOption::setOptionString('main', 'nav_page_in_session', 'N'); COption::SetOptionString('main', 'component_cache_on', 'N', false, SITE_ID); function OnBeforeUserAddHandler(&$arFields) { if ($arFields['UF_RULES'] != '1' && empty($arFields['EXTERNAL_AUTH_ID'])) { global $APPLICATION; $APPLICATION->throwException("�� ������ ������� ������������ ����������"); return false; } } function OnAfterUserAuthorizeHandler(&$arFields) { $f = fopen($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/md/log.txt', 'a+'); global $USER; $rsUser = CUser::GetByID($USER->GetId()); $arUser = $rsUser->Fetch(); fwrite($f, "---start\n"); if ($arUser['ID'] > 0 && $arUser['EXTERNAL_AUTH_ID'] == 'Facebook' && $arUser['UF_RULES'] != '1') {
public function showFooterScript() { if ($this->_debug) { foreach ($this->_scripts['footer'] as $script) { if (file_exists($_SERVER['DOCUMENT_ROOT'] . $this->_path . $script)) { echo '<script type="text/javascript" src="' . $this->_path . $script . '?' . \MH\FrontSite::o()->version . '"></script>' . "\r\n"; } } } else { if ($scriptName = $this->getFooterScript()) { echo '<script src="' . $scriptName . '?' . \MH\FrontSite::o()->version . '"></script>'; } } }