SVarlamov
9 years ago
commit
e80b95ce11
3 changed files with 192 additions and 0 deletions
@ -0,0 +1,15 @@ |
|||||||
|
## quickfinder |
||||||
|
|
||||||
|
# Модуль Быстрый переход v1.0 |
||||||
|
|
||||||
|
### Для AVE.CMS 3.0 (b35) v1.5 ! |
||||||
|
|
||||||
|
## Данный модуль является альтернативным способом организации меню навигации на сайте. |
||||||
|
|
||||||
|
* Он представлен в виде выпадающего списка разделов и подразделов вашего сайта. Для использования модуля, разместите системный тег <strong>[mod_quickfinder:XXX]</strong> в нужном месте вашего шаблона, где XXX - идентификаторы меню навигации указанные через запятую. |
||||||
|
|
||||||
|
## Перед копированием модуля в папку modules, удалите файл README.md, копируйте только корневую папку quickfinder со всем ее содержимым внутри! |
||||||
|
|
||||||
|
## Changelog: |
||||||
|
|
||||||
|
15.06.2016 - версия 1.0 |
@ -0,0 +1,173 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* AVE.cms - Модуль Быстрый переход |
||||||
|
* |
||||||
|
* @package AVE.cms |
||||||
|
* @subpackage module_QuickFinder |
||||||
|
* @filesource |
||||||
|
*/ |
||||||
|
|
||||||
|
if(!defined('BASE_DIR')) exit; |
||||||
|
|
||||||
|
if (defined('ACP')) |
||||||
|
{ |
||||||
|
$modul['ModuleName'] = 'Быстрый переход'; |
||||||
|
$modul['ModuleSysName'] = 'quickfinder'; |
||||||
|
$modul['ModuleVersion'] = '1.2'; |
||||||
|
$modul['ModuleDescription'] = 'Данный модуль является альтернативным способом организации меню навигации на сайте. Он представлен в виде выпадающего списка разделов и подразделов вашего сайта. Для использования модуля, разместите системный тег <strong>[mod_quickfinder:XXX]</strong> в нужном месте вашего шаблона, где XXX - идентификаторы меню навигации указанные через запятую.'; |
||||||
|
$modul['ModuleAutor'] = 'Arcanum, UPD Repellent '; |
||||||
|
$modul['ModuleCopyright'] = '© 2007-2016 AVE.CMS'; |
||||||
|
$modul['ModuleIsFunction'] = 1; |
||||||
|
$modul['ModuleAdminEdit'] = 0; |
||||||
|
$modul['ModuleFunction'] = 'mod_quickfinder'; |
||||||
|
$modul['ModuleTag'] = '[mod_quickfinder:XXX]'; |
||||||
|
$modul['ModuleTagLink'] = null; |
||||||
|
$modul['ModuleAveTag'] = '#\\\[mod_quickfinder:([\\\d,]*)]#'; |
||||||
|
$modul['ModulePHPTag'] = "<?php mod_quickfinder(''$1''); ?>";
|
||||||
|
} |
||||||
|
|
||||||
|
function mod_quickfinder($navi_ids = '') |
||||||
|
{ |
||||||
|
global $AVE_DB, $AVE_Core, $navigations; |
||||||
|
|
||||||
|
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)) |
||||||
|
{ |
||||||
|
$sql[] = "( |
||||||
|
SELECT |
||||||
|
navigation_item_id, |
||||||
|
parent_id, |
||||||
|
title, |
||||||
|
document_id, |
||||||
|
target, |
||||||
|
level, |
||||||
|
alias, |
||||||
|
0 AS active |
||||||
|
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->user_group)) |
||||||
|
{ |
||||||
|
array_push($navi_in, $navigation->navigation_id); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (sizeof($navi_in)) { |
||||||
|
$sql = " |
||||||
|
SELECT |
||||||
|
navigation_item_id, |
||||||
|
parent_id, |
||||||
|
title, |
||||||
|
document_id, |
||||||
|
target, |
||||||
|
level, |
||||||
|
alias, |
||||||
|
0 AS active |
||||||
|
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()) |
||||||
|
{ |
||||||
|
if (empty($_REQUEST['module'])) |
||||||
|
{ |
||||||
|
$curent_doc_id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? $_GET['id'] : 1; |
||||||
|
if ($row_nav_item['alias'] == $AVE_Core->curentdoc->document_alias || |
||||||
|
'index.php?id=' . $row_nav_item['document_id'] == 'index.php?id=' . $curent_doc_id) |
||||||
|
{ |
||||||
|
$row_nav_item['active'] = 1; |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if ('index.php?id=' . $row_nav_item['document_id'] == 'index.php?module=' . $_REQUEST['module']) |
||||||
|
{ |
||||||
|
$row_nav_item['active'] = 1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$nav_items[$row_nav_item['parent_id']][] = $row_nav_item; |
||||||
|
} |
||||||
|
|
||||||
|
if (sizeof($nav_items)) |
||||||
|
{ |
||||||
|
$quickfinder = '<select class="form-control" name="quickfinder" onchange="eval(this.options[this.selectedIndex].value);">'; |
||||||
|
$quickfinder .= '<option></option>'; |
||||||
|
printQuickfinder($nav_items, $quickfinder); |
||||||
|
echo $quickfinder . '</select>'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function printQuickfinder(&$nav_items, &$quickfinder = '', $parent = '0') |
||||||
|
{ |
||||||
|
foreach ($nav_items[$parent] as $row) |
||||||
|
{ |
||||||
|
if (strpos('index.php?id=' . $row['document_id'], 'module=') === false && start_with('index.php?', 'index.php?id=' . $row['document_id'])) |
||||||
|
{ |
||||||
|
'index.php?id=' . $row['document_id'] .= '&doc=' . (empty($row['alias']) ? prepare_url($row['title']) : $row['alias']); |
||||||
|
} |
||||||
|
|
||||||
|
if (start_with('www.', 'index.php?id=' . $row['document_id'])) |
||||||
|
{ |
||||||
|
'index.php?id=' . $row['document_id'] = str_replace('www.', 'http://www.', 'index.php?id=' . $row['document_id']); |
||||||
|
} |
||||||
|
|
||||||
|
'index.php?id=' . $row['document_id'] = rewrite_link('index.php?id=' . $row['document_id']); |
||||||
|
|
||||||
|
if (!start_with('javascript:', 'index.php?id=' . $row['document_id'])) |
||||||
|
{ |
||||||
|
if ($row['target'] == '_blank') |
||||||
|
{ |
||||||
|
$row['alias'] = "javascript:window.open('" . $row['alias'] . "', '', '')"; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
$row['alias'] = "window.location.href = '" . $row['alias'] . "'"; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$quickfinder .= '<option class="level_' . $row['level'] . '" value="' . $row['alias'] . '"' . ($row['active'] == 1 ? ' selected="selected"' : '') . '>' . pretty_chars($row['title']) . '</option>'; |
||||||
|
|
||||||
|
if (isset($nav_items[$row['navigation_item_id']])) |
||||||
|
{ |
||||||
|
printQuickfinder($nav_items, $quickfinder, $row['navigation_item_id']); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
?> |
Loading…
Reference in new issue