function AdminExtensionsInstall() { global $db, $config, $site; // Для обратной совместимости $count = SafeEnv($_POST['count'], 11, int); $new_installed = array(); for ($i = 0; $i < $count; $i++) { if (isset($_POST['install_' . $i])) { $type = $_POST['type_' . $i]; $folder = RealPath2($_POST['folder_' . $i], 255, str); switch ($type) { case EXT_PLUGIN: $group = ''; $group_info = null; if (isset($_POST['group_' . $i])) { $group = $_POST['group_' . $i]; $group_info = ExtLoadInfo(System::config('plug_dir') . $group); } $path = RealPath2(System::config('plug_dir') . $group . '/' . $folder); $info = ExtLoadInfo($path, $group_info); if ($info === false) { continue; } if (isset($info['1.3'])) { // Установка старой версии плагина $function = ''; if (isset($info['function'])) { $function = $info['function']; } $type = ''; if (isset($info['function'])) { $type = $info['function']; } ExtAddPlugin($group, $folder, $info['function'], $info['type']); if (is_file($path . '/install.php')) { require $path . '/install.php'; } $new_installed[] = $info; } else { if (is_file($path . '/install.php')) { // Наличие install.php обязательно require $path . '/install.php'; $new_installed[] = $info; } } Audit('Расширения: Установка плагина: ' . $group . '/' . $folder); break; case EXT_BLOCK: $path = RealPath2(System::config('blocks_dir') . $folder); $info = ExtLoadInfo($path); if ($info === false) { continue; } require $path . '/install.php'; $new_installed[] = $info; Audit('Расширения: Установка блока: ' . $folder); break; case EXT_MODULE: $path = RealPath2(System::config('mod_dir') . $folder); $info = ExtLoadInfo($path); if ($info === false) { continue; } require $path . '/install.php'; if (isset($info['1.3'])) { // Добавляем пункт меню $folder = SafeEnv($folder, 255, str); $mod_name = SafeEnv($info['name'], 255, str); AdminMenuAddModule($mod_name, $folder); } $new_installed[] = $info; Audit('Расширения: Установка модуля: ' . $folder); break; case EXT_TEMPLATE: // Установка тем оформления происходит автоматически $path = RealPath2(System::config('tpl_dir') . $folder); $info = ExtLoadInfo($path); if ($info === false) { $info = array('name' => $folder, 'description' => '', 'author' => '', 'site' => '', 'version' => '1.0', 'admin' => false); } $admin = isset($info['admin']) && $info['admin'] ? '1' : '0'; ExtAddTemplate($info['name'], $folder, $admin); $new_installed[] = $info; Audit('Расширения: Установка шаблона: ' . $folder); break; } } } $html = ''; $html .= '<div style="border: 1px #cfcfcf solid; width: 50%; background-color: #fff; margin-bottom: 5px;">'; if (count($new_installed) > 0) { foreach ($new_installed as $info) { $html .= Indent(' <table style="width: 100%;"> <tr> <td style="padding: 5px;">' . SafeDB($info['name'], 255, str) . '</td> <td style="width: 120px; padding: 5px;"><img src="images/admin/accept.png" style="vertical-align: middle;" /> Установлено</td> </tr> </table> '); } $html .= '</div>' . System::admin()->Button('Назад', 'onclick="history.go(-1);"') . System::admin()->Button('Далее', "onclick=\"Admin.LoadPage('" . ADMIN_FILE . "?exe=extensions');\""); System::cache()->Clear('config'); } else { $html .= '<div style="padding: 5px;">Вы не выбрали расширения для установки. Нажмите "назад" и отметьте галочками расширения которые нужно установить.</div>'; $html .= '</div>' . System::admin()->Button('Назад', 'onclick="history.go(-1);"'); } System::admin()->AddTextBox('Установка расширений', $html); }
<?php /* * LinkorCMS 1.4 * � 2012 LinkorCMS Development Group */ ExtAddPlugin('userblock', 'test', '', PLUG_MANUAL);