update for ave.cms 3.26
This commit is contained in:
parent
9ecc30bb80
commit
1909c87103
11
README.md
11
README.md
@ -1,3 +1,12 @@
|
||||
# module-sitemap
|
||||
|
||||
Модуль Карта сайта 1.26.1
|
||||
Модуль Карта сайта 1.26.1
|
||||
|
||||
|
||||
## Модуль предназначен для построения карты вашего сайта на основе существующих пунктов меню навигации.
|
||||
|
||||
* Для того, чтобы осуществить просмотр карты сайта, необходимо разместить системный тег <strong>[mod_sitemap:XXX]</strong> в теле какого-либо документа,
|
||||
* где XXX - идентификаторы меню навигации указанные через запятую. Например: [mod_sitemap:1,2,3] где 1,2,3 - ID созданных меню навигаций.
|
||||
|
||||
|
||||
## Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку sitemap со всем ее содержимым внутри!
|
4
sitemap/index.php
Normal file
4
sitemap/index.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
20
sitemap/info.php
Normal file
20
sitemap/info.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
if (! defined('BASE_DIR'))
|
||||
exit;
|
||||
|
||||
$module = array(
|
||||
'ModuleSysName' => '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' => "<?php mod_sitemap(''$1''); ?>"
|
||||
);
|
||||
?>
|
4
sitemap/lang/index.php
Normal file
4
sitemap/lang/index.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
3
sitemap/lang/ru.txt
Normal file
3
sitemap/lang/ru.txt
Normal file
@ -0,0 +1,3 @@
|
||||
[name]
|
||||
MODULE_NAME = "Карта сайта"
|
||||
MODULE_DESCRIPTION = "Данный модуль предназначен для построения карты вашего сайта на основании пунктов меню навигации. Для того, чтобы осуществить просмотр карты сайта, необходимо разместить системный тег <strong>[mod_sitemap:XXX]</strong> в теле какого-либо документа, где XXX - идентификаторы меню навигации указанные через запятую."
|
137
sitemap/module.php
Normal file
137
sitemap/module.php
Normal file
@ -0,0 +1,137 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* AVE.cms - Модуль Карта сайта
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module_SiteMap
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
if(!defined('BASE_DIR')) exit;
|
||||
|
||||
/**
|
||||
* Функция вывода карты сайта
|
||||
*
|
||||
* @param int $navi_ids - идентификатор меню навигации
|
||||
* или нескольких меню указанных через запятую
|
||||
* для формирования карты сайта.
|
||||
* Если идентификатор не указан используются все меню
|
||||
*/
|
||||
function mod_sitemap($navi_ids = '')
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
if (!empty($navi_ids))
|
||||
{
|
||||
$sql = array();
|
||||
|
||||
$navi_ids = explode(',', $navi_ids);
|
||||
|
||||
foreach ($navi_ids as $navi_id)
|
||||
{
|
||||
if (is_numeric($navi_id) && check_navi_permission($navi_id))
|
||||
{
|
||||
array_push($sql,
|
||||
"(
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_navigation_items
|
||||
WHERE status = '1'
|
||||
AND navigation_id = " . $navi_id . "
|
||||
ORDER BY position ASC
|
||||
)"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$sql = implode(' UNION ', $sql);
|
||||
|
||||
if (empty($sql)) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$navigations = get_navigations();
|
||||
|
||||
if (empty($navigations)) return;
|
||||
|
||||
$navi_in = array();
|
||||
foreach ($navigations as $navigation)
|
||||
{
|
||||
if (in_array(UGROUP, $navigation->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) ? '<ul class="sitemap">' : '<ul>';
|
||||
|
||||
foreach ($nav_items[$parent] as $row)
|
||||
{
|
||||
if (strpos($row['alias'], 'module=') === false && start_with('index.php?', $row['alias']))
|
||||
{
|
||||
$row['alias'] .= '&doc=' . (empty($row['alias']) ? prepare_url($row['title']) : $row['alias']);
|
||||
}
|
||||
|
||||
if (start_with('www.', $row['alias']))
|
||||
{
|
||||
$row['alias'] = str_replace('www.', 'http://www.', $row['alias']);
|
||||
}
|
||||
|
||||
$row['alias'] = str_ireplace('"//"','"/"',str_ireplace('///','/',rewrite_link($row['alias'])));
|
||||
|
||||
|
||||
$sitemap .= '<li><a href="' . $row['alias'] . '" target="' . $row['target'] . '">';
|
||||
$sitemap .= pretty_chars($row['title']) . '</a>';
|
||||
|
||||
if (isset($nav_items[$row['navigation_item_id']]))
|
||||
{
|
||||
printSitemap($nav_items, $sitemap, $row['navigation_item_id']);
|
||||
}
|
||||
|
||||
$sitemap .= '</li>';
|
||||
}
|
||||
|
||||
$sitemap .= '</ul>';
|
||||
}
|
||||
|
||||
?>
|
Loading…
x
Reference in New Issue
Block a user