Максим Кузнецов

Максим Кузнецов

С нами с 01 июля 2013; Место в рейтинге пользователей: #33
08 декабря 2015, 18:33
+1
При помощи javascript/jquery, как-нибудь вот так:

$("#product_price, input[name='count']").on('change keyup paste', function () {
  	if ($(this).val() <= 0) {
		$(this).val("0");	
	}
});
08 декабря 2015, 18:27
0
Ссылку вы подключили правильно, но нужно также подключить вызов соответствующих превьюх в сниппете:
&includeThumbs=`1200x800,360x270`
07 декабря 2015, 20:03
0
Возможно, дело в том, что скрипт яндекса подгружает контент асинхронно и его попросту нет в зоне видимости цепляющей функции.

Не скажу точно, как это переписывается с чистого javascript'a, но в jquery это можно сопоставить примерно с этим:

$("идентификатор").click(function(){
	//не будет срабатывать на удовлетворяющий идентификатор, подгруженный через аякс
});

$(document).on('click', 'идентификатор', function(e) {
	//тут все ок
});
07 декабря 2015, 12:22
0
Только что проверил — на дефолтной сборке сниппет отрабатывает корректно:
— создаем страницу (sitemap.xml) с типом содержимого «xml»
— вызываем сниппет [[!pdoSitemap]]

Может, у вас стоят какие-то плагины, перекрывающие результат/есть что-нибудь в логах?
07 декабря 2015, 12:18
0
К слову, есть же встроенные модификаторы modx'a для этой задачи:
[[+что_делим:div=`[[+на_что_делим:default=`1`]]`]]
07 декабря 2015, 12:10
+2
$modx->sendRedirect($redirect_page, array('responseCode'  => 'HTTP/1.1 404 Not Found'));
07 декабря 2015, 11:59
0
Мистика
Может кэш?)
07 декабря 2015, 11:42
0
Попробуйте вызвать сниппет некэшируемым.
[[!pdoSitemap]]
07 декабря 2015, 11:40
0
Ну, обновления для minifyx довольно редко выходят — можете изменить эту строчку для реализации абсолютного пути.
07 декабря 2015, 11:33
0
Можно попробовать на событие OnPageNotFound проверять контекст или адрес запроса. Если запрос не в основном контексте -> $modx->switchContext('web') и дальше ничего не делаем, чтобы юзер получил 404.

Не проверял, но должно сработать.

Просто у мя ссылки на стили на странице 404 стоят относительные (вернее генерируются они такими с помощью MinifyX)
Тег base не помогает решить проблему?
05 декабря 2015, 20:15
0
Не работал с modDevTools, поэтому не уверен, найдет ли он чанк, допустим, в сниппете с захардкореным вызовом getChunk.

В случае чего, у вас ведь всегда есть поиск напрямую по бд — если совпадений по названию чанка больше 1го — он потенциально где-то используется. Так хоть и поштучно, но можно почти безошибочно отсеять неиспользуемые чанки.
05 декабря 2015, 20:07
0
Только ручной перебор (с попутной оптимизацией), только хардкор..)
05 декабря 2015, 16:35
0
Jevxix'ом — не уверен.

Можно попробовать создать плагин на OnBeforeCommentSave, OnBeforeDocFormSave и тд, который будет разбирать требуемые поля и искать в них внешние ссылки (думаю, примеров для решения такой задачи в интернете хватает). И менять при нахождении на требуемый url.
05 декабря 2015, 02:06
0
Сортировка + поиск: mSearch2
Проверка полей на уникальность: плагин на событие OnDocFormSave
Добавить информацию: если в профиль (+ регистрация/авторизация), то office/login, если как ресурс сайта (страница), то tickets
Доступ к тем или иным страницам: системная настройка прав для групп пользователей/свой сниппет/PayAndSee
Общие выводы разделов/списков ресурсов: pdoTools/tickets
04 декабря 2015, 18:57
+1
Пользователь в сниппете Login должен создаваться (но не активироваться) уже на шаге отправки письма.

Проблема может быть с правами на просмотр страницу (в вашем случае — личный кабинет). Возможно, еще неавторизованный пользователь переходит на страницу, не проходит по уровню доступа и сниппет активации просто не успевает отработать.

Попробуйте создать отдельную страницу для активации, которая, в случае успеха, будет перекидывать на личный кабинет.
04 декабря 2015, 16:57
0
Создаете плагин на событие OnPageNotFound. В нем проверяете контекст при помощи $modx->context->key и если контекст относится к поддомену, то выполняете $modx->sendRedirect() на нужную страницу основного домена.
04 декабря 2015, 02:59
+3
По поводу манагера и гет-параметров, проблему можно решить так:
<?php
	if ($modx->event->name != "OnHandleRequest" || $modx->context->key == 'mgr') {
		return;
	}
	
	if ($_SERVER['REQUEST_URI'] != '/') {
		$uri = strtok(substr($_SERVER['REQUEST_URI'], 1), '?');
		
		if ($uri == 'index.php') {
			$uri = intval(str_replace('/index.php?id=', '', $_SERVER['REQUEST_URI']));
			//не уверен, нужна ли здесь проверка на наличие ресурса, т.к. в случае отсутствия оного, событие должно перехватить OnPageNotFound
			
			if(empty($uri)) {
				$url = 1;
			}

			$modx->sendRedirect($modx->makeUrl($uri));
		}
	}
03 декабря 2015, 18:03
+2
Если хотите массово и удобно для менеджеров — есть дополнение ClientConfig.

Устанавливаете — создаете нужную системную настройку (отключить комментарии на всем сайте) и в примере выше заместо проверки tv-поля проверяете свежесозданную настройку вида [[++ключ_настройки]].
03 декабря 2015, 17:12
1
+1
По первому пункту: добавьте tv-поле (например Ticket.Comments.Disallow — Отключить комментарии) к шаблону тикетов, тип — чекбокс, с возможным вариантом «да==1».

В самом шаблоне тикетов вывести конструкцию:

[[*Ticket.Comments.Disallow:is=`1`:then=`
	<div class="ticket-comments alert alert-warning">Комментарии отключены.</div>
`:else=`
	[[!TicketComments]]
`]]