From 696f879a31dc5d0313b700f6a5bd7e6a1b93b055 Mon Sep 17 00:00:00 2001
From: kolaente
Date: Thu, 10 Nov 2016 22:45:17 +0100
Subject: [PATCH] Added the ability to update System and apps seperatly
---
admin/action.php | 126 ---------
.../js/tinymce/skins/light/skin.min.css | 4 +-
admin/general_config.php | 46 ++--
admin/install-dev.php | 2 +-
admin/lang/lang.de.php | 32 ++-
admin/lang/lang.en.php | 32 ++-
admin/update.php | 255 ++++++++++++++++++
apps/Files/config.php | 2 +
apps/SimplePages/config.php | 4 +-
apps/logfiles/config.php | 2 +
apps/meta/config.php | 2 +
apps/sidebar/config.php | 2 +
apps/testing/config.php | 2 +
13 files changed, 325 insertions(+), 186 deletions(-)
create mode 100644 admin/update.php
diff --git a/admin/action.php b/admin/action.php
index f265005..ed13799 100755
--- a/admin/action.php
+++ b/admin/action.php
@@ -149,132 +149,6 @@ if (hasPerm('manage_system'))
}
}
}
-
- //Update
- if (isset($_GET['update']))
- {
- printHeader($lang->get('general_update'));
- if (hasPerm('update'))
- {
- $nextVersion = $MCONF['version_num'] + 1;
-
- //Check for version.json on the remote server
- $dUri = $MCONF['update_uri'] . 'v' . $nextVersion . '/';
- if(remote_file_exists($dUri . 'version.json'))
- {
- $version_remote = json_decode(file_get_contents($dUri . 'version.json'));
- //Check if the remote version is newer
- if ($version_remote->versionNum > $MCONF['version_num'])
- {
- //Download the update
- if (copy($dUri . 'update.v' . $version_remote->versionNum . '.incremental.zip', 'update.zip'))
- {
- //Check for md5 hash
- if (md5_file('update.zip') == $version_remote->md5)
- {
- //unzip to temporary folder
- $updateTmpDir = 'updateTmp/';
- if (!file_exists($updateTmpDir))
- {
- if(mkdir($updateTmpDir, 0777) === false)
- {
- echo msg('fail', 'Error creating temporary folder.');
- }
- }
-
- $zip = new ZipArchive;
- $res = $zip->open('update.zip');
- if ($res === true)
- {
- $zip->extractTo($updateTmpDir);
- $zip->close();
- $updateInfos = json_decode(file_get_contents($updateTmpDir . 'filesToUpdate.json'));
-
- $isUp = false;
- $fTU = [];
- foreach ($updateInfos->files as $num => $file)
- {
- $fTU[] = $file;
- $upNeu = $updateTmpDir . $file;
- $upRem = '../' . $file;
- if (copy($upNeu, $upRem))
- {
- echo msg('succes', sprintf($lang->get('action_update_item_succss'), $file));
- $isUp = true;
- } else
- {
- echo msg('fail', sprintf($lang->get('action_update_item_fail'), $file));
- }
- }
-
- //Update Version in Config File
- $config = Yaml::parse(file_get_contents('../inc/config.yml', FILE_USE_INCLUDE_PATH));
- $config['Versioning']['version'] = $version_remote->version;
- $config['Versioning']['version_num'] = $version_remote->versionNum;
- $configfile = Yaml::dump($config);
- if (!file_put_contents('../inc/config.yml', $configfile))
- {
- echo msg('fail', $lang->get('action_update_config_fail'));
- }
-
- //Remove "old" update
- if (rrmdir($updateTmpDir) && $isUp && unlink('update.zip'))
- {
- echo msg('succes', $lang->get('action_update_succss') . ' ' . $lang->get('back') . '');
- } else
- {
- echo msg('fail', $lang->get('action_update_fail') . ' ' . $lang->get('back') . '');
- }
- } else
- {
- echo msg('fail', $lang->get('action_update_fail_unzip'));
- }
- } else
- {
- echo msg('fail', $lang->get('action_update_md5_fake'));
- }
- } else
- {
- echo msg('fail', $lang->get('action_update_fail_copy'));
- }
- } else
- {
- echo msg('info', $lang->get('general_version_current_new'));
- }
- } else
- {
- echo msg('info', $lang->get('general_version_current_new'));
- }
- }
- }
-
- //Show Changelog
- if(isset($_GET['showChangelog']))
- {
- printHeader($lang->get('general_showChangelog'));
- echo '';
- if(hasPerm('update'))
- {
- if(isset($_GET['v']))
- {
- if(remote_file_exists($MCONF['update_uri'] . 'v' . $_GET['v'] . '/changelog.md'))
- {
- require_once '../inc/libs/Parsedown.php';
- $Parsedown = new Parsedown();
- echo $Parsedown->text(file_get_contents($MCONF['update_uri'] . 'v' . $_GET['v'] . '/changelog.md'));
- }
- }
- else
- {
- echo 'Missing Version.';
- }
- }
- else
- {
- echo msg('info', $lang->get('missing_permission'));
- }
- echo '
';
- }
} else
{
printHeader($lang->get('action_edit_content'));
diff --git a/admin/assets/js/tinymce/skins/light/skin.min.css b/admin/assets/js/tinymce/skins/light/skin.min.css
index e200385..bd75269 100755
--- a/admin/assets/js/tinymce/skins/light/skin.min.css
+++ b/admin/assets/js/tinymce/skins/light/skin.min.css
@@ -7,8 +7,8 @@
.mce-toolbar .mce-btn { background: #fff; border: 0; }
.mce-toolbar .mce-btn i { color: #555; }
.mce-toolbar .mce-btn:hover i { color: #333; }
-.mce-primary { background: #6ba72b; }
-.mce-primary:hover { background: #68a029; }
+.mce-primary { background: #4CAF50; }
+.mce-primary:hover { background: #4CAF50; }
.mce-btn-group:not(:first-child) { border-left: 3px solid #fff; }
.mce-menu-item:hover { background: #eee; }
.mce-menu-item.mce-disabled * { color: #ddd !important; }
diff --git a/admin/general_config.php b/admin/general_config.php
index 149ba82..6ce41d9 100755
--- a/admin/general_config.php
+++ b/admin/general_config.php
@@ -40,39 +40,29 @@ tinymce();
{
?>
- get('general_version'); ?>
- get('general_version_current'); ?>:
+
get('update_version'); ?>
+ get('update_version_current'); ?>:
- versionNum > $MCONF['version_num'])
- {
- echo $lang->get('general_new_version') . ' ' . $version_remote->version . ' ' . $lang->get('general_update') . '';
-
- //Check for Changelog
- if(remote_file_exists($MCONF['update_uri'] . 'v' . $nextVersion . '/changelog.md'))
- {
- echo ' Changelog';
- }
- } else
- {
- echo $lang->get('general_version_current_new');
- }
- }else
- {
- echo $lang->get('general_version_current_new');
- }
- ?>
+
+
+
+
+
Überprüfe auf Updates...
+
+
+
+
';
require_once '../inc/footer.php';
?>
\ No newline at end of file
diff --git a/admin/install-dev.php b/admin/install-dev.php
index b74eb3b..1bd4315 100644
--- a/admin/install-dev.php
+++ b/admin/install-dev.php
@@ -71,7 +71,7 @@ if (isset($_POST['submit']))
$CONFIG['Templating']['tpl_webUri'] = 'website_uri';
$CONFIG['Versioning']['version'] = '0.94 Beta';
$CONFIG['Versioning']['version_num'] = 5;
- $CONFIG['Versioning']['update_uri'] = 'https://cdn.kola-entertainments.de/cms/';
+ $CONFIG['Versioning']['update_uri'][] = 'https://cdn.kola-entertainments.de/cms/';
$CONFIG['Mail']['smtp'] = false;
//Mail Settings
diff --git a/admin/lang/lang.de.php b/admin/lang/lang.de.php
index f9ab1d0..7102cab 100755
--- a/admin/lang/lang.de.php
+++ b/admin/lang/lang.de.php
@@ -81,15 +81,9 @@ $lang['general_construction_mode'] = 'Baustellenzustand';
$lang['general_end_construction_mode'] = 'Baustellenzustand aufheben';
$lang['general_start_construction_mode'] = 'Seite in Baustellenzustand versetzen';
$lang['general_edit_message'] = 'Meldung bearbeiten';
-$lang['general_version'] = 'Version';
-$lang['general_version_current'] = 'Installierte Version';
-$lang['general_new_version'] = 'Neue Version verfügbar!';
-$lang['general_version_current_new'] = 'Die installierte Version ist aktuell.';
-$lang['general_update'] = 'Update';
$lang['general_database'] = 'Datenbank';
$lang['general_create_backup'] = 'Datenbank Backup erstellen';
$lang['general_go_phpmyadmin'] = 'Zu phpmyadmin';
-$lang['general_showChangelog'] = 'Changelog anzeigen';
/*
* Manage Admins
@@ -200,11 +194,21 @@ $lang['action_construction_confirm'] = 'Wollen Sie die Webseite wirklich in den
$lang['action_construction_removed_success'] = 'Der Baustellenzustand wurde erfolgreich aufgehoben.';
$lang['action_construction_remove'] = 'Wollen Sie den Baustellenzustand wirklich aufheben?';
$lang['action_change_page_title_success'] = 'Die Änderungen des Seitentitels wurden erfolgreich gespeichert.';
-$lang['action_update_item_succss'] = '"%1$s" wurde erfolgreich upgedatet.';
-$lang['action_update_item_fail'] = 'Fehler beim Updaten von "%1$s"';
-$lang['action_update_succss'] = 'Mowie CMS wurde erfolgreich upgedatet.';
-$lang['action_update_fail'] = 'Fehler beim Updaten.';
-$lang['action_update_config_fail'] = 'Beim Bearbeiten der Configdatei ist ein Fehler aufgetreten.';
-$lang['action_update_fail_unzip'] = 'Fehler beim Entpacken des Updates.';
-$lang['action_update_md5_fake'] = 'Die Heruntergeladene Datei ist vermutlich falsch.';
-$lang['action_update_fail_copy'] = 'Fehler beim Herunterladen des Updates. Hinweis: Der Nutzer, unter welchem der Webserver läuft, muss im Verzeichnis /admin Schreibrechte haben!';
\ No newline at end of file
+
+//Update
+$lang['update_title'] = 'Update';
+$lang['update_showChangelog'] = 'Changelog anzeigen';
+$lang['update_item_succss'] = '"%1$s" wurde erfolgreich upgedatet.';
+$lang['update_item_fail'] = 'Fehler beim Updaten von "%1$s"';
+$lang['update_succss'] = 'Mowie CMS wurde erfolgreich upgedatet.';
+$lang['update_app_succss'] = '"%1$s" wurde erfolgreich upgedatet.';
+$lang['update_fail'] = 'Fehler beim Updaten.';
+$lang['update_config_fail'] = 'Beim Bearbeiten der Configdatei ist ein Fehler aufgetreten.';
+$lang['update_fail_unzip'] = 'Fehler beim Entpacken des Updates.';
+$lang['update_md5_fake'] = 'Die Heruntergeladene Datei ist vermutlich falsch.';
+$lang['update_fail_copy'] = 'Fehler beim Herunterladen des Updates. Hinweis: Der Nutzer, unter welchem der Webserver läuft, muss im Verzeichnis /admin Schreibrechte haben!';
+$lang['update_version'] = 'Version';
+$lang['update_version_current'] = 'Installierte Version';
+$lang['update_new_version'] = 'Neue Version verfügbar!';
+$lang['update_version_current_new'] = 'Die installierte Version ist aktuell.';
+$lang['update_app_update_available'] = 'App-Update - Neue Version für "%1$s" verfügbar: %2$s';
\ No newline at end of file
diff --git a/admin/lang/lang.en.php b/admin/lang/lang.en.php
index 4022dd5..bcfef09 100755
--- a/admin/lang/lang.en.php
+++ b/admin/lang/lang.en.php
@@ -82,14 +82,9 @@ $lang['general_end_construction_mode'] = 'End Construction Mode';
$lang['general_start_construction_mode'] = 'Start Construction Mode';
$lang['general_edit_message'] = 'Edit Construction Message';
$lang['general_version'] = 'Version';
-$lang['general_version_current'] = 'Installed Version';
-$lang['general_new_version'] = 'New Version Available!';
-$lang['general_version_current_new'] = 'Installed Version is up-to-date';
-$lang['general_update'] = 'Update';
$lang['general_database'] = 'Database';
$lang['general_create_backup'] = 'Create Database Backup';
$lang['general_go_phpmyadmin'] = 'phpmyadmin';
-$lang['general_showChangelog'] = 'Show Changelog';
/*
* Manage Admins
@@ -200,11 +195,22 @@ $lang['action_construction_confirm'] = 'Are you sure you want to enable construc
$lang['action_construction_removed_success'] = 'Construction Mode was successfully disabled.';
$lang['action_construction_remove'] = 'Are you sure you want to disable construction mode?';
$lang['action_change_page_title_success'] = 'Page Title was successfully edited.';
-$lang['action_update_item_succss'] = '"%1$s" was successfully updated.';
-$lang['action_update_item_fail'] = 'An error occured while updating "%1$s"';
-$lang['action_update_succss'] = 'Mowie CMS was updated successfully.';
-$lang['action_update_fail'] = 'An error occured while updating.';
-$lang['action_update_config_fail'] = 'An error occured while updating the config file.';
-$lang['action_update_fail_unzip'] = 'An error occured while unpacking the update.';
-$lang['action_update_md5_fake'] = 'The downloaded file has a wrong checksum.';
-$lang['action_update_fail_copy'] = 'An error occured while downloading the update. Hint: The webserver needs writing permissions in the folder /admin!';
\ No newline at end of file
+
+
+//Update
+$lang['update_title'] = 'Update';
+$lang['update_showChangelog'] = 'Show Changelog';
+$lang['update_item_succss'] = '"%1$s" was successfully updated.';
+$lang['update_item_fail'] = 'An error occured while updating "%1$s"';
+$lang['update_succss'] = 'Mowie CMS was updated successfully.';
+$lang['update_app_succss'] = '"%1$s" was updated successfully.';
+$lang['update_fail'] = 'An error occured while updating.';
+$lang['update_config_fail'] = 'An error occured while updating the config file.';
+$lang['update_fail_unzip'] = 'An error occured while unpacking the update.';
+$lang['update_md5_fake'] = 'The downloaded file has a wrong checksum.';
+$lang['update_fail_copy'] = 'An error occured while downloading the update. Hint: The webserver needs writing permissions in the folder /admin!';
+$lang['update_version'] = 'Version';
+$lang['update_version_current'] = 'Installed Version';
+$lang['update_new_version'] = 'New Version Available!';
+$lang['update_version_current_new'] = 'Installed Version is up-to-date';
+$lang['update_app_update_available'] = 'App-Update - New Version for "%1$s" available: %2$s';
\ No newline at end of file
diff --git a/admin/update.php b/admin/update.php
new file mode 100644
index 0000000..63b9355
--- /dev/null
+++ b/admin/update.php
@@ -0,0 +1,255 @@
+versionNum > $MCONF['version_num'])
+ {
+ $foundNewVersion = true;
+
+ //Check for Changelog
+ if (remote_file_exists($updateUrl . '/changelog.md'))
+ {
+ $hasChangelog = $update_server;
+ }
+ }
+ }
+ }
+
+ if ($foundNewVersion)
+ {
+ echo $lang->get('update_new_version') . ' ' . $version_remote->version . ' ' . $lang->get('update_title') . '';
+ if ($hasChangelog !== false)
+ {
+ echo ' Changelog';
+ }
+ } else
+ {
+ echo $lang->get('update_version_current_new');
+ }
+
+ //Check for App-Updates
+ foreach ($apps->getApps() as $appdir => $app)
+ {
+ if(isset($app['app_build']))
+ {
+ $nextVersion = $app['app_build'] + 1;
+ $foundNewVersion = false;
+ $hasChangelog = false;
+
+ foreach ($MCONF['update_uri'] as $update_server)
+ {
+ $updateUrl = $update_server . 'apps/' . str_replace(' ', '-', $app['app_name']) . '/v' . $nextVersion;
+ if (remote_file_exists($updateUrl . '/version.json'))
+ {
+ $version_remote = json_decode(file_get_contents($updateUrl . '/version.json'));
+ if ($version_remote->versionNum > $app['app_build'])
+ {
+ $foundNewVersion = true;
+
+ //Check for Changelog
+ if (remote_file_exists($updateUrl . '/changelog.md'))
+ {
+ $hasChangelog = $update_server;
+ }
+ }
+ }
+ }
+
+ if ($foundNewVersion)
+ {
+ echo '
'.sprintf($lang->get('update_app_update_available'), $app['app_name'], $version_remote->version). ' ' . $lang->get('update_title') . '';
+ if ($hasChangelog !== false)
+ {
+ echo ' Changelog';
+ }
+ }
+ }
+ }
+ }
+ exit;
+}
+
+//Show Changelog
+if (isset($_GET['showChangelog']))
+{
+ printHeader($lang->get('update_showChangelog'));
+ echo '';
+ if (hasPerm('update'))
+ {
+ if(isset($_GET['server']))
+ {
+ //If we want to see the changelog for an app, we need to look in a different directory
+ $remoteSubDir = 'System';
+ if(isset($_GET['app']))
+ {
+ $remoteSubDir = 'apps/'.$_GET['app'];
+ }
+ if (isset($_GET['v']))
+ {
+ if (remote_file_exists(urldecode($_GET['server']) . $remoteSubDir . '/v' . $_GET['v'] . '/changelog.md'))
+ {
+ require_once '../inc/libs/Parsedown.php';
+ $Parsedown = new Parsedown();
+ echo $Parsedown->text(file_get_contents(urldecode($_GET['server']) . $remoteSubDir . '/v' . $_GET['v'] . '/changelog.md'));
+ }
+ } else
+ {
+ echo 'Missing Version.';
+ }
+ }
+ else
+ {
+ echo 'Missing Server';
+ }
+ } else
+ {
+ echo msg('info', $lang->get('missing_permission'));
+ }
+ echo '
'.$lang->get('back').' ';
+ exit;
+}
+
+
+//Update
+if (isset($_GET['update']))
+{
+ printHeader($lang->get('update_title'));
+ if (hasPerm('update'))
+ {
+ $updated = false;
+ foreach ($MCONF['update_uri'] as $update_server)
+ {
+ $nextVersion = $MCONF['version_num'] + 1;
+ $installedVersion = $MCONF['version_num'];
+
+ //If we want to see the changelog for an app, we need to look in a different directory
+ $remoteSubDir = 'System';
+ $systemSubDir = '../';
+ if (isset($_GET['appUpdate']))
+ {
+ require '../apps/' . urldecode($_GET['appUpdate']) . '/config.php';
+ $remoteSubDir = 'apps/' . str_replace(' ', '-', $_CONF['app_name']);
+ $nextVersion = $_CONF['app_build'] + 1;
+ $systemSubDir = '../apps/' . urldecode($_GET['appUpdate']) . '/';
+ $installedVersion = $_CONF['app_build'];
+ }
+
+ //Check for version.json on the remote server
+ $dUri = $update_server . $remoteSubDir . '/v' . $nextVersion . '/';
+ if (remote_file_exists($dUri . 'version.json'))
+ {
+ $version_remote = json_decode(file_get_contents($dUri . 'version.json'));
+ //Check if the remote version is newer
+ if ($version_remote->versionNum > $installedVersion)
+ {
+ //Download the update
+ if (copy($dUri . 'update.v' . $version_remote->versionNum . '.incremental.zip', 'update.zip'))
+ {
+ $updated = true;
+ //Check for md5 hash
+ if (md5_file('update.zip') == $version_remote->md5)
+ {
+ //unzip to temporary folder
+ $updateTmpDir = 'updateTmp/';
+ if (!file_exists($updateTmpDir))
+ {
+ if (mkdir($updateTmpDir, 0777) === false)
+ {
+ echo msg('fail', 'Error creating temporary folder.');
+ }
+ }
+
+ $zip = new ZipArchive;
+ $res = $zip->open('update.zip');
+ if ($res === true)
+ {
+ $zip->extractTo($updateTmpDir);
+ $zip->close();
+ $updateInfos = json_decode(file_get_contents($updateTmpDir . 'filesToUpdate.json'));
+
+ $isUp = false;
+ $fTU = [];
+ foreach ($updateInfos->files as $num => $file)
+ {
+ $fTU[] = $file;
+ $upNeu = $updateTmpDir . $file;
+ $upRem = $systemSubDir . $file;
+ if (copy($upNeu, $upRem))
+ {
+ echo msg('succes', sprintf($lang->get('update_item_succss'), $file));
+ $isUp = true;
+ } else
+ {
+ echo msg('fail', sprintf($lang->get('update_item_fail'), $file));
+ }
+ }
+
+ //Update Version in Config File - only if we don't update an app
+ if (!isset($_GET['appUpdate']))
+ {
+ $config = Yaml::parse(file_get_contents('../inc/config.yml', FILE_USE_INCLUDE_PATH));
+ $config['Versioning']['version'] = $version_remote->version;
+ $config['Versioning']['version_num'] = $version_remote->versionNum;
+ $configfile = Yaml::dump($config);
+ if (!file_put_contents('../inc/config.yml', $configfile))
+ {
+ echo msg('fail', $lang->get('general_config_fail'));
+ }
+ }
+
+ //Remove "old" update
+ if (rrmdir($updateTmpDir) && $isUp && unlink('update.zip'))
+ {
+ if(isset($_GET['appUpdate']))
+ {
+ echo msg('succes', sprintf($lang->get('update_app_succss'), $_CONF['app_name']) . ' ' . $lang->get('back') . '');
+ }
+ else
+ {
+ echo msg('succes', $lang->get('update_succss') . ' ' . $lang->get('back') . '');
+ }
+ } else
+ {
+ echo msg('fail', $lang->get('update_fail') . ' ' . $lang->get('back') . '');
+ }
+ } else
+ {
+ echo msg('fail', $lang->get('update_fail_unzip'));
+ }
+ } else
+ {
+ echo msg('fail', $lang->get('update_md5_fake'));
+ }
+ } else
+ {
+ echo msg('fail', $lang->get('update_fail_copy'));
+ }
+ } else
+ {
+ echo msg('info', $lang->get('update_version_current_new'));
+ }
+ }
+ }
+
+ if(!$updated)
+ {
+ echo msg('info', $lang->get('update_version_current_new'));
+ }
+ }
+}
\ No newline at end of file
diff --git a/apps/Files/config.php b/apps/Files/config.php
index 39964fc..3994245 100755
--- a/apps/Files/config.php
+++ b/apps/Files/config.php
@@ -4,6 +4,8 @@ $GLOBALS['lang']->set('Manage Files', 'files_title', 'en');
$_CONF['app_name'] = 'Files';
$_CONF['app_desc'] = 'Ein Modul zum Anzeigen & Uploaden von Dateien';
+$_CONF['app_build'] = 1;
+$_CONF['app_version'] = 'v0.9 Beta';
$_CONF['menu_top'] = ' '.$GLOBALS['lang']->get('files_title');
$_CONF['menu'] = ['menu_top' => 'index.php'];
$_CONF['type'] = 'none';
diff --git a/apps/SimplePages/config.php b/apps/SimplePages/config.php
index acd4088..5047228 100755
--- a/apps/SimplePages/config.php
+++ b/apps/SimplePages/config.php
@@ -12,6 +12,8 @@ $GLOBALS['lang']->set('Create New Page', 'sp_create_new', 'en');
$_CONF['app_name'] = 'SimplePages';
$_CONF['app_desc'] = 'Wird benutzt, um Einfache statische Seitn zu erzeugen und zu verwalten.';
+$_CONF['app_build'] = 1;
+$_CONF['app_version'] = 'v0.9 Beta';
$_CONF['base_url'] = '/'; //Basisurl des moduls, wenn es über das Frontend aufgerufen wird
$_CONF['base_file'] = 'front/page.php'; //Datei, die angezeigt wird, wenn die basisurl aufgerufen wird
$_CONF['menu_top'] = ' '.$GLOBALS['lang']->get('sp_pages'); //Name des Moduls, wie es im Adminbereich im Hauptmenü auftaucht
@@ -42,5 +44,3 @@ if(file_exists($iniFile))
$db->get();
if(isset($db->data[0])) $confirmationUserMail = $db->data[0]['mail'];*/
}
-
-//print_r($config);
\ No newline at end of file
diff --git a/apps/logfiles/config.php b/apps/logfiles/config.php
index bbe1172..cefa15c 100755
--- a/apps/logfiles/config.php
+++ b/apps/logfiles/config.php
@@ -5,6 +5,8 @@ $GLOBALS['lang']->set('Logfiles', 'log_title', 'en');
$_CONF['app_name'] = 'Logfiles';
$_CONF['app_desc'] = 'Logfiles';
+$_CONF['app_build'] = 1;
+$_CONF['app_version'] = 'v0.9 Beta';
//$_CONF['base_url'] = 'demomodul/'; //Basisurl des moduls, wenn es über das Frontend aufgerufen wird
$_CONF['base_file'] = 'log.php'; //Datei, die angezeigt wird, wenn die basisurl aufgerufen wird
$_CONF['menu_top'] = ' '.$GLOBALS['lang']->get('log_title'); //Name des Moduls, wie es im Adminbereich im Hauptmenü auftaucht
diff --git a/apps/meta/config.php b/apps/meta/config.php
index 025102f..8d4ead1 100755
--- a/apps/meta/config.php
+++ b/apps/meta/config.php
@@ -1,6 +1,8 @@