Skip to content

Instantly share code, notes, and snippets.

@morozVA
morozVA / gist:27d51d9000a3ab75f4fc6425221f515f
Created Jan 3, 2018
bitrix Получить имя или ID раздела по SECTION_CODE в Битрикс
View gist:27d51d9000a3ab75f4fc6425221f515f
Сначала получаем 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 / starRating.html
Created May 22, 2018
fractional star rating on css
View starRating.html
<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 Mar 23, 2018
modx анти-спам проверка
View anti-spam.php
Для eForm (evolutionCMS).
Создаем сниппет checkSpamTime, вставляем в него код:
<?php
if ($_SESSION['now'])
{
$_SESSION['lt'] = $_SESSION['now'];
}
$_SESSION['now'] = microtime(true);
@morozVA
morozVA / wp.php
Created Feb 10, 2018
wp солянка
View wp.php
<?php bloginfo('template_url') ?>/images/ ссылка на папку images в шаблоне
/********************************************/
<?php echo home_url(); ?> Ссылка на главную
<?php echo do_shortcode( '[ваш шорткод]' ); ?> Шорткод в шаблоне
View gist:afda988bc6d03d5c5fff4a11002d9580
Создание модульных и интеграционных тестов
Создано и настроено окружение для использования Codeception как надстройки над PhpUnit, теперь мы можем писать тесты (не только модульные на чистом PhpUnit, но и интеграционные, требующие запущенного приложения), а ещё получать статистику по тому, какой процент кода у нас покрыт этими самыми тестами.
Команды:
vendor/bin/codecept run - запустить все тесты
vendor/bin/codecept run unit --coverage-html='coverage' - сформировать отчёт по степени покрытия кода тестами
Контроллеры тонкие, их тестировать не нужно, да и нет возможности, потому что тесты запускаются в консоли, а там нет: веб-сервера, урла, сессий, куков и т.п. Проект запускается как консольное приложение. Так что всё сошлось.
@morozVA
morozVA / DocLister search.php
Last active Apr 30, 2019
evo DocLister search
View DocLister search.php
<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 Oct 24, 2018
php sorting data in a multidimensional array
View sort.php
usort($res, function ($a, $b)
{
return strcmp($a["LastName"], $b["LastName"]);
});
@morozVA
morozVA / regexp.php
Created Jul 23, 2018
php regexp получить подстроку между скобками
View regexp.php
preg_match('/\((.+)\)/', $str, $m);
echo $m[1];
@morozVA
morozVA / latin.js
Created May 23, 2018
js запретить печатать кириллицу в input
View latin.js
function Latin(obj) {
if (/^[a-zA-Z0-9 ,.\-:"()]*?$/.test(obj.value))
obj.defaultValue = obj.value;
else
obj.value = obj.defaultValue;
}
<input onkeyup="Latin(this);">
@morozVA
morozVA / php mb_strimwidth.php
Created May 5, 2018
php обрезать строку и добавить многоточие
View php mb_strimwidth.php
$title = mb_strimwidth($title, 0, 85, "...");