diff --git a/README.md b/README.md
index 2e684ee4b3..88d1036b7d 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
-# MODX Evolution
+# Evolution CMS
-**What is MODX**
+**What is EVO**
-MODX is an open source Content Management System and Application Framework. Initially inspired by Etomite 0.6, MODX is an ongoing project written by Raymond Irving and a core team of contributors at the MODX Project. MODX is distributed under the GPL license and is now run by a professional team of developers from all over the world. Visit the Forums for more information.
+EVO is an open source Content Management System and Application Framework. Initially inspired by Etomite 0.6, then it been MODX Evolution 0.7 - 1.0.8 is an ongoing project written by Raymond Irving and a core team of contributors MODX, and now its Evolution CMS maintained by Dmytro Lukianenko and a core team of contributors at the EVO Project. EVO is distributed under the GPL license and is now run by a professional team of developers from all over the world. Visit the Forums for more information.
-MODX provides a fast, lightweight and powerful framework on which to deploy and secure your website and web applications. For example, it gives you a true system for registered web users and groups that is separate from administration users. You can grant some web users access to one page and others access to another page. For content management, you can easily duplicate documents, folders (and all their children!), chunks and snippets. Most significant, though, is MODX's ability to empower you to quickly and easily create and maintain a rich and dynamic website like never before.
+EVO provides a fast, lightweight and powerful framework on which to deploy and secure your website and web applications. For example, it gives you a true system for registered web users and groups that is separate from administration users. You can grant some web users access to one page and others access to another page. For content management, you can easily duplicate documents, folders (and all their children!), chunks and snippets. Most significant, though, is EVO's ability to empower you to quickly and easily create and maintain a rich and dynamic website like never before.
-MODX Evolution requires **PHP version 5.3 and higher**.
+Evolution CMS requires **PHP version 5.4 and higher**.
### Screenshots
@@ -19,16 +19,16 @@ MODX Evolution requires **PHP version 5.3 and higher**.
### References
Official Website:
-https://modx.com/community/modx-evolution
+https://evo.im/
Download:
-https://modx.com/download/evolution/
+https://github.com/evolution-cms/evolution/releases
Previous Releases:
https://modx.com/download/evolution/previous-releases.html
Extras:
-https://modx.com/extras/?product=evolution
+https://extras.evolution-cms.com
Documentation:
-https://docs.modx.com/evolution/1.0
\ No newline at end of file
+https://evolution-docs.com
\ No newline at end of file
diff --git a/assets/cache/updater/.htaccess b/assets/cache/updater/.htaccess
new file mode 100644
index 0000000000..83c6d382fb
--- /dev/null
+++ b/assets/cache/updater/.htaccess
@@ -0,0 +1,2 @@
+order deny,allow
+allow from all
diff --git a/assets/cache/updater/ht.access b/assets/cache/updater/ht.access
new file mode 100644
index 0000000000..8f91d28b69
--- /dev/null
+++ b/assets/cache/updater/ht.access
@@ -0,0 +1,2 @@
+order deny,allow
+allow from all
\ No newline at end of file
diff --git a/manager/media/style/MODxRE2_DropdownMenu/frames/index.html b/assets/cache/updater/index.html
similarity index 100%
rename from manager/media/style/MODxRE2_DropdownMenu/frames/index.html
rename to assets/cache/updater/index.html
diff --git a/assets/docs/changelog.txt b/assets/docs/changelog.txt
index 5d2c85d33e..68242bcf83 100644
--- a/assets/docs/changelog.txt
+++ b/assets/docs/changelog.txt
@@ -1,6 +1,44 @@
This file shows the changes in recent releases of MODX. The most current release is usually the
development release, and is only shown to give an idea of what's currently in the pipeline.
+Evolution CMS 1.3.0(Jul 10, 2017)
+* [GitHub:#3dda520a] - [R] update sortables list delete mootools sortables (64j)
+* [GitHub:#9cafe6db] - [F] fix toggle menu (64j)
+* [GitHub:#6c316c18] - [I] Update DocLister add DLmenu (dmi3yy)
+* [GitHub:#fd23c498] - [I] Update FormLister to 1.7.3 (dmi3yy)
+* [GitHub:#30a552fd] - [F] fix autoloader paths (Pathologic)
+* [GitHub:#21ec58cf] - [F] fix show icon dragndrop (Serg)
+* [GitHub:#56f57ec1] - [F] fix for OnManagerNodePrerender (dmi3yy)
+* [GitHub:#aa04955b] - [F] fix issues #60 (Serg)
+* [GitHub:#14503447] - [F] fix issues #62 (Serg)
+* [GitHub:#c316e0d7] - [F] update tv rank (64j)
+* [GitHub:#534deada] - [F] fix width logo in IE (64j)
+* [GitHub:#0c3f8780] - [R] update plugins priority (64j)
+* [GitHub:#aee4c3ed] - [R] format code style logs (64j)
+* [GitHub:#8777bbf3] - [F] fix file managment (64j)
+* [GitHub:#eaaaf777] - [R] upd actions buttons managment files (64j)
+* [GitHub:#16cbb4f1] - [F] fix showChildren in tree (64j)
+* [GitHub:#9258c4be] - [R] update actionbuttons (64j)
+* [GitHub:#92f954fa] - [F] fixed issues #15 (64j)
+* [GitHub:#328ad309] - [F] fix #12 (dmi3yy)
+* [GitHub:#2bcc9874] - [F] change home ico from modx to home ) (dmi3yy)
+* [GitHub:#626b416f] - [F] fix bkmanager header error (dmi3yy)
+* [GitHub:#c43f140e] - [F] fix #9 (dmi3yy)
+* [GitHub:#9da575f7] - [F] add favicon (64j)
+* [GitHub:#2ff3f724] - [R] update loader (64j)
+* [GitHub:#8df7c747] - [F] for update from older version (from security-fix) (dmi3yy)
+* [GitHub:#f17a35ab] - [R] ajaxSearch 1.11.0 no use index-ajax.php for ajax (dmi3yy)
+* [GitHub:#78e656e6] - [I] add updater plugin in core (dmi3yy)
+* [GitHub:#8bbe38ae] - [F] Error : Undefined property (Serg)
+* [GitHub:#ca775306] - [R] min php version set to 5.4 (dmi3yy)
+* [GitHub:#95ea0349] - [F] update lang (dmi3yy)
+* [GitHub:#e6224f43] - [С] rename modx to EVO (dmi3yy)
+* [GitHub:#9e319a67] - [F] fix file path (dmi3yy)
+* [GitHub:#524052e3] - [С] move new file from theme to core (dmi3yy)
+* [GitHub:#1af46a1c] - [С] change logos, delete old theme, rename new theme to default (dmi3yy)
+* [GitHub:#14d2a8f2] - [F] fix mysql_info (dmi3yy)
+
+
MODX Evolution 1.2.2(Jul 10, 2017)
* [GitHub:#99d1b62cd] - [F] fix properties for instal snippet,modules,plugins (dmi3yy)
* [GitHub:#e18d5d373] - [F] mm multiplefields for php 7 (dmi3yy)
diff --git a/assets/images/modx-logo.png b/assets/images/modx-logo.png
index 5f91dced7a..fede6fc5aa 100644
Binary files a/assets/images/modx-logo.png and b/assets/images/modx-logo.png differ
diff --git a/assets/modules/docmanager/templates/main.tpl b/assets/modules/docmanager/templates/main.tpl
index 637fc0b3b9..5354c52dfe 100644
--- a/assets/modules/docmanager/templates/main.tpl
+++ b/assets/modules/docmanager/templates/main.tpl
@@ -3,7 +3,6 @@
');
+ if ((isset($data['template']) && !$data['template']) || (isset($data['link_attributes']) && strpos($data['link_attributes'],
+ 'category') !== false)
+ ) {
+ $tpl = $this->getCFGDef('categoryFolderTpl', $tpl);
+ } elseif ($data['here']) {
+ $tpl = $this->getCFGDef('parentRowHereTpl', $tpl);
+ } elseif ($data['active']) {
+ $tpl = $this->getCFGDef('parentRowActiveTpl', $tpl);
+ }
+ } elseif ($data['level'] > 1) {
+ $tpl = $this->getCFGDef('innerRowTpl', $tpl);
+ if ($data['here']) {
+ $tpl = $this->getCFGDef('innerRowHereTpl', $tpl);
+ }
+ } else {
+ if ($data['here']) {
+ $tpl = $this->getCFGDef('rowHereTpl', $tpl);
+ }
+ }
+
+ return $tpl;
+ }
+
+ /**
+ * @param array $data
+ * @param mixed $fields
+ * @param array $array
+ * @return string
+ */
+ public function getJSON($data, $fields, $array = array())
+ {
+ $currentLevel = &$this->currentLevel;
+ $currentLevel = count($this->levels);
+ $docs = $this->levels;
+ /** @var prepare_DL_Extender_ $extPrepare */
+ $extPrepare = $this->getExtender('prepare');
+
+ while ($currentLevel > 0) {
+ foreach ($docs[$currentLevel] as $id => &$data) {
+ if ($out = $this->prepareData($data)) {
+ if (is_array($out)) {
+ $data = $out;
+ }
+ };
+
+ if (isset($data['here']) || isset($data['active'])) {
+ $docs[$currentLevel - 1][$data[$this->parentField]]['active'] = 1;
+ }
+
+ if ($extPrepare) {
+ $data = $extPrepare->init($this, array(
+ 'data' => $data,
+ 'nameParam' => 'prepare'
+ ));
+ if (is_bool($data) && $data === false) {
+ continue;
+ }
+ }
+
+ $hideSubMenus = $this->getCFGDef('hideSubMenus', 0);
+ $hideSubMenus = !$hideSubMenus || ($hideSubMenus && in_array((int)$data[$this->parentField],
+ $this->activeBranch));
+ if ($hideSubMenus) {
+ $docs[$currentLevel - 1][$data[$this->parentField]]['children'][] = $data;
+ }
+ }
+ unset($docs[$currentLevel]);
+ $currentLevel--;
+ }
+ unset($data);
+
+ $out = $docs[0][0]['children'];
+ unset($docs);
+
+ return json_encode($out, JSON_UNESCAPED_UNICODE);
+ }
+
+ /**
+ * Получение информации из конфига с учетом уровня меню
+ *
+ * @param string $name имя параметра в конфиге
+ * @param mixed $def значение по умолчанию, если в конфиге нет искомого параметра
+ * @return mixed значение из конфига
+ */
+ public function getCFGDef($name, $def = null)
+ {
+ return parent::getCFGDef($name . $this->currentLevel, parent::getCFGDef($name, $def));
+ }
+}
diff --git a/assets/snippets/DocLister/snippet.DLMenu.php b/assets/snippets/DocLister/snippet.DLMenu.php
new file mode 100644
index 0000000000..44ce0417a1
--- /dev/null
+++ b/assets/snippets/DocLister/snippet.DLMenu.php
@@ -0,0 +1,8 @@
+runSnippet('DocLister',$params);
+
diff --git a/assets/snippets/FormLister/core/FormLister.abstract.php b/assets/snippets/FormLister/core/FormLister.abstract.php
index 01ef022b74..96d7c872ff 100644
--- a/assets/snippets/FormLister/core/FormLister.abstract.php
+++ b/assets/snippets/FormLister/core/FormLister.abstract.php
@@ -993,7 +993,10 @@ public function redirect($param = 'redirectTo', $_query = array())
if ($redirect = $this->getCFGDef($param, 0)) {
$redirect = $this->config->loadArray($redirect);
$query = $header = '';
- if (isset($redirect[0])) {
+ if (is_numeric($redirect)) {
+ $page = $redirect;
+ $query = http_build_query($_query);
+ } elseif (isset($redirect[0])) {
$page = $redirect[0];
$query = http_build_query($_query);
} else {
@@ -1003,7 +1006,7 @@ public function redirect($param = 'redirectTo', $_query = array())
if (isset($redirect['header'])) {
$header = $redirect['header'];
}
- $page = isset($redirect['page']) ? $redirect['page'] : 0;
+ $page = isset($redirect['page']) ? $redirect['page'] : $this->modx->config['site_start'];
}
if (is_numeric($page)) {
$redirect = $this->modx->makeUrl($page, '', $query, 'full');
diff --git a/assets/snippets/FormLister/docs/history.md b/assets/snippets/FormLister/docs/history.md
index 76eb972dfc..c2b10f7a60 100644
--- a/assets/snippets/FormLister/docs/history.md
+++ b/assets/snippets/FormLister/docs/history.md
@@ -1,4 +1,8 @@
## History
+### 1.7.3
+* [Refactor] Подключать __autoload.php, если не задан другой загрузчик.
+* [Fix] Ошибка в обработке параметра редиректа (Core).
+
### 1.7.2
* [Enhancement] Параметр &context в контроллере Login для поддержки модели modManagers (Login).
* [Fix] Ошибка в обработке параметра редиректа (Core).
diff --git "a/assets/snippets/FormLister/docs/ru/040_\320\222\321\213\320\262\320\276\320\264 \320\264\320\260\320\275\320\275\321\213\321\205.md" "b/assets/snippets/FormLister/docs/ru/040_\320\222\321\213\320\262\320\276\320\264 \320\264\320\260\320\275\320\275\321\213\321\205.md"
index f34644afbf..8dc1af8cf9 100644
--- "a/assets/snippets/FormLister/docs/ru/040_\320\222\321\213\320\262\320\276\320\264 \320\264\320\260\320\275\320\275\321\213\321\205.md"
+++ "b/assets/snippets/FormLister/docs/ru/040_\320\222\321\213\320\262\320\276\320\264 \320\264\320\260\320\275\320\275\321\213\321\205.md"
@@ -32,6 +32,8 @@
Вывод сообщений обработчика:
[+form.messages+]
+В плейсхолдер [+form.messages+] могут выводиться три типа сообщений: нарушения правила required, нарушения остальных правил, произвольные сообщения, которые задаются методом addMessage. По умолчанию выводятся только последние, см. описание параметра messagesTpl.
+
Вывод значений из лексиконов:
[%ключ лексикона%]
diff --git "a/assets/snippets/FormLister/docs/ru/060_\320\220\320\262\321\202\320\276\321\200\320\270\320\267\320\260\321\206\320\270\321\217 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.md" "b/assets/snippets/FormLister/docs/ru/060_\320\220\320\262\321\202\320\276\321\200\320\270\320\267\320\260\321\206\320\270\321\217 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.md"
new file mode 100644
index 0000000000..841e652207
--- /dev/null
+++ "b/assets/snippets/FormLister/docs/ru/060_\320\220\320\262\321\202\320\276\321\200\320\270\320\267\320\260\321\206\320\270\321\217 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.md"
@@ -0,0 +1,117 @@
+## Авторизация пользователей
+
+Контроллер Login позволяет авторизировать пользователей как по имени, так и по email. Кроме этого, можно дополнительно использовать плагин userHelper, который ведет учет количества логинов и времени последнего логина, а также реализует автологин и выход из учетной записи.
+
+## Параметры контроллера
+
+### model
+Класс для работы с пользователями.
+
+Возможные значения - имя класса.
+
+Значение по умолчанию - \modUsers
+
+### modelPath
+Путь к файлу класса для работы с пользователями.
+
+Возможные значения - относительный путь к файлу.
+
+Значение по умолчанию - assets/lib/MODxAPI/modUsers.php
+
+### loginField
+Поле, содержащее имя пользователя.
+
+Возможные значения - имя поля.
+
+Значение по умолчанию - username.
+
+### passwordField
+Поле, содержащее пароль пользователя.
+
+Возможные значения - имя поля.
+
+Значение по умолчанию - password.
+
+### rememberField
+Поле для запоминания пользователя. Если значение поля приводится к true, то при успешной авторизации будет установлена кука с параметрами автологина. Имя куки и ее время жизни задаются параметрами cookieName и cookieLifetime.
+
+Можно также задать поле rememberme в параметре defaults, чтобы запоминание происходило без участия пользователя:
+```
+&defaults=`{"rememberme":1}`
+```
+
+Возможные значения - имя поля.
+
+Значение по умолчанию - rememberme.
+
+### checkActivation
+Включает проверку активации учетной записи пользователя (см. "Активация учетных записей").
+
+Возможные значения - 0 или 1.
+
+Значение по умолчанию - 1.
+
+### context
+Контекст авторизации.
+
+Возможные значения - mgr или web.
+
+Значение по умолчанию - web.
+
+### cookieName
+Имя куки для хранения параметров автологина.
+
+Значение по умолчанию - WebLoginPE.
+
+### cookieLifetime
+Время жизни вышеуказанной куки.
+
+Возможные значения - число секунд с момента последнего логина.
+
+Значение по умолчанию - 157680000 (5 лет).
+
+### redirectTo
+Перенаправляет пользователя на страницу c указанным id после авторизации.
+
+Возможные значения - id целевой страницы или массив.
+
+Значение по умолчанию - пусто.
+
+### exitTo
+Перенаправляет уже авторизованного пользователя на указанную страницу.
+
+Возможные значения - id целевой страницы или массив.
+
+Значение по умолчанию - пусто.
+
+### successTpl
+Шаблон сообщения об успешной авторизации. В шаблоне можно использовать данные пользователя.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Login с ключом [+login.default_successTpl+]
+
+### skipTpl
+Шаблон сообщения о том, что пользователь уже авторизован.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Login с ключом [+login.default_skipTpl+]
+
+## Параметры плагина userHelper
+### logoutKey
+Имя GET-параметра для запуска выхода из учетной записи. Если в ссылке на страницу сайта указан параметр с соответствующим именем (например, http://sitename.ru/page.html?logout), будет произведен выход из учетной записи.
+
+Значение по умолчанию - logout.
+
+### cookieName
+Имя куки для хранения параметров автологина.
+
+Значение по умолчанию - WebLoginPE.
+
+### cookieLifetime
+Время жизни вышеуказанной куки.
+
+Возможные значения - число секунд с момента последнего логина.
+
+Значение по умолчанию - 157680000 (5 лет).
diff --git "a/assets/snippets/FormLister/docs/ru/070_\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.md" "b/assets/snippets/FormLister/docs/ru/070_\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.md"
new file mode 100644
index 0000000000..58843c8e7a
--- /dev/null
+++ "b/assets/snippets/FormLister/docs/ru/070_\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.md"
@@ -0,0 +1,137 @@
+## Регистрация пользователей
+
+Контроллер Register позволяет регистрировать пользователей в заданные группы и отправлять уведомления о регистрации. Контроллер является расширением контроллера Form, соответственно можно использовать соответствующие параметры для отправки писем при регистрации.
+
+Имена полей в форме должны соответствовать полям модели [modUsers](http://docs.evolution-cms.com/Extras/Snippets/DocLister/MODxAPI).
+
+Если в форме не задано поле username, то ему присваивается значение поля email. Таким образом можно регистрировать пользователей только по email.
+
+Если в форме не задано поле password, то значение поля генерируется автоматически. То есть регистрацию пользователя можно свести к указанию email.
+
+При регистрации с паролем, в форме может присутствовать поле repeatPassword. Если заданы правила валидации для полей password и repeatPassword, то при наличии для поля repeatPassword правила equals, оно будет автоматически скорректировано для проверки равенства значений полей password и repeatPassword:
+```
+"repeatPassword":{
+ "required":"Введите пароль еще раз",
+ "equals":{
+ "params" : "Этот ключ в описании правила можно не задавать, он будет сформирован контроллером автоматически",
+ "message":"Пароли не совпадают"
+ }
+}
+```
+
+При регистрации следует проверять уникальность имени пользователя и email. В контроллере предусмотрены соответствующие правила:
+```
+&rules=`{
+ "username":{
+ "required":"Введите имя пользователя",
+ "alphaNumeric":"Только буквы и цифры",
+ "custom":{
+ "function":"\\FormLister\\Register::uniqueUsername",
+ "message":"Имя уже занято"
+ }
+ },
+ "email":{
+ "required":"Введите email",
+ "email":"Неверный email",
+ "custom":{
+ "function":"\\FormLister\\Register::uniqueEmail",
+ "message":"Этот email уже использует другой пользователь"
+ }
+ }
+}`
+```
+В шаблонах доступны все поля модели для созданной записи. Дополнительно задается поле user.password с незашифрованным паролем.
+
+## Параметры
+### model
+Класс для работы с пользователями.
+
+Возможные значения - имя класса.
+
+Значение по умолчанию - \modUsers
+
+### modelPath
+Путь к файлу класса для работы с пользователями.
+
+Возможные значения - относительный путь к файлу.
+
+Значение по умолчанию - assets/lib/MODxAPI/modUsers.php
+
+### allowedFields
+Разрешенные для обработки поля. Поля, не указанные в списке, игнорируются. Поля username, email и password всегда разрешены.
+
+Если не задано, то разрешены все поля.
+
+Возможные значения - имена полей формы, разделенные запятой.
+
+Значение по умолчанию - пусто.
+
+### forbiddenFields
+Запрещенные для обработки поля. Поля, указанные в списке, игнорируются. Поля username, email и password удаляются из списка запрещенных.
+
+Возможные значения - имена полей формы, разделенные запятой.
+
+Значение по умолчанию - пусто.
+
+### userGroups
+Добавляет зарегистрированного пользователя в указанные группы.
+
+Возможные значения - имена групп, разделенные запятой (если имена содержат запятую в названии, то можно задать значение параметра массивом).
+
+Значение по умолчанию - пусто.
+
+### checkActivation
+Включает проверку активации учетной записи пользователя (см. "Активация учетных записей"). При этом после сохранения записи будет установлено поле activate.url, содержащее ссылку на страницу с вызовом сниппета для активации учетной записи.
+
+Возможные значения - 1 или 0.
+
+Значение по умолчанию - 0.
+
+### activateTo
+Если включена проверка активации, то в этом параметре необходимо указать id страницы, на которой вызывается сниппет для активации.
+
+Возможные значения - id страницы.
+
+Значение по умолчанию - значение $modx->config['site_start'].
+
+### preparePostProcess
+Позволяет выполнить обработку данных после сохранения.
+
+Возможные значения - имена сниппетов, анонимные функции, статические методы загруженных классов.
+
+Значение по умолчанию - пусто.
+
+### redirectTo
+Перенаправляет пользователя на указанную страницу после регистрации.
+
+Возможные значения - id целевой страницы или массив.
+
+Значение по умолчанию - пусто.
+
+### exitTo
+Перенаправляет уже авторизованного пользователя на указанную страницу.
+
+Возможные значения - id целевой страницы.
+
+Значение по умолчанию - пусто.
+
+### skipTpl
+Шаблон сообщения для уже авторизованного пользователя.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Register с ключом [+register.default_skipTpl+]
+
+### successTpl
+Шаблон сообщения об успешной регистрации.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Register с ключом [+register.default_successTpl+]
+
+### passwordLength
+Длина пароля (если создается автоматически).
+
+Возможные значения - число символов больше 6.
+
+Значение по умолчанию - 6.
diff --git "a/assets/snippets/FormLister/docs/ru/075_\320\220\320\272\321\202\320\270\320\262\320\260\321\206\320\270\321\217 \321\203\321\207\320\265\321\202\320\275\321\213\321\205 \320\267\320\260\320\277\320\270\321\201\320\265\320\271.md" "b/assets/snippets/FormLister/docs/ru/075_\320\220\320\272\321\202\320\270\320\262\320\260\321\206\320\270\321\217 \321\203\321\207\320\265\321\202\320\275\321\213\321\205 \320\267\320\260\320\277\320\270\321\201\320\265\320\271.md"
new file mode 100644
index 0000000000..ce0f37925c
--- /dev/null
+++ "b/assets/snippets/FormLister/docs/ru/075_\320\220\320\272\321\202\320\270\320\262\320\260\321\206\320\270\321\217 \321\203\321\207\320\265\321\202\320\275\321\213\321\205 \320\267\320\260\320\277\320\270\321\201\320\265\320\271.md"
@@ -0,0 +1,84 @@
+## Активация учетных записей
+
+Контроллер Activate реализует активацию учетных записей. Таким образом появляется возможность требовать у пользователя подтверждение учетной записи путем перехода по специальной ссылке из письма, отправленного при регистрации.
+
+Если по какой-то причине пользователь не получил письмо, то c помощью контроллера Activate он может запросить его повторную отправку.
+
+Учетная запись пользователя считается неактивированной если в поле logincount записано -1.
+
+В вызовах сниппета для регистрации и авторизации пользователей должен присутствовать параметр &checkActivation=`1`.
+
+Поэтому если при регистрации пользователь указывал пароль самостоятельно, то нужно запрашивать пароль для отправки письма со ссылкой для активации. Иначе будет генерироваться новый пароль, потому что раз пользователь запрашивает письмо для активации вручную, значит письмо после регистрации он не получил и не знает созданный при регистрации пароль.
+
+В шаблонах доступны все поля модели для обрабатываемой записи. В шаблоне reportTpl задается поле user.password с незашифрованным паролем и поле activate.url со ссылкой для активации.
+
+## Параметры
+### model
+Класс для работы с пользователями.
+
+Возможные значения - имя класса.
+
+Значение по умолчанию - \modUsers
+
+### modelPath
+Путь к файлу класса для работы с пользователями.
+
+Возможные значения - относительный путь к файлу.
+
+Значение по умолчанию - assets/lib/MODxAPI/modUsers.php
+
+### redirectTo
+Перенаправляет пользователя на указанную страницу после активации.
+
+Возможные значения - id целевой страницы или массив.
+
+Значение по умолчанию - пусто.
+
+### exitTo
+Перенаправляет авторизованного пользователя на указанную страницу.
+
+Возможные значения - id целевой страницы или массив.
+
+Значение по умолчанию - пусто.
+
+### skipTpl
+Шаблон сообщения для авторизованного пользователя.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Register с ключом [+register.default_skipTpl+]
+
+### reportTpl
+Шаблон письма с информацией для активации учетной записи.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - пусто.
+
+### reportTpl
+Шаблон письма с информацией для активации учетной записи.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - пусто.
+
+### successTpl
+Шаблон сообщения об успешной отправке письма с данными для активации.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Activate с ключом [+activate.default_successTpl+]
+
+### activateSuccessTpl
+Шаблон сообщения об успешной активации.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Activate с ключом [+activate.default_activateSuccessTpl+]
+
+### passwordLength
+Длина создаваемого пароля.
+
+Возможные значения - число символов больше 6.
+
+Значение по умолчанию - 6.
diff --git "a/assets/snippets/FormLister/docs/ru/090_\320\222\320\276\321\201\321\201\321\202\320\260\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\260\321\200\320\276\320\273\320\265\320\271 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270.md" "b/assets/snippets/FormLister/docs/ru/090_\320\222\320\276\321\201\321\201\321\202\320\260\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\260\321\200\320\276\320\273\320\265\320\271 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270.md"
new file mode 100644
index 0000000000..e9b507dd4f
--- /dev/null
+++ "b/assets/snippets/FormLister/docs/ru/090_\320\222\320\276\321\201\321\201\321\202\320\260\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\260\321\200\320\276\320\273\320\265\320\271 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270.md"
@@ -0,0 +1,143 @@
+## Восстановление паролей пользователями
+
+Контроллер Reminder позволяет web-пользователям восстанавливать забытые пароли. Расширяет контроллер Form.
+
+Восстановление паролей происходит по следующей схеме:
+
+- пользователь вводит в форме свой идентификатор (им может быть имя пользователя или email);
+- пользователь получает письмо, в котором содержится ссылка для восстановления;
+- при переходе по ссылке пользователь получает возможность ввести новый пароль либо пароль будет сгенерирован автоматически;
+- пользователю отправляется письмо с новым паролем и показыается сообщение (в сообщении можно также вывести новый пароль).
+
+Параметр to перезаписывается значением email пользователя. Обязательно должен быть задан параметр resetTo.
+
+## Параметры
+### model
+Класс для работы с пользователями.
+
+Возможные значения - имя класса.
+
+Значение по умолчанию - \modUsers
+
+### modelPath
+Путь к файлу класса для работы с пользователями.
+
+Возможные значения - относительный путь к файлу.
+
+Значение по умолчанию - assets/lib/MODxAPI/modUsers.php
+
+### hashField
+Имя поля для хранения хэша данных пользователя.
+
+Значение по умолчанию - hash.
+
+### userField
+Имя поля для хранения идентификатора пользователя (имя пользователя или email).
+
+Значение по умолчанию - email.
+
+### uidField
+Имя поля, которое используется для идентификации пользователя при переходе по ссылке.
+
+Значение по умолчанию - id.
+
+### exitTo
+Перенаправляет авторизованного пользователя на указанную страницу.
+
+Возможные значения - id целевой страницы.
+
+Значение по умолчанию - пусто.
+
+### resetTo
+Страница, на которую будет указывать ссылка для восстановления паролей. Обязательный параметр.
+
+Возможные значения - id целевой страницы.
+
+Значение по умолчанию - id документа, в котором вызван контроллер.
+
+### redirectTo
+Перенаправляет на указанную страницу после успешного восстановления пароля.
+
+Возможные значения - id целевой страницы.
+
+Значение по умолчанию - пусто.
+
+### skipTpl
+Шаблон сообщения для авторизованного пользователя.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Reminder с ключом [+reminder.default_skipTpl+].
+
+### formTpl
+Шаблон формы для ввода идентификатора пользователя.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - пусто.
+
+### resetTpl
+Шаблон формы для ввода нового пароля. Если параметр не задан, то пароль будет сгенерирован автоматически.
+
+Поля для ввода паролей должны называться password и repeatPassword. В форме должны также присутствовать скрытые поля с именами из параметров uidField и hashField. Значение для поля hashField задается через плейсхолдер [+user.hash+].
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - пусто.
+
+### successTpl
+Шаблон сообщения об успешной отправке письма со ссылкой для восстановления пароля. В шаблоне можно выводить плейсхолдеры с данными пользователя (username, email и т.д.).
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Reminder с ключом [+reminder.default_successTpl+].
+
+### resetSuccessTpl
+Шаблон сообщения об успешном восстановлении пароля. В шаблоне можно выводить плейсхолдеры с данными пользователя (username, email и т.д.), а также новый пароль (newpassword).
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Reminder с ключом [+reminder.default_resetSuccessTpl+].
+
+### reportTpl
+Шаблон письма со ссылкой для восстановления пароля. В шаблоне можно выводить плейсхолдеры с данными пользователя (username, email и т.д.), а также новый пароль (newpassword). Ссылка для восстановлени пароля в письме задается через плейсхолдер [+reset.url+]
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - запись из лексикона Reminder с ключом [+reminder.default_reportTpl+]..
+
+### resetReportTpl
+Шаблон письма об успешном восстановлении пароля. В шаблоне можно выводить плейсхолдеры с данными пользователя (username, email и т.д.), а также новый пароль (newpassword). Если не задан, то письмо пользователю отправляться не будет.
+
+Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.
+
+Значение по умолчанию - пусто.
+
+### rules
+Правила валидации для формы идентификации пользователя.
+
+Возможные значения - см. раздел "Валидация данных".
+
+Значение по умолчанию - пусто.
+
+### resetRules
+Правила валидации для формы установки нового пароля. Если заданы правила валидации для полей password и repeatPassword, то при наличии для поля repeatPassword правила equals, оно будет автоматически скорректировано для проверки равенства значений полей password и repeatPassword:
+```
+"repeatPassword":{
+ "required":"Введите пароль еще раз",
+ "equals":{
+ "params" : "Этот ключ в описании правила можно не задавать, он будет сформирован контроллером автоматически",
+ "message":"Пароли не совпадают"
+ }
+}
+```
+Возможные значения - см. раздел "Валидация данных".
+
+Значение по умолчанию - пусто.
+
+### passwordLength
+Длина пароля (если создается автоматически).
+
+Возможные значения - число символов больше 6.
+
+Значение по умолчанию - 6.
diff --git a/assets/snippets/FormLister/snippet.FormLister.php b/assets/snippets/FormLister/snippet.FormLister.php
index 8bddf6a5f0..622d2b0b5d 100644
--- a/assets/snippets/FormLister/snippet.FormLister.php
+++ b/assets/snippets/FormLister/snippet.FormLister.php
@@ -12,7 +12,9 @@
$this->modx->logEvent(0, 1, "Parameter &formid is not set", 'FormLister');
return;
}
-include_once ('__autoload.php');
+if (!class_exists('\FormLister\Core')) {
+ include_once('__autoload.php');
+}
$out = '';
$FLDir = MODX_BASE_PATH . 'assets/snippets/FormLister/';
if (isset($controller)) {
diff --git a/assets/snippets/ajaxSearch/HISTORY.md b/assets/snippets/ajaxSearch/HISTORY.md
index 45454ec0e8..45a8b1def7 100644
--- a/assets/snippets/ajaxSearch/HISTORY.md
+++ b/assets/snippets/ajaxSearch/HISTORY.md
@@ -1,4 +1,6 @@
#Changelog:
+11-jul-17 (1.11.0)
+- Refactor, no more use index-ajax.php
12-apr-16 (1.10.2)
diff --git a/assets/snippets/ajaxSearch/README.md b/assets/snippets/ajaxSearch/README.md
index d6005c0a70..e0fb1c38a1 100644
--- a/assets/snippets/ajaxSearch/README.md
+++ b/assets/snippets/ajaxSearch/README.md
@@ -1,4 +1,4 @@
-#AjaxSearch 1.10.2
+#AjaxSearch 1.11.0
Ajax and non-Ajax search that supports results highlighting
diff --git a/assets/snippets/ajaxSearch/ajaxSearchPopup.php b/assets/snippets/ajaxSearch/ajaxSearchPopup.php
index f5905a075f..5593513be3 100644
--- a/assets/snippets/ajaxSearch/ajaxSearchPopup.php
+++ b/assets/snippets/ajaxSearch/ajaxSearchPopup.php
@@ -5,7 +5,7 @@
* ajaxSearchPopup.php
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
*/
@@ -13,31 +13,34 @@
/*!
* getUserConfigName : parse the non default configuration file name from ucfg string
*/
+
+
function getUserConfigName($ucfg) {
preg_match('/&config=`([^`]*)`/', $ucfg, $matches);
return $matches[1];
}
+define('MODX_API_MODE', true);
+include_once(__DIR__."/../../../index.php");
+$modx->db->connect();
+if (empty ($modx->config)) {
+ $modx->getSettings();
+}
+if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') || strpos($_SERVER['HTTP_REFERER'],$modx->config['site_url']) !== 0){
+ $modx->sendErrorPage();
+}
+
if (isset($_POST['search'])) {
- define('AS_VERSION', '1.10.2');
+ define('AS_VERSION', '1.11.0');
define('AS_SPATH', 'assets/snippets/ajaxSearch/');
define('AS_PATH', MODX_BASE_PATH . AS_SPATH);
- require_once (MODX_MANAGER_PATH . 'includes/protect.inc.php');
if (!isset($_POST['as_version']) || (strip_tags($_POST['as_version']) != AS_VERSION)) {
$output = "AjaxSearch version obsolete. Please check the snippet code in MODX manager.";
}
else {
include_once AS_PATH . "classes/ajaxSearch.class.inc.php";
-
- define('MODX_API_MODE', true);
- include_once (MODX_MANAGER_PATH . 'includes/document.parser.class.inc.php');
- $modx = new DocumentParser;
- $modx->db->connect();
- $modx->getSettings();
- startCMSSession();
-
$tstart = $modx->getMicroTime();
$default = AS_PATH . 'configs/default.config.php';
if (file_exists($default)) include $default;
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearch.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearch.class.inc.php
index fee270cc06..d48255bd5b 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearch.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearch.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearch
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearchConfig.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearchConfig.class.inc.php
index 37a26ecfaa..b96cc95979 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearchConfig.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearchConfig.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearchConfig
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearchCtrl.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearchCtrl.class.inc.php
index c52bc4eda9..1ef778450c 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearchCtrl.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearchCtrl.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearchCtrl
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearchInput.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearchInput.class.inc.php
index 69251e359d..1c2d7480bf 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearchInput.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearchInput.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearchInput
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearchLog.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearchLog.class.inc.php
index 9a49dfe193..7c098ce66b 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearchLog.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearchLog.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearchLog
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
@@ -154,11 +154,15 @@ function updateComment($logid, $ascmt) {
if (($ascmt != '') && ($logid > 0) && $safeCmt) {
define('MODX_API_MODE', true);
-
- include_once (MODX_MANAGER_PATH . 'includes/document.parser.class.inc.php');
- $modx = new DocumentParser;
+ include_once(__DIR__."/../../../../index.php");
$modx->db->connect();
- $modx->getSettings();
+ if (empty ($modx->config)) {
+ $modx->getSettings();
+ }
+ if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') || strpos($_SERVER['HTTP_REFERER'],$modx->config['site_url']) !== 0){
+ $modx->sendErrorPage();
+ }
+
$asLog = new AjaxSearchLog();
$asLog->updateComment($logid, $ascmt);
echo "comment about record " . $logid . " registered";
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearchOutput.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearchOutput.class.inc.php
index 943d229416..61e7406de9 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearchOutput.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearchOutput.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearchOutput
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearchRequest.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearchRequest.class.inc.php
index 2eb0a613fa..e20bea2b95 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearchRequest.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearchRequest.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearchRequest
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php
index 352749f2c5..57466bbd49 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearchResults
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
diff --git a/assets/snippets/ajaxSearch/classes/ajaxSearchUtil.class.inc.php b/assets/snippets/ajaxSearch/classes/ajaxSearchUtil.class.inc.php
index 178f1a41c0..2b27c47e6e 100644
--- a/assets/snippets/ajaxSearch/classes/ajaxSearchUtil.class.inc.php
+++ b/assets/snippets/ajaxSearch/classes/ajaxSearchUtil.class.inc.php
@@ -5,7 +5,7 @@
* @package AjaxSearchUtil
*
* @author Coroico - www.evo.wangba.fr
-* @version 1.10.2
+* @version 1.11.0
* @date 12/04/2016
*
* Purpose:
diff --git a/assets/snippets/ajaxSearch/configs/default.config.php b/assets/snippets/ajaxSearch/configs/default.config.php
index dcbf52da0d..1a280a0fde 100644
--- a/assets/snippets/ajaxSearch/configs/default.config.php
+++ b/assets/snippets/ajaxSearch/configs/default.config.php
@@ -1,9 +1,9 @@
').appendTo(sf).hide();as['sl']=$('').appendTo(sf).hide();as['sr']=$('#'+p+'ajaxSearch_output').hide().removeClass('init');as['si']=$('#'+p+'ajaxSearch_input');as['se']=$('#'+p+'ajaxSearch_select');if(!as['lvs'])as['ss']=$('#'+p+'ajaxSearch_form input:submit');as['sc'].click(function(){closeSearch(as);return false;});if(!as['lvs'])as['ss'].click(function(){doSearch(as);return false;});else as['si'].keyup(function(){doLiveSearch(as);});if(as['si'].length)as['si'].keypress(function(e){var keyCode=e.keyCode||e.which;if(keyCode==13){doSearch(as);return false;}});doSearch(as);}
function doLiveSearch(as){if(as['lt']){window.clearTimeout(as['lt']);}
as['lt']=setTimeout(function(){doSearch(as)},400);}
function doSearch(as){if(!as['lvs']&&as['is'])return false;if(as['si'].length)s=as['si'].val();else if(as['se'].length){sl=new Array();as['se'].find('option:selected').each(function(i){sl.push($(this).attr('value'));});s=sl.join(" ");}
else s='';if(s==as['bxt'])s='';as['s']=s;if(as['si'].length&&(s.length!=0)&&as['lvs']&&(s.length
" . $_lang['checking_php_version'];
-$phpMinVersion = "5.3.0";
+$phpMinVersion = "5.4.0";
// -1 if left is less, 0 if equal, +1 if left is higher
if (version_compare(phpversion(), $phpMinVersion) < 0) {
echo "" . $_lang['failed'] . "" . $_lang['you_running_php'] . phpversion() . str_replace('[+min_version+]', $phpMinVersion, $_lang["modx_requires_php"]) . "
";
@@ -62,7 +62,7 @@
if (!file_exists("../assets/cache/siteCache.idx.php")) {
// make an attempt to create the file
@ $hnd = fopen("../assets/cache/siteCache.idx.php", 'w');
- @ fwrite($hnd, "");
+ @ fwrite($hnd, "");
@ fclose($hnd);
}
if (!is_writable("../assets/cache/siteCache.idx.php")) {
@@ -115,7 +115,7 @@
if (!is_file("../".MGR_DIR."/includes/config.inc.php")) {
// make an attempt to create the file
@ $hnd = fopen("../".MGR_DIR."/includes/config.inc.php", 'w');
- @ fwrite($hnd, "");
+ @ fwrite($hnd, "");
@ fclose($hnd);
}
else @chmod("../".MGR_DIR."/includes/config.inc.php", 0666);
diff --git a/install/actions/tpl_mode.html b/install/actions/tpl_mode.html
index d16fee50ba..dcac5ba2c3 100644
--- a/install/actions/tpl_mode.html
+++ b/install/actions/tpl_mode.html
@@ -24,7 +24,7 @@
-
+
diff --git a/install/assets/chunks/mm_rules.tpl b/install/assets/chunks/mm_rules.tpl
index a65e438fb7..9c24090097 100644
--- a/install/assets/chunks/mm_rules.tpl
+++ b/install/assets/chunks/mm_rules.tpl
@@ -24,7 +24,7 @@ mm_moveFieldsToTab('titl,keyw,desc,seoOverride,noIndex,sitemap_changefreq,sitema
mm_widget_tags('keyw',','); // Give blog tag editing capabilities to the 'documentTags (3)' TV
-//mm_createTab('Изображения', 'photos', '', '', '', '850');
+//mm_createTab('Images', 'photos', '', '', '', '850');
//mm_moveFieldsToTab('images,photos', 'photos', '', '');
//mm_hideFields('longtitle,description,link_attributes,menutitle,content', '', '6,7');
diff --git a/install/assets/modules/store.tpl b/install/assets/modules/store.tpl
index 46138d9476..3b2bb5b2e9 100644
--- a/install/assets/modules/store.tpl
+++ b/install/assets/modules/store.tpl
@@ -2,7 +2,7 @@
/**
* Extras
*
- * first repository for MODX EVO
+ * first repository for Evolution CMS
*
* @category module
* @version 0.1.3
diff --git a/install/assets/plugins/CodeMirror.tpl b/install/assets/plugins/CodeMirror.tpl
index d65b940a52..75e61f48fd 100644
--- a/install/assets/plugins/CodeMirror.tpl
+++ b/install/assets/plugins/CodeMirror.tpl
@@ -12,7 +12,7 @@
* @internal @modx_category Manager and Admin
* @internal @properties &theme=Theme;list;default,ambiance,blackboard,cobalt,eclipse,elegant,erlang-dark,lesser-dark,midnight,monokai,neat,night,one-dark,rubyblue,solarized,twilight,vibrant-ink,xq-dark,xq-light;default &darktheme=Dark Theme;list;default,ambiance,blackboard,cobalt,eclipse,elegant,erlang-dark,lesser-dark,midnight,monokai,neat,night,one-dark,rubyblue,solarized,twilight,vibrant-ink,xq-dark,xq-light;one-dark &fontSize=Font-size;list;10,11,12,13,14,15,16,17,18;14 &lineHeight=Line-height;list;1,1.1,1.2,1.3,1.4,1.5;1.3 &indentUnit=Indent unit;int;4 &tabSize=The width of a tab character;int;4 &lineWrapping=lineWrapping;list;true,false;true &matchBrackets=matchBrackets;list;true,false;true &activeLine=activeLine;list;true,false;false &emmet=emmet;list;true,false;true &search=search;list;true,false;false &indentWithTabs=indentWithTabs;list;true,false;true &undoDepth=undoDepth;int;200 &historyEventDelay=historyEventDelay;int;1250
* @internal @installset base
- * @reportissues https://github.com/modxcms/evolution
+ * @reportissues https://github.com/evolution-cms/evolution
* @documentation Official docs https://codemirror.net/doc/manual.html
* @author hansek from http://www.modxcms.cz
* @author update Mihanik71
diff --git a/install/assets/plugins/ElementsInTree.tpl b/install/assets/plugins/ElementsInTree.tpl
index 7b3f59ed22..1f3f3ca223 100644
--- a/install/assets/plugins/ElementsInTree.tpl
+++ b/install/assets/plugins/ElementsInTree.tpl
@@ -7,14 +7,14 @@
* @category plugin
* @version 1.5.7
* @license http://creativecommons.org/licenses/GPL/2.0/ GNU Public License (GPL v2)
- * @internal @properties &tabTreeTitle=Tree Tab Title;text;Docs;;Custom title of Site Tree tab. &useIcons=Use icons in tabs;list;yes,no;yes;;Icons available in MODX version 1.2 or newer. &treeButtonsInTab=Tree Buttons in tab;list;yes,no;yes;;Move Tree Buttons into Site Tree tab. &unifyFrames=Unify Frames;list;yes,no;yes;;Unify Tree and Main frame style. Right now supports MODxRE2 theme only.
+ * @internal @properties &tabTreeTitle=Tree Tab Title;text;Docs;;Custom title of Site Tree tab. &useIcons=Use icons in tabs;list;yes,no;yes;;Icons available in EVO version 1.2 or newer. &treeButtonsInTab=Tree Buttons in tab;list;yes,no;yes;;Move Tree Buttons into Site Tree tab. &unifyFrames=Unify Frames;list;yes,no;yes;;Unify Tree and Main frame style.
* @internal @events OnManagerTreePrerender,OnManagerTreeRender,OnManagerMainFrameHeaderHTMLBlock,OnTempFormSave,OnTVFormSave,OnChunkFormSave,OnSnipFormSave,OnPluginFormSave,OnModFormSave,OnTempFormDelete,OnTVFormDelete,OnChunkFormDelete,OnSnipFormDelete,OnPluginFormDelete,OnModFormDelete
* @internal @modx_category Manager and Admin
* @internal @installset base
- * @documentation Requirements: This plugin requires MODX Evolution 1.2 or later
+ * @documentation Requirements: This plugin requires EVO Evolution 1.2 or later
* @internal @disabled 1
- * @reportissues https://github.com/modxcms/evolution/issues
- * @link Original Github thread https://github.com/modxcms/evolution/issues/783
+ * @reportissues https://github.com/evolution-cms/evolution/issues
+ * @link Original Github thread https://github.com/evolution-cms/evolution/issues
* @author Dmi3yy https://github.com/dmi3yy
* @author pmfx https://github.com/pmfx
* @author Nicola1971 https://github.com/Nicola1971
diff --git a/install/assets/plugins/mgrmgr.tpl b/install/assets/plugins/mgrmgr.tpl
index a6dd357271..3cf6fd37f7 100644
--- a/install/assets/plugins/mgrmgr.tpl
+++ b/install/assets/plugins/mgrmgr.tpl
@@ -2,7 +2,7 @@
/**
* ManagerManager
*
- * Customize the MODX Manager to offer bespoke admin functions for end users or manipulate the display of document fields in the manager.
+ * Customize the EVO Manager to offer bespoke admin functions for end users or manipulate the display of document fields in the manager.
*
* @category plugin
* @version 0.6.2
diff --git a/install/assets/plugins/updater.tpl b/install/assets/plugins/updater.tpl
new file mode 100644
index 0000000000..935c9dd0ea
--- /dev/null
+++ b/install/assets/plugins/updater.tpl
@@ -0,0 +1,22 @@
+//
While MODX will work on your PHP version, usage of MODX on this version is not recommended. Your version of PHP is vulnerable to numerous security holes. Please upgrade to PHP version is 4.3.8 or higher, which patches these holes. It is recommended you upgrade to this version for the security of your own website.
';
+$_lang["php_security_notice"] = '
While EVO will work on your PHP version, usage of EVO on this version is not recommended. Your version of PHP is vulnerable to numerous security holes. Please upgrade to PHP version is 5.6 or higher, which patches these holes. It is recommended you upgrade to this version for the security of your own website.
Несмотря на то, что MODX будет работать на вашей версии PHP, использовать его c этой версией PHP крайне не рекомендуется. Ваша версия PHP уязвима из-за многочисленных брешей в защите. Обновите PHP до версии 4.3.8 или более поздней для безопасности вашего сайта.
';
+$_lang["php_security_notice"] = '
Несмотря на то, что EVO будет работать на вашей версии PHP, использовать его c этой версией PHP крайне не рекомендуется. Ваша версия PHP уязвима из-за многочисленных брешей в защите. Обновите PHP до версии 5.6 или более поздней для безопасности вашего сайта.
';
$_lang["please_correct_error"] = '. Исправьте эту ошибку';
$_lang["please_correct_errors"] = '. Исправьте эти ошибки';
$_lang["plugins"] = 'Плагины';
@@ -147,7 +147,7 @@
$_lang["session_problem"] = 'Была обнаружена проблема в сессии сервера. Свяжитесь, пожалуйста, с администратором сервера для ее устранения.';
$_lang["session_problem_try_again"] = 'Повторить?';
$_lang["setup_cannot_continue"] = 'К сожалению, установка не может быть продолжена из-за ';
-$_lang["setup_couldnt_install"] = 'Программа установки MODX не смогла установить/изменить некоторые таблицы базы данных.';
+$_lang["setup_couldnt_install"] = 'Программа установки EVO не смогла установить/изменить некоторые таблицы базы данных.';
$_lang["setup_database"] = 'Программа установки сейчас попробует установить базу данных: ';
$_lang["setup_database_create_connection"] = 'Создание подключения к базе данных: ';
$_lang["setup_database_create_connection_failed"] = 'Не удалось соединиться с базой данных!';
@@ -172,7 +172,7 @@
$_lang["status_passed_database_created"] = 'успех - база данных создана';
$_lang["status_passed_server"] = 'успех - сопоставление базы данных доступно';
$_lang["strict_mode"] = ' сервер MySQL работает в строгом режиме strict sql_mode!';
-$_lang["strict_mode_error"] = 'Некоторые возможности MODX не могут работать должным образом, если режим sql_mode STRICT_TRANS_TABLES не отключен. Вы можете задать режим через внесения изменений в my.cnf файл или связаться с администратором базы данных.';
+$_lang["strict_mode_error"] = 'Некоторые возможности EVO не могут работать должным образом, если режим sql_mode STRICT_TRANS_TABLES не отключен. Вы можете задать режим через внесения изменений в my.cnf файл или связаться с администратором базы данных.';
$_lang["summary_setup_check"] = 'Программа установки выполнит несколько тестов, чтобы удостовериться, что все готово к установке.';
$_lang["system_configuration"] = 'Конфигурация системы';
$_lang["system_configuration_validate_referer_description"] = 'Рекомендуется установка Проверять заголовки HTTP_REFERER, которая может защитить ваш сайт от атак CSRF, но при некоторых конфигурациях сервера система управления может быть недоступна.';
@@ -192,11 +192,11 @@
$_lang["upgrade_note"] = 'Внимание: Прежде чем открыть ваш сайт, вам необходимо войти в панель управления, затем просмотреть и сохранить системную конфигурацию.';
$_lang["upgraded"] = 'Обновлен';
$_lang["validate_referer_title"] = 'Проверять серверные заголовки HTTP_REFERER?';
-$_lang["visit_forum"] = ', посетите форум MODX.';
+$_lang["visit_forum"] = ', посетите форум EVO.';
$_lang["warning"] = 'Предупреждение!';
$_lang["welcome_message_start"] = 'Выберите тип установки:';
$_lang["welcome_message_text"] = 'Эта программа проведет вас через весь процесс установки.';
-$_lang["welcome_message_welcome"] = 'Добро пожаловать в программу установки MODX.';
+$_lang["welcome_message_welcome"] = 'Добро пожаловать в программу установки EVO.';
$_lang["writing_config_file"] = 'Запись конфигурационного файла: ';
$_lang["yes"] = 'Да';
$_lang["you_running_php"] = ' - вы используете PHP ';
diff --git a/install/not_installed.tpl b/install/not_installed.tpl
index 8359ea8803..eda3690c55 100644
--- a/install/not_installed.tpl
+++ b/install/not_installed.tpl
@@ -2,7 +2,7 @@
-MODX is not installed!
+EVO is not installed!
-
+