mirror of
https://github.com/slawkens/myaac.git
synced 2025-10-17 19:23:27 +02:00
* reverted removing base href in html head
* added anonymous usage statistics reporting * (fix) don't show templates that doesn't exist in Menus option in Admin Panel * (fix) menu ordering by category * (fix) showing changelog with urls in Admin Panel * (internal) moved uninstall logic to Plugins class
This commit is contained in:
@@ -17,10 +17,12 @@ if(!file_exists(BASE . 'CHANGELOG')) {
|
||||
}
|
||||
|
||||
$changelog = file_get_contents(BASE . 'CHANGELOG');
|
||||
$changelog = nl2br(htmlspecialchars($changelog));
|
||||
$changelog = htmlspecialchars($changelog);
|
||||
|
||||
// replace URLs with <a href...> elements
|
||||
$changelog = preg_replace('/\s(\w+:\/\/)(\S+)/', ' <a href="\\1\\2" target="_blank">\\1\\2</a>', $changelog);
|
||||
|
||||
$changelog = nl2br($changelog);
|
||||
|
||||
echo '<div>' . $changelog . '</div>';
|
||||
?>
|
||||
|
@@ -29,16 +29,16 @@ if(isset($_REQUEST['template'])) {
|
||||
}
|
||||
|
||||
$db->query('DELETE FROM `' . TABLE_PREFIX . 'menu` WHERE `template` = ' . $db->quote($template));
|
||||
foreach($post_menu as $id => $menus) {
|
||||
foreach($post_menu as $category => $menus) {
|
||||
foreach($menus as $i => $menu) {
|
||||
if(empty($menu)) // don't save empty menu item
|
||||
continue;
|
||||
|
||||
try {
|
||||
$db->insert(TABLE_PREFIX . 'menu', array('template' => $template, 'name' => $menu, 'link' => $post_menu_link[$id][$i], 'category' => $id, 'ordering' => $i));
|
||||
$db->insert(TABLE_PREFIX . 'menu', array('template' => $template, 'name' => $menu, 'link' => $post_menu_link[$category][$i], 'category' => $category, 'ordering' => $i));
|
||||
}
|
||||
catch(PDOException $error) {
|
||||
warning('Error while adding menu item (' . $name . '): ' . $error->getMessage());
|
||||
warning('Error while adding menu item (' . $menu . '): ' . $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -97,6 +97,12 @@ if(isset($_REQUEST['template'])) {
|
||||
}
|
||||
else {
|
||||
$templates = $db->query('SELECT `template` FROM `' . TABLE_PREFIX . 'menu` GROUP BY `template`;')->fetchAll();
|
||||
foreach($templates as $key => $value) {
|
||||
$file = TEMPLATES . $value['template'] . '/config.php';
|
||||
if(!file_exists($file)) {
|
||||
unset($templates[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
echo $twig->render('admin.menus.form.html.twig', array(
|
||||
'templates' => $templates
|
||||
|
@@ -14,67 +14,16 @@ $title = 'Plugin manager';
|
||||
require(SYSTEM . 'hooks.php');
|
||||
require(LIBS . 'plugins.php');
|
||||
|
||||
function deleteDirectory($dir) {
|
||||
if(!file_exists($dir)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!is_dir($dir)) {
|
||||
return unlink($dir);
|
||||
}
|
||||
|
||||
foreach(scandir($dir) as $item) {
|
||||
if($item == '.' || $item == '..') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return rmdir($dir);
|
||||
}
|
||||
|
||||
echo $twig->render('admin.plugins.form.html.twig');
|
||||
|
||||
if(isset($_REQUEST['uninstall'])){
|
||||
$uninstall = $_REQUEST['uninstall'];
|
||||
|
||||
$filename = BASE . 'plugins/' . $uninstall . '.json';
|
||||
if(!file_exists($filename)) {
|
||||
error('Plugin ' . $uninstall . ' does not exist.');
|
||||
if(Plugins::uninstall($uninstall)) {
|
||||
success('Successfully uninstalled plugin ' . $uninstall);
|
||||
}
|
||||
else {
|
||||
$string = file_get_contents($filename);
|
||||
$plugin_info = json_decode($string, true);
|
||||
if($plugin_info == false) {
|
||||
error('Cannot load plugin info ' . $uninstall . '.json');
|
||||
}
|
||||
else {
|
||||
if(!isset($plugin_info['uninstall'])) {
|
||||
error("Plugin doesn't have uninstall options defined. Skipping...");
|
||||
}
|
||||
else {
|
||||
$success = true;
|
||||
foreach($plugin_info['uninstall'] as $file) {
|
||||
$file = BASE . $file;
|
||||
if(!deleteDirectory($file)) {
|
||||
$success = false;
|
||||
}
|
||||
}
|
||||
|
||||
if($success) {
|
||||
if($cache->enabled()) {
|
||||
$cache->delete('templates');
|
||||
}
|
||||
success('Successfully uninstalled plugin ' . $uninstall);
|
||||
}
|
||||
else {
|
||||
error('Error while uninstalling plugin ' . $uninstall . ': ' . error_get_last());
|
||||
}
|
||||
}
|
||||
}
|
||||
error('Error while uninstalling plugin ' . $plugin_name . ': ' . Plugins::getError());
|
||||
}
|
||||
}
|
||||
else if(isset($_FILES["plugin"]["name"]))
|
||||
|
Reference in New Issue
Block a user