Other¶
This section contains various recipes thant not fit to other categories
Dates on russian¶
<?php
setlocale(LC_ALL, 'ru_RU.UTF-8');
strftime('%d %B %Y', strtotime("+1 day"))
Phinx config¶
<?php
define("NOT_CHECK_PERMISSIONS", true);
define("NO_AGENT_CHECK", true);
$GLOBALS["DBType"] = 'mysql';
$_SERVER["DOCUMENT_ROOT"] = realpath(__DIR__ . '/..');
include($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
// manual saving of DB resource
global $DB;
$app = \Bitrix\Main\Application::getInstance();
$con = $app->getConnection();
$DB->db_Conn = $con->getResource();
// "authorizing" as admin
$_SESSION["SESS_AUTH"]["USER_ID"] = 1;
$config = include realpath(__DIR__ . '/../bitrix/.settings.php');
return array(
"paths" => array(
"migrations" => realpath(__DIR__ . '/migrations/')
),
"environments" => array(
"default_migration_table" => "phinxlog",
"default_database" => "dev",
"dev" => array(
"adapter" => "mysql",
"host" => $config['connections']['value']['default']['host'],
"name" => $config['connections']['value']['default']['database'],
"user" => $config['connections']['value']['default']['login'],
"pass" => $config['connections']['value']['default']['password']
)
)
);
Errors in bitrix core¶
Get last bitrix error
<?php
$error = $APPLICATION->GetException();
echo $error->GetString();
Examples of DateTime class¶
<?php
$curTime = time();
//get current day of week
$curDayOfWeek = date("l", $curTime);
//date calculations
$intervalStartDate = date("Y-m-d", strtotime('+2 days'));
$end = new DateTime();
$end = $end->modify('+6 weeks');
//date intervals
$begin = new DateTime($intervalStartDate);
//set interval for 1 day in step
$interval = new DateInterval('P1D');
$dateRange = new DatePeriod($begin, $interval, $end);
//loop on days intervals
foreach($dateRange as $date)
{
$dayTimestamp = $date->getTimestamp();
//formatting
$printDate = $date->format("j.n.Y");
$dayOfWeek = $date->format('l');
}
Logging examples¶
Using file_put_contents¶
<?php
$logFile = $_SERVER['DOCUMENT_ROOT'].'/local/logs/log-'.strftime("%Y-%m-%d").'.log';
$line = strftime("%d.%m.%Y | %H:%M:%S")." | LOG MESSAGE\n";
file_put_contents($logFile, $line, FILE_APPEND);
Using Monolog¶
$ composer require monolog/monolog
<?php
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;
$stream = new StreamHandler('logs/solutions.log');
$formatter = new LineFormatter("[%datetime%] %message%\n");
$stream->setFormatter($formatter);
$log = new Logger('logger_name');
$log->pushHandler($stream);
$log->addDebug('LOG MESSAGE');
Update 1C exchange module error¶
COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y");
COption::SetOptionString("sale", "secure_1c_exchange", "N");
Reset module files¶
Head to /bitrix/admin/update_system.php?lang=ru&BX_SUPPORT_MODE=Y
page and find ‘System area’ block