D7 замена старых методов
<?php
use Bitrix\Main\Loader;
Loader::includeModule("iblock");
Loader::includeSharewareModule("intervolga.tips");
<?php
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
echo Loc::getMessage("INTERVOLGA_TIPS.TITLE");
<?php
use Bitrix\Main\EventManager;
$handler = EventManager::getInstance()->addEventHandler(
"main",
"OnUserLoginExternal",
array(
"Intervolga\\Test\\EventHandlers\\Main",
"onUserLoginExternal"
)
);
EventManager::getInstance()->removeEventHandler(
"main",
"OnUserLoginExternal",
$handler
);
EventManager::getInstance()->registerEventHandler(
"main",
"OnProlog",
$this->MODULE_ID,
"Intervolga\\Test\\EventHandlers",
"onProlog"
);
EventManager::getInstance()->unRegisterEventHandler(
"main",
"OnProlog",
$this->MODULE_ID,
"Intervolga\\Test\\EventHandlers",
"onProlog"
);
$handlers = EventManager::getInstance()->findEventHandlers("main", "OnProlog");
<?php
$cache = Bitrix\Main\Data\Cache::createInstance();
if ($cache->initCache($cacheTime, $cacheId, $cacheDir))
{
$result = $cache->getVars();
}
elseif ($cache->startDataCache())
{
$result = array();
// ...
if ($isInvalid)
{
$cache->abortDataCache();
}
// ...
$cache->endDataCache($result);
}
//Описание параметров метода initCache:
/**
* @access public
* @param mixed $TTL Время жизни кеша в секундах.
* @param mixed $uniqueString Уникальный идентификатор кеша.
* @param bool $initDir (default: false) Папка, в которой хранится кеш, относительно /bitrix/cache/
* @param string $baseDir (default: "cache") Базовая директория кеша. По умолчанию равен cache
* @return bool true, если кеш валидный
*/
public function initCache($TTL, $uniqueString, $initDir = false, $baseDir = "cache")
// cache является объектом \Bitrix\Main\Data\ManagedCache
$cache = \Bitrix\Main\Application::getInstance()->getManagedCache();
// пример использования
if ($cache->read($cacheTtl, $cacheId)) {
$vars = $cache->get($cacheId); // достаем переменные из кеша
} else {
// некоторые действия...
$cache->set($cacheId, array("key" => $value)); // записываем в кеш
}
// Для принудительной очистки кеша по ключу используем:
$cache->clean($cacheId);
<?php
use Bitrix\Main\Page\Asset;
Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . "/js/fix.js");
Asset::getInstance()->addCss(SITE_TEMPLATE_PATH . "/styles/fix.css");
Asset::getInstance()->addString("<link href='http://fonts.googleapis.com/css?family=PT+Sans:400&subset=cyrillic' rel='stylesheet' type='text/css'>");
<?php
$this->addExternalCss("/local/styles.css");
$this->addExternalJS("/local/liba.js");
<?php
use Bitrix\Main\Application;
use Bitrix\Main\IO\Directory;
use Bitrix\Main\IO\File;
Directory::createDirectory(
Application::getDocumentRoot() . "/foo/bar/baz/"
);
File::putFileContents(
Application::getDocumentRoot() . "/foo/bar/baz/1.txt",
"hello from D7"
);
Directory::deleteDirectory(
Application::getDocumentRoot() . "/foo/bar/baz/"
);
// вместо $_SERVER["DOCUMENT_ROOT"] сейчас можно использовать Bitrix\Main\Application::getDocumentRoot() .
<?php
use Bitrix\Main\SystemException;
try
{
// ...
throw new SystemException("Error");
}
catch (SystemException $exception)
{
echo $exception->getMessage();
}
<?php
use Bitrix\Main\Diag\Debug;
Debug::dumpToFile($_SERVER);
// or
Debug::writeToFile($_SERVER);
Debug::dump($_SERVER);
// time labels
Debug::startTimeLabel("foo");
foo();
Debug::endTimeLabel("foo");
Debug::startTimeLabel("bar");
bar();
Debug::endTimeLabel("bar");
print_r(Debug::getTimeLabels());
<?php
use Bitrix\Main\Mail\Event;
Event::send(array(
"EVENT_NAME" => "NEW_USER",
"LID" => "s1",
"C_FIELDS" => array(
"EMAIL" => "info@intervolga.ru",
"USER_ID" => 42
),
));
<?php
use Bitrix\Main\Application;
$request = Application::getInstance()->getContext()->getRequest();
$name = $request->getPost("name");
$email = htmlspecialchars($request->getQuery("email"));
<?php
use Bitrix\Main\Application;
use Bitrix\Main\Web\Cookie;
$cookie = new Cookie("TEST", 42);
$cookie->setDomain("example.com");
Application::getInstance()->getContext()->getResponse()->addCookie($cookie);
// Cookie будет доступна только на следующем хите!
echo Application::getInstance()->getContext()->getRequest()->getCookie("TEST");
<?php
use Bitrix\Main\Application;
use Bitrix\Main\Web\Uri;
$request = Application::getInstance()->getContext()->getRequest();
$uriString = $request->getRequestUri();
$uri = new Uri($uriString);
$uri->deleteParams(array("baz"));
$uri->addParams(array("foo" => "bar"));
$redirect = $uri->getUri();
<?php
use Bitrix\Main\Config\Option;
Option::set("main", "max_file_size", "1024");
$size = Option::get("main", "max_file_size");
Option::delete("main", array(
"name" => "max_file_size",
"site_id" => "s2"
)
);