Николай Загумённов

Николай Загумённов

С нами с 19 сентября 2013; Место в рейтинге пользователей: #59
Sergey (Sentinel)
07 декабря 2018, 09:56
2
+3
Модификатор телефонного номера
можно же fenom
{var $app_mobile = 'phone'|option}
 {var $app_mobile_clear = $app_mobile|preg_replace:'/[^0-9]|/': ''}
Результат:
<a href="tel:+{$app_mobile_clear}">{'phone'|option}</a>
Николай Загумённов
02 сентября 2017, 12:19
2
+2
Хочу поделиться сниппетом, аналог pdoField, так как я часто пользуюсь pdoField.

Сниппет getLocalizatorField

<?php
$sp = &$scriptProperties;

$resource_id = $modx->getOption('resource_id', $sp, $modx->resource->id);
$field = $modx->getOption('field', $sp, 'pagetitle');
$key = $modx->getOption('key', $sp, $modx->getOption('cultureKey'));

$q = $modx->newQuery( "localizatorContent" );
$q->where( array( "`resource_id` = '" . $resource_id . "'", "`key` = '" . $key . "'" ) );
$q->select( array( $field ) );
$s = $q->prepare();  // print $q->toSQL(); die;
$s->execute();
$array = $s->fetch(PDO::FETCH_ASSOC);
$field_value = $array[$field];

return $field_value;
Вызов:

{'getLocalizatorField' | snippet : [ 
       'resource_id' => 20,
       'field' => 'content'
 ]}
mngatoff
06 августа 2017, 01:52
3
+1
а я влез в тикетовый процессор web/upload/file, и в методе process() дописал после проверки на дубли:
// Check for files limit
        if ($filesLimit = $this->modx->getOption('tickets.max_files_upload')) {
        	$checkLimit = $this->modx->newQuery($this->classKey, array('class' => $this->class));
	        if (!empty($this->ticket->id)) {
	            $checkLimit->andCondition(array('parent:IN' => array(0, $this->ticket->id)));
	        } else {
	            $checkLimit->andCondition(array('parent' => 0));
	        }
        	$checkLimit->andCondition(array('createdby' => $this->modx->user->id));
        	if ($this->modx->getCount($this->classKey, $checkLimit) >= $filesLimit) {
        		@unlink($data['tmp_name']);

            	return $this->failure('Вы не можете загрузить больше '.$filesLimit.' файлов');
        	}
        }
и джаваскрипт можно не трогать, и надежнее.
Хочется попросить Василия что-то подобное таки включить в релиз, полезная штука.
Дмитрий Меркурьев
21 октября 2016, 14:37
2
+4
Если нужна синхронизация времени с сервером, то:
1. Пишем небольшой сниппет getWatch
<?php
$time = time();
//Если время сервера отличается от правильного то прибавляем или вычитаем от time кол-во секунд. Пример:
//$time += 3600;
return '<div id="digitalWatch" data-time="'.$time.'"></div>';
2. Вставляем его туда, где нужно выводить часы, обязательно некешированным
[[!getWatch]]
3. Добавляем js в основной js-файл сайта
$(function(){
	var $dw = $('#digitalWatch');
	if ($dw){
		var delta = 0;
		function makeWatch(){
			var currentDate = new Date().getTime();
			currentDate += delta;
			var currentServerDate = new Date(currentDate);
			var hours = currentServerDate.getHours();
			var minutes = currentServerDate.getMinutes();
			var seconds = currentServerDate.getSeconds();
			if (hours < 10) hours = "0" + hours;
			if (minutes < 10) minutes = "0" + minutes;
			if (seconds < 10) seconds = "0" + seconds;
			$dw.html(hours + ":" + minutes + ":" + seconds);
			setTimeout(makeWatch, 1000);
		}

		var serverTime = parseInt($dw.data('time'))*1000;
		var clientTime = new Date().getTime();
		delta = serverTime-clientTime;
		makeWatch();
	}
});
Виктор
17 мая 2016, 14:10
1
+1
$(document).on('af_complete', function(event, response) {
	if (response.success) {
    		var form = response.form;
   		if (form.attr('id') == 'myModalbuy2') {
			form.attr('id').modal('hide');
			yaCounterXXXXXXXX.reachGoal('metka'); return
		}
        }
});
Илья Уткин
14 марта 2016, 17:06
2
0
Немного дополнил плагин, так как не всегда $introtext = $content
if ($modx->event->name == "OnDocFormSave") {
    $introtext = $resource->get('introtext');
    $generateIntrotext = $resource->getIntroText($resource->get('content'), false);
    if (empty($resource->getProperty('disable_jevix'))) {
        $generateIntrotext = $resource->Jevix($generateIntrotext);
    }
    if ($introtext == $generateIntrotext) {
        $resource->set('introtext', '');
    $resource->save();
    }
}
Alexander V
16 июня 2015, 21:48
1
0
проверяйте пути, часто проблема в путях, если разрабатываете локально
Alexander V
20 апреля 2015, 18:46
1
+1
Ну тогда в топку Modx. Только PHP, только харкор!
Alexander V
14 января 2015, 23:01
1
0
Смотрел, красивый. Синтаксис немного непривычный и Grid какой-то странный.