Задать вопрос
@alexalexes

Как изменить формат даты публикации в дополнении Articles?

PHP Version 5.6.13-pl0-gentoo
MODX Revolution 2.7.0-pl
Используется модуль публикации статей Articles 1.7.11-pl
1. Создаю ресурс типа "Статья" под названием "Новости". Добавляю первую новость "тест" без публикации.
5c627cbeca4e7469044212.png
2. Пытаемся опубликовать новость "тест", обновляем страницу содержимого ресурса "Новости".
5c627d09e02de124186747.png
Итог - новость пропадает из списка статей.

Причина этой ошибки и как она воспроизводится:
1. Идем в mySQL в таблицу modx_site_content, видим, что новость на месте:
5c627dcac7d4e954802623.png
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 и передать во фронтэнд админки.
Продолжение в комментарии...
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
DarkRaven
@DarkRaven
разработка программного обеспечения
Рекомендую глянуть в "Расширенные настройки" -> "Общее" -> "Articles URL Format", параметр в самом конце.
Там еще должны быть параметры, точнее сейчас не скажу уже.

UPD. Вам нужно вот это:
5c629b9f527e4358149005.png
Ответ написан
@alexalexes Автор вопроса
Решение оказалось в файле конфига:
\htdocs\core\cache\system_settings\config.cache.php
Находим ключ:
'articles.mgr_date_format' => '%b %d',
Исправляем:
'articles.mgr_date_format' => '%d.%m.%Y',
Результат:
5c62959b09edc273747037.png
PS:
Точнее, этот ключик находится в системных настройках админки, там и нужно исправлять:
5c6296e96d2e8706063709.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы