Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 6474)
+++ /controller/wpsg_ShopController.class.php	(revision 6475)
@@ -2105,4 +2105,14 @@
 
 		} // public function hasMod($mod_name)
+		
+		/*
+		 * PrÃŒft ob eine Moduldatei vorhanden ist
+		 */
+		public function hasModInstalled($mod_key)
+		{
+			
+			return array_key_exists($mod_key, $this->arAllModule);
+			
+		}
 
 		/**
Index: /lib/filter_functions.inc.php
===================================================================
--- /lib/filter_functions.inc.php	(revision 6474)
+++ /lib/filter_functions.inc.php	(revision 6475)
@@ -355,6 +355,7 @@
         if ($force === true) $wpsg_lastupdate = false;
 		
-		$min = 30;
-
+		$min = 5;
+		$min = 0.1; 
+		
         if ($wpsg_lastupdate == false || $wpsg_lastupdate < time() - 60 * $min || !wpsg_isSizedArray($wpsg_update_data))
         {
@@ -373,6 +374,8 @@
 
 				$wpsg_update_data_return = json_decode($api_return, true);
-
-                if (wpsg_isSizedArray($wpsg_update_data))
+				
+				//die(wpsg_debug($wpsg_update_data_return));
+
+                if (wpsg_isSizedArray($wpsg_update_data) && isset($wpsg_update_data['returnCode']))
                 {
 
Index: ds/wpsg_mod_keygen.class.php
===================================================================
--- /mods/wpsg_mod_keygen.class.php	(revision 6474)
+++ 	(revision )
@@ -1,119 +1,0 @@
-<?php
-
-	/**
-	 * Admin Modul fÃŒr die Key Generierung 
-	 */
-	class wpsg_mod_keygen extends wpsg_mod_basic
-	{
-		
-		var $id = 14;		
-		var $lizenz = 0;
-		var $inline = true;
-		
-		/**
-		 * Costructor
-		 */
-		public function __construct()
-		{
-			
-			parent::__construct();
-			
-			$this->name = __('Keygen', 'wpsg');
-			$this->group = __('Sonstiges', 'wpsg');
-			$this->desc = __('Erlaubt das generieren von Keys.', 'wpsg');
-						
-		} // public function __construct()
-
-		public function settings_save()
-		{
-			
-			if (file_exists(@$_FILES['testkey']['tmp_name']))
-			{
-				
-				if (!class_exists('Crypt_RSA')) 
-				{
-
-					@set_include_path(WPSG_PATH.'/lib/phpseclib0.3.0/'.PATH_SEPARATOR.get_include_path());
-					require_once(WPSG_PATH.'/lib/phpseclib0.3.0/Crypt/RSA.php');
-						
-				}
-					 
-				$rsa = new Crypt_RSA();
-				$rsa->loadKey(file_get_contents(WPSG_PATH.'/lib/.htpublic'));
-				 
-				$arKey = @unserialize($rsa->decrypt(base64_decode(file_get_contents($_FILES['testkey']['tmp_name']))));
-				
-				$this->shop->addBackendMessage('nohspc_Testkey: <pre>'.print_r($arKey, 1).'</pre>');
-				
-			}
-			
-			if ($_REQUEST['wpsg_genkey'] == '1')
-			{
-			
-				$_SESSION['wpsg_mod_keygen'] = wpsg_xss($_REQUEST['wpsg_mod_keygen']);
-				
-				if ($_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_nr'] <= 0)
-				{
-					
-					$this->shop->addBackendError(__('Bitte eine SchlÃŒsselnummer angeben.', 'wpsg'));
-					return;
-					
-				}
-				
-				if (!preg_match('/\d{2}\.\d{2}\.\d{4}/', $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_date']))
-				{
-					
-					$this->shop->addBackendError(__('Bitte ein gÃŒltiges GÃŒltigkeitsdatum angeben.', 'wpsg'));
-					return;
-					
-				}
-				
-				if (!preg_match('/\d+\.\d+\.\d+/', $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_maxver']))
-				{
-					
-					$this->shop->addBackendError(__('Bitte eine gÃŒltige Maximale Versionsnummer angeben.', 'wpsg'));
-					return;
-					
-				}
-				
-				// Key generiere
-				if (!class_exists('Crypt_RSA'))
-				{
-				
-					@set_include_path(get_include_path().PATH_SEPARATOR.WPSG_PATH.'/lib/phpseclib0.3.0/');
-					require_once(WPSG_PATH.'/lib/phpseclib0.3.0/Crypt/RSA.php');
-					
-				}
-				
-				$rsa = new Crypt_RSA();
-				$rsa->loadKey(file_get_contents(WPSG_PATH.'/mods/mod_keygen/.htprivate'));
-				
-				$key = base64_encode($rsa->encrypt(serialize(array(
-					"anwendung" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_anwendung'],
-					"l" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_lizenz'],
-					"nr" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_nr'],
-					"date" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_date'],
-					"version" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_maxver'],
-					"mods" => $_REQUEST['wpsg_mod_keygen']['mods']
-				))));
-			 
-				header('Content-type: text/html');
-				header('Content-Disposition: attachment; filename="key.txt"');
-				
-				die($key);
-				
-			}
-			
-		} // public function settings_save()
-		
-		public function settings_edit()
-		{
-						
-			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_keygen/settings_edit.phtml');
-			unset($_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_key']);
-			
-		}
-		
-	} // class wpsg_mod_keygen extends wpsg_mod_basic
-		
-?>
Index: /system/old/mod_core/admin_licence.phtml
===================================================================
--- /system/old/mod_core/admin_licence.phtml	(revision 6475)
+++ /system/old/mod_core/admin_licence.phtml	(revision 6475)
@@ -0,0 +1,7 @@
+<?php
+
+
+?>
+<h2><?php echo __('Es wurde noch keine gÃŒltige Lizenz gefunden.', 'wpsg'); ?></h2>
+
+<p><?php echo __('Damit sie den Shop registrieren kÃ¶nnen benÃ¶tigen sie eine gÃŒltige Lizenz.<br />Diese kÃ¶nnen sie unter <a href="http://shop.maennchen1.de/" target="_blank">shop.maennchen1.de</a> erwerben und anschlieÃend in der Plugin Verwaltung installieren.', 'wpsg'); ?></p>
Index: /system/old/mod_core/admin_register.phtml
===================================================================
--- /system/old/mod_core/admin_register.phtml	(revision 6475)
+++ /system/old/mod_core/admin_register.phtml	(revision 6475)
@@ -0,0 +1,120 @@
+<?php
+
+	/**
+	 * Templatedatei fÃŒr das Registrierungsinterface
+	 * Sollte nicht verÃ€ndert werden
+	 */
+
+?>
+
+<div id="wpsg-bs" >
+	<div class="wpsg_admin_submenu" >
+		
+		<div class="list-group" id="wpsg_statistics_tabs">
+			<span class="list-group-head list-group-item"><?php echo __('Auswahl', 'wpsg'); ?></span>
+		
+				<a class="list-group-item <?php echo ((!isset($_REQUEST['subaction']))?'active':''); ?>" 
+				href="<?php echo wpsg_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=registrierung'); ?>"><?php echo __('Registrierungsdaten', 'wpsg'); ?></a>
+
+				<a class="list-group-item <?php echo ((isset($_REQUEST['subaction']) && $_REQUEST['subaction'] == 'domains')?'active':''); ?>" 
+				href="<?php echo wpsg_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=registrierung&subaction=domains'); ?>"><?php echo __('Domainverwaltung', 'wpsg'); ?></a>
+
+				<a class="list-group-item <?php echo ((isset($_REQUEST['subaction']) && $_REQUEST['subaction'] == 'module')?'active':''); ?>" 
+				href="<?php echo wpsg_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=registrierung&subaction=module'); ?>"><?php echo __('Modulaktivierung', 'wpsg'); ?></a>
+		
+		</div>
+
+		<div style="clear:both; margin-bottom:10px; margin-left:0px; margin-right:8px;"></div>
+			
+	</div>
+</div>
+
+
+<div class="wpsg_admin_content">
+	
+	<?php if (!isset($_REQUEST['subaction'])) { ?>
+		<?php echo wpsg_drawForm_AdminboxStart(__('Registrierungsdaten', 'wpsg')); ?>
+
+		<div class="form-horizontal">
+		 
+		<?php echo wpsg_drawForm_Input('register_lizenz', __('Lizenzart', 'wpsg'), $this->view['typ'], array('readonly' => true, 'disabled' => true)); ?>
+		 				
+		<br />
+		<form enctype="multipart/form-data" method="post" action="<?php echo wpsg_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=registrierung&noheader=1'); ?>" name="form1">
+		
+			<?php echo wpsg_drawForm_Input('register_vname', __('Vorname', 'wpsg'), $this->view['data']['vname']); ?>
+			<?php echo wpsg_drawForm_Input('register_name', __('Name', 'wpsg'), $this->view['data']['name']); ?>
+			<?php echo wpsg_drawForm_Input('register_plz', __('PLZ', 'wpsg'), $this->view['data']['plz']); ?>
+			<?php echo wpsg_drawForm_Input('register_ort', __('Ort', 'wpsg'), $this->view['data']['ort']); ?>
+			<?php echo wpsg_drawForm_Input('register_strasse', __('StraÃe', 'wpsg'), $this->view['data']['strasse']); ?>
+			<?php echo wpsg_drawForm_Select('register_land', __('Land', 'wpsg'), $this->view['data']['lander'], $this->view['data']['land']); ?>
+			<?php echo wpsg_drawForm_Input('register_email', __('E-Mail', 'wpsg'), $this->view['data']['email']); ?>
+			
+			<br />
+			<input id="submit" name="registerdata-submit" type="submit" class="button-primary" value="<?php echo __('Ãnderungen ÃŒbermitteln', 'wpsg'); ?>" />
+			
+		</form>
+		</div>
+		<?php echo wpsg_drawForm_AdminboxEnd(); ?>
+		
+	<?php } ?>
+	
+	<?php if (isset($_REQUEST['subaction']) && $_REQUEST['subaction'] == 'domains') { ?>	
+		<?php echo wpsg_drawForm_AdminboxStart(__('Registrierte Domains', 'wpsg')); ?>
+		
+		<div class="form-horizontal">
+	
+		<?php if (sizeof($this->view['data']['domains']) <= 0) { ?>
+		<p><?php echo __('Noch keine Domains registriert.', 'wpsg'); ?>
+		<?php } else { ?>
+		<b><?php echo __('Bereits auf diesen Key registrierte Domains', 'wpsg')?>:</b><br /><br />
+		<?php foreach ($this->view['data']['domains'] as $d) { ?>
+		<div class="wpsg_domainrow">
+			<?php echo wpsg_hspc($d['url']); ?>&nbsp;[<a href="<?php echo wpsg_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=registrierung&noheader=1&do=remove&url='.rawurlencode($d['url'])); ?>"><?php echo __('Registrierung aufheben', 'wpsg'); ?></a>]
+		</div>
+		<?php } ?>
+		<?php } ?>
+		
+		<br />
+		<?php if ($this->view['data']['registred'] === true) { ?>
+		<p class="wpsg_registersuccess"><?php echo __('Diese Domain ist bereits auf diesen SchlÃŒssel registriert.', 'wpsg'); ?></p>
+		<?php } else { ?>
+		
+			<p class="wpsg_registerfailure"><?php echo __('Diese Domain ist noch nicht auf diesen SchlÃŒssel registriert.', 'wpsg'); ?></p>
+			
+			<?php if (sizeof($this->view['data']['domains']) > 0 && $this->arLizenz['l'] != 3) { ?>
+			<p class="wpsg_registerfailure">
+				<?php echo __('Sie dÃŒrfen mit dieser Lizenz den Shop nur auf einer Domain laufen lassen. LÃ¶schen sie die bereits registrierte Domain und registrieren Sie diese Domain neu.', 'wpsg'); ?>
+			</p>
+			<?php } else { ?>
+			<br />
+			<form method="post" action="<?php echo wpsg_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=registrierung&noheader=1&do=register'); ?>">
+				<input type="submit" value="<?php echo __('Diese Domain registrieren', 'wpsg'); ?>" class="button-primary" />
+			</form>
+			<?php } ?>		
+		<?php } ?>
+		</div>
+		<?php echo wpsg_drawForm_AdminboxEnd(); ?>
+	<?php } ?>
+	
+	<?php if (isset($_REQUEST['subaction']) && $_REQUEST['subaction'] == 'module') { ?>	
+		<?php echo wpsg_drawForm_AdminboxStart(__('Weitere Module', 'wpsg')); ?>
+		
+		<div class="form-horizontal">
+		
+		<p><?php echo wpsg_translate(__('Erweitern Sie Ihre wpShopGermany-Lizenz um weitere Funktionen, indem Sie <a href="#1#">weitere Module installieren</a> und ihrer bestehenden wpShopGermany-Lizenz hinzufÃŒgen.', 'wpsg'), WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=module'); ?></p>
+		
+		<br />
+		<form method="post" action="<?php echo wpsg_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=registrierung&noheader=1&do=aktivateModul'); ?>">
+			
+			<?php echo wpsg_drawForm_Input('wpsg_modulkey', __('ModulschlÃŒssel', 'wpsg'), $this->get_option('wpsg_modulkey')); ?>
+			
+			<br />
+			<input type="submit" value="<?php echo __('wpShopGermany Lizenz erweitern', 'wpsg'); ?>" class="button-primary" />
+			
+		</form>	
+		</div>	
+		<?php echo wpsg_drawForm_AdminboxEnd(); ?>
+	<?php } ?>
+	
+</div>
Index: /system/old/mod_core/module_index.phtml
===================================================================
--- /system/old/mod_core/module_index.phtml	(revision 6475)
+++ /system/old/mod_core/module_index.phtml	(revision 6475)
@@ -0,0 +1,79 @@
+<?php
+
+	/**
+	 * Startseite der Module
+	 */
+
+?>
+<div class="wpsg_admin_content form-horizontal">
+	
+	<div class="panel panel-default">
+  			<div class="panel-heading clearfix">
+          		<h3 class="panel-title"><?php echo __('Modulverwaltung', 'wpsg'); ?></h3>
+        	</div>
+  			<div class="panel-body">
+	
+			<p><?php echo __('Aktivieren/Installieren Sie weitere Module oder halten Sie externe Module aktuell.', 'wpsg'); ?></p>
+			
+			<?php if (wpsg_isSizedArray($this->view['arOnlineModule'])) { ?>
+			<table class="wpsg_modultable table">
+				<thead>
+					<tr>
+						<th class="wpsg_col_name"><?php echo __('Modulname', 'wpsg'); ?></th>
+						<th class="wpsg_col_instversion"><?php echo __('installierte Version', 'wpsg'); ?></th>
+						<th class="wpsg_col_licence"><?php echo __('Lizenz', 'wpsg'); ?></th>
+						<th class="wpsg_col_availableversion"><?php echo __('verfÃŒgbare Version', 'wpsg'); ?></th>			
+					</tr>	
+				</thead>
+				<?php foreach ($this->view['arOnlineModule'] as $modul) { ?>
+				<tbody>
+					<tr>
+						<td class="wpsg_col_name"><?php echo $modul['name']; ?></td>
+						<td class="wpsg_col_instversion">
+							
+							<?php echo $modul['version_local']; ?>
+											
+						</td>
+						<td class="wpsg_col_licence">
+							
+							<?php if ($modul['free'] == '1') { ?>
+							<?php echo __('kostenlos', 'wpsg'); ?>
+							<?php } else { ?>
+							 
+							 <?php if (@in_array($modul['key'], $this->arLizenz['mods'])) { ?>
+							 <?php echo __('aktiv', 'wpsg'); ?>
+							 <?php } else { ?>
+							 
+							 <?php echo __('Demo', 'wpsg'); ?>
+							 
+							 <?php } ?>
+							
+							<?php } ?>
+							
+						</td>
+						<td class="wpsg_col_availableversion">
+						
+							<?php //wpsg_debug($modul); ?>
+							<?php if ($modul['version'] == $modul['version_local']) { ?>
+							<?php echo $modul['version']; ?> (aktuell)
+							<?php } else if (version_compare($modul['shop_version'], WPSG_VERSION) > 0) { ?>
+							<?php echo wpsg_translate(__('neue Version verfÃŒgbar (<a href="#1#">wpShopGermany Update</a> notwendig)', 'wpsg'), WPSG_URL_WP.'wp-admin/plugins.php'); ?>
+							<?php } else if (version_compare($modul['version'], $modul['version_local']) > 0) { ?>
+							<?php echo wpsg_translate(__('neue Version verfÃŒgbar: <a href="#1#">installiere #2#</a>', 'wpsg'), WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=registrierung&noheader=1&do=installModul&modul='.$modul['key'], $modul['version']); ?>
+							<?php } else { ?>
+							<?php echo $modul['version']; ?>
+							<?php } ?>
+						
+						</td>
+					</tr>
+				</tbody>
+				<?php } ?>
+			</table>
+			<?php } else { ?>
+			<?php echo __('Module konnten aufgrund fehlender SOAP UnterstÃŒtzung nicht geladen werden.', 'wpsg'); ?>
+			<?php } ?> 
+			
+		</div>
+	</div>
+	
+</div>
Index: /system/old/mod_keygen/.htprivate
===================================================================
--- /system/old/mod_keygen/.htprivate	(revision 6475)
+++ /system/old/mod_keygen/.htprivate	(revision 6475)
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC9hSDz+Lm9jQJwtIudmgM3ZjBR7ZS8i3Rm0sau6q1VVGRlBmDZ
+d5zMlElMorrrzzUMZITOsDTIdDGXk4z0vmT3gp89KGnCSkYW6NoGbshPhNKOhBHg
+tTrCXBupaIWgLAyOcnRc1ik7crd9BZaCU5K8OZczFsNek0wuYNO6ipZ6HwIDAQAB
+AoGADdWaAjU12dBhTTjguDB166VaAaEGKn1Dkf3w4vPek0wFyBofF8DTgVuRvjZi
+zrPhe3Ya+7uBHuDcfeQXdgYv+IEhB9U1b1LXtTNFOmgjoZDdrm5VdR8MPzwigwnH
+k+gL4a9y82mMPhoXaGOnbHzMMEgeswYfOvH5IZv0GVX8XYECQQDtXbAbGUZmT9nk
+6K+tFdTxzXDoWeRkMEiIBw4eAo4xBGc2fdZz3BLPppaMO6MDyVgNMFuUSDaf6D36
+Phri850zAkEAzGXjMWujsDbg0N6gh5TZXtU08EXthTHz0I/xG7W1iFBojeisPlwp
+J3rvTNfeOsYfcqniYdNJRxQfOAt+lH63ZQJBAL0Pqn1rHE/RulRBoevTP9F5OT1Y
+nDnQ23S9adktX+RbBXq5sF6II9ORdMgtmCIj9SZMJiVtf1TOvs7bOL8cG1ECQQCs
+ah21KGkRUZleVwzukT6y4gIf07zBqBtUiLcHesXAUKOBYQ06JR+J8Ac/uK/6v/jz
+Dh6qCkI7tNuIuRlzRViJAkBZA+9SH/pt9W55TdmWntDBAuznqmrGmUpf5jph/OcN
++cg4hSq9Sk5DQ3UjPnP7P/1ChQQCboaOAkYs5h5XH5d/
+-----END RSA PRIVATE KEY-----
Index: /system/old/mod_keygen/mod_keygen/settings_edit.phtml
===================================================================
--- /system/old/mod_keygen/mod_keygen/settings_edit.phtml	(revision 6475)
+++ /system/old/mod_keygen/mod_keygen/settings_edit.phtml	(revision 6475)
@@ -0,0 +1,66 @@
+<?php
+
+	/**
+	 * Template fÃŒr die Einstellungsseite des keygen Moduls
+	 */
+
+?>
+
+<form name="form1" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;action=module&amp;modul=<?php echo $_REQUEST['modul']; ?>&amp;noheader=1" method="post" enctype="multipart/form-data">
+	
+	<?php echo wpsg_drawForm_Select('wpsg_mod_keygen[wpsg_mod_keygen_anwendung]', __('Anwendung', 'wpsg'), array('wpShopGermany' => __('wpShopGermany', 'wpsg'), 'wpNewsletterGermany' => __('wpNewsletterGermany', 'wpsg')), ((isset($_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_anwendung']))?$_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_anwendung']:'')); ?>
+	<?php echo wpsg_drawForm_Input('wpsg_mod_keygen[wpsg_mod_keygen_nr]', __('SchlÃŒsselnummer', 'wpsg'), ((isset($_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_nr']))?$_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_nr']:'')); ?>
+	<?php echo wpsg_drawForm_Select('wpsg_mod_keygen[wpsg_mod_keygen_lizenz]', __('Lizenz', 'wpsg'), array('1' => 'Light', '2' => 'Pro', '3' => 'Enterprise'), ((isset($_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_lizenz']))?$_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_lizenz']:'1')); ?>
+	<?php echo wpsg_drawForm_Input('wpsg_mod_keygen[wpsg_mod_keygen_date]', __('Enddatum (tt.mm.jjjj)', 'wpsg'), ((isset($_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_date']))?$_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_date']:'99.99.9999')); ?>
+	<?php echo wpsg_drawForm_Input('wpsg_mod_keygen[wpsg_mod_keygen_maxver]', __('Maximale Versionsnummer', 'wpsg'), ((isset($_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_maxver']))?$_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_maxver']:'9.9.9')); ?>
+		
+	<?php 
+	include WPSG_PATH.'/system/module.php';
+	echo wpsg_drawForm_TextStart();
+	echo wpsg_drawForm_TextEnd(__('Module', 'wpsg'), array('noP' => true));
+	
+	echo wpsg_drawForm_TextStart(); 
+	$i = 0;
+	// Lizenz = 1	Light Version
+	// Lizenz = 2	Pro Version
+	// Lizenz = 3	Enterprise Version
+	foreach ($arModule as $k => $v) { $i ++;
+		$mname = $k;
+		//$lic = $v->lizenz;
+		//if ((key_exists('name', $v)) && ($lic == 1))
+		//if ((key_exists('name', $v)))
+		{
+			//$vname = $v->name;
+
+			$chk = (@key_exists($mname, $_SESSION['wpsg_mod_keygen']['mods'] == '1'))?1:0;
+			echo wpsg_drawForm_Checkbox('wpsg_mod_keygen[mods][]', __($mname, 'wpsg'), 
+				$chk, array('value' => wpsg_hspc($mname),
+							'noHidden' => true,
+							'fullWidth' => true
+			));
+		}
+		
+	}
+	echo wpsg_drawForm_TextEnd(__('', 'wpsg'), array('noP' => true));
+	?>
+
+	
+	<input type="hidden" name="aktiv" value="1" />
+	<input type="hidden" name="wpsg_genkey" value="1" />
+	
+	<p class="submit"><input type="submit" value="<?php echo __('Key generieren', 'wpsg'); ?>" class="button-primary" id="submit" name="submit"></p>
+			
+</form>
+
+<form name="form1" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;action=module&amp;modul=<?php echo $_REQUEST['modul']; ?>&amp;noheader=1" method="post" enctype="multipart/form-data">
+		
+	<?php echo wpsg_drawForm_TextStart(); ?>
+			<input type="file" name="testkey" />
+	
+	<?php echo wpsg_drawForm_TextEnd(__('Module', 'wpsg'), array('noP' => true)); ?>
+
+	<input type="hidden" name="aktiv" value="1" />
+	
+	<p class="submit"><input type="submit" value="<?php echo __('Key testen', 'wpsg'); ?>" class="button-primary" id="submit" name="submit">
+	
+</form>
Index: /system/old/wpsg_mod_keygen.class.php
===================================================================
--- /system/old/wpsg_mod_keygen.class.php	(revision 6475)
+++ /system/old/wpsg_mod_keygen.class.php	(revision 6475)
@@ -0,0 +1,119 @@
+<?php
+
+	/**
+	 * Admin Modul fÃŒr die Key Generierung 
+	 */
+	class wpsg_mod_keygen extends wpsg_mod_basic
+	{
+		
+		var $id = 14;		
+		var $lizenz = 0;
+		var $inline = true;
+		
+		/**
+		 * Costructor
+		 */
+		public function __construct()
+		{
+			
+			parent::__construct();
+			
+			$this->name = __('Keygen', 'wpsg');
+			$this->group = __('Sonstiges', 'wpsg');
+			$this->desc = __('Erlaubt das generieren von Keys.', 'wpsg');
+						
+		} // public function __construct()
+
+		public function settings_save()
+		{
+			
+			if (file_exists(@$_FILES['testkey']['tmp_name']))
+			{
+				
+				if (!class_exists('Crypt_RSA')) 
+				{
+
+					@set_include_path(WPSG_PATH.'/lib/phpseclib0.3.0/'.PATH_SEPARATOR.get_include_path());
+					require_once(WPSG_PATH.'/lib/phpseclib0.3.0/Crypt/RSA.php');
+						
+				}
+					 
+				$rsa = new Crypt_RSA();
+				$rsa->loadKey(file_get_contents(WPSG_PATH.'/lib/.htpublic'));
+				 
+				$arKey = @unserialize($rsa->decrypt(base64_decode(file_get_contents($_FILES['testkey']['tmp_name']))));
+				
+				$this->shop->addBackendMessage('nohspc_Testkey: <pre>'.print_r($arKey, 1).'</pre>');
+				
+			}
+			
+			if ($_REQUEST['wpsg_genkey'] == '1')
+			{
+			
+				$_SESSION['wpsg_mod_keygen'] = wpsg_xss($_REQUEST['wpsg_mod_keygen']);
+				
+				if ($_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_nr'] <= 0)
+				{
+					
+					$this->shop->addBackendError(__('Bitte eine SchlÃŒsselnummer angeben.', 'wpsg'));
+					return;
+					
+				}
+				
+				if (!preg_match('/\d{2}\.\d{2}\.\d{4}/', $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_date']))
+				{
+					
+					$this->shop->addBackendError(__('Bitte ein gÃŒltiges GÃŒltigkeitsdatum angeben.', 'wpsg'));
+					return;
+					
+				}
+				
+				if (!preg_match('/\d+\.\d+\.\d+/', $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_maxver']))
+				{
+					
+					$this->shop->addBackendError(__('Bitte eine gÃŒltige Maximale Versionsnummer angeben.', 'wpsg'));
+					return;
+					
+				}
+				
+				// Key generiere
+				if (!class_exists('Crypt_RSA'))
+				{
+				
+					@set_include_path(get_include_path().PATH_SEPARATOR.WPSG_PATH.'/lib/phpseclib0.3.0/');
+					require_once(WPSG_PATH.'/lib/phpseclib0.3.0/Crypt/RSA.php');
+					
+				}
+				
+				$rsa = new Crypt_RSA();
+				$rsa->loadKey(file_get_contents(WPSG_PATH.'/mods/mod_keygen/.htprivate'));
+				
+				$key = base64_encode($rsa->encrypt(serialize(array(
+					"anwendung" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_anwendung'],
+					"l" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_lizenz'],
+					"nr" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_nr'],
+					"date" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_date'],
+					"version" => $_REQUEST['wpsg_mod_keygen']['wpsg_mod_keygen_maxver'],
+					"mods" => $_REQUEST['wpsg_mod_keygen']['mods']
+				))));
+			 
+				header('Content-type: text/html');
+				header('Content-Disposition: attachment; filename="key.txt"');
+				
+				die($key);
+				
+			}
+			
+		} // public function settings_save()
+		
+		public function settings_edit()
+		{
+						
+			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_keygen/settings_edit.phtml');
+			unset($_SESSION['wpsg_mod_keygen']['wpsg_mod_keygen_key']);
+			
+		}
+		
+	} // class wpsg_mod_keygen extends wpsg_mod_basic
+		
+?>
Index: /views/admin/module.phtml
===================================================================
--- /views/admin/module.phtml	(revision 6474)
+++ /views/admin/module.phtml	(revision 6475)
@@ -104,22 +104,79 @@
 <?php } else { ?>
 
-	<?php if ($this->hasMod('wpsg_mod_core')) { ?>
-	<?php echo $this->callMod('wpsg_mod_core', 'module_index'); ?>
-	<?php } else { ?>
-	
-		<div class="wpsg_admin_content">
-	
-			<h3><?php echo __('Modulverwaltung', 'wpsg'); ?></h3>
-			<p><?php echo __('wpShopGermany ist Modular aufgebaut, wÃ€hlen Sie links das Modul aus, welches Sie konfigurieren mÃ¶chten. ', 'wpsg'); ?></p>
-			
-			<p><?php echo wpsg_translate(
-				__('<span style="color:red; font-weight:bold;">wpShopGermany Vollversion erwerben und weitere Funktionen freischalten.</span> [ <a target="_blank" href="#1#">Vollversion kaufen</a> ] [ <a target="_blank" href="#2#">Weitere Infos</a> ]', 'wpsg'),
-				'http://shop.maennchen1.de/produkte/wpshopgermany-lizenzkey/',
-				'http://wpshopgermany.de/'
-			); ?></p>
-	
-		</div>
-	
-	<?php } ?>	
+	<div class="wpsg_admin_content form-horizontal">
+		<div class="panel panel-default">
+			<div class="panel-heading clearfix">
+				<h3 class="panel-title"><?php echo __('Modulverwaltung', 'wpsg'); ?></h3>
+		 	</div>
+		 	<div class="panel-body">
+	 	
+				<?php $wpsg_update_data = wpsg_get_update_data(); ?>
+				<?php if (wpsg_isSizedArray($wpsg_update_data)) { ?>
+				
+					<table class="table">
+  						<thead>
+							<tr>
+								<th><?php echo __('Modulname', 'wpsg'); ?></th>
+								<th><?php echo __('installierte Version', 'wpsg'); ?></th>
+								<th><?php echo __('Lizenz', 'wpsg');  ?></th>
+								<th><?php echo __('verfÃŒgbare Version', 'wpsg'); ?></th>
+							</tr>
+						</thead>
+						<tbody>
+							<?php foreach ($wpsg_update_data['modulinfo'] as $modul_key => $modul_info) { ?>
+							<tr>
+								<td><?php echo $modul_info['label']; ?></td>
+								<td>
+									
+									<?php if ($this->hasModInstalled($modul_key)) { ?>
+										<?php echo $this->arAllModule[$modul_key]->version; ?>										
+									<?php } ?>
+									
+								</td>								
+								<td>
+									
+									<?php if ($modul_info['free'] === true) { ?>
+										<?php echo __('kostenlos', 'wpsg'); ?>
+									<?php } else if ($modul_info['active'] === true) { ?>
+										<?php echo __('enthalten', 'wpsg'); ?>
+									<?php } else { ?>
+										<a href="<?php echo $modul_info['url_shop']; ?>" target="_blank"><?php echo __('Modulcode hier erwerben', 'wpsg'); ?></a>
+									<?php } ?>
+									
+								</td>
+								<td><?php 
+																	
+									echo $modul_info['version'];
+									 
+									if ($this->hasModInstalled($modul_key) && $modul_info['version'] === $this->arAllModule[$modul_key]->version)
+									{
+										
+										echo ' ('.__('aktuell', 'wpsg').')';
+										
+									}
+									else if (version_compare($modul_info['version'], WPSG_VERSION) > 0) 
+									{
+										
+										echo ' '.wpsg_translate(__('neue Version verfÃŒgbar (<a href="#1#">wpShopGermany Update</a> notwendig)', 'wpsg'), WPSG_URL_WP.'wp-admin/plugins.php');
+										
+									}
+									
+								?></td>
+							</tr>
+							<?php } ?>
+						</tbody>
+					</table>
+					
+				<?php } else { ?>
+				
+				<p>
+					Lizenz aktivieren
+				</p>
+					
+				<?php } ?>
+		
+			</div>
+	 	</div>
+	</div>
 	
 <?php } ?>
