Добавление фотографий к комментариям через ticketcomments и userfiles

Приветствую сообщество!
В общем стал вопрос о том, что надо прикрутить фотографии к комментариям, выяснил, что есть такое:
{$_modx->runSnippet('!TicketComments', [
    'showLog' => 1,
	'class' => 'TicketComment',
    	'loadModels' => 'UserFiles',
    	'leftJoin' => '{
        "Thumbs": {
            	"class": "UserFile",
            	"on": "Thumbs.list = TicketComment.id AND Thumbs.properties LIKE \'%w\":120,\"h\":90%\'"
        	}
    	}',
    	'select' => '{
        	"TicketComment": "*",
	        "Thumbs": "GROUP_CONCAT(Thumbs.url) as thumbs"
    	}',
    	'groupby' => 'TicketComment.id',
])}

Потом:
{$_modx->runSnippet('!pdoResources', [
    'class' => 'UserFile',
    'loadModels' => 'UserFiles',
    'limit' => 10,
    'tpl' => '@INLINE
        <div class="item pull-left">
            <a href="{$url}" rel="fancybox"><img src="{$thumb}" alt=""></a>
        </div>
    ',
    '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"
    }',
    'where' => '{
        "UserFile.class": "modUser",
        "UserFile.list": "comment-' ~ $id ~ '"
        
    }',
    'sortby' => '{"rank":"ASC"}',
])}
Ну и:
switch ($modx->event->name) {
    case 'OnCommentSave':
        if ($mode == 'new' && $modx->user->isAuthenticated($modx->context->key)) {
            $corePath = MODX_CORE_PATH.'components/userfiles/';
            if ($uf = $modx->getService('UserFiles', 'UserFiles', $corePath.'model/userfiles/', array('core_path' => $corePath))) {
                if ($files = $modx->getCollection('UserFile', array('parent' => $modx->user->id, 'list' => 'comment-'.$object->Thread->name))) {
                    foreach ($files as $file) {
                        $file->set('list', 'comment-'.$object->id);
                        $file->save();
                        
                        if ($children = $file->getMany('Children')) {
                            foreach ($children as $child) {
                                $child->remove();
                            }
                            $file->generateThumbnails();
                        }
                    }
                }
            }
        }
        break;
}
Все круто (почти), комменты при первом создании разбивает как надо! НО!
После редактирования уже начинают появляться проблемы…
При редактировании прикрепленные фотографии не отображаются, почему?
потому что при этой записи:
'list' => 'comment-' ~ $thread,
Форма Добавления комментария и Форма редактирования комментария ведут себя по разному…
Форма добавления комментария получается записывает (соответственно и сниппет отрабатывает) все это дело как:
comment-[[+id]]
А форма редактирования, вот так:
comment-resource-[[+здесь ID ресурса есена, т.к. написано $thread]]
И получается чехарда, сохраняю (формой редактирования), получается, что в базу (а именно в поле LIST) улетает:
comment-resource-[[+здесь ID ресурса есена, т.к. написано $thread]]
И при этом комментарии начинают глючить и тупить, а так же файл остается висеть, т.к. теперь у него назначно в LIST:
comment-resource-[[+здесь ID ресурса есена, т.к. написано $thread]]
Если есесна я назначу ему принудительно, например так:
'list' => 'comment-10'
То есесна как только я захочу отредактировать этот комментарий, то все чики пуки, файлы отображаются, перезагружаются, удаляются или загружаются новые именно к этому комменту!

А вторая проблема (несущественная, т.к. файлы вывожу при помощи pdoResources) это вот эта запись:

{$_modx->runSnippet('!TicketComments', [
    'showLog' => 1,
	'class' => 'TicketComment',
    	'loadModels' => 'UserFiles',
    	'leftJoin' => '{
        "Thumbs": {
            	"class": "UserFile",
            	"on": "Thumbs.list = TicketComment.id AND Thumbs.properties LIKE \'%w\":120,\"h\":90%\'"
        	}
    	}',
    	'select' => '{
        	"TicketComment": "*",
	        "Thumbs": "GROUP_CONCAT(Thumbs.url) as thumbs"
    	}',
    	'groupby' => 'TicketComment.id',
])}
При этом раскладе по идее должно работать:
{foreach $thumbs | split as $thumb}
	<!--Получаем основное изображение из превью 120х120, к примеру -->
	
	<a href='{$thumb | replace : ".w120.h120" : ""}'>
		<img src='{$thumb}' width='120' height='120' />
	</a>
{/foreach}
Но почему то не работает.

Помогите пожалуйста понять, сделал все как описано именно в этой теме! Заранее огромное спасибо!
Andrey
20 августа 2018, 03:24
modx.pro
1 121
0

Комментарии: 1

Andrey
24 августа 2018, 15:07
0
ну прям совсем никто не знает?
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1