Skip to content

Instantly share code, notes, and snippets.

View artemsites's full-sized avatar

Artem Kuznecov artemsites

View GitHub Profile
@artemsites
artemsites / string_split_unicode.php
Last active July 21, 2018 13:32
 Перевод строки в посимвольный массив с поддержкой UTF-8
$string = "ЧелоБрейк";
function string_split_unicode($string, $length = 1) {
$tmp = preg_split('~~u', $string, -1, PREG_SPLIT_NO_EMPTY);
if ($length > 1) {
$chunks = array_chunk($tmp, $length);
foreach ($chunks as $i => $chunk) {
$chunks[$i] = join('', (array) $chunk);
}
$tmp = $chunks;
}
@artemsites
artemsites / simbols_to_simbols.php
Last active July 24, 2018 08:41
Замена любых символов в строке на любые другие
/**
* Замена любых символов в строке на любые другие
*
* @param [string] $string - входная строка
* @param [string] $a - что поменять
* @param [string] $b - на что поменять
* @return string - строка с замененными символами
*/
function simbols_to_simbols($string, $a, $b) {
$array = explode($a, $string);
@artemsites
artemsites / menu.php
Created July 21, 2018 15:46
Замена всех строковых вхождений в шаблоне .html на результат кода из .php {{ANYCONTENT}}
$menu = "ANY GENERATED MENU"; // любое предварительно сгенерированное меню
$template = file_get_contents('index.html'); // считываем файл куда вставим шаблончик {{MENU}}
$content = str_replace('{{MENU}}', $menu, $template); // заменяем все вхождения {{MENU}} на сгенерированное меню $menu в прочитанном файле $template
print($content); // отпечатываем результат в шаблон (в шаблоне должен быть подключен данный файл require_once("./menu.php");)
@artemsites
artemsites / menuConstruct.php
Last active July 24, 2018 14:01
Функции для вывода меню ul>li любой глубины вложенности из заданного массива.
/**
* В файле вывода меню нужно:
*
* Подключить файл с этими функциями
* <?php require_once("./functions.php"); ?>
*
* И вызвать функцию в нужном месте
* <?php menuConstruct($array_menu); ?>
*/
////////////////////////////////////////////////////////////////////////////////
@artemsites
artemsites / decToHex.php
Created July 28, 2018 14:50
Преобразование строки описывающей цвет из RGB формата в HEX.
/**
* Преобразует запись цвета из RGB в HEX.
*
* @param [string] $dec_color - цвет в десятичном формате 50, 100, 150;
*
* @return [string] - строка в шестнадцатиричном формате #326496;
*/
function decToHex($dec_color)
{
$arr_color = explode(', ', $dec_color);
@artemsites
artemsites / getNamesOfDir.php
Created August 5, 2018 04:08
Получение имен файлов и каталогов в заданной дирректории.
/**
* Получение имен файлов и каталогов в заданной дирректории.
*
* @param [string] $dir - дирректория
* @return array
*/
function getNamesOfDir($dir) {
return array_slice(scandir($dir), 2);
}
@artemsites
artemsites / modx-migx.js
Last active August 9, 2018 12:33
Пример поля MIGX в MODx Revolutoin
Tabs:
[
{"caption":"Tab Title", "fields": [
{"field":"title","caption":"Name"},
{"field":"description","caption":"Description","inputTVtype":"textarea"},
{"field":"imageTV","caption":"Photo","inputTV":"imageTV"}
]}
]
Table:
@artemsites
artemsites / get_include_contents.php
Created September 4, 2018 08:10
Включение файла PHP в строку при помощи буферизации.
<?php
/**
* Использование буферизации вывода для включения файла PHP в строку.
* http://php.net/manual/ru/function.ob-start.php
* http://php.net/manual/ru/function.ob-get-clean.php
*/
$string = get_include_contents('somefile.php');
function get_include_contents($filename) {
if (is_file($filename)) {
@artemsites
artemsites / modx_menu_item_class_active.php
Last active September 30, 2018 14:17
Сниппет и чанк для MODx для отображения класса 'active' на активной странице.
<?php
/**
* Created by PhpStorm.
* User: artem
* Date: 27.09.18
* Time: 19:55
* Description:
* Сниппет и чанк для MODx для отображения класса 'active'
* в пункте меню в соответствии с активной страницей,
* для последующей стилизации этого пункта меню.
https://docs.modx.com/extras/revo/formit
https://modx.com/extras/package/formit
https://modx.com/extras/package/recaptchav2
// Обработчик формочки перед <form...
[[!FormIt?
&hooks=`recaptchav2,spam,email,redirect,FormItAutoResponder`
&emailTpl=`email-send-tpl`
&emailTo=`[[++email]]`