Skip to content

Instantly share code, notes, and snippets.

@morozVA
morozVA / gist:27d51d9000a3ab75f4fc6425221f515f
Created January 3, 2018 14:56
bitrix Получить имя или ID раздела по SECTION_CODE в Битрикс
Сначала получаем id нашего раздела. Для этого воспользуемся очень удобным, но не документированным (ох уж этот Битрикс) классом CIBlockFindTools и его методом GetSectionID. В section.php перед выводом нашего заголовка пишем:
$arResult["SECTION_ID"] = CIBlockFindTools::GetSectionID(
$arResult["VARIABLES"]["SECTION_ID"],
$arResult["VARIABLES"]["SECTION_CODE"],
array("IBLOCK_ID" => $arParams["IBLOCK_ID"])
);
$sResult = CIBlockSection::GetByID($arResult["SECTION_ID"]);
if($sArResult = $sResult->GetNext())
@morozVA
morozVA / bitrix.php
Created January 3, 2018 14:52
bitrix Передать переменные в шаблон Битрикс
Глобальная переменная
Чтобы сделать переменную доступную из любого места кода, можно использовать файл bitrix/.settings.php.
return array (
// …
'contacts' => array(
'value' => array(
'phone' => '111111111',
'email' => 'example@know-online.com',
),
),
@morozVA
morozVA / starRating.html
Created May 22, 2018 14:12
fractional star rating on css
<div class="star-ratings-sprite">
<span style="width:90%" class="star-ratings-sprite-rating"></span>
</div>
.star-ratings-sprite {
background: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/2605/star-rating-sprite.png") repeat-x;
font-size: 0;
height: 21px;
line-height: 0;
overflow: hidden;
@morozVA
morozVA / anti-spam.php
Created March 23, 2018 07:31
modx анти-спам проверка
Для eForm (evolutionCMS).
Создаем сниппет checkSpamTime, вставляем в него код:
<?php
if ($_SESSION['now'])
{
$_SESSION['lt'] = $_SESSION['now'];
}
$_SESSION['now'] = microtime(true);
@morozVA
morozVA / wp.php
Created February 10, 2018 21:08
wp солянка
<?php bloginfo('template_url') ?>/images/ ссылка на папку images в шаблоне
/********************************************/
<?php echo home_url(); ?> Ссылка на главную
<?php echo do_shortcode( '[ваш шорткод]' ); ?> Шорткод в шаблоне
@morozVA
morozVA / gist:afda988bc6d03d5c5fff4a11002d9580
Created April 8, 2020 14:54
настройка тестов
Создание модульных и интеграционных тестов
Создано и настроено окружение для использования Codeception как надстройки над PhpUnit, теперь мы можем писать тесты (не только модульные на чистом PhpUnit, но и интеграционные, требующие запущенного приложения), а ещё получать статистику по тому, какой процент кода у нас покрыт этими самыми тестами.
Команды:
vendor/bin/codecept run - запустить все тесты
vendor/bin/codecept run unit --coverage-html='coverage' - сформировать отчёт по степени покрытия кода тестами
Контроллеры тонкие, их тестировать не нужно, да и нет возможности, потому что тесты запускаются в консоли, а там нет: веб-сервера, урла, сессий, куков и т.п. Проект запускается как консольное приложение. Так что всё сошлось.
@morozVA
morozVA / DocLister search.php
Last active April 30, 2019 19:23
evo DocLister search
<form class="head-search" id="NavSearchForm" action="[~46~]" method="post">
<input id="search-input" placeholder="Поиск по каталогу..." class="form-control cleardefault search_place validation_place" type="text" name="search" value="" />
<button class="btn btn-primary not_valid" type="submit">Найти</button>
</form>
<div class="row search-result">
[[DocLister?
&display=`20`
&orderBy=`availability ASC, price ASC`
&parents=`7`
@morozVA
morozVA / sort.php
Created October 24, 2018 07:09
php sorting data in a multidimensional array
usort($res, function ($a, $b)
{
return strcmp($a["LastName"], $b["LastName"]);
});
@morozVA
morozVA / regexp.php
Created July 23, 2018 10:13
php regexp получить подстроку между скобками
preg_match('/\((.+)\)/', $str, $m);
echo $m[1];
@morozVA
morozVA / latin.js
Created May 23, 2018 09:17
js запретить печатать кириллицу в input
function Latin(obj) {
if (/^[a-zA-Z0-9 ,.\-:"()]*?$/.test(obj.value))
obj.defaultValue = obj.value;
else
obj.value = obj.defaultValue;
}
<input onkeyup="Latin(this);">