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

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

С нами с 19 сентября 2013; Место в рейтинге пользователей: #59
Николай Загумённов
21 апреля 2016, 20:37
1
+1
В настройках источника файлов minishop2 есть параметр отвечающий за генерацию превью —
thumbnails. В котором есть пункт — &zc. Если убрать «с», оставить просто «z»:«1», то превью не будут кропаться, а будут просто уменьшаться, а пустое пространство будет заполняться фоновым цветом, указанным в параметре — «bg»
Николай Загумённов
21 апреля 2016, 20:29
0
Список (Одиночный выбор) — параметр ввода.
Возможные значения должны быть заполнены примерно так — @EVAL return $modx->runSnippet('pdoResources',array('parents'=>5,'depth'=>3,'limit'=>0,'where'=>'{«isfolder:=»:1}','sortby'=>'{«pagetitle»:«ASC»}','tpl'=>'@INLINE [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));
То есть мы выполняем сниппет pdoResources в возможных значениях.
Николай Загумённов
21 апреля 2016, 20:20
0
У Formit есть параметр — customValidators. Где-то на англ сайтах видел решение подобной проблемы с помощью этого параметра.
Николай Загумённов
20 апреля 2016, 15:47
0
Нехватка памяти
Николай Загумённов
20 апреля 2016, 15:44
+2
Сниппет
<?php
// Сниппет проверяет, состоит ли тот или иной юзер в группе из параметра "&if"  v0.01 Beta

// Подключаем pdoTools для работы с инлайновыми чанками
$pdo = $modx->getService('pdoTools');

$uid = $modx->getOption('uid', $scriptProperties, (int) $_GET['user']); // пишем id user'а
if($uid=='') { $uid = $modx->user->get('id'); }
if($uid=='') { return ''; }

$if = $modx->getOption('if', $scriptProperties, ''); // пишем параметр if
$then = $modx->getOption('then', $scriptProperties, ''); // пишем параметр then
$else = $modx->getOption('else', $scriptProperties, ''); // пишем параметр else
$thenChunk = $modx->getOption('thenChunk', $scriptProperties, ''); // пишем параметр thenChunk
$elseChunk = $modx->getOption('elseChunk', $scriptProperties, ''); // пишем параметр elseChunk

// Есть ли юзер
if($modx->getCount('modUser', array('id'=>$uid))) {  } else { $uid = $modx->user->get('id'); }

// Дёргаем данные
$user = $modx->getObject('modUser', array('id' => $uid));

if(is_object($user)) {
	// Получаем группы
	$groups = $user->getUserGroups();
	
	// Разбиваем на элементы массива
	$ifAr = explode(',', $if);
	
	// Проверяем принадлежность групп юзера к группам указанным в параметрах сниппета
	$return = false;
	for($i=0; $i<count($groups); $i++)
	{
		for($a=0; $a<count($ifAr); $a++)
		{
			if($ifAr[$a] == $groups[$i]) {
				$return = true;
			}
		}
	}
	
	// Возвращаем.... либо true/false, либо $then/$else....
	if($return) {
		if($thenChunk!='') {
			return $pdo->getChunk($thenChunk);
		} else {
			return ($then!='' ? $then : $return);
		}
	} else {
		if($elseChunk!='') {
			return $pdo->getChunk($elseChunk);
		} else {
			return ($else!='' ? $else : $return);
		}
	}
} else {
	return '';
}
Пример вызова:

[[!ifUserGroup?
	&if=`1`// id группы пользователей
	&then=`
		<div class="list-group">
		[[!pdoPage:default=`Нет новых`?
			&element=`getTickets`
			&parents=`1147`
			&showUnpublished=`1`
			&limit=`30`
			&tpl=`tpl.Tickets.list.row`
			&sortby=`{"published":"ASC","createdon":"DESC"}`					
		]]
				
	</div>
		<div class="clear"></div>
		[[!+page.nav]]
			`
			&elseChunk=`@INLINE <div class="alert alert-danger"><h4>У Вас недостаточно прав для просмотра этого раздела.</h4><p>Советуем Вам <a href="[[~1150?action=`auth/logout`]]" class="alert-link">выйти</a> и авторизоваться в аккаунте, который имеет права для просмотра защищённого содержимого.</p></div>`
		]]
Может пригодится =)
Хотя феном более красив)
Николай Загумённов
18 апреля 2016, 03:17
0
А консоль в браузере что-нибудь показывает в этот момент, когда нету панели?
Николай Загумённов
12 февраля 2016, 19:55
+2
Компонент создающие новый тип ТВ — https://modstore.pro/packages/other/tvsuperselect
Николай Загумённов
24 января 2016, 12:02
0
Выбирал из ms2Gallery, может быть поможет.
<div id="pdopage" class="fotogallery">
    <div class="rows">
        [[!pdoPage?
			&element=`pdoResources`
			&loadModels=`ms2gallery`
            &parents=`[[*id]]`
            &ajaxMode=`default`
            &limit=`10`
            &tpl=`tpl.FotogalleryAlbum.row`
            &leftJoin=`{
            	"360x270": {"class":"msResourceFile","alias":"360x270", "on": "360x270.resource_id = modResource.id AND 360x270.path LIKE '%/360x270/' AND 360x270.rank=0"}
				,"360x270x1": {"class":"msResourceFile","alias":"360x270x1", "on": "360x270x1.resource_id = modResource.id AND 360x270x1.path LIKE '%/360x270/' AND 360x270x1.rank=1"}
				,"360x270x2": {"class":"msResourceFile","alias":"360x270x2", "on": "360x270x2.resource_id = modResource.id AND 360x270x2.path LIKE '%/360x270/' AND 360x270x2.rank=2"}
				,"360x270x3": {"class":"msResourceFile","alias":"360x270x3", "on": "360x270x3.resource_id = modResource.id AND 360x270x3.path LIKE '%/360x270/' AND 360x270x3.rank=3"}
				,"360x270x4": {"class":"msResourceFile","alias":"360x270x4", "on": "360x270x4.resource_id = modResource.id AND 360x270x4.path LIKE '%/360x270/' AND 360x270x4.rank=4"}
			}`
			&select=`{
				"modResource":"*"
				,"360x270":"360x270.url as 360x270"
				,"360x270x1":"360x270x1.url as 360x270x1"
				,"360x270x2":"360x270x2.url as 360x270x2"
				,"360x270x3":"360x270x3.url as 360x270x3"
				,"360x270x4":"360x270x4.url as 360x270x4"
				
			}`
        ]]
    </div>
    [[!+page.nav]]
</div>
Николай Загумённов
20 января 2016, 02:35
+4
Спасибо, наконец-то увидел и услышал людей, которые часто помогали мне=)
Николай Загумённов
10 января 2016, 14:58
0
У меня получается с качать с версии 2.4.2
Николай Загумённов
05 декабря 2015, 22:34
0
А так?

<div id="pdopage">
    [[!+page.nav]]
    <div class="rows">
[[!pdoPage?
            &parents=`2`          
            &ajaxMode=`scroll`
            &tpl=`imageTpl`   
            &depth=`4`
            &limit=`50` 
]]
    </div>
</div>
Николай Загумённов
02 декабря 2015, 11:41
0
Спасибо за пинок)
Сделал, работает. Я не нашел ничего умного кроме как сохранять в сессию, а в кастомном классе доставки взять оттуда стоимость=)
Сниппет:
<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}

if (empty($_POST['delivery_cost'])) {return;}

// А если есть - работаем
$res = $_POST['delivery_cost'];

$del_obj = $modx->getObject('msDelivery', array('class' => 'yandexDelivery'));
$_SESSION['ydPrice'] = $res;
$del_obj->getCost();

// Если у нас есть, что отдать на запрос - отдаем и прерываем работу парсера MODX
if (!empty($res)) {
	die($res);
}
Николай Загумённов
02 декабря 2015, 09:28
0
Да, с JS, надо было дописать. JS и выдает итоговую стоимость доставки в зависимости от удаленности от центра города.
не из базы, а считается уже на стр корзины
Знаю, что криво, но другого пути не вижу. Как сделать чтобы этот класс принимал значение из браузера?
Николай Загумённов
02 декабря 2015, 08:04
0
Там получается так, что стоимость доставки берется не из базы, а считается уже на стр корзины и потом прибавляется.