From 7f5ffcc103a856b8867ac5739dcf0a3b6710413a Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Mon, 28 Jun 2010 23:25:01 +0000
Subject: [PATCH] Changed all admin getter, closed internal TODOs: - All admin
 getter functions like getAdminEmail() (except getAdminId()) does now   take
 the admin id - Naming convention on some template names applied - Some
 deprecated footer/header templates merged and marked as deprecated -
 TODOs.txt updated

---
 .gitattributes                                |  3 +-
 DOCS/TODOs.txt                                | 36 ++++++--------
 inc/classes/cachesystem.class.php             |  8 +--
 inc/extensions/ext-admins.php                 |  2 +-
 inc/filters.php                               |  2 +-
 inc/functions.php                             |  8 +--
 inc/language/admins_de.php                    |  1 -
 inc/libs/admins_functions.php                 |  4 +-
 inc/loader/load_cache-admin.php               | 10 ++--
 inc/modules/admin.php                         | 10 ++--
 inc/modules/admin/admin-inc.php               | 47 ++++++++++--------
 inc/modules/admin/overview-inc.php            | 26 ++++------
 inc/modules/admin/what-admins_mails.php       |  1 -
 .../admin/what-config_rallye_prices.php       |  1 -
 inc/modules/admin/what-list_sponsor.php       | 28 +++++------
 inc/modules/admin/what-list_task.php          | 37 ++++++--------
 inc/modules/admin/what-theme_check.php        |  3 --
 inc/mysql-manager.php                         | 49 ++++++++++---------
 inc/session-functions.php                     |  6 +--
 inc/wrapper-functions.php                     | 29 +++--------
 .../admin/admin_admins_mails_list_row.tpl     |  2 +-
 .../admin/admin_list_rallye_prices_row.tpl    |  2 +-
 .../html/admin/admin_list_sponsor_details.tpl |  2 +-
 .../de/html/admin/admin_list_sponsor_row.tpl  |  2 +-
 templates/de/html/admin/admin_list_task.tpl   | 30 ++++++++++++
 .../de/html/admin/admin_list_task_delete.tpl  | 34 +++++++++++++
 .../html/admin/admin_list_task_ext_rows.tpl   |  6 +--
 .../de/html/admin/admin_list_task_rows.tpl    |  6 +--
 .../de/html/admin/admin_overview_footer.tpl   | 13 +----
 .../html/admin/admin_overview_footer_task.tpl | 16 +-----
 .../html/admin/admin_overview_header_task.tpl | 18 +------
 .../admin/admin_overview_list_ext_rows.tpl    |  4 +-
 .../html/admin/admin_overview_list_rows.tpl   |  4 +-
 .../de/html/admin/admin_overview_row.tpl      |  2 +-
 templates/de/html/guest/guest_advert.tpl      |  2 +-
 templates/de/html/guest/guest_advert2.tpl     |  2 +-
 .../de/html/guest/guest_content_footer.tpl    |  4 +-
 templates/de/html/guest/guest_footer.tpl      |  2 +-
 templates/de/html/guest/guest_header.tpl      |  6 +--
 .../de/html/guest/guest_menu_content.tpl      |  4 +-
 templates/de/html/guest/guest_menu_td.tpl     |  4 +-
 templates/de/html/member/member_advert.tpl    |  2 +-
 templates/de/html/member/member_footer.tpl    |  4 +-
 .../html/member/member_payout_form_banner.tpl |  4 +-
 templates/de/html/sponsor/sponsor_footer.tpl  |  3 +-
 .../de/html/uberwach/uberwach_snippet.tpl     |  6 +--
 46 files changed, 243 insertions(+), 252 deletions(-)
 delete mode 100644 inc/modules/admin/what-theme_check.php
 create mode 100644 templates/de/html/admin/admin_list_task.tpl
 create mode 100644 templates/de/html/admin/admin_list_task_delete.tpl

diff --git a/.gitattributes b/.gitattributes
index 72a12c76df..0efc620c0b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -487,7 +487,6 @@ inc/modules/admin/what-send_newsletter.php -text
 inc/modules/admin/what-stats_mods.php -text
 inc/modules/admin/what-sub_points.php -text
 inc/modules/admin/what-surfbar_stats.php -text
-inc/modules/admin/what-theme_check.php -text
 inc/modules/admin/what-theme_edit.php -text
 inc/modules/admin/what-theme_import.php -text
 inc/modules/admin/what-unlock_emails.php -text
@@ -1150,6 +1149,8 @@ templates/de/html/admin/admin_list_surfbar_actions.tpl -text
 templates/de/html/admin/admin_list_surfbar_actions_row.tpl -text
 templates/de/html/admin/admin_list_surfbar_urls.tpl -text
 templates/de/html/admin/admin_list_surfbar_urls_row.tpl -text
+templates/de/html/admin/admin_list_task.tpl -text
+templates/de/html/admin/admin_list_task_delete.tpl -text
 templates/de/html/admin/admin_list_task_ext_rows.tpl -text
 templates/de/html/admin/admin_list_task_rows.tpl -text
 templates/de/html/admin/admin_list_theme.tpl -text
diff --git a/DOCS/TODOs.txt b/DOCS/TODOs.txt
index 7b865d60fc..abceefeed8 100644
--- a/DOCS/TODOs.txt
+++ b/DOCS/TODOs.txt
@@ -96,16 +96,16 @@
 ./inc/libs/yoomedia_functions.php:116:	$response = YOOMEDIA_QUERY_API('out_textmail.php', true); // @TODO Ask Yoo!Media for test script
 ./inc/load_config.php:77:	// @TODO Rewrite them to avoid this else block
 ./inc/loader/load_cache-extension.php:13: * @TODO Rewrite this whole file to load_cache-extensions.php           *
-./inc/modules/admin/admin-inc.php:254:		// @TODO Rewrite this to $content = SQL_FETCHARRAY()
-./inc/modules/admin/admin-inc.php:259:				// @TODO ACL is 'allow'... hmmm
-./inc/modules/admin/admin-inc.php:325:					// @TODO Rewrite this to $content = SQL_FETCHARRAY()
-./inc/modules/admin/admin-inc.php:331:							// @TODO ACL is 'allow'... hmmm
-./inc/modules/admin/admin-inc.php:431:// @TODO Try to rewrite this to adminAddMenuSelectionBox()
+./inc/modules/admin/admin-inc.php:261:		// @TODO Rewrite this to $content = SQL_FETCHARRAY()
+./inc/modules/admin/admin-inc.php:266:				// @TODO ACL is 'allow'... hmmm
+./inc/modules/admin/admin-inc.php:332:					// @TODO Rewrite this to $content = SQL_FETCHARRAY()
+./inc/modules/admin/admin-inc.php:338:							// @TODO ACL is 'allow'... hmmm
+./inc/modules/admin/admin-inc.php:438:// @TODO Try to rewrite this to adminAddMenuSelectionBox()
 ./inc/modules/admin/overview-inc.php:164:				// @TODO Rewrite this to a filter
 ./inc/modules/admin/overview-inc.php:278:				// @TODO Rewrite this to something with include files and/or filter
 ./inc/modules/admin/overview-inc.php:316:						// @TODO This may also be rewritten to include files
 ./inc/modules/admin/overview-inc.php:318:							default: // @TODO Unknown support mode
-./inc/modules/admin/overview-inc.php:439:			// @TODO Try to move this in includes
+./inc/modules/admin/overview-inc.php:436:			// @TODO Try to move this in includes
 ./inc/modules/admin/overview-inc.php:45:// @TODO This function does also check for uncompleted tasks
 ./inc/modules/admin/what-add_guestnl_cat.php:49:	// @TODO Check if category does already exist
 ./inc/modules/admin/what-add_surfbar_url.php:57:	// @TODO Find all convertSelectionsToTimestamp() calls and rewrite postRequestParameter() calls to $postData
@@ -138,10 +138,6 @@
 ./inc/modules/admin/what-list_links.php:89:				// @TODO Find a way to rewrite this. See some lines above for different queries
 ./inc/modules/admin/what-list_links.php:98:					// @TODO Rewrite this to includes/filter
 ./inc/modules/admin/what-list_refs.php:110:								// @TODO Try to rewrite some to EL
-./inc/modules/admin/what-list_task.php:146:		// @TODO Rewrite these templates to one and add $OUT
-./inc/modules/admin/what-list_task.php:180:			// @TODO Rewritings: admin->assigned_admin,type->task_type_msg in template
-./inc/modules/admin/what-list_task.php:192:				// @TODO Rewrite this to $OUT .= ..., true, ...
-./inc/modules/admin/what-list_task.php:196:				// @TODO Rewrite this to $OUT .= ..., true, ...
 ./inc/modules/admin/what-list_unconfirmed.php:100:		// @TODO Rewrite this to $content = SQL_FETCHARRAY(), look some lines above for two differrent queries
 ./inc/modules/admin/what-list_unconfirmed.php:77:	// @TODO This constant might be unused? define('__LIST_UNCON_TITLE', '{--LIST_UNCONFIRMED_BONUS_LINKS--}');
 ./inc/modules/admin/what-list_unconfirmed.php:88:	// @TODO "Please do not call me directly." Should be rewritten to a nice selection depending on ext-bonus
@@ -188,10 +184,10 @@
 ./inc/modules/member/what-unconfirmed.php:143:	// @TODO Try to rewrite this to $content = SQL_FETCHARRAY()
 ./inc/modules/order.php:76:		// @TODO Unused: 2,4
 ./inc/monthly/monthly_bonus.php:69:	// @TODO Rewrite this to a filter
-./inc/mysql-manager.php:1627:			// @TODO Try to rewrite this to $content = SQL_FETCHARRAY()
-./inc/mysql-manager.php:1727:	// @TODO Rewrite this to a filter
-./inc/mysql-manager.php:2107:			// @TODO Rewrite this to a filter
-./inc/mysql-manager.php:2151:// @TODO Fix inconsistency between last_module and getWhat()
+./inc/mysql-manager.php:1630:			// @TODO Try to rewrite this to $content = SQL_FETCHARRAY()
+./inc/mysql-manager.php:1730:	// @TODO Rewrite this to a filter
+./inc/mysql-manager.php:2110:			// @TODO Rewrite this to a filter
+./inc/mysql-manager.php:2154:// @TODO Fix inconsistency between last_module and getWhat()
 ./inc/mysql-manager.php:229:			// @TODO Nothing helped???
 ./inc/mysql-manager.php:264:			// @TODO Rewrite this to a filter
 ./inc/mysql-manager.php:589:	// @TODO Try to rewrite this to one or more functions
@@ -202,7 +198,6 @@
 ./inc/wrapper-functions.php:127:// @TODO Implement $compress
 ./inc/wrapper-functions.php:134:// @TODO Implement $decompress
 ./inc/wrapper-functions.php:455:// @TODO Do some more sanity check here
-./inc/wrapper-functions.php:793:	 * @TODO Do we really need this check? If yes, try to fix this:
 ./mailid.php:138:					// @TODO Rewrite this to a filter
 ./mailid.php:95:		// @TODO Rewrite this to a filter
 ./mailid_top.php:132:					// @TODO Rewrite this to a filter
@@ -237,10 +232,12 @@
 ./templates/de/html/surfbar/surfbar_frame_textlinks.tpl:5:		<!-- @TODO These are static lines and should be replaced by a filter (see ext-sponsor) //-->
 ./templates/de/html/surfbar/surfbar_frame_top.tpl:32:// @TODO Try to rewrite this JavaScript to js.php?js=surfbar_frame_top (wouldn't be easy)
 ### ### DEPRECATION FOLLOWS: ### ###
-./inc/modules/admin/admin-inc.php:432:// @DEPRECATED
-./inc/modules/admin/what-theme_check.php:2:// @DEPRECATED
+./inc/modules/admin/admin-inc.php:439:// @DEPRECATED
 ./templates/de/html/admin/admin_list_theme_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_theme.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_overview_footer_task.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_overview_footer.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_overview_header_task.tpl:1:<!-- @DEPRECATED //-->
 ### ### template-warnings.log follows: ### ###
 Warning: Not parsing JavaScript templates/de/html/js/js_order_send.tpl.
 Warning: Not parsing JavaScript templates/de/html/js/js_cookies_disabled.tpl.
@@ -267,11 +264,6 @@ PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/
 PHP Warning:  DOMDocument::loadHTMLFile(): Attribute class redefined in templates/de/html/admin/admin_list_beg.tpl, line: 23 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Attribute align redefined in templates/de/html/admin/admin_list_beg.tpl, line: 23 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/admin/admin_logout_sql_patches_remove.tpl, line: 10 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/admin/admin_overview_footer_task.tpl, line: 10 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : form in templates/de/html/admin/admin_overview_footer_task.tpl, line: 11 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/admin/admin_overview_footer.tpl, line: 10 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : form in templates/de/html/admin/admin_overview_footer.tpl, line: 11 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/admin/admin_overview_footer.tpl, line: 12 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/admin/admin_main_footer.tpl, line: 1 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/admin/admin_main_footer.tpl, line: 2 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/admin/admin_main_footer.tpl, line: 12 in 
diff --git a/inc/classes/cachesystem.class.php b/inc/classes/cachesystem.class.php
index 929b8cbb7d..5a428985b9 100644
--- a/inc/classes/cachesystem.class.php
+++ b/inc/classes/cachesystem.class.php
@@ -152,11 +152,11 @@ class CacheSystem {
 					// Modules
 					$GLOBALS['cache_array']['modules'][$k][$data['module']] = $v;
 				} elseif ($this->name == 'admin') {
-					// Modules
-					if ($k == 'login') {
-						$GLOBALS['cache_array']['admin'][$k][$data['admin_id']] = $v;
-					} else {
+					// Admin logins
+					if ($k == 'admin_id') {
 						$GLOBALS['cache_array']['admin'][$k][$data['login']] = $v;
+					} else {
+						$GLOBALS['cache_array']['admin'][$k][$data['admin_id']] = $v;
 					}
 				} elseif ($this->name == 'refdepths') {
 					// Referal levels
diff --git a/inc/extensions/ext-admins.php b/inc/extensions/ext-admins.php
index 6b4d26badc..fbf54e3c9d 100644
--- a/inc/extensions/ext-admins.php
+++ b/inc/extensions/ext-admins.php
@@ -103,7 +103,7 @@ switch (getExtensionMode()) {
 				addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD default_acl ENUM('deny','allow') NOT NULL DEFAULT 'deny'");
 
 				// But allow current admin everything (THIS SHALL BE YOU!)
-				addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admins` SET `default_acl`='allow' WHERE `login`='".getSession('admin_login')."' LIMIT 1");
+				addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admins` SET `default_acl`='allow' WHERE `id`=".bigintval(getSession('admin_id'))." LIMIT 1");
 				addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admins_acls`');
 				addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_admins_acls` (
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
diff --git a/inc/filters.php b/inc/filters.php
index 1a03451c33..9a3b441a7a 100644
--- a/inc/filters.php
+++ b/inc/filters.php
@@ -940,7 +940,7 @@ function FILTER_DO_LOGIN_ADMIN ($data) {
 	$GLOBALS['admin_login_success'] = ((
 		setSession('admin_md5', encodeHashForCookie($data['pass_hash']))
 	) && (
-		setSession('admin_login', $data['login'])
+		setSession('admin_id', $data['id'])
 	) && (
 		setSession('admin_last', time())
 	));
diff --git a/inc/functions.php b/inc/functions.php
index a7630ce17f..673c8e822c 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -2113,11 +2113,11 @@ function generateEmailLink ($email, $table = 'admins') {
 // Generate a hash for extra-security for all passwords
 function generateHash ($plainText, $salt = '', $hash = true) {
 	// Debug output
-	//* DEBUG: */ debugOutput('plainText=' . $plainText . ',salt=' . $salt . ',hash='.intval($hash));
+	//* DEBUG: */ debugOutput('plainText('.strlen($plainText).')=' . $plainText . ',salt('.strlen($salt).')=' . $salt . ',hash=' . intval($hash));
 
 	// Is the required extension 'sql_patches' there and a salt is not given?
-	// 0123                            4                      43    3     4     432    2                  3             32    2                             3                3210
-	if ((((isExtensionInstalledAndOlder('sql_patches', '0.3.6')) && (empty($salt))) || (!isExtensionActive('sql_patches')) || (!isExtensionInstalledAndNewer('other', '0.2.5')))) {
+	// 123                            4                      43    3     4     432    2                  3             32    2                             3                32    2      3     3      21
+	if (((isExtensionInstalledAndOlder('sql_patches', '0.3.6')) && (empty($salt))) || (!isExtensionActive('sql_patches')) || (!isExtensionInstalledAndNewer('other', '0.2.5')) || (strlen($salt) == 32)) {
 		// Extension sql_patches is missing/outdated so we hash the plain text with MD5
 		if ($hash === true) {
 			// Is plain password
@@ -2176,7 +2176,7 @@ function generateHash ($plainText, $salt = '', $hash = true) {
 	$finalHash = $salt . sha1($salt . $plainText);
 
 	// Debug output
-	//* DEBUG: */ debugOutput('finalHash=' . $finalHash);
+	//* DEBUG: */ debugOutput('finalHash('.strlen($finalHash).')=' . $finalHash);
 
 	// Return hash
 	return $finalHash;
diff --git a/inc/language/admins_de.php b/inc/language/admins_de.php
index 64fd84edc3..3fee9be78b 100644
--- a/inc/language/admins_de.php
+++ b/inc/language/admins_de.php
@@ -104,7 +104,6 @@ addMessages(array(
 	'ADMINS_ADD_MORE_ADMINS' => "Weiteren Admin hinzuf&uuml;gen",
 	'ADMIN_ACCOUNT_SAVED' => "Admin-Account gespeichert.",
 	'ADMINS_ERROR_PASS_MISMATCH' => "Die beiden Passw&ouml;rter stimmen nicht &uuml;berein.",
-	'ADMIN_ACCOUNT_404' => "Admin-Account nicht gefunden.",
 
 // Logical area constants
 	'ADMINS_GLOBAL_LA_SETTING' => "Globale Einst.",
diff --git a/inc/libs/admins_functions.php b/inc/libs/admins_functions.php
index 0e50ea7168..6c75e6a2d7 100644
--- a/inc/libs/admins_functions.php
+++ b/inc/libs/admins_functions.php
@@ -191,9 +191,9 @@ function adminsChangeAdminAccount ($postData, $element = '') {
 					// Set timeout cookie
 					setSession('admin_last', time());
 
-					if ($login != getSession('admin_login')) {
+					if ($adminId != getSession('admin_id')) {
 						// Update login cookie
-						setSession('admin_login', $login);
+						setSession('admin_id', $adminId);
 
 						// Update password cookie as well?
 						if (!empty($add)) setSession('admin_md5', $hash);
diff --git a/inc/loader/load_cache-admin.php b/inc/loader/load_cache-admin.php
index be92fb3e24..ec2a54626b 100644
--- a/inc/loader/load_cache-admin.php
+++ b/inc/loader/load_cache-admin.php
@@ -60,12 +60,12 @@ if (($GLOBALS['cache_instance']->loadCacheFile('admin')) && ($GLOBALS['cache_ins
 				// Rewrite all entries
 				foreach ($GLOBALS['cache_array']['admin'] as $key => $entry) {
 					// Do we have login or regular entries?
-					if ($key == 'login') {
-						// Login, so use id
-						$admins[$key][$GLOBALS['cache_array']['admin']['admin_id'][$idx]] = $entry[$idx];
-					} else {
-						// Regular entry so use login
+					if ($key == 'admin_id') {
+						// Admin id, so use login
 						$admins[$key][$GLOBALS['cache_array']['admin']['login'][$idx]] = $entry[$idx];
+					} else {
+						// Regular entry so use id
+						$admins[$key][$GLOBALS['cache_array']['admin']['admin_id'][$idx]] = $entry[$idx];
 					}
 				} // END - foreach
 			} // END - foreach
diff --git a/inc/modules/admin.php b/inc/modules/admin.php
index 3ea2e49dc9..01facaab06 100644
--- a/inc/modules/admin.php
+++ b/inc/modules/admin.php
@@ -46,7 +46,7 @@ if (!defined('__SECURITY')) {
 loadIncludeOnce('inc/modules/admin/admin-inc.php');
 
 // Fix "deleted" cookies in PHP4 (PHP5 does remove them, PHP4 sets them to deleted!)
-fixDeletedCookies(array('admin_login', 'admin_md5', 'admin_last'));
+fixDeletedCookies(array('admin_id', 'admin_md5', 'admin_last'));
 
 // Init return value
 $ret = 'init';
@@ -204,9 +204,9 @@ if (!isAdminRegistered()) {
 		// Output reset password form
 		loadTemplate('admin_send_reset_link');
 	}
-} elseif ((!isSessionVariableSet('admin_login')) || (!isSessionVariableSet('admin_md5')) || (!isSessionVariableSet('admin_last'))) {
+} elseif ((!isSessionVariableSet('admin_id')) || (!isSessionVariableSet('admin_md5')) || (!isSessionVariableSet('admin_last'))) {
 	// At leat one administrator account was created
-	if ((isSessionVariableSet('admin_login')) && (isSessionVariableSet('admin_md5')) && (isSessionVariableSet('admin_last'))) {
+	if ((isSessionVariableSet('admin_id')) && (isSessionVariableSet('admin_md5')) && (isSessionVariableSet('admin_last'))) {
 		// Timeout for last login, we have to logout first!
 		redirectToUrl('modules.php?module=admin&amp;logout=1');
 	} // END - if
@@ -356,7 +356,7 @@ if (!isAdminRegistered()) {
 	}
 } else {
 	// Maybe an Admin want's to login?
-	$ret = ifAdminCookiesAreValid(getSession('admin_login'), getSession('admin_md5'));
+	$ret = ifAdminCookiesAreValid(getSession('admin_id'), getSession('admin_md5'));
 
 	// Check status
 	switch ($ret) {
@@ -389,7 +389,7 @@ if (!isAdminRegistered()) {
 
 		case '404': // Administrator login not found
 			setPostRequestParameter('ok', $ret);
-			loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_ACCOUNT_404', getSession('admin_login')));
+			loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_ACCOUNT_404', getSession('admin_id')));
 			destroyAdminSession();
 			break;
 
diff --git a/inc/modules/admin/admin-inc.php b/inc/modules/admin/admin-inc.php
index 891d19cfec..68560831e6 100644
--- a/inc/modules/admin/admin-inc.php
+++ b/inc/modules/admin/admin-inc.php
@@ -77,29 +77,36 @@ function ifAdminLoginDataIsValid ($adminLogin, $adminPassword) {
 	// First of all, no admin login is found
 	$ret = '404';
 
-	// Then we need to lookup the login name by getting the admin hash
-	$adminHash = getAdminHash($adminLogin);
-
-	// If this is fine, we can continue
-	if ($adminHash != '-1') {
-		// Get admin id and set it as current
-		setCurrentAdminId(getAdminId($adminLogin));
-
-		// Now, we need to encode the password in the same way the one is encoded in database
-		$testHash = generateHash($adminPassword, $adminHash);
-
-		// If they both match, the login data is valid
-		if ($testHash == $adminHash) {
-			// All fine
-			$ret = 'done';
-		} else {
-			// Set status
-			$ret = 'pass';
-		}
+	// Get admin id from login
+	$adminId = getAdminId($adminLogin);
+
+	// Continue only with found admin ids
+	if ($adminId > 0) {
+		// Then we need to lookup the login name by getting the admin hash
+		$adminHash = getAdminHash($adminId);
+
+		// If this is fine, we can continue
+		if ($adminHash != '-1') {
+			// Get admin id and set it as current
+			setCurrentAdminId($adminId);
+
+			// Now, we need to encode the password in the same way the one is encoded in database
+			$testHash = generateHash($adminPassword, $adminHash);
+
+			// If they both match, the login data is valid
+			if ($testHash == $adminHash) {
+				// All fine
+				$ret = 'done';
+			} else {
+				// Set status
+				$ret = 'pass';
+			}
+		} // END - if
 	} // END - if
 
 	// Prepare data array
 	$data = array(
+		'id'         => $adminId,
 		'login'      => $adminLogin,
 		'plain_pass' => $adminPassword,
 		'pass_hash'  => $adminHash
@@ -161,7 +168,7 @@ function doAdminAction () {
 	$action = getActionFromModuleWhat(getModule(), $what);
 
 	// Define admin login name and id number
-	$content['login'] = getSession('admin_login');
+	$content['login'] = getAdminLogin(getSession('admin_id'));
 	$content['id']    = getCurrentAdminId();
 
 	// Preload templates
diff --git a/inc/modules/admin/overview-inc.php b/inc/modules/admin/overview-inc.php
index d543264dfd..79df8a21e3 100644
--- a/inc/modules/admin/overview-inc.php
+++ b/inc/modules/admin/overview-inc.php
@@ -263,12 +263,12 @@ LIMIT 1",
 
 				// Prepare array for the template
 				$content = array(
-					'sw'        => $SW,
-					'subject'   => $taskData['subject'],
-					'add'       => $add,
-					'text'      => $taskData['text'],
-					'created'   => generateDateTime($taskData['task_created'], 1),
-					'extension' => $ext_name
+					'sw'           => $SW,
+					'subject'      => $taskData['subject'],
+					'add'          => $add,
+					'text'         => $taskData['text'],
+					'task_created' => generateDateTime($taskData['task_created'], 1),
+					'extension'    => $ext_name
 				);
 
 				// Load template
@@ -432,9 +432,6 @@ LIMIT 1",
 			// Init infos
 			$content['infos'] = '';
 
-			// Generate assign link
-			$content['assigned_admin'] = generateAdminLink($content['assigned_admin']);
-
 			// Generate infos
 			// @TODO Try to move this in includes
 			switch ($content['task_type']) {
@@ -454,14 +451,9 @@ LIMIT 1",
 				$content['userid'] = '<em>{--ADMIN_IS_SYSTEM_TASK--}</em>';
 			}
 
-			// Prepare content
-			$content = merge_array($content, array(
-				'sw'             => $SW,
-				'assigned_admin' => $content['assigned_admin'],
-				'userid'         => $content['userid'],
-				'task_type_msg'  => $content['task_type_msg'],
-				'created'        => generateDateTime($content['task_created'], 2)
-			));
+			// Add/translate some content
+			$content['sw']           = $SW;
+			$content['task_created'] = generateDateTime($content['task_created'], 2);
 
 			// Do we have extension task?
 			if (($content['task_type'] == 'EXTENSION') && (isExtensionNameValid($content['infos'])) && (!isExtensionInstalled($content['infos']))) {
diff --git a/inc/modules/admin/what-admins_mails.php b/inc/modules/admin/what-admins_mails.php
index c3ad9a6333..753cf83265 100644
--- a/inc/modules/admin/what-admins_mails.php
+++ b/inc/modules/admin/what-admins_mails.php
@@ -173,7 +173,6 @@ ORDER BY
 		while ($content = SQL_FETCHARRAY($result)) {
 			// Prepare content
 			$content['sw']   = $SW;
-			$content['alnk'] = generateAdminLink($content['admin_id']);
 
 			// Load row template
 			$OUT .= loadTemplate('admin_admins_mails_list_row', true, $content);
diff --git a/inc/modules/admin/what-config_rallye_prices.php b/inc/modules/admin/what-config_rallye_prices.php
index c63c04e3b3..1c78c45384 100644
--- a/inc/modules/admin/what-config_rallye_prices.php
+++ b/inc/modules/admin/what-config_rallye_prices.php
@@ -241,7 +241,6 @@ ORDER BY
 				'id'         => $content['id'],
 				'title'      => $content['title'],
 				'admin_id'   => $content['admin_id'],
-				'admin_link' => generateAdminLink($content['admin_id']),
 				'login'      => $content['login'],
 				'start'      => generateDateTime($content['start_time'], 3),
 				'end'        => generateDateTime($content['end_time'], 3),
diff --git a/inc/modules/admin/what-list_sponsor.php b/inc/modules/admin/what-list_sponsor.php
index b01bb29c1f..72559cd069 100644
--- a/inc/modules/admin/what-list_sponsor.php
+++ b/inc/modules/admin/what-list_sponsor.php
@@ -74,9 +74,9 @@ WHERE
 		//  Contact data
 		$content['email_link']  = generateEmailLink($content['email'], 'sponsor_data');
 		//  Timestamps
-		$content['created']     = generateDateTime($content['sponsor_created'], 2);
-		$content['last_online'] = generateDateTime($content['last_online'], 2);
-		$content['last_change'] = generateDateTime($content['last_change'], 2);
+		$content['sponsor_created'] = generateDateTime($content['sponsor_created'], 2);
+		$content['last_online']     = generateDateTime($content['last_online'], 2);
+		$content['last_change']     = generateDateTime($content['last_change'], 2);
 		//  Orders total
 		$content['orders']      = countSumTotalData(bigintval(getRequestParameter('id')), 'sponsor_orders', 'id', 'sponsorid', true);
 
@@ -135,17 +135,17 @@ ORDER BY
 		while ($content = SQL_FETCHARRAY($result_main)) {
 			// Transfer data to array
 			$content = array(
-				'id'          => $content['id'],
-				'sw'          => $SW,
-				'gender'      => $content['gender'],
-				'surname'     => $content['surname'],
-				'family'      => $content['family'],
-				'email'       => generateEmailLink($content['email'], 'sponsor_data'),
-				'status'      => $content['status'],
-				'created'     => generateDateTime($content['sponsor_created'], 2),
-				'last_online' => generateDateTime($content['last_online'], 2),
-				'points'      => translateComma($content['points_amount'] - $content['points_used']),
-				'remote_addr' => $content['remote_addr'],
+				'id'              => $content['id'],
+				'sw'              => $SW,
+				'gender'          => $content['gender'],
+				'surname'         => $content['surname'],
+				'family'          => $content['family'],
+				'email'           => generateEmailLink($content['email'], 'sponsor_data'),
+				'status'          => $content['status'],
+				'sponsor_created' => generateDateTime($content['sponsor_created'], 2),
+				'last_online'     => generateDateTime($content['last_online'], 2),
+				'points'          => translateComma($content['points_amount'] - $content['points_used']),
+				'remote_addr'     => $content['remote_addr'],
 			);
 
 			// Load row template
diff --git a/inc/modules/admin/what-list_task.php b/inc/modules/admin/what-list_task.php
index c118741a5f..f487a432a2 100644
--- a/inc/modules/admin/what-list_task.php
+++ b/inc/modules/admin/what-list_task.php
@@ -142,20 +142,11 @@ ORDER BY
 		}
 
 		// There are uncompleted jobs!
-		$type = '{--ADMIN_OVERVIEW_TASK_' . strtoupper(getRequestParameter('type')) . '_TYPE--}';
-		// @TODO Rewrite these templates to one and add $OUT
-		loadTemplate('admin_overview_header_task', false, array(
-			'message' => $type,
-			'type'    => getRequestParameter('type')
-		));
 		$OUT = ''; $SW = 2;
 		while ($content = SQL_FETCHARRAY($result_tasks)) {
 			// Init infos
 			$content['infos'] = '';
 
-			// Generate link
-			$content['assigned_admin'] = generateAdminLink($content['assigned_admin']);
-
 			// Get admin task
 			$content['task_type_msg'] = '{--ADMIN_TASK_IS_' . strtoupper($content['task_type']) . '--}';
 
@@ -177,24 +168,21 @@ ORDER BY
 			}
 
 			// Prepare content
-			// @TODO Rewritings: admin->assigned_admin,type->task_type_msg in template
 			$content = merge_array($content, array(
-				'sw'      => $SW,
-				'admin'   => $content['assigned_admin'],
-				'userid'  => $content['userid'],
-				'type'    => $content['task_type_msg'],
-				'created' => generateDateTime($content['task_created'], 2)
+				'sw'            => $SW,
+				'assign_admin'  => $content['assigned_admin'],
+				'userid'        => $content['userid'],
+				'task_type_msg' => $content['task_type_msg'],
+				'task_created'  => generateDateTime($content['task_created'], 2)
 			));
 
 			// Do we have an extension task?
 			if (($content['task_type'] == 'EXTENSION') && (isExtensionNameValid($content['infos'])) && (!isExtensionInstalled($content['infos']))) {
 				// Load extension row template
-				// @TODO Rewrite this to $OUT .= ..., true, ...
-				loadTemplate('admin_list_task_ext_rows', false, $content);
+				$OUT .= loadTemplate('admin_list_task_ext_rows', true, $content);
 			} else {
 				// Load default row template
-				// @TODO Rewrite this to $OUT .= ..., true, ...
-				loadTemplate('admin_list_task_rows', false, $content);
+				$OUT .= loadTemplate('admin_list_task_rows', true, $content);
 			}
 
 			// Switch colors
@@ -204,13 +192,20 @@ ORDER BY
 		// Free memory
 		SQL_FREERESULT($result_tasks);
 
+		// Prepare content
+		$content = array(
+			'message' => '{--ADMIN_OVERVIEW_TASK_' . strtoupper(getRequestParameter('type')) . '_TYPE--}',
+			'type'    => getRequestParameter('type'),
+			'rows'    => $OUT
+		);
+
 		// Load footer template
 		if (getRequestParameter('type') == 'deleted') {
 			// Delete now button
-			loadTemplate('admin_overview_footer_task');
+			loadTemplate('admin_list_task_delete', false, $content);
 		} else {
 			// Normal footer
-			loadTemplate('admin_overview_footer');
+			loadTemplate('admin_list_task', false, $content);
 		}
 	}
 } // END - if
diff --git a/inc/modules/admin/what-theme_check.php b/inc/modules/admin/what-theme_check.php
deleted file mode 100644
index f551ef47b7..0000000000
--- a/inc/modules/admin/what-theme_check.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-// @DEPRECATED
-?>
diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php
index 3597c8a78b..76777e7f00 100644
--- a/inc/mysql-manager.php
+++ b/inc/mysql-manager.php
@@ -733,7 +733,7 @@ function fetchUserData ($userid, $column = 'userid') {
 }
 
 // This patched function will reduce many SELECT queries for the specified or current admin login
-function isAdmin ($adminLogin = '') {
+function isAdmin () {
 	// No admin in installation phase!
 	if ((isInstallationPhase()) || (!isAdminRegistered())) {
 		return false;
@@ -741,39 +741,45 @@ function isAdmin ($adminLogin = '') {
 
 	// Init variables
 	$ret = false;
+	$adminId = '0';
 	$passCookie = '';
 	$valPass = '';
-	//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminLogin);
+	//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminId);
 
 	// If admin login is not given take current from cookies...
-	if ((empty($adminLogin)) && (isSessionVariableSet('admin_login')) && (isSessionVariableSet('admin_md5'))) {
+	if ((isSessionVariableSet('admin_id')) && (isSessionVariableSet('admin_md5'))) {
 		// Get admin login and password from session/cookies
-		$adminLogin = getSession('admin_login');
+		$adminId    = getSession('admin_id');
 		$passCookie = getSession('admin_md5');
 	} // END - if
-	//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminLogin.'/'.$passCookie);
+	//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminId.'/'.$passCookie);
+
+	// Abort if admin id is zero
+	if ($adminId == '0') {
+		return false;
+	} // END - if
 
 	// Do we have cache?
-	if (!isset($GLOBALS['is_admin'][$adminLogin])) {
+	if (!isset($GLOBALS['is_admin'][$adminId])) {
 		// Init it with failed
-		$GLOBALS['is_admin'][$adminLogin] = false;
+		$GLOBALS['is_admin'][$adminId] = false;
 
 		// Search in array for entry
 		if (isset($GLOBALS['admin_hash'])) {
 			// Use cached string
 			$valPass = $GLOBALS['admin_hash'];
-		} elseif ((!empty($passCookie)) && (isAdminHashSet($adminLogin) === true) && (!empty($adminLogin))) {
+		} elseif ((!empty($passCookie)) && (isAdminHashSet($adminId) === true) && (!empty($adminId))) {
 			// Login data is valid or not?
-			$valPass = encodeHashForCookie(getAdminHash($adminLogin));
+			$valPass = encodeHashForCookie(getAdminHash($adminId));
 
 			// Cache it away
 			$GLOBALS['admin_hash'] = $valPass;
 
 			// Count cache hits
 			incrementStatsEntry('cache_hits');
-		} elseif ((!empty($adminLogin)) && ((!isExtensionActive('cache')) || (isAdminHashSet($adminLogin) === false))) {
+		} elseif ((!empty($adminId)) && ((!isExtensionActive('cache')) || (isAdminHashSet($adminId) === false))) {
 			// Get admin hash and hash it
-			$valPass = encodeHashForCookie(getAdminHash($adminLogin));
+			$valPass = encodeHashForCookie(getAdminHash($adminId));
 
 			// Cache it away
 			$GLOBALS['admin_hash'] = $valPass;
@@ -782,12 +788,12 @@ function isAdmin ($adminLogin = '') {
 		if (!empty($valPass)) {
 			// Check if password is valid
 			//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '(' . $valPass . '==' . $passCookie . ')='.intval($valPass == $passCookie));
-			$GLOBALS['is_admin'][$adminLogin] = (($valPass == $passCookie) || ((strlen($valPass) == 32) && ($valPass == md5($passCookie))) || (($valPass == '*FAILED*') && (!isExtensionActive('cache'))));
+			$GLOBALS['is_admin'][$adminId] = (($GLOBALS['admin_hash'] == $passCookie) || ((strlen($GLOBALS['admin_hash']) == 32) && ($GLOBALS['admin_hash'] == md5($passCookie))) || (($GLOBALS['admin_hash'] == '*FAILED*') && (!isExtensionActive('cache'))));
 		} // END - if
 	} // END - if
 
 	// Return result of comparision
-	return $GLOBALS['is_admin'][$adminLogin];
+	return $GLOBALS['is_admin'][$adminId];
 }
 
 // Generates a list of "max receiveable emails per day"
@@ -1432,10 +1438,7 @@ function getCurrentAdminId () {
 	// Do we have cache?
 	if (!isset($GLOBALS['current_admin_id'])) {
 		// Get the admin login from session
-		$adminLogin = getSession('admin_login');
-
-		// "Solve" it into an id
-		$adminId = getAdminId($adminLogin);
+		$adminId = getSession('admin_id');
 
 		// Remember in cache securely
 		setCurrentAdminId(bigintval($adminId));
@@ -1452,20 +1455,20 @@ function setCurrentAdminId ($currentAdminId) {
 }
 
 // Get password hash from administrator's login name
-function getAdminHash ($adminLogin) {
+function getAdminHash ($adminId) {
 	// By default an invalid hash is returned
 	$data['password'] = '-1';
 
-	if (isAdminHashSet($adminLogin)) {
+	if (isAdminHashSet($adminId)) {
 		// Check cache
-		$data['password'] = $GLOBALS['cache_array']['admin']['password'][$adminLogin];
+		$data['password'] = $GLOBALS['cache_array']['admin']['password'][$adminId];
 
 		// Update cache hits
 		incrementStatsEntry('cache_hits');
 	} elseif (!isExtensionActive('cache')) {
 		// Load from database
-		$result = SQL_QUERY_ESC("SELECT `password` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1",
-			array($adminLogin), __FUNCTION__, __LINE__);
+		$result = SQL_QUERY_ESC("SELECT `password` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1",
+			array(bigintval($adminId)), __FUNCTION__, __LINE__);
 
 		// Do we have an entry?
 		if (SQL_NUMROWS($result) == 1) {
@@ -1473,7 +1476,7 @@ function getAdminHash ($adminLogin) {
 			$data = SQL_FETCHARRAY($result);
 
 			// Set cache
-			setAdminHash($adminLogin, $data['password']);
+			setAdminHash($adminId, $data['password']);
 		} // END - if
 
 		// Free result
diff --git a/inc/session-functions.php b/inc/session-functions.php
index 735f634194..4928f80f08 100644
--- a/inc/session-functions.php
+++ b/inc/session-functions.php
@@ -119,9 +119,9 @@ function destroyMemberSession () {
 // Destroys the admin session
 function destroyAdminSession ($destroy = true) {
 	// Kill maybe existing session variables including array elements
-	setSession('admin_login', '');
-	setSession('admin_md5'  , '');
-	setSession('admin_last' , '');
+	setSession('admin_id'  , '');
+	setSession('admin_md5' , '');
+	setSession('admin_last', '');
 
 	// Destroy session and return status
 	if ($destroy) {
diff --git a/inc/wrapper-functions.php b/inc/wrapper-functions.php
index df22a69ec0..e44abe4e86 100644
--- a/inc/wrapper-functions.php
+++ b/inc/wrapper-functions.php
@@ -775,7 +775,7 @@ function isDemoModeActive () {
 	// Is cache set?
 	if (!isset($GLOBALS['demo_mode_active'])) {
 		// Simply check it
-		$GLOBALS['demo_mode_active'] = ((isExtensionActive('demo')) && (getSession('admin_login') == 'demo'));
+		$GLOBALS['demo_mode_active'] = ((isExtensionActive('demo')) && (getAdminLogin(getSession('admin_id')) == 'demo'));
 	} // END - if
 
 	// Return it
@@ -788,35 +788,20 @@ function getPhpCaching () {
 }
 
 // Checks wether the admin hash is set
-function isAdminHashSet ($admin) {
-	/**
-	 * @TODO Do we really need this check? If yes, try to fix this:
-	 * 1.:functions.php:2504, debug_get_mailable_backtrace(0)
-	 * 2.:wrapper-functions.php:744, debug_report_bug(1)
-	 * 3.:mysql-manager.php:728, isAdminHashSet(1)
-	 * 4.:filters.php:384, isAdmin(0)
-	 * 5.:debug_get_mailable_backtrace:2457, FILTER_DETERMINE_USERNAME(1)
-	 * 6.:filter-functions.php:280, call_user_func_array(2)
-	 * 7.:load_cache.php:74, runFilterChain(1)
-	 * 8.:inc-functions.php:131, include(1)
-	 * 9.:inc-functions.php:145, loadInclude(1)
-	 * 10.:mysql-connect.php:104, loadIncludeOnce(1)
-	 * 11.:inc-functions.php:131, include(1)
-	 * 12.:inc-functions.php:145, loadInclude(1)
-	 * 13.:config-global.php:106, loadIncludeOnce(1)
-	 * 14.:js.php:57, require(1)
-	 */
+function isAdminHashSet ($adminId) {
+	// Is the array there?
 	if (!isset($GLOBALS['cache_array']['admin'])) {
+		// Missing array should be reported
 		debug_report_bug(__FUNCTION__, __LINE__, 'Cache not set.');
 	} // END - if
 
 	// Check for admin hash
-	return isset($GLOBALS['cache_array']['admin']['password'][$admin]);
+	return isset($GLOBALS['cache_array']['admin']['password'][$adminId]);
 }
 
 // Setter for admin hash
-function setAdminHash ($admin, $hash) {
-	$GLOBALS['cache_array']['admin']['password'][$admin] = $hash;
+function setAdminHash ($adminId, $hash) {
+	$GLOBALS['cache_array']['admin']['password'][$adminId] = $hash;
 }
 
 // Init user data array
diff --git a/templates/de/html/admin/admin_admins_mails_list_row.tpl b/templates/de/html/admin/admin_admins_mails_list_row.tpl
index 5a8d805766..8ef6b7bedf 100644
--- a/templates/de/html/admin/admin_admins_mails_list_row.tpl
+++ b/templates/de/html/admin/admin_admins_mails_list_row.tpl
@@ -6,6 +6,6 @@
 		$content[mail_template]
 	</td>
 	<td class="switch_sw$content[sw] bottom" align="center">
-		$content[alnk]
+		{%pipe,generateAdminLink=$content[admin_id]%}
 	</td>
 </tr>
diff --git a/templates/de/html/admin/admin_list_rallye_prices_row.tpl b/templates/de/html/admin/admin_list_rallye_prices_row.tpl
index 2c2b961521..071cd09f52 100644
--- a/templates/de/html/admin/admin_list_rallye_prices_row.tpl
+++ b/templates/de/html/admin/admin_list_rallye_prices_row.tpl
@@ -1,6 +1,6 @@
 <tr>
 	<td align="center" class="switch_sw$content[sw] bottom right"><a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content[id]%}">$content[title]</a></td>
-	<td align="center" class="switch_sw$content[sw] bottom right">$content[admin_link]</td>
+	<td align="center" class="switch_sw$content[sw] bottom right">{%pipe,generateAdminLink=$content[admin_id]%}</td>
 	<td align="center" class="switch_sw$content[sw] bottom right">$content[start]</td>
 	<td align="center" class="switch_sw$content[sw] bottom">$content[end]</td>
 </tr>
diff --git a/templates/de/html/admin/admin_list_sponsor_details.tpl b/templates/de/html/admin/admin_list_sponsor_details.tpl
index acda431b67..c7d486fe3a 100644
--- a/templates/de/html/admin/admin_list_sponsor_details.tpl
+++ b/templates/de/html/admin/admin_list_sponsor_details.tpl
@@ -95,7 +95,7 @@
 </tr>
 <tr>
 	<td align="right" class="bottom right">{--SPONSOR_CREATED--}:</td>
-	<td align="center" class="bottom">$content[created]</td>
+	<td align="center" class="bottom">$content[sponsor_created]</td>
 </tr>
 <tr>
 	<td align="right" class="bottom right">{--ADMIN_LAST_ONLINE--}:</td>
diff --git a/templates/de/html/admin/admin_list_sponsor_row.tpl b/templates/de/html/admin/admin_list_sponsor_row.tpl
index f8308ed4c7..fb9513103f 100644
--- a/templates/de/html/admin/admin_list_sponsor_row.tpl
+++ b/templates/de/html/admin/admin_list_sponsor_row.tpl
@@ -27,7 +27,7 @@
     [<strong><a href="{%url=modules.php?module=admin&amp;what=lock_sponsor&amp;id=$content[id]%}">{%pipe,sponsorTranslateUserStatus=$content[status]%}</a></strong>]
   </td>
   <td align="center" class="switch_sw$content[sw] bottom right" width="120">
-    $content[created]
+    $content[sponsor_created]
   </td>
   <td align="center" class="switch_sw$content[sw] bottom right" width="120">
     $content[last_online]
diff --git a/templates/de/html/admin/admin_list_task.tpl b/templates/de/html/admin/admin_list_task.tpl
new file mode 100644
index 0000000000..b9fbc9232b
--- /dev/null
+++ b/templates/de/html/admin/admin_list_task.tpl
@@ -0,0 +1,30 @@
+<div align="center">
+<form accept-charset="utf-8" action="{%url=modules.php?module=admin&amp;what=list_task&amp;type=$content[type]%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="admin_tasktable dashed">
+<tr>
+	<td colspan="7" align="center" class="admin_task_header bottom">
+		<strong>$content[message]</strong>
+	</td>
+</tr>
+<tr>
+	<td align="center" class="header_column bottom right"><strong>{--ID_SELECT--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_ASSIGNED_ADMIN--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_REGISTER_EXTENSION--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_TASK_INFOS--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_MEMBER_UID--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_TASK_TYPE--}</strong></td>
+	<td align="center" class="header_column bottom"><strong>{--ADMIN_TASK_CREATED--}</strong></td>
+</tr>
+$content[rows]
+<tr>
+	<td colspan="7" align="center" class="admin_footer">
+		<input type="reset" value="{--ADMIN_UNSELECT_ALL--}" class="admin_reset" />
+		<input type="submit" name="assign" value="{--ADMIN_ASSIGN_TASKS--}" class="admin_submit" />
+		<input type="submit" name="unassign" value="{--ADMIN_UNASSIGN_TASKS--}" class="admin_submit" />
+		<input type="submit" name="redir" value="{--ADMIN_REDIRECT_TASKS--}" class="admin_submit" />
+		<input type="submit" name="del" value="{--ADMIN_DELETE_ENTRIES--}" class="admin_delete" />
+	</td>
+</tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_list_task_delete.tpl b/templates/de/html/admin/admin_list_task_delete.tpl
new file mode 100644
index 0000000000..4a9742f146
--- /dev/null
+++ b/templates/de/html/admin/admin_list_task_delete.tpl
@@ -0,0 +1,34 @@
+<div align="center">
+<form accept-charset="utf-8" action="{%url=modules.php?module=admin&amp;what=list_task&amp;type=$content[type]%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="admin_tasktable dashed">
+<tr>
+	<td colspan="7" align="center" class="admin_task_header bottom">
+		<strong>$content[message]</strong>
+	</td>
+</tr>
+<tr>
+	<td align="center" class="header_column bottom right"><strong>{--ID_SELECT--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_ASSIGNED_ADMIN--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_REGISTER_EXTENSION--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_TASK_INFOS--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_MEMBER_UID--}</strong></td>
+	<td align="center" class="header_column bottom right"><strong>{--ADMIN_TASK_TYPE--}</strong></td>
+	<td align="center" class="header_column bottom"><strong>{--ADMIN_TASK_CREATED--}</strong></td>
+</tr>
+$content[rows]
+<tr>
+	<td colspan="7" align="center" class="admin_footer">
+		<input type="reset" value="{--ADMIN_UNSELECT_ALL--}" class="admin_reset" />
+		<input type="submit" name="assign" value="{--ADMIN_ASSIGN_TASKS--}" class="admin_submit" />
+		<input type="submit" name="unassign" value="{--ADMIN_UNASSIGN_TASKS--}" class="admin_submit" />
+		<input type="submit" name="redir" value="{--ADMIN_REDIRECT_TASKS--}" class="admin_submit" />
+		<input type="submit" name="del" value="{--ADMIN_TASK_DELETE_ENTRIES--}" class="admin_delete" />
+	</td>
+</tr>
+</table>
+</form>
+</div>
+
+<div class="admin_note">
+	<strong>{--TASK_DELETE_MODE_NOTE--}</strong>
+</div>
diff --git a/templates/de/html/admin/admin_list_task_ext_rows.tpl b/templates/de/html/admin/admin_list_task_ext_rows.tpl
index 1c57fc4f6d..00af78719b 100644
--- a/templates/de/html/admin/admin_list_task_ext_rows.tpl
+++ b/templates/de/html/admin/admin_list_task_ext_rows.tpl
@@ -3,7 +3,7 @@
 		<input type="checkbox" class="admin_normal" title="{--ID_SELECT--} $content[id]" name="sel[$content[id]]" value="1" />
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
-		$content[admin]
+		{%pipe,generateAdminLink=$content[assigned_admin]%}
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
 		<a title="{--ADMIN_REGISTER_EXTENSION_TITLE--}" href="{%url=modules.php?module=admin&amp;what=extensions&amp;reg_ext=$content[id]%}">{--ADMIN_REGISTER_EXTENSION--}</a>
@@ -15,9 +15,9 @@
 		$content[userid]
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
-		$content[type]
+		$content[task_type_msg]
 	</td>
 	<td class="switch_sw$content[sw] bottom" align="center">
-		$content[created]]
+		$content[task_created]
 	</td>
 </tr>
diff --git a/templates/de/html/admin/admin_list_task_rows.tpl b/templates/de/html/admin/admin_list_task_rows.tpl
index e0d1af287f..e297a2a41c 100644
--- a/templates/de/html/admin/admin_list_task_rows.tpl
+++ b/templates/de/html/admin/admin_list_task_rows.tpl
@@ -3,7 +3,7 @@
 		<input type="checkbox" class="admin_normal" title="{--ID_SELECT--} $content[id]" name="sel[$content[id]]" value="1" />
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
-		$content[admin]
+		{%pipe,generateAdminLink=$content[assigned_admin]%}
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
 		---
@@ -15,9 +15,9 @@
 		$content[userid]
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
-		$content[type]
+		$content[task_type_msg]
 	</td>
 	<td class="switch_sw$content[sw] bottom" align="center">
-		$content[created]]
+		$content[task_created]
 	</td>
 </tr>
diff --git a/templates/de/html/admin/admin_overview_footer.tpl b/templates/de/html/admin/admin_overview_footer.tpl
index 302448c0f2..11f5d85d80 100644
--- a/templates/de/html/admin/admin_overview_footer.tpl
+++ b/templates/de/html/admin/admin_overview_footer.tpl
@@ -1,12 +1 @@
-<tr>
-	<td colspan="7" align="center" class="admin_footer">
-		<input type="reset" value="{--ADMIN_UNSELECT_ALL--}" class="admin_reset" />
-		<input type="submit" name="assign" value="{--ADMIN_ASSIGN_TASKS--}" class="admin_submit" />
-		<input type="submit" name="unassign" value="{--ADMIN_UNASSIGN_TASKS--}" class="admin_submit" />
-		<input type="submit" name="redir" value="{--ADMIN_REDIRECT_TASKS--}" class="admin_submit" />
-		<input type="submit" name="del" value="{--ADMIN_DELETE_ENTRIES--}" class="admin_delete" />
-	</td>
-</tr>
-</table>
-</form>
-</div>
+<!-- @DEPRECATED //-->
diff --git a/templates/de/html/admin/admin_overview_footer_task.tpl b/templates/de/html/admin/admin_overview_footer_task.tpl
index 1922bbc909..11f5d85d80 100644
--- a/templates/de/html/admin/admin_overview_footer_task.tpl
+++ b/templates/de/html/admin/admin_overview_footer_task.tpl
@@ -1,15 +1 @@
-<tr>
-	<td colspan="7" align="center" class="admin_footer">
-		<input type="reset" value="{--ADMIN_UNSELECT_ALL--}" class="admin_reset" />
-		<input type="submit" name="assign" value="{--ADMIN_ASSIGN_TASKS--}" class="admin_submit" />
-		<input type="submit" name="unassign" value="{--ADMIN_UNASSIGN_TASKS--}" class="admin_submit" />
-		<input type="submit" name="redir" value="{--ADMIN_REDIRECT_TASKS--}" class="admin_submit" />
-		<input type="submit" name="del" value="{--ADMIN_TASK_DELETE_ENTRIES--}" class="admin_delete" />
-	</td>
-</tr>
-</table>
-</form>
-
-<div class="admin_note">
-	<strong>{--TASK_DELETE_MODE_NOTE--}</strong>
-</div>
+<!-- @DEPRECATED //-->
diff --git a/templates/de/html/admin/admin_overview_header_task.tpl b/templates/de/html/admin/admin_overview_header_task.tpl
index f61cda805b..11f5d85d80 100644
--- a/templates/de/html/admin/admin_overview_header_task.tpl
+++ b/templates/de/html/admin/admin_overview_header_task.tpl
@@ -1,17 +1 @@
-<div align="center">
-<form accept-charset="utf-8" action="{%url=modules.php?module=admin&amp;what=list_task&amp;type=$content[type]%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="admin_tasktable dashed">
-<tr>
-	<td colspan="7" align="center" class="admin_task_header bottom">
-		<strong>$content[message]</strong>
-	</td>
-</tr>
-<tr>
-	<td align="center" class="header_column bottom right"><strong>{--ID_SELECT--}</strong></td>
-	<td align="center" class="header_column bottom right"><strong>{--ADMIN_ASSIGNED_ADMIN--}</strong></td>
-	<td align="center" class="header_column bottom right"><strong>{--ADMIN_REGISTER_EXTENSION--}</strong></td>
-	<td align="center" class="header_column bottom right"><strong>{--ADMIN_TASK_INFOS--}</strong></td>
-	<td align="center" class="header_column bottom right"><strong>{--ADMIN_MEMBER_UID--}</strong></td>
-	<td align="center" class="header_column bottom right"><strong>{--ADMIN_TASK_TYPE--}</strong></td>
-	<td align="center" class="header_column bottom"><strong>{--ADMIN_TASK_CREATED--}</strong></td>
-</tr>
+<!-- @DEPRECATED //-->
diff --git a/templates/de/html/admin/admin_overview_list_ext_rows.tpl b/templates/de/html/admin/admin_overview_list_ext_rows.tpl
index 4286166d44..1bc19697a9 100644
--- a/templates/de/html/admin/admin_overview_list_ext_rows.tpl
+++ b/templates/de/html/admin/admin_overview_list_ext_rows.tpl
@@ -3,7 +3,7 @@
 		<input type="checkbox" class="admin_normal" title="{--ID_SELECT--} $content[id]" name="sel[$content[id]]" value="1" />
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
-		$content[assigned_admin]
+		{%pipe,generateAdminLink=$content[assigned_admin]%}
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
 		<a title="{--ADMIN_REGISTER_EXTENSION_TITLE--}" href="{%url=modules.php?module=admin&amp;what=extensions&amp;reg_ext=$content[id]%}">{--ADMIN_REGISTER_EXTENSION--}</a>
@@ -18,6 +18,6 @@
 		$content[task_type_msg]
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
-		$content[created]]
+		$content[task_created]
 	</td>
 </tr>
diff --git a/templates/de/html/admin/admin_overview_list_rows.tpl b/templates/de/html/admin/admin_overview_list_rows.tpl
index 1f4a4fcf2f..51a580ea9e 100644
--- a/templates/de/html/admin/admin_overview_list_rows.tpl
+++ b/templates/de/html/admin/admin_overview_list_rows.tpl
@@ -3,7 +3,7 @@
 		<input type="checkbox" class="admin_normal" title="{--ID_SELECT--} $content[id]" name="sel[$content[id]]" value="1" />
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
-		$content[assigned_admin]
+		{%pipe,generateAdminLink=$content[assigned_admin]%}
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
 		---
@@ -18,6 +18,6 @@
 		$content[task_type_msg]
 	</td>
 	<td class="switch_sw$content[sw] bottom right" align="center">
-		$content[created]]
+		$content[task_created]
 	</td>
 </tr>
diff --git a/templates/de/html/admin/admin_overview_row.tpl b/templates/de/html/admin/admin_overview_row.tpl
index 0bae9d2690..8c57ea531f 100644
--- a/templates/de/html/admin/admin_overview_row.tpl
+++ b/templates/de/html/admin/admin_overview_row.tpl
@@ -5,7 +5,7 @@
 			$content[add]
 			<li style="white-space: normal">{--ADMIN_TASK_TEXT--}: $content[text]</li>
 			<li style="white-space: normal"><div style="text-align: right"><a href="#ext_$content[extension]">{--TOP--}</a></div></li>
-			<li style="white-space: normal">{--ADMIN_TASK_CREATED--}: <strong>$content[created]</strong></li>
+			<li style="white-space: normal">{--ADMIN_TASK_CREATED--}: <strong>$content[task_created]</strong></li>
 		</ul>
 	</td>
 	<td width="20%" class="switch_sw$content[sw] bottom" align="right" valign="top" style="padding-top: 40px">
diff --git a/templates/de/html/guest/guest_advert.tpl b/templates/de/html/guest/guest_advert.tpl
index a963c56c1f..c9a386a40b 100644
--- a/templates/de/html/guest/guest_advert.tpl
+++ b/templates/de/html/guest/guest_advert.tpl
@@ -1 +1 @@
-<!-- Kleiner 88x31 Banner ... -->
+<!-- Kleiner 88x31 Banner ... //-->
diff --git a/templates/de/html/guest/guest_advert2.tpl b/templates/de/html/guest/guest_advert2.tpl
index a963c56c1f..c9a386a40b 100644
--- a/templates/de/html/guest/guest_advert2.tpl
+++ b/templates/de/html/guest/guest_advert2.tpl
@@ -1 +1 @@
-<!-- Kleiner 88x31 Banner ... -->
+<!-- Kleiner 88x31 Banner ... //-->
diff --git a/templates/de/html/guest/guest_content_footer.tpl b/templates/de/html/guest/guest_content_footer.tpl
index 47fa43d65e..1413a103a3 100644
--- a/templates/de/html/guest/guest_content_footer.tpl
+++ b/templates/de/html/guest/guest_content_footer.tpl
@@ -1,8 +1,8 @@
   </td>
   <td valign="top"><div class="skyscraper">
-    <!-- 120x600 may fit here -->
+    <!-- 120x600 may fit here //-->
   </div></td>
 </tr>
 <tr>
   <td align="center" valign="top" class="guest_advert">
-<!-- Don't add your code here! -->
+<!-- Don't add your code here! //-->
diff --git a/templates/de/html/guest/guest_footer.tpl b/templates/de/html/guest/guest_footer.tpl
index 24e97793d3..ae7eab89eb 100644
--- a/templates/de/html/guest/guest_footer.tpl
+++ b/templates/de/html/guest/guest_footer.tpl
@@ -1,6 +1,6 @@
 <tr>
 	<td class="guest_advert" colspan="3" align="center">
-		<!-- Horizontal footer banner -->
+		<!-- Horizontal footer banner //-->
 	</td>
 </tr>
 </table>
diff --git a/templates/de/html/guest/guest_header.tpl b/templates/de/html/guest/guest_header.tpl
index f39efa0898..4fdcdbab78 100644
--- a/templates/de/html/guest/guest_header.tpl
+++ b/templates/de/html/guest/guest_header.tpl
@@ -1,9 +1,9 @@
-<!-- Gast-Tabelle - Anfang -->
+<!-- Gast-Tabelle - Anfang //-->
 <table border="0" cellspacing="0" cellpadding="0" width="100%" class="guest">
 	<tr>
 		<td colspan="3" align="center" valign="top" class="guest_title">
 			<a name="TOP"></a>
-			<!-- Ab hier Kopf! -->
+			<!-- Ab hier Kopf! //-->
 			<strong><big>-&nbsp;-&nbsp;-<a title="{?MAIN_TITLE?}"
 			style="cursor: default; background: none; text-decoration: none"
 			class="guest_header">{?MAIN_TITLE?}</a>&nbsp;-&nbsp;-&nbsp;-</big></strong>
@@ -14,5 +14,5 @@
 				<td width="200" align="right"><div class="guest_header">$content[date_time]</div></td>
 			</tr>
 		</table>
-		<!-- Bis hier Kopf! --></td>
+		<!-- Bis hier Kopf! //--></td>
 	</tr>
diff --git a/templates/de/html/guest/guest_menu_content.tpl b/templates/de/html/guest/guest_menu_content.tpl
index 517986a294..ec1a9e4298 100644
--- a/templates/de/html/guest/guest_menu_content.tpl
+++ b/templates/de/html/guest/guest_menu_content.tpl
@@ -1,3 +1,3 @@
-<!-- This HTML code goes between the left menu and the content on right side -->
+<!-- This HTML code goes between the left menu and the content on right side //-->
 </td>
-<td valign="top" rowspan="3" class="guest_content">
\ No newline at end of file
+<td valign="top" rowspan="3" class="guest_content">
diff --git a/templates/de/html/guest/guest_menu_td.tpl b/templates/de/html/guest/guest_menu_td.tpl
index b3d9af8f43..59398baeac 100644
--- a/templates/de/html/guest/guest_menu_td.tpl
+++ b/templates/de/html/guest/guest_menu_td.tpl
@@ -1,3 +1,3 @@
-<!-- This code goes between header and left menu -->
+<!-- This code goes between header and left menu //-->
 <tr>
-	<td class="guest_menu">
\ No newline at end of file
+	<td class="guest_menu">
diff --git a/templates/de/html/member/member_advert.tpl b/templates/de/html/member/member_advert.tpl
index f95e17b795..c9a386a40b 100644
--- a/templates/de/html/member/member_advert.tpl
+++ b/templates/de/html/member/member_advert.tpl
@@ -1 +1 @@
-<!-- Kleiner 88x31 Banner ... -->
\ No newline at end of file
+<!-- Kleiner 88x31 Banner ... //-->
diff --git a/templates/de/html/member/member_footer.tpl b/templates/de/html/member/member_footer.tpl
index 61141f1216..3710a7032c 100644
--- a/templates/de/html/member/member_footer.tpl
+++ b/templates/de/html/member/member_footer.tpl
@@ -1,7 +1,7 @@
 <tr>
 		<td class="guest_advert" colspan="3" align="center">
-		<!-- Horizontal footer banner -->
+		<!-- Horizontal footer banner //-->
 	</td>
 </tr>
 </table>
-<!-- Fuss unterhalb des Mitgliederbereiches -->
+<!-- Fuss unterhalb des Mitgliederbereiches //-->
diff --git a/templates/de/html/member/member_payout_form_banner.tpl b/templates/de/html/member/member_payout_form_banner.tpl
index bcad8cdc88..1cd3766d87 100644
--- a/templates/de/html/member/member_payout_form_banner.tpl
+++ b/templates/de/html/member/member_payout_form_banner.tpl
@@ -47,7 +47,7 @@
 </table>
 </form>
 
-<!-- Hinweise zur "Auszahlung" in Bannerviews, Textlinkklicks, etc. -->
+<!-- Hinweise zur "Auszahlung" in Bannerviews, Textlinkklicks, etc. //-->
 <div class="member_note">(*):&nbsp;{--PAYOUT_BANNER_NOTE--}</div>
-<!-- Hinweise zur "Auszahlung" in Bannerviews, Textlinkklicks, etc. -->
+<!-- Hinweise zur "Auszahlung" in Bannerviews, Textlinkklicks, etc. //-->
 </div>
diff --git a/templates/de/html/sponsor/sponsor_footer.tpl b/templates/de/html/sponsor/sponsor_footer.tpl
index 6fd18dc89c..532e128e27 100644
--- a/templates/de/html/sponsor/sponsor_footer.tpl
+++ b/templates/de/html/sponsor/sponsor_footer.tpl
@@ -1,2 +1 @@
-<!-- Werbebanner oder was auch immer? -->
-
+<!-- Werbebanner oder was auch immer? //-->
diff --git a/templates/de/html/uberwach/uberwach_snippet.tpl b/templates/de/html/uberwach/uberwach_snippet.tpl
index f3fd7962c8..9386742823 100644
--- a/templates/de/html/uberwach/uberwach_snippet.tpl
+++ b/templates/de/html/uberwach/uberwach_snippet.tpl
@@ -1,8 +1,8 @@
-<!-- Einbauanleitung: http://www.uberwach.de/code-snippet.html -->
-<!-- start uberwach code :: do not change :: v2.2.2 -->
+<!-- Einbauanleitung: http://www.uberwach.de/code-snippet.html //-->
+<!-- start uberwach code :: do not change :: v2.2.2 //-->
 <script type="text/javascript">/* <![CDATA[ */
 au_ip='{%server,remote_addr%}';
 /* ]]> */</script>
 <script src="{%url=js.php?js=uberwach%}{%ext,version=uberwach%}" type="text/javascript"></script>
 <noscript><a href="http://www.uberwach.de/" rel="external" target="_blank" title="Aktion: &Uuml;berwach!">?mg src="http://www.uberwach.de/wanze.gif" alt="Aktion UBERWACH!" width="80" height="15" border="0" /></a></noscript>
-<!-- ende uberwach code -->
+<!-- ende uberwach code //-->
-- 
2.39.5