blog->settings->addNamespace('dainstaller'); $s = $core->blog->settings->dainstaller; } else { $core->blog->settings->setNamespace('dainstaller'); $s = $core->blog->settings; } # Initialisation des variables $p_url = 'plugin.php?p=daInstaller'; $default_tab = !empty($_GET['tab']) ? html::escapeHTML($_GET['tab']) : 'plugins'; $page = !empty($_GET['page']) ? (integer)$_GET['page'] : 1; $nb_per_page = 10; $q = !empty($_GET['q']) ? trim(html::escapeHTML($_GET['q'])) : ''; $default_tab = !empty($q) ? 'search' : $default_tab; $mode = isset($_GET['mode']) ? html::escapeHTML($_GET['mode']) : 'plugins'; $ppaths = explode(PATH_SEPARATOR, DC_PLUGINS_ROOT); $plugins_path = array_pop($ppaths); $daInstaller = new daInstaller($core); unset($ppaths); $pages['plugins'] = $pages['themes'] = $pages['search'] = 1; $pages[$default_tab] = $page; # Ajout d'un plugin if (!empty($_POST['add_plugin']) && !empty($_POST['package_url'])) { try { $url = html::escapeHTML($_POST['package_url']); $dest = $plugins_path.'/'.basename($url); $ret_code = $daInstaller->processPackage($url,$dest,$core->plugins); http::redirect($p_url.'&p_added='.$ret_code); } catch (Exception $e) { $core->error->add($e->getMessage()); $default_tab = 'plugins'; } } # Mise à jour de plugins elseif (!empty($_POST['upd_plugins']) && !empty($_POST['plugins_id'])) { try { $daInstaller->check(); $ids = $_POST['plugins_id']; $modules = $daInstaller->getModules('plugins',true); foreach ($modules as $module) { if (in_array($module['id'],$ids)) { if (!$s->dainstaller_allow_multi_install) { $dest = $module['root'].'/../'.basename($module['file']); } else { $dest = $plugins_path.'/'.basename($module['file']); if ($module['root'] != $dest) @file_put_contents($module['root'].'/_disabled',''); } $ret_code[] = $daInstaller->processPackage($module['file'],$dest,$core->plugins); } } $arg = 'p_updated='.implode('|',$ids).'&p_status='.implode('|',$ret_code); http::redirect($p_url.'&tab=update&'.$arg); } catch (Exception $e) { $core->error->add($e->getMessage()); $default_tab = 'update'; } } # Ajout d'un thème elseif (!empty($_POST['add_theme']) && !empty($_POST['package_url'])) { try { $url = html::escapeHTML($_POST['package_url']); $dest = $core->blog->themes_path.'/'.basename($url); $core_themes = new dcModules($core); $core_themes->loadModules($core->blog->themes_path,null); $ret_code = $daInstaller->processPackage($url,$dest,$core_themes); http::redirect($p_url.'&tab=themes&t_added='.$ret_code); } catch (Exception $e) { unset($core_themes); $core->error->add($e->getMessage()); $default_tab = 'themes'; } } # Mise à jour de thèmes elseif (!empty($_POST['upd_themes']) && !empty($_POST['themes_id'])) { try { $daInstaller->check(); $core_themes = new dcModules($core); $core_themes->loadModules($core->blog->themes_path,null); $ids = $_POST['themes_id']; $modules = $daInstaller->getModules('themes',true); foreach ($modules as $module) { if (in_array($module['id'],$ids)) { $dest = $core->blog->themes_path.'/'.basename($module['file']); $ret_code[] = $daInstaller->processPackage($module['file'],$dest,$core_themes); } } $arg = 't_updated='.implode('|',$ids).'&t_status='.implode('|',$ret_code); http::redirect($p_url.'&tab=update&'.$arg); } catch (Exception $e) { unset($core_themes); $core->error->add($e->getMessage()); $default_tab = 'update'; } } # Et c'est parti ! $plugins_install = $core->plugins->installModules(); $daInstaller->check(false,true); /** * This function returns all error / success messages * * @return string */ function infoMessages() { $res = ''; $p_msg = '
'; $p_err = '%s
'; # Plugins install message if (!empty($_GET['p_added']) && $_GET['p_added'] != 2) { $res .= sprintf($p_msg,__('The plugin has been successfully installed.')); } # Themes install message if (!empty($_GET['t_added']) && $_GET['t_added'] != 2) { $res .= sprintf($p_msg,__('The theme has been successfully installed.')); } # Plugins update message if (!empty($_GET['p_updated'])) { $err = $upd = ''; $ids = explode('|',html::escapeHTML($_GET['p_updated'])); $status = explode('|',html::escapeHTML($_GET['p_status'])); foreach ($ids as $k => $v) { if ($status[$k] != 2) { $err .= ''.__('Install and update your extensions live from DotAddict.org').'
'; echo ''. ''.__('Detected updates for your system').'
'. ''. __('Changes can be required after installation of updates. Click on a support link before to be aware about'). '
'; } else { echo ''.__('No update available').'
'; } $u_p_list->display('plugins',$p_url); $u_t_list->display('themes',$p_url); echo ''.($a_p_nb > 0 ? sprintf(__('Available plugins (%s)'),$a_p_nb) : '').'
'; $a_p_list->display($pages['plugins'],$nb_per_page,'plugins',$p_url); echo ''.($a_t_nb > 0 ? sprintf(__('Available themes (%s)'),$a_t_nb) : '').'
'; $a_t_list->display($pages['themes'],5,'themes',$p_url); echo ''.sprintf(__('%u %s found'),$s_m_nb,__($mode)).'
'; if ($s_m_nb > 0) { $s_m_list->display($pages['search'],$nb_per_page,'search-'.$mode,$p_url); } } echo '