PHP Version 5.6.13-pl0-gentoo
MODX Revolution 2.7.0-pl
Используется модуль публикации статей Articles 1.7.11-pl
1. Создаю ресурс типа "Статья" под названием "Новости". Добавляю первую новость "тест" без публикации.
2. Пытаемся опубликовать новость "тест", обновляем страницу содержимого ресурса "Новости".
Итог - новость пропадает из списка статей.
Причина этой ошибки и как она воспроизводится:
1. Идем в mySQL в таблицу modx_site_content, видим, что новость на месте:
2. изменяем у записи "тест" атрибут publishedon на 0. Обновляем страницу просмотра ресурса новости, и новость снова в списке, а также она доступна по ссылке
http://мой_сайт/news/год/мес/день/тест/ вне зависимости, опубликована или нет.
3. Снова публикую новость "тест".
4. Смотрю лог core/cache/logs/error.log
При просмотре ресурса новости, туда добавляется ошибка:
[2019-02-12 12:48:25] (ERROR @ /....../htdocs/core/model/modx/modprocessor.class.php : 264) Processor failed creating output array due to JSON error 5
5. Идем в файл modprocessor.class.php, чтобы добыть подробности:
а) Получаем содержимое, что пытались отджейсонить из $array и стек вызова функций $trace:
public function outputArray(array $array,$count = false) {
if ($count === false) { $count = count($array); }
$output = json_encode(array(
'success' => true,
'total' => $count,
'results' => $array
));
if ($output === false) {
ob_start();
debug_print_backtrace();
$trace = ob_get_contents();
ob_end_clean();
$this->modx->log(modX::LOG_LEVEL_ERROR, 'Processor failed creating output array due to JSON error '.json_last_error().print_r($array, true).print_r($trace, true));
return json_encode(array('success' => false));
}
return $output;
}
6. После правки лог ошибок дает такие подробности:
[2019-02-12 12:48:25] (ERROR @ /..../htdocs/core/model/modx/modprocessor.class.php : 264) Processor failed creating output array due to JSON error 5Array
(
[0] => Array
(
[id] => 54
[type] => document
[contentType] => text/html
[pagetitle] => тест
[longtitle] =>
[description] =>
[alias] => тест
[alias_visible] => 1
[link_attributes] =>
[published] => 1
[pub_date] => 0
[unpub_date] => 0
[parent] => 53
[isfolder] =>
[introtext] =>
[content] =>
[richtext] => 1
[template] => 0
[menuindex] => 0
[searchable] => 1
[cacheable] => 1
[createdby] => 1
[createdon] => 2019-02-12 12:46:14
[editedby] => 1
[editedon] => 2019-02-12 12:46:25
[deleted] =>
[deletedon] => 0
[deletedby] => 0
[publishedon] => 12.02.2019 12:12 /* тут был неверный формат даты с корокозяброй Džנ12 - сокращенное название месяца или недели*/
[publishedby] => 1
[menutitle] =>
[donthit] =>
[privateweb] =>
[privatemgr] =>
[content_dispo] => 0
[hidemenu] => 1
[class_key] => Article
[context_key] => web
[content_type] => 1
[uri] => news/2019/02/12/тест/
[uri_override] => 1
[hide_children_in_tree] => 0
[show_in_tree] => 0
[properties] => Array
(
[articles] => Array
(
[notificationServices] =>
)
)
[createdby_username] => admin
[tags] =>
[comments] => 0
[publishedon_date] => Džנ12 /* а тут формат даты остался неправильный !!!!!! */
[publishedon_time] => 12:12
[action_edit] => ?a=resource/update&action=post/update&id=54
[preview_url] => http://мой-сайт/news/2019/02/12/тест/
[actions] => Array
(
[0] => Array
(
[className] => edit
[text] => Редактировать
)
[1] => Array
(
[className] => view
[text] => Просмотреть
)
[2] => Array
(
[className] => delete
[text] => Удалить
)
[3] => Array
(
[className] => unpublish
[text] => Снять с публикации
)
)
)
)
#0 modProcessor->outputArray(Array ([0] => Array ([id] => 54,[type] => document,[contentType] => text/html,[pagetitle] => тест,[longtitle] => ,[description] => ,[alias] => тест,[alias_visible] => 1,[link_attributes] => ,[published] => 1,[pub_date] => 0,[unpub_date] => 0,[parent] => 53,[isfolder] => ,[introtext] => ,[content] => ,[richtext] => 1,[template] => 0,[menuindex] => 0,[searchable] => 1,[cacheable] => 1,[createdby] => 1,[createdon] => 2019-02-12 12:46:14,[editedby] => 1,[editedon] => 2019-02-12 12:46:25,[deleted] => ,[deletedon] => 0,[deletedby] => 0,[publishedon] => 12.02.2019 12:12 ,[publishedby] => 1,[menutitle] => ,[donthit] => ,[privateweb] => ,[privatemgr] => ,[content_dispo] => 0,[hidemenu] => 1,[class_key] => Article,[context_key] => web,[content_type] => 1,[uri] => news/2019/02/12/тест/,[uri_override] => 1,[hide_children_in_tree] => 0,[show_in_tree] => 0,[properties] => Array ([articles] => Array ([notificationServices] => )),[createdby_username] => admin,[tags] => ,[comments] => 0,[publishedon_date] => Džנ12,[publishedon_time] => 12:12 ,[action_edit] => ?a=resource/update&action=post/update&id=54,[preview_url] => http://мой-сайт/news/2019/02/12/тест/,[actions] => Array ([0] => Array ([className] => edit,[text] => Редактировать),[1] => Array ([className] => view,[text] => Просмотреть),[2] => Array ([className] => delete,[text] => Удалить),[3] => Array ([className] => unpublish,[text] => Снять с публикации)))), 1) called at [/....../htdocs/core/model/modx/modprocessor.class.php:500]
#1 modObjectGetListProcessor->process() called at [/....../htdocs/core/model/modx/modprocessor.class.php:177]
#2 modProcessor->run() called at [/....../htdocs/core/model/modx/modx.class.php:1763]
#3 modX->runProcessor(article/getlist, Array ([start] => 0,[limit] => 20,[action] => article/getList,[parent] => 53,[HTTP_MODAUTH] => modx.......), Array ([processors_path] => /....../htdocs/core/components/articles/processors/,[location] => ,[action] => article/getlist)) called at [/......./htdocs/core/model/modx/modconnectorresponse.class.php:144]
#4 modConnectorResponse->outputContent(Array ([processors_path] => /....../htdocs/core/components/articles/processors/,[location] => ,[action] => article/getlist)) called at [/....../htdocs/core/model/modx/modconnectorrequest.class.php:86]
#5 modConnectorRequest->prepareResponse(Array ([processors_path] => /....../htdocs/core/components/articles/processors/,[location] => ,[action] => article/getlist)) called at [/....../htdocs/core/model/modx/modconnectorrequest.class.php:73]
#6 modConnectorRequest->handleRequest(Array ([processors_path] => /....../htdocs/core/components/articles/processors/,[location] => )) called at [/....../htdocs/assets/components/articles/connector.php:42]
При выводе в админку списка новостей дата публикации на стороне сервера формируется с кириллическими символами в неверной кодировке, объект публикации нельзя сериализовать в JSON и передать во фронтэнд админки.
Продолжение в комментарии...