Проблема с публикацией тикетов
Есть такая проблема с публикацией тикетов. Если пользователь создает тикет, и не публикует его а нажимает «В черновики», документ создается. Но потом если он откроет этот документ и нажмет «Опубликовать», то документ публикуется, выводится на странице где вызван «getTickets», но открыть его нельзя, как будто его не существует. Помогает только если в админке этот документ снять с публикации, и заново опубликовать.
В чем может быть причина?
В чем может быть причина?
Комментарии: 17
Не ужели такое только у меня. Пересмотрел все, в консоле ошибок нет, хотя одна какая то все время пролетает в хаотическом порядке
в БД при публикации тоже все в порядке. Во общем то можете попробовать сами, если кому не сложно. Документ создается без проблем, даже выводится на главной странице, но открыть его нельзя, как буд то он не существует. Но если в админке его снять с публикации, и заново выставить публикацию, то все в порядке.
При сохранении документа работает такой плагин
дабы имя страницы было ее id. Пробовал его выключать, не помогло. Блин где же мой косяк ???
Вот сам сайт, регистрация такая же простая как и на данном сайте. pillweb.net
(ERROR @ /index.php) `[[+id]]` is not a valid integer and may not be passed to makeUrl()
в БД при публикации тоже все в порядке. Во общем то можете попробовать сами, если кому не сложно. Документ создается без проблем, даже выводится на главной странице, но открыть его нельзя, как буд то он не существует. Но если в админке его снять с публикации, и заново выставить публикацию, то все в порядке.
При сохранении документа работает такой плагин
<?php
if ( $modx->event->name == 'OnDocFormSave' ) {
$id = $resource->get( 'id' );
if ( $mode == 'new' ) {
$resource->set( 'alias', $id.'/' );
$resource->save();
}
}
дабы имя страницы было ее id. Пробовал его выключать, не помогло. Блин где же мой косяк ???
Вот сам сайт, регистрация такая же простая как и на данном сайте. pillweb.net
то документ публикуется, выводится на странице где вызван «getTickets», но открыть его нельзяПри публикации ты должен попасть сразу на эту страницу и увидеть опубликованный тикет. Если так и есть — то документ работает и проблема у тебя в выводе тикетов, а не в публикации.
Возможно, ты просто выводишь их кэшированными, или у тебя там какой-то сложный чанк. Я проверил только что на тестовом сайте — проблемы нет.
Выводятся тикеты так
и если тикет сразу публикуешь, то да, редиректит сразу на тикет, если же его сразу в черновик, а потом опубликовать, то перекинет просто на главную, ( где вывод через mFilter ), документ выводится, и действительно на него можно перейти но если в админке сбросить кеш. Странно но ведь mFilter вызван не кешированным
[[!mFilter2?
&element=`getTickets`
и если тикет сразу публикуешь, то да, редиректит сразу на тикет, если же его сразу в черновик, а потом опубликовать, то перекинет просто на главную, ( где вывод через mFilter ), документ выводится, и действительно на него можно перейти но если в админке сбросить кеш. Странно но ведь mFilter вызван не кешированным
Судя по всему mFilter всегда кеширует. Может есть какая то возможность выключить вовсе кеширование данного сниппета?
Укажи &cacheTime=`-1`
Но фильтр здесь не при чем.
Но фильтр здесь не при чем.
и если тикет сразу публикуешь, то да, редиректит сразу на тикет, если же его сразу в черновик, а потом опубликовать, то перекинет просто на главнуюТак не должно быть.
При публикации тикета ты должен переходить на него. Если этого не происходит, то у тебя что-то не то с очисткой карты ресурсов сайта.
Вот, смотри код — редирект в корень сайта происходит только если возвращается пустой url от только что опубликованного ресурса.
Вот и в лог ошибка прилетела «Attempted to redirect to an empty URL.» Блин с чего это такое поведение? Куда копать то, может из за новой версии modx, вроде на старой 2.3.2 не замечал
Нет, всё в порядке и на последней версии.
s1135.h3.modhost.pro/ — проверяй. Могу дать данные от админки.
s1135.h3.modhost.pro/ — проверяй. Могу дать данные от админки.
Обновил плагин срабатывающий на сохранение документа
добавив туда строки для генерации карты ресурсов
вроде заработало, и редирект нормально срабатывает, правда одна все же ошибка в логах все ровно летает
нашел решение в данной статье
bezumkin.ru/sections/tips_and_tricks/278/
теперь надо разобратся с выводом статей на главной, она то выводится, но url не выводится.
Кстати не обычная ошибка в логах, если я удаляю тикет пользователя то в логе пишет
«Ошибка удаления зависимый объект: Array» что это еще за зависимость?
<?php
if ( $modx->event->name == 'OnDocFormSave' ) {
$id = $resource->get( 'id' );
if ( $mode == 'new' ) {
$resource->set( 'alias', $id.'/' );
$resource->save();
}
$results = $modx->cacheManager->generateContext($modx->context->key);
$modx->context->resourceMap = $results['resourceMap'];
$modx->context->aliasMap = $results['aliasMap'];
}
добавив туда строки для генерации карты ресурсов
$results = $modx->cacheManager->generateContext($modx->context->key);
$modx->context->resourceMap = $results['resourceMap'];
$modx->context->aliasMap = $results['aliasMap'];
вроде заработало, и редирект нормально срабатывает, правда одна все же ошибка в логах все ровно летает
`[[+id]]` is not a valid integer and may not be passed to makeUrl()
нашел решение в данной статье
bezumkin.ru/sections/tips_and_tricks/278/
теперь надо разобратся с выводом статей на главной, она то выводится, но url не выводится.
Кстати не обычная ошибка в логах, если я удаляю тикет пользователя то в логе пишет
[2015-02-13 18:31:04] (ERROR @ /connectors/index.php) Error removing dependent object: Array
(
[id] => 58
[resource] => 128
[name] => resource-128
[subscribers] => [15]
[createdon] => 2015-02-13 18:27:34
[createdby] => 15
[closed] => 0
[deleted] => 0
[deletedon] =>
[deletedby] => 0
[comment_last] => 0
[comment_time] =>
[comments] => 0
[properties] => {"thread":"resource-128","fastMode":true,"gravatarIcon":"http:\/\/pillweb.net\/theme\/images\/mini-gravatar.png","gravatarSize":"90","gravatarUrl":"https:\/\/www.gravatar.com\/avatar\/","tplCommentForm":"comments.form","tplCommentFormGuest":"@INLINE ","tplCommentAuth":"comments.one.auth","tplCommentGuest":"comments.one.guest","tplCommentDeleted":"comments.one.deleted","tplComments":"comments.wrap","tplLoginToComment":"comments.login","tplCommentEmailOwner":"comments.email.owner","tplCommentEmailReply":"comments.email.reply","tplCommentEmailSubscription":"comments.email.subscription","tplCommentEmailBcc":"comments.email.bcc","autoPublish":"1","autoPublishGuest":"0","formBefore":false,"depth":"1","allowGuest":"0","allowGuestEdit":"0","allowGuestEmails":"0","enableCaptcha":true,"minCaptcha":1,"maxCaptcha":10,"resource":128,"snippetPrepareComment":"","commentEditTime":"600"}
«Ошибка удаления зависимый объект: Array» что это еще за зависимость?
Доп. ошибка стала появлятся после добовления этих строк
хотя это не кретично, она ничего не портит, ресурс все ровно удаляется.
$results = $modx->cacheManager->generateContext($modx->context->key);
$modx->context->resourceMap = $results['resourceMap'];
$modx->context->aliasMap = $results['aliasMap'];
хотя это не кретично, она ничего не портит, ресурс все ровно удаляется.
При выключеных дружественных ЧПУ все работает нормально, и редирект и тикет на главной имеет url. Может с хостингом что не так, а то у них последнее время часто ремонты идут. В файл .htaccess добавил только пару строк
RewriteRule ^public/([^/]+)/$ /public/?tid=$1 [L]
RewriteRule ^users/([^/]+)/$ /users/?id=$1 [L]
RewriteRule ^users/([^/]+)/(comments)/$ /users/?id=$1&comments=$2 [L]
RewriteRule ^users/([^/]+)/(favorites)/$ /users/?id=$1&favorites=$2 [L]
Блин почти все работает, но вот не понятно, что где кешируется, даже взять просто создал документ, опубликовал его, потом нажал редактировать, и из всех кнопок кнопка «открыть» не работает пока в админке не обновить кеш, что за хрень, ГДЕ ВЫКЛЮЧИТЬ КЕШИРОВАНИЕ!!! что бы вообще этот сайт не кешировался.
В последних версиях MODX есть настройка cache_alias_map — попробуй отключить. Настройка cache_handler должна быть xPDOFileCache.
Также проверь все остальные настройки кэширования, чтобы были стандартными — прям сравни со свежеустановленным сайтом. Версию MODX тоже лучше обновить до последней стабильной — 2.3.3-pl.
Как я и предполагал, проблема у тебя общая, с тикетами никак не связанная.
Также проверь все остальные настройки кэширования, чтобы были стандартными — прям сравни со свежеустановленным сайтом. Версию MODX тоже лучше обновить до последней стабильной — 2.3.3-pl.
Как я и предполагал, проблема у тебя общая, с тикетами никак не связанная.
Вот в чем был весь геморой
То есть, было выключено? Или ты отключил и заработало?
Поясни, пожалуйста.
Поясни, пожалуйста.
Было в режиме «Да», сделал «Нет» и теперь карта алиасов не кешируется, там собственно даже написано, что для больших сайтов лучше выключить. Теперь из плагина во общем то можно убрать эти строки за не надобностью.
$results = $modx->cacheManager->generateContext($modx->context->key);
$modx->context->resourceMap = $results['resourceMap'];
$modx->context->aliasMap = $results['aliasMap'];
Правда это решило не все проблемы, такая ошибка как эта осталась, она в логах вылетает, если удалить тикет созданный пользователем. Но это будет редко, так что она мне не мешает.
а вот этой пока не видно, дай бог что б ее и не было больше
P.S на выводе тикетов в ссылки типа «Читать далее» вывел не [[~[[+id]]]] а [[+uri]]
(ERROR @ /connectors/index.php) Error removing dependent object
а вот этой пока не видно, дай бог что б ее и не было больше
`[[+id]]` is not a valid integer and may not be passed to makeUrl()
P.S на выводе тикетов в ссылки типа «Читать далее» вывел не [[~[[+id]]]] а [[+uri]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.