From 1909c871032fb66521615936f5e70ef639fdd798 Mon Sep 17 00:00:00 2001 From: Repellent Date: Mon, 14 Oct 2019 00:10:01 +0500 Subject: [PATCH] update for ave.cms 3.26 --- README.md | 11 +++- sitemap/index.php | 4 ++ sitemap/info.php | 20 ++++++ sitemap/lang/index.php | 4 ++ sitemap/lang/ru.txt | 3 + sitemap/module.php | 137 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 sitemap/index.php create mode 100644 sitemap/info.php create mode 100644 sitemap/lang/index.php create mode 100644 sitemap/lang/ru.txt create mode 100644 sitemap/module.php diff --git a/README.md b/README.md index 0ebc0ca..60474df 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ # module-sitemap -Модуль Карта сайта 1.26.1 \ No newline at end of file +Модуль Карта сайта 1.26.1 + + +## Модуль предназначен для построения карты вашего сайта на основе существующих пунктов меню навигации. + + * Для того, чтобы осуществить просмотр карты сайта, необходимо разместить системный тег [mod_sitemap:XXX] в теле какого-либо документа, + * где XXX - идентификаторы меню навигации указанные через запятую. Например: [mod_sitemap:1,2,3] где 1,2,3 - ID созданных меню навигаций. + + +## Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку sitemap со всем ее содержимым внутри! \ No newline at end of file diff --git a/sitemap/index.php b/sitemap/index.php new file mode 100644 index 0000000..4ca25aa --- /dev/null +++ b/sitemap/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/sitemap/info.php b/sitemap/info.php new file mode 100644 index 0000000..fcc61b9 --- /dev/null +++ b/sitemap/info.php @@ -0,0 +1,20 @@ + 'sitemap', + 'ModuleVersion' => '1.26.1', + 'ModuleAutor' => 'AVE.CMS Team', + 'ModuleCopyright' => '© 2007-' . date('Y') . ' AVE.cms', + 'ModuleStatus' => 1, + 'ModuleIsFunction' => 1, + 'ModuleTemplate' => 0, + 'ModuleAdminEdit' => 0, + 'ModuleFunction' => 'mod_sitemap', + 'ModuleTag' => '[mod_sitemap:XXX]', + 'ModuleTagLink' => null, + 'ModuleAveTag' => '#\\\[mod_sitemap:([\\\d,]*)]#', + 'ModulePHPTag' => "" + ); +?> \ No newline at end of file diff --git a/sitemap/lang/index.php b/sitemap/lang/index.php new file mode 100644 index 0000000..4ca25aa --- /dev/null +++ b/sitemap/lang/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/sitemap/lang/ru.txt b/sitemap/lang/ru.txt new file mode 100644 index 0000000..07cf1de --- /dev/null +++ b/sitemap/lang/ru.txt @@ -0,0 +1,3 @@ +[name] +MODULE_NAME = "Карта сайта" +MODULE_DESCRIPTION = "Данный модуль предназначен для построения карты вашего сайта на основании пунктов меню навигации. Для того, чтобы осуществить просмотр карты сайта, необходимо разместить системный тег [mod_sitemap:XXX] в теле какого-либо документа, где XXX - идентификаторы меню навигации указанные через запятую." \ No newline at end of file diff --git a/sitemap/module.php b/sitemap/module.php new file mode 100644 index 0000000..07ff8c6 --- /dev/null +++ b/sitemap/module.php @@ -0,0 +1,137 @@ +navi_user_group)) + { + array_push($navi_in, $navigation->id); + } + } + + if (sizeof($navi_in)) { + $sql = " + SELECT * + FROM " . PREFIX . "_navigation_items + WHERE status = '1' + AND navigation_id IN(" . implode(',', $navi_in) . ") + ORDER BY navigation_id ASC, position ASC + "; + } + else + { + return; + } + } + + $nav_items = array(); + $sql = $AVE_DB->Query($sql); + while ($row_nav_item = $sql->FetchAssocArray()) + { + $nav_items[$row_nav_item['parent_id']][] = $row_nav_item; + } + + $sitemap = ''; + if (sizeof($nav_items)) + { + printSitemap($nav_items, $sitemap); + } + + echo $sitemap; +} + +/** + * Рекурсивная функция формирования карты сайта + * + * @param int $nav_items + * @param string $sitemap + * @param int $parent + */ +function printSitemap(&$nav_items, &$sitemap = '', $parent = 0) +{ + $sitemap .= empty($sitemap) ? '