diff --git a/README.md b/README.md
index 5120a56..43e61d0 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,17 @@
-# rubnav
+### rubnav
-Модуль Навигация по документам рубрики Только для AVE.CMS ALT
\ No newline at end of file
+## Модуль Навигация по документам рубрики v1.26.2
+
+
+### Навигация по документам в пределах рубрики (следущая-предыдущая)
+
+ * Инструкция:
[mod_rubnav:next] - следущая
[mod_rubnav:prev] - предыдущая
+
+
+### Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку rubnav со всем ее содержимым внутри!
+
+### Changelog:
+
+03.09.2019 - версия 1.26.2 - адаптация для версии ave.cms 3.26
+
+05.05.2014 - версия 1.1.2
\ No newline at end of file
diff --git a/class/rubnav.php b/class/rubnav.php
new file mode 100644
index 0000000..79984db
--- /dev/null
+++ b/class/rubnav.php
@@ -0,0 +1,124 @@
+_tpl_dir = $tpl_dir;
+ $this->_lang_file = $lang_file;
+ }
+
+ /**
+ * Управление модулем Навигация по рубрике
+ *
+ */
+ function _rubnavSettingsGet($field = '')
+ {
+ global $AVE_DB;
+
+ static $settings = null;
+
+ if ($settings === null)
+ {
+ $settings = $AVE_DB->Query("
+ SELECT *
+ FROM " . PREFIX . "_module_rubnav
+ WHERE Id = 1
+ ")->FetchAssocArray();
+ }
+ if ($field == '') return $settings;
+ return (isset($settings[$field]) ? $settings[$field] : null);
+ }
+
+ function _rubnavRubricsGet()
+ {
+ global $AVE_DB, $AVE_Template;
+
+ $rubrics = array();
+ $sql = $AVE_DB->Query("SELECT * FROM " . PREFIX . "_rubrics");
+ while ($result = $sql->FetchRow())
+ {
+ array_push($rubrics, $result);
+ }
+ $AVE_Template->assign('rubrics', $rubrics);
+ }
+
+ function rubnavSettingsEdit()
+ {
+ global $AVE_DB, $AVE_Template;
+
+ if (isset($_REQUEST['sub']) && $_REQUEST['sub'] == 'save')
+ {
+ $sql = $AVE_DB->Query("
+ UPDATE " . PREFIX . "_module_rubnav
+ SET
+ rubnav_tmpl_next = '" . $_REQUEST['rubnav_tmpl_next'] . "',
+ rubnav_tmpl_prev = '" . $_REQUEST['rubnav_tmpl_prev'] . "'
+ WHERE
+ id = 1
+ ");
+
+ if ($sql->_result === false) {
+ $message = $AVE_Template->get_config_vars('RUBNAV_MODULE_SAVED_ERR');
+ $header = $AVE_Template->get_config_vars('RUBNAV_MODULE_ERROR');
+ $theme = 'error';
+ }else{
+ $message = $AVE_Template->get_config_vars('RUBNAV_MODULE_SAVED');
+ $header = $AVE_Template->get_config_vars('RUBNAV_MODULE_SUCCESS');
+ $theme = 'accept';
+ }
+
+ if (isset($_REQUEST['ajax']) && $_REQUEST['ajax'] = '1') {
+ echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
+ } else {
+ $AVE_Template->assign('message', $message);
+ header('Location:index.php?do=modules&action=modedit&mod=rubnav&moduleaction=1&cp=' . SESSION);
+ }
+ exit;
+
+ }
+
+ $row = $this->_rubnavSettingsGet();
+
+ $AVE_Template->assign($row);
+
+ $AVE_Template->config_load($this->_lang_file, 'showconfig');
+ $AVE_Template->assign('content', $AVE_Template->fetch($this->_tpl_dir . 'admin_config.tpl'));
+ }
+}
+?>
\ No newline at end of file
diff --git a/info.php b/info.php
new file mode 100644
index 0000000..c2acdf0
--- /dev/null
+++ b/info.php
@@ -0,0 +1,20 @@
+ 'rubnav',
+ 'ModuleVersion' => '1.26.2',
+ 'ModuleAutor' => 'AVE.cms Team',
+ 'ModuleCopyright' => '© 2007-' . date('Y') . ' AVE.cms',
+ 'ModuleStatus' => 1,
+ 'ModuleIsFunction' => 1,
+ 'ModuleTemplate' => 0,
+ 'ModuleAdminEdit' => 1,
+ 'ModuleFunction' => 'mod_rubnav',
+ 'ModuleTag' => '[mod_rubnav:XXX]',
+ 'ModuleTagLink' => null,
+ 'ModuleAveTag' => '#\\\[mod_rubnav:([a-zA-Z0-9]+)]#',
+ 'ModulePHPTag' => ""
+ );
+?>
\ No newline at end of file
diff --git a/lang/ru.txt b/lang/ru.txt
new file mode 100644
index 0000000..c299cf2
--- /dev/null
+++ b/lang/ru.txt
@@ -0,0 +1,26 @@
+[name]
+MODULE_NAME = "Навигация по рубрике"
+MODULE_DESCRIPTION = "Навигация по документам в пределах рубрики (следущая-предыдущая)
Инструкция:
[mod_rubnav:next] - следущая
[mod_rubnav:prev] - предыдущая"
+
+[module]
+RUBNAV_MODULE = "Навигация по рубрике"
+RUBNAV_MODULE_INFO = "В данном разделе Вы можете выполнить настройку модуля в соответствии с требуемыми параметрами"
+RUBNAV_MODULE_SETUP = "Управление модулем"
+
+RUBNAV_MODULE_YES = "Да"
+RUBNAV_MODULE_NO = "Нет"
+RUBNAV_MODULE_OR = "или"
+
+RUBNAV_MODULE_SAVE = "Сохранить"
+RUBNAV_MODULE_SAVE_NEXT = "Применить (CTRL + S)"
+
+RubNavLink = "Тег, определяющий адрес для перехода"
+RubNavLinkName = "Тег, определяющий название ссылки, которое будет отображено"
+
+RubNavTeplNext = "Шаблон для ссылки на следущую страницу"
+RubNavTeplPrev = "Шаблон для ссылки на предыдущую страницу"
+
+RUBNAV_MODULE_SAVED = "Успешно сохранено"
+RUBNAV_MODULE_SAVED_ERR = "Не удалось сохранить.
Попробуйте еще раз."
+RUBNAV_MODULE_ERROR = "Ошибка"
+RUBNAV_MODULE_SUCCESS = "Выполнено"
\ No newline at end of file
diff --git a/module.php b/module.php
new file mode 100644
index 0000000..dc8d469
--- /dev/null
+++ b/module.php
@@ -0,0 +1,126 @@
+Query("
+ SELECT *
+ FROM " . PREFIX . "_module_rubnav
+ WHERE Id = 1
+ ")->FetchRow();
+
+ if ($data == "next")
+ {
+ $next_link = '';
+ $row = $AVE_DB->Query("
+ SELECT
+ Id,
+ document_alias,
+ document_title
+ FROM " . PREFIX . "_documents
+ WHERE
+ Id != '1'
+ AND Id != '" . PAGE_NOT_FOUND_ID . "'
+ AND Id != '" . $AVE_Core->curentdoc->Id . "'
+ AND rubric_id = '" . $AVE_Core->curentdoc->rubric_id . "'
+ AND document_published >= '" . $AVE_Core->curentdoc->document_published . "'
+ AND (document_expire = 0 || document_expire > UNIX_TIMESTAMP())
+ AND (document_published = 0 || document_published < UNIX_TIMESTAMP())
+ AND document_deleted = '0'
+ AND document_status = '1'
+ ORDER BY document_published ASC
+ LIMIT 0,1
+ ")
+ ->fetchRow();
+ if ($row)
+ {
+
+ $search = array('[tag:link]','[tag:linkname]');
+ $replace = array(
+ rewrite_link('index.php?id=' . $row->Id . '&doc=' . (empty($row->document_alias) ? prepare_url($row->document_title) : $row->document_alias)),
+ stripslashes(htmlspecialchars_decode($row->document_title))
+ );
+
+ $next_link = str_replace($search, $replace, $row_templ->rubnav_tmpl_next);
+ }
+ echo $next_link;
+ }
+ else if ($data == "prev")
+ {
+ //Функция перехода на предыдущую страницу в данной рубрике
+ $prev_link = '';
+ $row = $AVE_DB->Query("
+ SELECT
+ Id,
+ document_alias,
+ document_title
+ FROM " . PREFIX . "_documents
+ WHERE
+ Id != '1'
+ AND Id != '" . PAGE_NOT_FOUND_ID . "'
+ AND Id != '" . $AVE_Core->curentdoc->Id . "'
+ AND rubric_id = '" . $AVE_Core->curentdoc->rubric_id . "'
+ AND document_published <= '" . $AVE_Core->curentdoc->document_published . "'
+ AND (document_expire = 0 || document_expire > UNIX_TIMESTAMP())
+ AND (document_published = 0 || document_published < UNIX_TIMESTAMP())
+ AND document_deleted = '0'
+ AND document_status = '1'
+ ORDER BY document_published DESC
+ LIMIT 0,1
+ ")
+ ->fetchRow();
+ if ($row)
+ {
+ $search = array('[tag:link]','[tag:linkname]');
+ $replace = array(
+ rewrite_link('index.php?id=' . $row->Id . '&doc=' . (empty($row->document_alias) ? prepare_url($row->document_title) : $row->document_alias)),
+ stripslashes(htmlspecialchars_decode($row->document_title))
+ );
+
+ $prev_link = str_replace($search, $replace, $row_templ->rubnav_tmpl_prev);
+ }
+ echo $prev_link;
+ }
+}
+
+/**
+ * Администрирование
+ */
+if (defined('ACP') && !empty($_REQUEST['moduleaction']))
+{
+ global $rubric_list;
+
+ $tpl_dir = BASE_DIR . '/modules/rubnav/templates/';
+ $lang_file = BASE_DIR . '/modules/rubnav/lang/' . $_SESSION['admin_language'] . '.txt';
+
+ if (! @require(BASE_DIR . '/modules/rubnav/class/rubnav.php')) module_error();
+
+ $rubric_list = new RubNav($tpl_dir, $lang_file);
+
+ $AVE_Template->config_load($lang_file, 'module');
+ $config_vars = $AVE_Template->get_config_vars();
+ $AVE_Template->assign('config_vars', $config_vars);
+
+ switch($_REQUEST['moduleaction'])
+ {
+ case '1':
+ $rubric_list->rubnavSettingsEdit();
+ break;
+ }
+}
+?>
\ No newline at end of file
diff --git a/sql.php b/sql.php
new file mode 100644
index 0000000..2fa22f9
--- /dev/null
+++ b/sql.php
@@ -0,0 +1,44 @@
+[tag:linkname]', '[tag:linkname]');";
+
+// Обновление модуля
+$module_sql_update[] = "
+ UPDATE
+ `%%PRFX%%_module`
+ SET
+ ModuleAveTag = '" . $modul['ModuleAveTag'] . "',
+ ModulePHPTag = '" . $modul['ModulePHPTag'] . "',
+ ModuleVersion = '" . $modul['ModuleVersion'] . "'
+ WHERE
+ ModuleSysName = '" . $modul['ModuleSysName'] . "'
+ LIMIT 1;
+";
+?>
\ No newline at end of file
diff --git a/templates/admin_config.tpl b/templates/admin_config.tpl
new file mode 100644
index 0000000..b374690
--- /dev/null
+++ b/templates/admin_config.tpl
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+{literal}
+
+{/literal}
+
+