MODX.Evolution.updateNotify - Обновление Evo в пару кликов


Обновил плагин добавив в него функционал обновления.

Как работает:
Сравнивает текущую версию и версию на GitHub, если появилась новая версия показывает в админке информер. По клику обновить до версии # скачивается свежая версия, из которой удаляются файлы:
/assets/cache/siteManager.php, .htaccess, robots.txt
что б не затереть изменения которые в них могли внести.
И после чего запускается Install (оттуда автоматически удаляются все шаблоны, тв и чанки), так же что б не было сюрпризов.

— так же работает если изменили папку Manager на другую.
p.s. в Планах сделать мультиязычную версию.

Скачать можно тут: extras.evolution-cms.com/packages/core/modxupdatenotifer.html
Или установить через Extras

Думаю после тестирования будет отправлен в плагины по умолчанию.

88 комментариев

avatar
Блин не отображает почему то последние версии на Evo
api.github.com/repos/modxcms/evolution/tags
хотя со modx.evo.custom все ок
api.github.com/repos/dmi3yy/modx.evo.custom/releases
avatar
У меня была 1.2-d8.1.5, установил плагин — все Ок, уведомил о необходимости обновления до 1.2-d8.1.6

Обновляюсь.
avatar
У меня после обновления вот что пишет (всё на локалке, OpenServer):

1) При нажатии «Обновить» в плагине происходит открытие новой вкладки в браузере (Chrome), обновляется, потом на этой новой вкладке сообщение:

C:\OpenServer\domains\newmodx.ru/temp/modx.evo.custom-1.2-d8.1.6/manager
Warning: Cannot modify header information — headers already sent by (output started at C:\OpenServer\domains\newmodx.ru\updatemodx.php:111) in C:\OpenServer\domains\newmodx.ru\updatemodx.php on line 117
2) А на странице Админки (изначальная вкладка) вот что:
« MODX Parse Error »
Execution of a query to the database failed — Table 'new_modx.modx_active_user_sessions' doesn't exist
SQL > REPLACE INTO `new_modx`.`modx_active_user_sessions` (internalKey, lasthit, ip) VALUES (1, 1480394460, '127.0.0.1')
Комментарий отредактирован 2016-11-29 04:54:45 пользователем Harand
avatar
active_user_sessions — такой таблицы нет, нужно в файле document.parser.class.inc.php на строке 2568 изменить на 'active_users'
похоже чуть глубже проблема… нужна таблица active_user_sessions
Комментарий отредактирован 2016-11-29 08:21:47 пользователем 64j
avatar
Нужна таблица и в setup.sql есть ее создание не пойму чего не добавляется.
avatar
при обновлении вручную через site/install/ пишет дубль
ix_tvid_contentid 15-361
ALTER TABLE `modx_site_tmplvar_contentvalues` ADD UNIQUE INDEX `ix_tvid_contentid` (`tmplvarid`,`contentid`)
убрал INDEX, сделал запрос в БД вручную.
Затем обновил через /install/
и только после этого обновилось.
Комментарий отредактирован 2016-11-29 09:09:14 пользователем 64j
avatar
Скоро подробнее поразбираюсь в причинах, может это у меня в настройках MySQL что-либо не так.

Или у вас баг обновления с 1.2-d8.1.5 на 1.2-d8.1.6 тоже повторяется?
avatar
зависит от сервера. Но на части ловлю пытаюсь понять почему
avatar
обновлял с 1.2-d8.1.2 до 1.2-d8.1.6
avatar
Блин надо сервер с теми же симптомами я б потестил ибо на ukraine.com.ua все ок
avatar
У меня локалка OpenServer, PHP 5.5, MySQL 5.5, Apache 2.4 на Win7
avatar
Такое произошло ибо обновили файлы но инстал то не запустился вот и печаль беда. так как не добавились нужные таблицы
при таком варианте нужно руками запустить /install/
avatar
Я уже вчера понял это, запустил install вручную, стало чуть лучше — можно зайти в админку, но тогда новые ошибки.

Чтобы не было эффекта наложения ошибок, поставлю с нуля 7.1.6 и попробую обновиться до свежей.
Комментарий отредактирован 2016-11-30 05:27:38 пользователем Harand
avatar
Сейчас попробую.
avatar
yadi.sk/i/q4Z7lsJCznAeU
Fatal error: Uncaught exception 'RuntimeException' with message 'Directory name must not be empty.' in /home/srv36219/*****.ru/updatemodx.php:61 Stack trace: #0 /home/srv36219/******ru/updatemodx.php(61): RecursiveDirectoryIterator->__construct('') #1 /home/srv36219/*****.ru/updatemodx.php(111): copyFolder('/home/srv36219/...', '/home/srv36219/...') #2 {main} thrown in /home/srv36219/******.ru/updatemodx.php on line 61
Комментарий отредактирован 2016-11-29 18:44:59 пользователем gtx59
avatar
как понял не пашет fopen на серваке не настроено ловил такое на mirohost
еще пока не думал как решить
avatar
yadi.sk/i/KAbANGSvzpwWH
пишет что включен
Комментарий отредактирован 2016-11-30 11:16:21 пользователем gtx59
avatar
похоже вот тут загвоздка take.ms/PVgKb
оно хочет http запрос а у нас же https

openssl помойму модуль php за это отвечает
avatar
avatar
Приветствую! Неплохо бы вообще увидеть весь список php расширений, которые могут потребоваться Evo.
avatar
Неплохо бы вообще увидеть весь список php расширений, которые могут потребоваться Evo.
У меня на nic.ru список всех включенных расширений PHP


Гуру подскажите,…что еще имеет смысл включить(выключить)
Комментарий отредактирован 2016-11-30 13:13:10 пользователем f1fanatic
avatar
я добавил 3 строки в файл
avatar
И помогло? если да то какие добавлю :)
avatar
$erty = new RecursiveDirectoryIterator($path)
$objects = new RecursiveIteratorIterator($erty, RecursiveIteratorIterator::SELF_FIRST);
разделил на 2 строки — ошибка пропала
avatar
правда все равно потом белый экран
avatar
нет, обманул, не помогло, та же ошибка
avatar
Установил с Extras. Вместо главной в админке белая страница.
В логах апача следующее:
PHP Deprecated:  Methods with the same name as their class will not be constructors in a future version of PHP; SqlParser has a deprecated constructor in /var/www/sa/assets/modules/store/installer/sqlParser.class.php on line 5, referer: http://sa.ru/manager/index.php?a=112&id=2
— это ладно.
PHP Fatal error:  Uncaught Error: Call to undefined function curl_init() in /var/www/sa/assets/plugins/modxupdater/plugin.modxupdater.php:9\nStack trace:\n#0 /var/www/sa/manager/includes/document.parser.class.inc.php(1088) : eval()'d code(1): require()\n#1 /var/www/sa/manager/includes/document.parser.class.inc.php(1088): eval()\n#2 /var/www/sa/manager/includes/document.parser.class.inc.php(3798): DocumentParser->evalPlugin('require MODX_BA...', Array)\n#3 /var/www/sa/manager/actions/welcome.static.php(185): DocumentParser->invokeEvent('OnManagerWelcom...')\n#4 /var/www/sa/manager/index.php(281): include_once('/var/www/sa/man...')\n#5 {main}\n  thrown in /var/www/sa/assets/plugins/modxupdater/plugin.modxupdater.php on line 9, referer: http://sa.ru/manager/

ModX Evo версии 1.1, PHP 7
avatar
curl отключен на сервере
avatar
Да это понятно — я сразу включил, благо на локалке балуюсь. Просто неплохо бы вывести сообщение о том что надо бы включить.

P.S.
Обновился — версия показывается 1.2RC1 Однако плагин продолжает «отсвечивать» и рекомендовать обновиться.
В остальном же вроде все работает. Потираню — что найду отпишусь.
Комментарий отредактирован 2016-11-29 19:37:17 пользователем xakepShilo
avatar
А что это за версия 1.2RC1? Обновила до 1.2-d8.1.8 с сайта (вроде свежак самый), показывает, что надо ещё обновиться до 1.2RC1. При обновлении почему-то вылезла куча неустановленных сниппетов-плагинов, типа Personalize — так задумано, или что-то от старых версий прописалось?
avatar
Это оф. релиз и сборка от Дмитрия — тыц.
avatar
Там 2 плагина разных :) 1 под офф версию другой под мою сборку
в офф версии само собой больше плагинов сниппетов вот вы их и подтянули
avatar
Точно, второй тут extras.evolution-cms.com/ru/packages/core/modxupdatenotifer.html, и в Extras два. Но почему-то у меня упорно пишут про обновление до RC2 :)
Комментарий отредактирован 2016-12-01 16:06:53 пользователем Jassie
avatar
Здравствуйте!
Объясните, пожалуйста, как пользоваться эти плагином, как его запустить (сейчас версия 1.0.15) Только сильно не пинайте, у меня на Evo только один сайт, про который вспомнил после недавнего взлома, сейчас его реанимирую.
avatar
зайти в Модуль екстрас и там его найти и нажать установить
avatar
Я уже установил его. Как с ним работать. А то я уже обновляю сайт вторые сутки (http://modx.im//blog/questions/4854.html)
avatar
Скиньте в личку доступ FTP и доступ в админку
подскажу что не так будет быстрее
avatar
1. При установке через плагин получаем ошибку header already send
значит надо перейти руками site/install/

далее у вас все будет работать.

на фронте error говорит что надо зайти в админку и тогда ошибку будет видно.

У вас там стоит старая easy2 которую никто не переписывал под MODX DB API соответственно там прямые запросы mysql а modx работает уже по умолчанию с mysqli

соответствено идем в manager/include/config.inc.php и меняем
тип подключения на mysql и все работает
avatar
Огромное спасибо!
avatar
Давно, конечно, нужно перейти с easy2 на SimpleGallery, но пока после обновления выдаёт ошибку.
В модуле:
Error : Invalid argument supplied for foreach()

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /home/...manager/processors/execute_module.processor.php(73) : eval()'d code on line 1502

Warning: Invalid argument supplied for foreach() in /home/...manager/processors/execute_module.processor.php(73) : eval()'d code on line 63

На странице вызова сниппета галереи:
Error : mysql_fetch_row() expects parameter 1 to be resource, boolean given
avatar
Все логично MODX с версии 1.1 работает по умолчанию на mysqli и все mysql вызывают ошибки

в config.inc.php поставьте mysql и будет работать )
avatar
И ведь прочитал об этом выше. Вносил исправления — не помогало. Сегодня сразу заработало. Видно, сказалась ночная смена.
Спасибо!
avatar
наконец-то смог обновиться без каких-либо танцев, всё заработало
avatar
Значится так… Я выше говорил, что после отработки плагина версия обновляется, но предложение обновиться все равно отсвечивает.
Наконец-то время появилось, ну и посмотрел что и откуда берется.
Получилось, что в файле «version.inc.php» прописана версия как «1.2», а с нета берется как «v1.2» — вот в результате (из-за лишней буковки) плагин и предлагает установить то, что уже обновлено.
Так что или там или там надо поправить и все будет замечательно.

Ну и пользуясь случаем… Дима, спасибо за твою работу!
avatar
Ага спасибо поставлю проверку на v
на гите просто в Офф репозитории зачем то с v начали :(
avatar
вернее там было с v в тегах изначально надо теперь проверку дописать :)
avatar
1.2 кажет вот такое


Ну и при запуске обновления из админки все нагнулось медным тазом, вспомнил, что надо пройтись в /install
avatar
в понедельник или вторник исправлю :)
1 сделалю вопервых 1 плагин вместо двух)
и поправлю этот нюанс там не совсем верное сравнение версий )
avatar
а можно ли этим плагином откатить сборку Дмитрия к оригинальной (официальной) версии modx'а? Чтобы прям как с коробки был движок только со всеми ресурсами, плагинами, сниппетами и т.д.?
avatar
Заметил один нюанс, не знаю, насколько он актуален — сейчас предлагает обновить версию на самую-самую последнюю, но ведь стабильный релиз ведь версией меньше. Может все-таки показывать обновление только для стабильных версий?
avatar
1.1b-d7.0.16, beget.com с php 5.6 (обновил с 5.2 перед установкой плагина) и MySQL: 5.7.14. Установил MODX.EVO.Custom.updateNotify через Extras, кликнул обновить до 1.2-d9.0.0. Получил
<code>« MODX Parse Error »
Execution of a query to the database failed - Table 'romkon_trak.modx_active_user_sessions' doesn't exist
SQL > REPLACE INTO `romkon_trak`.`modx_active_user_sessions` (internalKey, lasthit, ip) VALUES (1, 1481543335, '46.44.48.xxx')

Basic info
REQUEST_URI 	http://site.ru/wp-admin/index.php?a=2
Referer 	http://site.ru/wp-admin/index.php?a=1&f=menu
User Agent 	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
IP 	46.44.48.xxx
Current time 	2016-12-12 14:48:55

Benchmarks 	
MySQL 	0.0014 s (1 Requests)
PHP 	0.0044 s
Total 	0.0057 s
Memory 	1.27810668945 mb


Backtrace
include_once(string $var1)
wp-admin/index.php on line 188
DocumentParser->updateValidatedUserSession()
wp-admin/includes/accesscontrol.inc.php on line 171
DBAPI->query(string $var1)
wp-admin/includes/document.parser.class.inc.php on line 2588</code>
Установил всё через /install/. Теперь вижу
[[if? &is=`3:=:3` &then=` ` &else=` `]]
прямо в браузере (и весь inline css в коде, соответственно). У меня в head есть вывод файлов css по условию:
[[if? &is=`[*template*]:=:3` &then=`
inline css
`
&else=`
inline css
`]]
Не пойму, в чем дело. Вызов if до и после этого вызова отрабатывают нормально.
Комментарий отредактирован 2016-12-12 12:26:58 пользователем Wooof
avatar
В общем, баг из-за содержащихся в then и else кусках кода
<script id="loadcss">
(function(u,s){!function(e){"use strict";var n=function(n,t,o){var l,r=e.document,i=r.createElement("link");if(t)l=t;else{var a=(r.body||r.getElementsByTagName("head")[0]).childNodes;l=a[a.length-1]}var d=r.styleSheets;i.rel="stylesheet",i.href=n,i.media="only x",l.parentNode.insertBefore(i,t?l:l.nextSibling);var f=function(e){for(var n=i.href,t=d.length;t--;)if(d[t].href===n)return e();setTimeout(function(){f(e)})};return i.onloadcssdefined=f,f(function(){i.media=o||"all"}),i};"undefined"!=typeof module?module.exports=n:e.loadCSS=n}("undefined"!=typeof global?global:this);for(var i in u){loadCSS(u[i],s);}}(['wp-content/themes/theme1798/built2.min.css'],document.getElementById("loadcss")));
</script>
avatar
О, это я — в танке, и синтаксис изменился? Там наверху темка про 1.2 висит, и я попробовал вывести так
<code><@IF:[*id:is('[(site_start)]')*]>
Top page
<@ELSE>
Sub page
<@ENDIF></code>
Всё работает… Это теперь по всем сайтам, переведенным на 1.2 заменять синтаксис что ли?
Комментарий отредактирован 2016-12-12 13:09:57 пользователем Wooof
avatar
Да нет. Этот супер-IF :) из ядра, а тот-то просто сниппет. У сниппета синтакис не изменился, естественно. Должен по идее продолжать работать и старый if, и новый гипер-IF, только я сам не пробовал.

P.S. А зачем wp-admin? чтобы злодеев запутать? ))
avatar
Ну вот сниппет с таким контентом почему-то стал глючить. Странно это как-то. Какая разница, что там между `` (символа "`" нет). Версия 1.3 в этой сборке — свежее, чем та, что до обновления была
По wp-admin — да шифруюсь, и сайт когда-то на WP был.))
avatar
Там со снипетом баг был из за новой функции
СейфЕвал.

После выхода 1.2 нашли немного багов. Скоро будет 1.2.1 с фиксами
avatar
захотел попробовать модуль
в начале ругнулся на curl — обеспечил — заработало
сейчас при нажатие на обновить идет ругань

Warning: unlink(/hosting/users/h3018960/www/ob2.ru/temp/evolution-1.2/.htaccess) [function.unlink]: No such file or directory in /hosting/users/h3018960/www/ob2.ru/updatemodx.php on line 97

Warning: unlink(/hosting/users/h3018960/www/ob2.ru/temp/evolution-1.2/robots.txt) [function.unlink]: No such file or directory in /hosting/users/h3018960/www/ob2.ru/updatemodx.php on line 99
/hosting/users/h3018960/www/ob2.ru/temp/evolution-1.2/manager
Warning: Cannot modify header information - headers already sent by (output started at /hosting/users/h3018960/www/ob2.ru/updatemodx.php:97) in /hosting/users/h3018960/www/ob2.ru/updatemodx.php on line 117

запускаю ручками install, чего-то устанавливается, НО затем в админке опять предлагает обновить 1.2 и если повторить все по схеме, то же самое :(
avatar
не дает создать файлик в корне.
По части повторно показывает версию 1.2 вкурсе скоро будет обновление плагина там исправлю это
avatar
не дает создать файлик в корне.
сам могу подправить?
avatar
А не там все ок проблема в этом:

Warning: Cannot modify header information - headers already sent 


из за того что 2 раз редирект автоматом на php. поправлю
avatar
Обновил официальную 1.0.15 до 1.2 и поставил updatenotify plugin.

avatar
Писал уже 3 раза :) в след версии плагина будет все ок :)
avatar
Coри, прощелкал..:)
avatar
уже должно быть все ок :)
avatar
В продолжение этой темы создал новую:
modx.im/blog/develop/4900.html
avatar
MODx 1.2-d.9.0.3.
После установки из Extras MODX.EVO.Custom.updateNotify версия 0.3 в админке Сайт -> Главная — пусто, пропадает все, кроме дерева кататолга
avatar
Обновите ссылку в тексте новости:
extras.evolution-cms.com/packages/core/modxupdatenotifer.html — а то ссылка видимо старая осталась.

У меня стоит версия 1.2-d8.1.8 — обновлений не предлагает!
avatar
Страно должен + там если то кешируется на сутки
avatar
а кроме главной можно где-то посмотреть на версии которые можно установить?
И какая сейчас самая последняя?
А то судя по сайту: modx.com.ua/download/ — у меня как раз последняя и стоит!
avatar
github.com/dmi3yy/modx.evo.custom/tags

Жду 1 коммит и закрытие ошибки после чего будет новый релиз
ДУмаю до понедельника будет
avatar
Возможно тогда Evolution.updateNotify и сообщит о новой версии!
avatar
Помогите, через Экстрас установил Нотифайнер, версия 1.0.15, уведомлений не вижу нигде. Что проверить?
avatar
MODX.Evolution.updateNotify 0.4 перестал работать на версиях 1.1 и ниже, скорее всего это связано с изменением интерфейса админки.
Варианта скачать MODX.Evolution.updateNotify 0.2/0.3 в extras нет.
avatar
Работает без проблем и на старых.
там просто кеш залипает. Как вариант вместо 24 часа поставить 0.001
после панелька появиться )
avatar
ок, а то что-то никак не могу дождаться уведомления
avatar
итак прошли сутки, но уведомление так и не появилось, 0.001 тоже ставил, может все-таки не работает? версия 1.1-d7.0.18, могу доступы дать
avatar
Кидай в личку или почту гляну
avatar
кинул в личку.
это только один из сайтов, не срабатывает на всех которые 1.1
avatar
в версии 1.1-d7.0.18 (и возможно в других) есть баг при установке плагина MODX.updatenotify 0.4 — не передаются параметры плагина и уведомление о появлении новой версии не выводится, для решения этой проблемы нужно временно прописать параметры вручную в начале кода плагина:
$version='auto';
$type='tags';
$showButton='show';
$cache_lifetime='0.1';
после обновления удалить или закомментировать.
Спасибо Dmi3yy за помощь.
avatar
на релизе 1.1. помогло
Спасибо Вам.
Правда обновляться пришлось все равно через /install
Комментарий отредактирован 2017-01-20 10:42:23 пользователем vworld
avatar
С утра обновился через MODX.Evolution.updateNotify 0.4 до последней версии 1.2.1-d9.1.0 — полет нормальный…
avatar
попробовал с утра обновиться

Warning: fopen(https://github.com/dmi3yy/modx.evo.custom/archive/1.2.1.zip) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /hosting/users/h3018955/www/site/updatemodx.php on line 6

Warning: ZipArchive::extractTo() [ziparchive.extractto]: Invalid or unitialized Zip object in /hosting/users/h3018955/www/site/updatemodx.php on line 83

Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object in /hosting/users/h3018955/www/site/updatemodx.php on line 84

Warning: unlink(/hosting/users/h3018955/www/site/temp//.htaccess) [function.unlink]: No such file or directory in /hosting/users/h3018955/www/site/updatemodx.php on line 97

Warning: unlink(/hosting/users/h3018955/www/site/temp//ht.access) [function.unlink]: No such file or directory in /hosting/users/h3018955/www/site/updatemodx.php on line 98

Warning: unlink(/hosting/users/h3018955/www/site/temp//robots.txt) [function.unlink]: No such file or directory in /hosting/users/h3018955/www/site/updatemodx.php on line 99

Warning: unlink(/hosting/users/h3018955/www/site/temp//assets/cache/siteManager.php) [function.unlink]: No such file or directory in /hosting/users/h3018955/www/site/updatemodx.php on line 103
/hosting/users/h3018955/www/site/temp//manager
Warning: unlink(/hosting/users/h3018955/www/site/modx.zip) [function.unlink]: No such file or directory in /hosting/users/h3018955/www/site/updatemodx.php on line 115

Warning: Cannot modify header information — headers already sent by (output started at /hosting/users/h3018955/www/site/updatemodx.php:6) in /hosting/users/h3018955/www/site/updatemodx.php on line 117

имхо — хостинг не нравится?
avatar
обновил плагин через extras, теперь такая ошибка
Warning: unlink(/hosting/users/h3018955/www/site/temp/evolution-1.2.1/.htaccess) [function.unlink]: No such file or directory in /hosting/users/h3018955/www/site/updatemodx.php on line 103

Warning: unlink(/hosting/users/h3018955/www/site/temp/evolution-1.2.1/robots.txt) [function.unlink]: No such file or directory in /hosting/users/h3018955/www/site/updatemodx.php on line 105
/hosting/users/h3018955/www/site/temp/evolution-1.2.1/manager
Warning: Cannot modify header information — headers already sent by (output started at /hosting/users/h3018955/www/site/updatemodx.php:103) in /hosting/users/h3018955/www/site/updatemodx.php on line 123
avatar
попробуйте после того, как отработал плагин обновления, перейти в браузере по адресу ваш_домен.ru/install

P.S. Хотя, судя по варнингам, не поможет.
Комментарий отредактирован 2017-01-18 19:18:42 пользователем Harand
avatar
Возникла следующая ситуация: в целях безопасности на сервере в корень сайта можно писать только от суперпользователя, а скрипт пытается создать файл updatemodx.php и соответственно у него это не выходит, что приводит к ошибке. Как лучше поступить?
  • EGO
  • 0
avatar
В общем, сделал временный доступ на запись и обновился :)
Однако при обновлении почему-то один из моих сниппетов перезаписался сниппетом DocInfo. Откатился, снял обновление DocInfo — обновил ещё раз, но результат тот же — сниппет перезаписан. В общем, чудеса :)
avatar
Это потому что когда переименовываешь сниппет нужно отвязывать его от файла )
а так как он был привязан к файлу то файлик перезаписался и все
avatar
Как раз сейчас писал: Сниппет похоже создавал через копирование, вот он и привязанный файл DocInfo мне вместо кода сделал. В общем, будьте внимательнее, товарищи!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.