Алексей

Алексей

Был в сети 02 января 2025, 10:27
Заказы не принимаю
Klike
Klike
Понял, спасибо! И ещё вопрос про совместимость с mFilter2.
К примеру, вывести все цвета товара в фильтре, и при выборе, например, зелёного – картинки поменяются на модификацию в Зелёном варианте) Так можно?

UPD. Или просто вывести все модификации со всеми картинками, и тут уже просто фильтр работае. Оставляет выбранные цвета.
Василий Наумкин
Василий Наумкин
Николай Загумённов
Николай Загумённов
Выяснил, что можно использовать для этих целей UserFiles.
Надо только добавить плагин, который буде срабатывать после сохранения комментария (событие — OnCommentSave). Вообще очень много открыл для себя с этими плагинами =) В таблице компонента меняю поле parent на id созданного комментария.
<?php
// TicketCommentSave
switch ($modx->event->name) {
    case 'OnCommentSave':
        // $modx->log(1, print_r(array_keys($scriptProperties), 1));
        if ($mode == 'new') {
        	// >> Подключаем UserFiles
			$corePath = $modx->getOption('userfiles_core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/userfiles/');
			$UserFiles = $modx->getService('UserFiles', 'UserFiles', $corePath . 'model/userfiles/', array('core_path' => $corePath));
			// << Подключаем UserFiles
			
			$user_id = $modx->user->id; // id Авторизованного пользователя
			
			$files = $modx->getCollection('UserFile', array('parent' => $user_id));
			foreach ($files as $file) {
				$file->set('parent', $id);
				$file->save();
				if ($children = $file->getMany('Children')) {
					foreach ($children as $child) {
						$child->remove();
					}
					$file->generateThumbnails();
				}
			}
        }
    break;
}
В чанке формы добавления комментария надо добавить сам сниппет ufForm:
[[!ufForm?
	&class=`modUser`
	&list=`comment`
	&dropzone=`{"maxFilesize":2,"maxFiles":5,"acceptedFiles":".jpg, .jpeg, .gif, .png","template":"edit"}`
]]
В чанке одного комментария(tpl.Tickets.comment.one.auth) добавить:
Должна быть включена поддержка fenom в настройках pdotools.
{$_modx->runSnippet('!pdoResources', [
	'limit' 			=> 10,
	'showLog'			=> 1,
	'class' 			=> 'UserFile',
	'loadModels' 		=> 'UserFiles',
	'sortby' 			=> '{"rank":"ASC"}',
	'tpl' 				=> '@INLINE <div class="item pull-left>
						        <a href="{$url}" rel="fancybox"><img src="{$thumb}" alt=""></a>
						    </div>',
	'where' 			=> '{
						        "UserFile.parent": ' ~ $id ~ ',
						        "UserFile.createdby": '~ $createdby ~'
						        
						    }',
	'leftJoin' 			=> '{
								"Thumb": {
									"class": "UserFile",
									"on": "Thumb.parent = UserFile.id AND Thumb.properties LIKE \'%w\":120,\"h\":90%\'"
								}
						    }',
	'select' 			=> '{
								"UserFile": "url",
								"Thumb": "Thumb.url as thumb"
						    }',
])}
Будет работать только для авторизованных пользователей, так как их id мы заполняем в parent таблицы компонента UserFiles.
Николай Загумённов
Николай Загумённов
В настройках источника файлов minishop2 есть параметр отвечающий за генерацию превью —
thumbnails. В котором есть пункт — &zc. Если убрать «с», оставить просто «z»:«1», то превью не будут кропаться, а будут просто уменьшаться, а пустое пространство будет заполняться фоновым цветом, указанным в параметре — «bg»