Skip to content

Instantly share code, notes, and snippets.

Avatar
🤟
Open Source Forever!

Ivan Klimchuk Alroniks

🤟
Open Source Forever!
View GitHub Profile
@Alroniks
Alroniks / CustomSettingFields.php
Last active Jul 14, 2020
Custom ComboBox (list) as a value type for MODX system settings
View CustomSettingFields.php
<?php
if ('OnManagerPageBeforeRender' !== $modx->event->name) {
return; // exit if any other event happened
}
if ('system/settings' !== $_GET['a']) {
return; // exit if any other page than system settings loaded
}
@Alroniks
Alroniks / composer.json
Created Nov 27, 2019
Hugo TOML Parser/Writer
View composer.json
{
"name": "ik/tml",
"description": "tdb",
"type": "project",
"require": {
"yosymfony/toml": "^1.0@dev"
},
"license": "MIT",
"authors": [
{
View gist:20ec9d34edcce08236ac37dcbb264064
<?php
$menuElems = array(); // зочэм? есть же короткая нотация - [], а если там такой древний php - беги!
// переменную тоже лучше назвать более полно, чтобы читалось легче - $menuElements
$where = array('parent' => $param); // откуда приходит парам? хорошо бы проверку на него добавить, чтобы было число и чтобы не пусто было. Ну и переменную назвать более осознанно, чтобы понимать, что в параметре
$elements = $modx->getCollection('msCategory',$where); // 1. $categories более логично, так как у тебя уже есть переменная с элементами, путаница
// 2. Условие в $where очень простое, можно обойтись без лишней перменной и сразу записать выражение в параметр
foreach ($elements as $elem){
array_push($menuElems,$elem->getTVValue(6)); // а вот номер лучше вынести в переменную и в комментах написать название этого TV,
View PULL_REQUEST_TEMPLATE.md

What does it do?

Describe the technical changes you did.

Why is it needed?

Describe the issue you are solving.

Related Jira Tickets / Pull Requests

Let us know if this is related to any issue/ticket/pull request.

View charts.php
$get = $modx->sanitize($_GET);
if (!$get['day']) {
$now = time();
$day = date('Y-m-d', $now);
}
$day = $get['day'];
$step = 15; // minutes
@Alroniks
Alroniks / .env
Last active Mar 29, 2017
TAO Development Docker Environment
View .env
MYSQL_PORT=33060
NGINX_PORT=80
PROJECT_NAME=tao
@Alroniks
Alroniks / db
Created Dec 6, 2016
Server maintenance scripts
View db
#!/bin/bash
flag=5
if [ ! $1 ]; then
echo "Set user name for connect to mysql"
let flag=flag-1
fi
if [ ! $2 ]; then
View bruteforce.php
<?php
$str = 'fD3_';
$chars = array_merge(range('a', 'z'), range('A', 'Z'), range('0', '9'), ['_']);
$total = 0;
$brut = '';
$len = strlen($str);
/**
* @see: https://www.programmingalgorithms.com/algorithm/brute-force?lang=PHP
*/
View VirtualUserRouterPlugin.php
<?php
// обрабатываем только события OnPageNotFound, на случай, если отметили галкой и другие в настройках плагина
if ($modx->event->name != 'OnPageNotFound') {
return false;
}
// на случай, если у нас настройки кто-то менял, получаем значение переменной, через которую передаются ссылки в modx от веб-сервера
$alias = $modx->context->getOption('request_param_alias', 'q');
@Alroniks
Alroniks / eventStartFinish.php
Created Dec 10, 2015
Устанавливает дату начала и окончания события на аналогичное значение в другом поле. Если задана дата начала, и не задана дата финиша, выставляет дату финиша равной дате начала и наоборот. Так же следит за тем, чтобы дата начала не была позже даты финиша.
View eventStartFinish.php
<?php
switch ($modx->event->name) {
case 'OnDocFormSave':
if ($resource->get('template') === 5) { // event
$start = $resource->getTVValue('event.start');
$finish = $resource->getTVValue('event.finish');
if ($start && $finish) { // o both empty or both filled, that means OK
return;
}
You can’t perform that action at this time.