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

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

С нами с 01 июля 2013; Место в рейтинге пользователей: #33
29 июля 2015, 22:39
0
Поддержка — в основном, только вот здесь.
Вообще, minishop2 — бесплатное дополнение, поэтому и поддержка осуществляется исключительно на энтузиазме (ну, или можете попробовать обратиться к автору дополнения).

По вашему вопросу — скорее всего, придется править ядро минишопа в отображении ext.js.
29 июля 2015, 22:18
0
Не за что.)

Да, забыл добавить — еще есть чанк tpl.msEmail.sent.user, он, если не ошибаюсь, отправляет заказ пользователю при оплате (могу ошибаться, лучше потестить на ходу).
29 июля 2015, 22:15
+1
Вверху сниппет msGetOrder отрабатывает содержимое корзины и перемещает их в плейсхолдер goods.

Дефолтный чанк для него — tpl.msGetOrder.row, но вы можете указать для сниппета параметр tplRow (шаблон строки) и tplOuter (обертка).
29 июля 2015, 22:09
0
Чанк tpl.msEmail.paid.user (в категории minishop2).

Как оформить — думаю, будет понятно, взглянув на дефолтный чанк.
29 июля 2015, 14:26
0
Да, пожалуй, через pdoPage — не лучшее решение.

Наверное, и джоинить такую кипу данных при большом количестве категорий — сомнительное решение.
Можно, конечно, попробовать вывести изначальную связку (категория + 5 товаров) через pdoMenu, но, думаю, лучше вызывать единый pdoResources для категорий, в чанке для каждой из которых будет отрабатывать сниппет, возвращающий 5 товаров + кнопка «смотреть далее».

Далее — писать скрип на аяксе, который будет срабатывать при нажатии на кнопку, после чего выполняя примерно следующую логику:
— смотреть айди категории и текущее количество товаров (прописать в верстке чанка id категории и data-count)
— совершать аякс запрос на php, в котором будет выполняться pdoResources с parent=id_категории и offset=data-count
— возвращать запрос, после чего:
— если результатов 0, то удалять кнопку из dom
— если не 0 — append'ить их в нужное место и менять data-count.
29 июля 2015, 14:10
0
Без гет запроса с красивым урл — или аяксом + динамичная замена урла, или плагин, или создание для каждого тега свой ресурс…

К слову, гет-запрос можно легко преобразовать в красивый урл — вот готовое решение.
29 июля 2015, 08:42
0
Допустим, у нас есть сниппет, который потенциально может иметь вид: [[!name@config? &param1=`value1` &param2=`value2`]]. Вот как его вызов можно транспонировать в код:

<?php
	//объявляем массив параметров сниппета name:
	$allParams = array();
	
	//если у сниппета есть параметры, вынесенные в системные наборы параметров c названием config:
	$configProperty = $modx->getObject('modPropertySet', array ('name' => 'config')); 
	$allParams = $configProperty->getProperties();
	
	//перечисляем обычные параметры сниппета для вызова:
	$allParams['param1'] = 'value1';
	$allParams['param2'] = 'value2';

	//запускаем сниппет name с заданным массивом параметров:
	$result = $modx->runSnippet('name', $allParams);

	//возвращаем
	return $result;

— Т.е. вы можете писать как прямые запросы к базе через pdo (об этом лучше почитать отдельно), так и запускать через php целенаправленные сниппеты и возвращать результат.
29 июля 2015, 08:05
0
1. Вам необходимо в файле вызвать службы модкса, после чего реализовать выборку.
<?php
	define('MODX_API_MODE', true);

	require 'адрес_до_корневого_index.php_модкс';
	
	// Запускает нужные службы MODX
	$modx->getService('error','error.modError');
	$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
	$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

	//здесь запускаем сниппет, который вернет нам результаты (например, tagLister)

2. Опять же tagLister, как вариант. Или можно создать отдельную страницу с поиском по тегам, например вот так.
28 июля 2015, 16:16
0
Это делается не со стороны «содержимого ресурса» или любых других полей, а через шаблоны.

Можно, конечно, включить работу тегов модкса внутри тикетов (в самом тикете галочкой), но это очень спорное решение.
28 июля 2015, 16:06
0
К самим тикетам (новость, запись, статья) — Тип ресурса: тикет.
К рубрике, которая их содержит (все новости, все записи, все статьи) — Тип ресурса: раздел.

Начать замену лучше с разделов.
28 июля 2015, 15:39
0
Выбираешь ресурс -> закладка настройка -> тип ресурса
28 июля 2015, 13:11
0
Если не критично через leftjoin'ы, то можно так внутри чанка:
[[!TicketCommentsCount:default=`0`? &id=`[[+id]]`]]
28 июля 2015, 10:51
+2
— Через jquery на событие keyup вешается функция отправки уже введенных пользователем данных при помощи ajax'a на php-скрипт (+ здесь же можно реализовать проверку того, что алгоритм начнет работать только если пользователь ввел 3 или более символов)
— Пишется пхп, который находит в базе данных или из введенного вами перечня (можно даже из файла) подходящие результаты.
— Через аякс возвращаются результаты.

Пример:
<form id="form">
	<input type="text" id="searchForm">
	<ul id="searchHelper" style="display: none;"></ul>
</form>

<script type="text/javascript">
	$('#searchForm').keyup(function(){
		if($(this).val().length>3){
			//заместо адреса можно перенаправлять на текущую страницу, при условии что на ней вызывается сниппет, перехватывающий ajax-значения
			$.get('адрес_до_пхп_файла',{'query':$(this).val()},function(data){
				data = eval('('+data+')');
				if(data.length!=undefined && data.length>0){
					$("#searchHelper").html('');
					for(i in data){
						$('#searchHelper').append('<li>'+data[i]+'</li>');
					}
					$('#searchHelper').css('display', 'block');
				}
			});
		}
	});

	$('#searchHelper > li').live('click',function(){
		$('#searchForm').val($(this).text());
		$('#form').submit();
	});

</script>
28 июля 2015, 00:46
0
Для начала вам придется преобразовывать каждую дату в Unix-формат, после чего через where сравнивать его с требуемым диапазоном дат в том же Unix-формате (в противном случае произвести сравнение методами «больше»/«меньше» вряд ли удастся.

Честно говоря, не уверен, что такой метод будет работать: не совсем понятно, что сработает раньше — аякс-пагинация pdoTools или ваша выборка where — и не перезапишет ли один результат другой.

Можете попробовать удалить из системных настроек вложенные скрипты pdoPage для ajax'a и написать свой, с параллельной проверкой where и заданной страницы.

А вообще, модуль mfilter2 лишил бы вас множества проблем в этой области — он отлично дружит с pdoPage и делает перерасчет на лету.

28 июля 2015, 00:30
0
Код парсера писать в любом случае придется на php + вешать его запуск на cron по таймеру. Остальное упирается в то, через какой иденфикатор будет определяться перечень требуемых для скачивания аудио-файлов.

С ценами и деталями вам сюда.
28 июля 2015, 00:26
3
+3
1) По пунктам:
— При регистрации через Login нужно заносить пользователя в определенную группу (Users).
— Выставить группе анонимных пользователей права Load only на все контексты, где нужно запрашивать авторизацию
— Добавить в системной настройке unauthorized_page (403 ошибка) айди страницы с формой авторизации

После чего всех неавторизованных пользователей, при запросе на закрытую страницу, будет перебрасывать на страницу авторизации.

//Примечание: для альтернативы, если не нужна переадресация, можно создать простой сниппет (допустим, getAccess) и вызывать его на каждой странице.

Сниппет getAccess:
<?php
	$user = (!empty($userId)) ? $modx->getObject('modUser', $userId) : $modx->user;

	if (is_object($user) && $modx->user->isAuthenticated('web')) {
		return $content;
	}
	else {
		return $modx->getChunk('название_чанка');
	}
— соответственно, нужно создать чанк с формой авторизации и обозначить для сниппета параметр &content, в котором будет храниться html-код.

Пример:
<html>
	<head>
		[[$meta]]
	</head>
	<body>
		[[!getAccess? &content=`
			//ваш хтмл-код
		`]]
	</body>
</html>
(как альтернатива, можно переписать строчку сниппета «return $content» на «return $modx->getChunk($content);» — в таком случае, при вызове в поле &content нужно будет указывать название чанка, который отобразится авторизованному пользователю).

Из минусов такого метода — поисковые системы проиндексируют кучу дублей одинаковых страниц с формой авторизации.

2. modstore.pro/packages/ecommerce/payandsee — может быть, это вам поможет? В противном случае — придется настраивать свои сниппеты, завязанные на extend-полях пользователя.
27 июля 2015, 17:15
0
Схожая проблема, если не путаю, была в версии 2.3.2. Попробуйте обновить модкс до последней версии.