четверг, 11 апреля 2024 г.

Bitrix HigloadBlocks сортировка по указанному порядку

 Для того чтобы выбарка была в указанном порядке например
5,6,1,8,7

$res = $entity_data_class::getList(
array(
"order" => array("SORT_XML" => "ASC"),
'runtime' => array(
'SORT_XML'=>array(
'data_type' => 'STRING',
'expression' => array(
'FIND_IN_SET(`UF_XML_ID`, "'.implode(",", $XML_ID).'")'
)
)
),
'filter'=>array(
'UF_XML_ID' => $XML_ID,
)
)
);

в  $XML_ID я указал xml_id с типом строка, поэтому 'data_type' => 'STRING'
фильтровать мне нужно по полю UF_XML_ID но приходит он массивом поэтому используем implode


аналог в mysql

SELECT * FROM `catalog` ORDER BY FIND_IN_SET(cat_id,'157,156,155') DESC

четверг, 2 ноября 2023 г.

Bitrix лог

 В лог не удобно передавать массивы, вот отличный пример как это сделать

define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/local/log/log1.txt");
ob_start();
echo 'request';
print_r($arFields);
$log_text = ob_get_contents();
ob_end_clean();

AddMessage2Log($log_text, "php_init");

четверг, 16 марта 2023 г.

Быстрое подключение PhpMyAdmin

 по SSH


# cd /tmp/
# wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
# yum install unzip
# unzip phpMyAdmin-5.2.1-all-languages.zip
# mv phpMyAdmin-5.2.1-all-languages pma
# mv pma /home/bitrix/ext_www/project.ru/
# chown -R bitrix:bitrix /home/bitrix/ext_www/project.ru/pma/tmp
# mkdir /home/bitrix/ext_www/project.ru/pma/tmp
# chown -R bitrix:bitrix /home/bitrix/ext_www/project.ru/pma/tmp

после этого заходим на сайт  project.ru/pma/

вторник, 4 октября 2022 г.

send telegram




function t_me($tgText, $files=false, $chats_id = ["-xxx"]){

$token = "11111:aaaaa";
$site = $_SERVER['SERVER_NAME'];//$_SERVER['HTTP_ORIGIN']

foreach ($chats_id as $chat) {
$url = "https://api.telegram.org/bot{$token}/sendMessage";

$arrayQuery = [
"chat_id" => $chat,
"text" => $tgText.$site . $files[0],
"parse_mode" => "html",
"message_thread_id"=> 2//id нужного топика
];

if (is_array($files)) {
if(count($files) == 1) {
$url = 'https://api.telegram.org/bot' . $token . '/sendDocument';
$arrayQuery['document'] = $site . $files[0];
$arrayQuery["caption"] = $tgText;
}else {
$arMedia = array();
$url = 'https://api.telegram.org/bot' . $token . '/sendMediaGroup';
foreach ($files as $key => $path) {
if($key == 0) {
$arMedia[] = array('type' => 'photo', 'media' => $site.$path, "caption" => $tgText, "parse_mode"=>"html");
}else{
$arMedia[] = array('type' => 'photo', 'media' => $site.$path);
}
}
$arrayQuery['media'] = json_encode( $arMedia );
}
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrayQuery);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type:multipart/form-data"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close ($ch);

return $res;
}
}

среда, 20 июля 2022 г.

вторник, 31 мая 2022 г.

bitrix парсер телефона

 подключаем 

use Bitrix\Main\UserPhoneAuthTable;

use Bitrix\Main\Analytics\Catalog;

$phone = '+7 999 999-99-99';

var_dump(Bitrix\Main\UserPhoneAuthTable::normalizePhoneNumber($phone, 'ru'));//+79999999999

var_dump(Bitrix\Main\Analytics\Catalog::normalizePhoneNumber($phone));//79999999999

понедельник, 25 апреля 2022 г.

универсальный print_r для bitrix

пихаем в inti 

/**************************** универсальный print_r**********************************/
function printr($array) {
    //GLOBAL $USER;
    //if (!$USER->IsAdmin()) return false;
    if (!is_array($array)) return false;
    $args = func_get_args();
    if (count($args) > 1) {
            foreach ($args as $values)
                    printr($values);
    } else {
            echo "<pre>";
            print_r($array);
            echo "</pre>";
    }
}
// printr($arr1,$arr2);
/**************************** КОНЕЦ универсальный print_r**********************************/