Skip to content

Instantly share code, notes, and snippets.

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
use Bitrix\Main\Mail\Event,
Bitrix\Main\Application,
\Bitrix\Main\Loader;
Loader::includeModule("iblock");
$request = Application::getInstance()->getContext()->getRequest();
// init.php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'fileman',
'OnBeforeHTMLEditorScriptRuns',
'OnBeforeHTMLEditorScriptRunsHandler'
);
function OnBeforeHTMLEditorScriptRunsHandler() {
$path = '/local/templates/.default/';
\CJSCore::RegisterExt('citfact_html_edit', [
AddEventHandler("catalog", "OnBeforeProductUpdate", "OnBeforeProductUpdateHandler");
function OnBeforeProductUpdateHandler($id, $arFields) {
global $DB;
$arMail = array();
// Если кол-во товара больше 0
if ($arFields["QUANTITY"] > 0) {
// Есть ли подписчики
$tableName = \Bitrix\Catalog\SubscribeTable::getTableName();
# все на https, кроме файла обмена с 1С (не работает он по https)
RewriteCond %{HTTP:X-HTTPS} !1
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
// Canonical
$curpage = $APPLICATION->GetCurUri();
$arPagen = array('PAGEN_1', 'PAGEN_2');
foreach ($arPagen as $pageParam) {
if (strpos($curpage, $pageParam) !== false) {
$newpage = 'http';
$newpage .= $_SERVER["HTTPS"] ? 's' : '';
$newpage .= '://' . $_SERVER["SERVER_NAME"];
$newpage .= $APPLICATION->GetCurPage(false);
$APPLICATION->AddHeadString('<link rel="canonical" href="' . $newpage . '" />');
// Uniqueness of the element's code
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "UniquenessCode");
function UniquenessCode (&$arFields) {
if ($arFields["IBLOCK_ID"] == CATALOG_IBLOCK_ID && !empty($arFields["CODE"])) {
$code = $arFields["CODE"] . "-" . $arFields["ID"];
$code = str_replace("--", "-", $code);
$objElement = new CIBlockElement;
$objElement->Update($arFields["ID"], array("CODE" => $code));
}
@bxtimur
bxtimur / gist:41192c59b91267e08bd2c4b2a12375ae
Created October 20, 2017 15:32
Отправка доп. полей в письме при новом заказе Битрикс
AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");
function bxModifySaleMails($orderID, &$eventName, &$arFields) {
$additional_information = '';
$arOrder = CSaleOrder::GetByID($orderID);
$order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
while ($arProps = $order_props->Fetch()){
// телефон
if ($arProps['ORDER_PROPS_ID'] == 14){
$additional_information.='Телефон: '.$arProps['VALUE'].'<br>';
// возвращает названия дерева разделов элемента через запятую
function GetParentSections ($id, $arTags) {
\Bitrix\Main\Loader::includeModule('iblock');
if (!$arTags)
$arTags = array();
$objResult = CIBlockSection::GetList(
array(), array("ID" => $id, "IBLOCK_ID" => CATALOG_IBLOCK_ID), false, array("ID", "NAME", "IBLOCK_SECTION_ID", "DEPTH_LEVEL"), false
);
$arResult = $objResult->GetNext();
@bxtimur
bxtimur / Прокрутка наверх
Created February 23, 2018 08:02
Кнопка прокрутки наверх
<div class="scroll-up" style="display: block;"></div>
<style>
.scroll-up {
width: 45px;
height: 45px;
border-radius: 25px;
background: #fb5f41;
position: fixed;
z-index: 9999;
// reCaptcha
$url = 'https://www.google.com/recaptcha/api/siteverify';
// data POST
$secret = '******';
$response = $_REQUEST['g-recaptcha-response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$urlData = $url . '?secret=' . $secret . '&response=' . $response . '&remoteip=' . $remoteip;
$curl = curl_init();