Skip to content

Instantly share code, notes, and snippets.

View sukhikh18's full-sized avatar
💪
Business, Development, Sales, Marketing

Nick Sergeevich sukhikh18

💪
Business, Development, Sales, Marketing
View GitHub Profile
@sukhikh18
sukhikh18 / _readme.md
Last active January 29, 2023 09:12
Как сделать резервную копию (backup) сайта через консоль #Bitrix

Бэкап базы данных

mysqldump -h$host -u$username --password="$password" --no-tablespaces $database > ./database-`date '+%Y%m%d'`.sql

Запись в базу данных из файла

cat ./database-[tab] | mysql -h$host -u$username --passwprd="$password" $database
@sukhikh18
sukhikh18 / index.php
Last active June 17, 2021 07:11
Манипуляции с urlrewrite.php (программно обновить) #Bitrix
<?php
// Добавить правило
\Bitrix\Main\UrlRewriter::add(
SITE_ID,
[
"CONDITION" => $CONDITION,
"ID" => $ID,
"PATH" => $FILE_PATH,
"RULE" => $RULE
@sukhikh18
sukhikh18 / index.php
Created June 7, 2021 08:55
Создать таблицу из модели #Bitrix #BitrixD7ORM
<?php
use Bitrix\Main;
use Bitrix\Main\Entity;
$conn = Main\Application::getConnection();
if (!$conn->isTableExists(DataTable::getTableName())) {
Entity\Base::getInstance(DataTable::class)->createDBTable();
}
<?php
// +7 (912) 345 67-89 to tel:+79123456789
function esc_tel($num) {
$num = preg_replace('/[^0-9]/', '', $num);
return 'tel:' . ('7' === substr($num, 0, 1) ? '+' . $num : $num);
}
@sukhikh18
sukhikh18 / .settings.php
Last active June 17, 2021 06:26
Настройка: запись ошибок в файл для debug'a #Bitrix
'exception_handling' => array (
'value' => array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
@sukhikh18
sukhikh18 / result_modifier.php
Last active June 17, 2021 06:48
Передать значения в component_epilog #Иitrix
<?php
/**
* @var CBitrixComponentTemplate $this
* @var CBitrixComponent $component
* @var array $arResult
*/
$component = $this->getComponent();
$component->arResult['CACHE'] = $arResult['CACHE'];
$component->SetResultCacheKeys(['CACHE']);
@sukhikh18
sukhikh18 / index.php
Created May 30, 2021 07:24
Подключение пролога
<?require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");?>
@sukhikh18
sukhikh18 / index.php
Last active July 5, 2021 13:07
Отследить запросы к БД (D7) #Bitrix
<?php
\Bitrix\Main\Application::getConnection()->startTracker();
$result->getTrackerQuery()->getSql()
@sukhikh18
sukhikh18 / index.php
Last active June 25, 2021 09:22
ORM классы D7 #Bitrix
<?php
use Bitrix\Main;
use Bitrix\Iblock;
Main\Loader::includeModule('iblock');
$arEntityList = [
Main\UserTable::class, // Пользователи
Main\UserFieldTable:class, // Пользовательские свойства
@sukhikh18
sukhikh18 / _attention.md
Last active July 1, 2022 11:46
Получение списка элементов инфо-блока, их свойства и раздел (D7) #Bitrix #BitrixD7ORM

ElementTable

Заметка 1

При использовании множественных связей (1:N, M:N) параметр limit ограничивает количество связей.

Заметка 2

fetch и fetchAll получают все результаты, в то время как fetchObject может получать несколько результатов объекта (при множественныъ связях). При незнании этого conunt($rs->fetchAll()) - может возвращать неожиданный результат

Заметка 3

Метод getFieldname работает только для описанных в getMap полей. Используйте $rs-&gt;fetchObject()-&gt;get('FIELD_NAME') для runtime reference (или $entity-&gt;addField вместо runtime)