Skip to content

Instantly share code, notes, and snippets.

@EscApp2
EscApp2 / init.php
Created April 19, 2024 16:04
union element
<?php
class makeIblockElementUnion{
static function GetListFilter($IBLOCK_ID, $arFilter, $arUnionBy, $limit, $arInputSort = array()){
\Bitrix\Main\Loader::includeModule('iblock');
$CIBlockElement = \Bitrix\Iblock\Iblock::wakeUp($IBLOCK_ID)->getEntityDataClass();
if($CIBlockElement){
if(empty($arInputSort)){
$arInputSort["ID"] = "ASC";
@EscApp2
EscApp2 / event.php
Created April 17, 2024 13:50
Stop add check, Stop Print Check For Empty Delivery Service
<?
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('sale', '\Bitrix\Sale\Cashbox\Internals\CashboxCheck::OnBeforeAdd', 'StopPrintCheckForEmptyDeliveryService');
function StopPrintCheckForEmptyDeliveryService(\Bitrix\Main\Event $event){
$BITRIX_EMPTY_DELIVERY_ID = \Bitrix\Sale\Delivery\Services\EmptyDeliveryService::getEmptyDeliveryServiceId();
$arParameters = $event->getParameters();
$arFields = $arParameters['fields'];
if("sell" == $arFields['TYPE']){
@EscApp2
EscApp2 / init.php
Last active April 17, 2024 08:13
selected sku by filter, выбрать ID SKU для установки SKU по умолчанию, исходя из умного фильтра.
<?
/*
* выбрать ID SKU для установки SKU по умолчанию, исходя из умного фильтра.
* */
function getOffersSelectedByFilter(&$arResult, &$arParams, $component){
//https://pai-bx.com/wiki/1c-bitrix/2357-filtered-sku-in-products-list/
if(!empty($arParams['FILTER_NAME'])){
global ${$arParams['FILTER_NAME']};
$FILTER = ${$arParams['FILTER_NAME']};
if(!empty($FILTER) && !empty($FILTER['OFFERS']) ) {
@EscApp2
EscApp2 / bitrix import\export users
Created April 16, 2024 08:12 — forked from SeRGei93/bitrix import\export users
перенос пользователей битрикс
Если перед вами встала задача по переносу пользователей из одного Битрикс в другой, то сделать это достаточно просто.
Для начала составьте таблицу соответствия групп пользователей, где ключи - id группы пользователей на первом сайте, а значения id соответствующей ему группы пользователей на втором. Примерно так:
$tableOfGroups = [
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 9,
@EscApp2
EscApp2 / init.php
Created April 5, 2024 08:06
bitrix Запретить сохранять файлы
<?
AddEventHandler("main",'OnFileSave','OnFileSave');
function OnFileSave(&$arFile, $fileName, $module)
{
if(isUserInGroup(9)){
unset($arFile['tmp_name']); // to delete
}
return false; // not true; true breaks event loop
}
@EscApp2
EscApp2 / txt.txt
Last active April 21, 2024 11:40
Добавить кнопку таб страницу текст в админке admin add button add page
В init.php, а лучше в подключаемом в нем файле:
подписываемся на событие OnAdminTabControlBegin (событие OnAdminTabControlBegin вызывается в функции CAdminTabControl::Begin() при выводе в административном интерфейсе формы редактирования).
подписываемся на событие OnAdminListDisplay (Событие OnAdminListDisplay вызывается в функции CAdminList::Display() при выводе в административном разделе списка элементов).
use \Bitrix\Main\EventManager;
$eventManager = EventManager::getInstance();
$eventManager->addEventHandler('main', 'OnAdminTabControlBegin', ['\LocalNamespase\Handlers', 'onAdminTabControlBegin']);
$eventManager->addEventHandler('main', 'OnAdminListDisplay', ['\LocalNamespase\Handlers', 'onAdminListDisplay']);
@EscApp2
EscApp2 / init.php
Last active April 24, 2024 13:22
twinpx delivery yadelivery hack if default city non moscow Если первый город не москва, кнопки выбора интервала и пвз не появляются regex class
<?
Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleComponentOrderJsData',
'OnSaleComponentOrderJsData_twinpx_yadelivery_hack'
);
function OnSaleComponentOrderJsData_twinpx_yadelivery_hack(&$arResult,&$arParams)
{
if(\Bitrix\Main\Loader::includeModule('twinpx.yadelivery')){
$headStings = \Bitrix\Main\Page\Asset::getInstance()->getStrings();
@EscApp2
EscApp2 / func.php
Created March 22, 2024 07:27
is Url remove Refresh get Image Data explode by array normalize Text From HTML tld list get domain
function validate_url($url) {
return (bool)preg_match("
/^ # Start at the beginning of the text
(?:ftp|https?|feed):\/\/ # Look for ftp, http, https or feed schemes
(?: # Userinfo (optional) which is typically
(?:(?:[\w\.\-\+!$&'\(\)*\+,;=]|%[0-9a-f]{2})+:)* # a username or a username and password
(?:[\w\.\-\+%!$&'\(\)*\+,;=]|%[0-9a-f]{2})+@ # combination
)?
@EscApp2
EscApp2 / example.php
Created March 19, 2024 10:49
duration
<?
$seo_duratio = "";
$duration = $videoDetail->GetProperty('DURATION',true);
if(!empty($duration)){
$obDuration = new Khill\Duration($duration);
$seo_duration = $obDuration->toDuration();
}
?>
@EscApp2
EscApp2 / CustomPaymentRestrict.php
Created March 18, 2024 13:02
Custom Payment Restrict
<?php
use Bitrix\Sale\Services\Base;
use Bitrix\Sale\Internals\Entity;
use Bitrix\Sale\Payment;
class CustomPaymentRestrict extends Base\Restriction
{
const NAME = 'Только для админов';
public static function getClassTitle()