Добавление фотографий к комментариям через ticketcomments и userfiles
Приветствую сообщество!
В общем стал вопрос о том, что надо прикрутить фотографии к комментариям, выяснил, что есть такое:
Потом:
После редактирования уже начинают появляться проблемы…
При редактировании прикрепленные фотографии не отображаются, почему?
потому что при этой записи:
Форма добавления комментария получается записывает (соответственно и сниппет отрабатывает) все это дело как:
А вторая проблема (несущественная, т.к. файлы вывожу при помощи 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',
])}
Потом:
{$_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}
Но почему то не работает.Помогите пожалуйста понять, сделал все как описано именно в этой теме! Заранее огромное спасибо!
Комментарии: 1
ну прям совсем никто не знает?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.