Skip to content

Instantly share code, notes, and snippets.

View andronex's full-sized avatar

Andrey andronex

View GitHub Profile
@andronex
andronex / hide_content.js
Created March 30, 2017 12:24
Сокрытие части контента и отображение при клике на кнопку
<!--noindex-->
<p id="texthidecomments" style="text-align:center;font-style:italic">----- некоторые вопросы были скрыты -----</p>
<h4 id="showallcomments" style="display: block;">
<a href="[[*uri]]#" class="wpb_button_anone"><span class="wpb_none btn btn-default">Показать все вопросы</span></a>
</h4>
<!--/noindex-->
<script>
jQuery( document ).ready(function() {
var $div = jQuery("li[data-parent=0]");
var start = 7;
@andronex
andronex / getSlider.php
Created April 1, 2017 16:08
Вывод слайдера на страницах с заполненным TV слайдера и в случае незаполненного вывод слайдов из других ресурсов.
<?php
$out = '';
if($tv = $modx->resource->getTVValue('slider-inside-oneclick')){
$tv_arr = $modx->fromJSON($tv);
if(is_array($tv_arr)){
foreach($tv_arr as $v){
if(!$v['name']) $v['name'] = $modx->resource->get('pagetitle');
$out .= $modx->parseChunk('tpl.slider-inside-oneclick', $v);
}
}
@andronex
andronex / config_MOGX.json
Created November 8, 2017 15:04
Зависимые вкладки в MIGX таблице ресурса.
[{
"formname":"Ванные"
,"formtabs": [{
"caption":"Тип калькулятора"
,"fields": [{
"field":"fake"
,"default":"1"
,"inputTVtype":"hidden"
},
{
@andronex
andronex / message.php
Last active December 15, 2017 22:43
Отправка сообщения Ajax с помощью API MODX через внешний файл.
<?php
//шлём заголовки
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json; charset=utf-8');
// инициализация MODX API
define('MODX_API_MODE', true);
require_once dirname(dirname(__FILE__)) . '/core/config/config.inc.php';
require_once MODX_BASE_PATH . 'index.php';
// Включаем обработку ошибок
@andronex
andronex / config_migx.json
Created December 26, 2017 22:29
Настройки MIGX для проверки обязательного заполнения полей.
{
"allowBlank":"false",
"allowDecimals":"No",
"allowNegative":"No",
"decimalPrecision":"0",
"decimalSeparator":".",
"maxValue":"",
"minValue":""
}
@andronex
andronex / save.class.php
Last active December 28, 2017 19:02
Расширение xPDOSimpleObject::save - делаем активной только одну конфигурацию, добавляемую в таблицу MIGXdb в каждый момент времени.
<?php
/**
* quip.thread_err_save - MIGX использует данное значение лексикона по умолчанию, как сообщение об ошибке
* см. https://github.com/Bruno17/MIGX/blob/700780f2328f79bdd6b6b8dcea3351bad472f049/core/components/migx/processors/mgr/default/update.php#L317
* чтобы переопределить его для своих целей и сделать его разным для разных своих классов, всегда перед return false;
* подключаем нужный нам лексикон из определённого пространства имён.
* Таким образом, выводим нужное нам значение об ошибке
* Author хака: andronex (i.modx@ya.ru)
**/
class CarsClassesPrices extends xPDOSimpleObject {
@andronex
andronex / gist:7ea93bc4ad3386e2808355266b2041e3
Created January 29, 2018 18:46
Для вывода сообщения об ошибке через API Office с добавлением массива данных в data
if ($modx->context->key != 'mgr') {
switch ($modx->event->name) {
// Событие перед регистрацией пользователя
case 'OnBeforeUserFormSave':
******************************************************************** код ******************************************
$modx->error->errors[] = array('changedriverphone' => true); //вывод в массив data
$modx->error->errors[] = array('id_driver' => (int)$_POST['id_driver'][$di]); //вывод в массив data
$modx->event->output('Вы уверены, что хотите сменить номер телефона водителя '. $modx->stripTags($_POST['driver-evacuator-name'][$di]) .' с '. $oldPhone .' на '. $newPhone .' ?<br>'); //вывод в message
******************************************************************** код ******************************************
break;
@andronex
andronex / gist:036e192459b7d3cc0a4069f459248a91
Created January 29, 2018 18:53
Если не авторизован в контексте, то отправляем на страницу авторизации с выводом кода ошибки
if (!$modx->user->isAuthenticated('web')) {
$modx->sendUnauthorizedPage();
}
////////////////
if(!$modx->user->isMember('Членистоногие')){
$modx->sendUnauthorizedPage();
}
@andronex
andronex / upload.php
Created February 25, 2018 22:41
Создание MODX ресурсов из MIGX TV с привязкой картинок к галерее ресурса, выполненной на ms2Gallery.
<?php
define('MODX_API_MODE', true);
require_once dirname((__FILE__)) . '/index.php';
$modx->getService('error','error.modError');
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->ms2Gallery = $modx->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/');
$json = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 24,
@andronex
andronex / EvacuatorsPaidsBeznal.php
Last active March 1, 2018 00:27
Расширение класса xPDOSimpleObject и изменение метода ::save() для алгоритма управления через таблицу MIGX
<?php
class EvacuatorsPaidsBeznal extends xPDOSimpleObject {
/** {inheritDoc} */
public function save($cacheFlag = null) {
if($this->get('status') == true && isset($this->_dirty['status']) && !$this->isNew()){
$this->set('published', 0);
$table = $this->xpdo->getTableName('EvacuatorsBalance');
//плюсуем на счёт сумму из выставленного ранее и оплаченного счёта
$this->xpdo->exec("UPDATE {$table} SET `amount` = `amount` + {$this->amount} WHERE `user_id` = {$this->user_id};");