$sqlString = str_replace('{PER}', '%', $sqlString);
// Compile config entries out
- $eval = '$sqlString = "' . FILTER_COMPILE_CONFIG(escapeQuotes($sqlString)) . '";';
- eval($eval);
+ $sqlString = SQL_PREPARE_SQL_STRING($sqlString);
// Starting time
$querytimeBefore = microtime(true);
return (SQL_NUMROWS($result) === 0);
}
+// Private function to prepare the SQL query string
+function SQL_PREPARE_SQL_STRING ($sqlString) {
+ // Is it already cached?
+ if (!isset($GLOBALS['sql_strings'][$sqlString])) {
+ // No, then generate the eval() command
+ $eval = '$sql = "' . FILTER_COMPILE_EXPRESSION_CODE(FILTER_COMPILE_CONFIG(escapeQuotes($sqlString))) . '";';
+ eval($eval);
+
+ // ... and set it
+ $GLOBALS['sql_strings'][$sqlString] = $sql;
+ } // END - if
+
+ // Return it
+ return $GLOBALS['sql_strings'][$sqlString];
+}
+
// [EOF]
?>
die();
} // END - if
+// Private function to replace the code
+function replaceExpressionCode ($data, $replacer) {
+ // Replace the code
+ // @TODO is escapeQuotes() enougth for strings with single/double quotes?
+ return str_replace($data['matches'][0][$data['key']], $replacer, escapeQuotes($data['code']));
+}
+
// Expression call-back function for getCode() calls
function doExpressionCode ($data) {
// Replace the code
- $code = str_replace($data['matches'][0][$data['key']], "\" . getCode('" . $data['matches'][4][$data['key']] . "') . \"", $data['code']);
+ $code = str_replace($data['matches'][0][$data['key']], "{DQUOTE} . getCode('" . $data['matches'][4][$data['key']] . "') . {DQUOTE}", $data['code']);
// Return replaced code
return $code;
if ($data['callback'] == 'js') $data['mode'] = 1;
// Handle an URL here
- $replacer = "\" . encodeUrl(\"" . $data['matches'][4][$data['key']] . "\", " . $data['mode'] . ") . \"";
+ $replacer = "{DQUOTE} . encodeUrl('" . $data['matches'][4][$data['key']] . "', " . $data['mode'] . ') . {DQUOTE}';
// Replace it
- $code = str_replace($data['matches'][0][$data['key']], $replacer, $data['code']);
+ $code = replaceExpressionCode($data, $replacer);
// Return replaced code
return $code;
// This will make 'foo_bar' to detectFooBar()
$functionName = "'detect' . implode('', array_map('ucfirst', explode('_', '" . $data['callback'] . "')))";
+ // Generate replacer
+ $replacer = '{DQUOTE} . call_user_func(' . $functionName . ') . {DQUOTE}';
+
// Replace it
- $code = str_replace($data['matches'][0][$data['key']], "\" . call_user_func(" . $functionName . ") . \"", $data['code']);
+ $code = replaceExpressionCode($data, $replacer);
// Return replaced code
return $code;
$functionName = $data['extra_func'] . '(' . $functionName . ')';
} // END - if
+ // Generate replacer
+ $replacer = '{DQUOTE} . ' . $functionName . ' . "';
+
// Now replace the code
- $code = str_replace($data['matches'][0][$data['key']], "\" . " . $functionName . " . \"", $data['code']);
+ $code = replaceExpressionCode($data, $replacer);
// Return replaced code
return $code;
$functionName = 'getExtension' . ucfirst(strtolower($data['callback']));
// Construct call of the function
- $replacer = "\" . call_user_func_array('" . $functionName . "', array('" . $data['matches'][4][$data['key']] . "', true)) . \"";
+ $replacer = "{DQUOTE} . call_user_func_array('" . $functionName . "', array('" . $data['matches'][4][$data['key']] . "', true)) . {DQUOTE}";
} // END - if
+ // Generate replacer
+ $replacer = sprintf("&ext=%s&ver=%s&rev={DQUOTE} . getConfig('CURR_SVN_REVISION') . {DQUOTE}", $data['matches'][4][$data['key']], $replacer);
+
// Replace it and insert parameter for GET request
- $code = str_replace($data['matches'][0][$data['key']], sprintf("&ext=%s&ver=%s&rev=\" . getConfig('CURR_SVN_REVISION') . \"", $data['matches'][4][$data['key']], $replacer), $data['code']);
+ $code = replaceExpressionCode($data, $replacer);
// Return replaced code
return $code;
// Read configuration
$configValue = getConfig($data['matches'][4][$data['key']]);
- // Construct a new expression
- $replacer = '{%pipe,' . $data['callback'] . ',' . $configValue . '%}';
+ // Default replacer is the config value itself
+ $replacer = $configValue;
+
+ // Is there a call-back function provided?
+ if (!empty($data['callback'])) {
+ // Construct a new expression
+ $replacer = '{%pipe,' . $data['callback'] . ',' . $configValue . '%}';
+ } // END - if
// Replace the config entry
- $code = str_replace($data['matches'][0][$data['key']], $replacer, $data['code']);
+ $code = replaceExpressionCode($data, $replacer);
// Return replaced code
return $code;
// Do we have a call-back? Should always be there!
if (!empty($data['callback'])) {
// Parse it through this function
- $replacer = "\" . " . $data['callback'] . "('" . $replacer . "') . \"";
+ $replacer = '{DQUOTE} . ' . $data['callback'] . "('" . $replacer . "') . {DQUOTE}";
} // END - if
// Replace the config entry
- $code = str_replace($data['matches'][0][$data['key']], $replacer, $data['code']);
+ $code = replaceExpressionCode($data, $replacer);
// Return replaced code
return $code;
// Expression call-back function for calling filters
function doExpressionFilter ($data) {
// Construct replacement
- $replacer = "\" . runFilterChain('" . $data['matches'][4][$data['key']] . "') . \"";
+ $replacer = "{DQUOTE} . runFilterChain('" . $data['matches'][4][$data['key']] . "') . {DQUOTE}";
// Run the filter and insert result
- $code = str_replace($data['matches'][0][$data['key']], $replacer, $data['code']);
+ $code = replaceExpressionCode($data, $replacer);
// Return replaced code
return $code;
} // END - if
// Replace the code
- $code = str_replace($data['matches'][0][$data['key']], $replacer, $code);
+ $code = replaceExpressionCode($data, $replacer);
// Return the (maybe) replaced code
return $code;
// Message string replacement depends on if message is masked
if (isMessageMasked($data['callback'])) {
// Message should be masked
- $replacer = "\" . getMaskedMessage('" . $data['callback'] . "', '" . $data['extra_func'] . "') . \"";
+ $replacer = "{DQUOTE} . getMaskedMessage('" . $data['callback'] . "', '" . $data['extra_func'] . "') . {DQUOTE}";
} else {
// Regular message
- $replacer = "\" . getMessage('" . $data['callback'] . "') . \"";
+ $replacer = "{DQUOTE} . getMessage('" . $data['callback'] . "') . {DQUOTE}";
}
// Replace the code
- // @TODO is escapeQuotes enougth for strings with single/double quotes?
- $code = str_replace($data['matches'][0][$data['key']], $replacer, escapeQuotes($data['code']));
+ $code = replaceExpressionCode($data, $replacer);
// Return the (maybe) replaced code
return $code;
UNIQUE `provider_type_key` (`network_id`,`network_type_id`,`network_array_index`),
UNIQUE `provider_type_trans` (`network_id`,`network_type_id`,`network_index_translation`),
PRIMARY KEY (`network_array_id`)
-) TYPE={?_TABLE_TYPE?} COMMENT='Return codes'");
+) TYPE={?_TABLE_TYPE?} COMMENT='Translation of API responses'");
// Data from the webmaster (you!)
addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_config`');
addAdminMenuSql('network','list_network_params','Abfrageparameter','<strong>Experten-Einstellungen!</strong> Hier stellen Sie die Abfrageparameter (wie sie genannt werden müssen, um das API-Script korrekt aufrufen zu können) ein, pro Werbenetzwerk. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',8);
addAdminMenuSql('network','list_network_array_translation','Antwort-Array','<strong>Experten-Einstellungen!</strong> Hier stellen Sie die Zuweisungen der aus der analysierten API-Antwort Array-Elementen zu den Datenspalten ein. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',9);
addAdminMenuSql('network','list_network_error_codes','Fehlercodes','<strong>Experten-Einstellungen!</strong> Hier stellen Sie die Fehlercodes ein, die im Falle eines Fehlers pro API-Script kommen können. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',10);
- addAdminMenuSql('network','list_network_error_types','Fehlertypen','<strong>Experten-Einstellungen!</strong> Hier stellen Sie die Namen von Fehlercodes ein, die Scripte zurückliefern können. <strong>Dies sind INTERNE Daten und sollten nur vom Entwicklerteam angepasst werden.</strong> Stellen Sie an diesen Einstellungen bitte nichts um. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',11);
+ addAdminMenuSql('network','list_network_translations','Array-Übersetzungen','<strong>Experten-Einstellungen!</strong> Hier richten Sie Array-Index-Übersetzungen für nicht-fehler API-Antworten ein. <strong>Dies sind INTERNE Daten und sollten nur vom Entwicklerteam angepasst werden.</strong> Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',11);
+ addAdminMenuSql('network','list_network_error_types','Fehlertypen','<strong>Experten-Einstellungen!</strong> Hier stellen Sie die Namen von Fehlercodes ein, die Scripte zurückliefern können. <strong>Dies sind INTERNE Daten und sollten nur vom Entwicklerteam angepasst werden.</strong> Stellen Sie an diesen Einstellungen bitte nichts um. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten möchten.',12);
// Configuration entries
addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `network_cache_refresh` BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (60 * 15) . '');
$removed = '0';
// Prepare SQL queries
- $insertSQL = "INSERT INTO `{?_MYSQL_PREFIX?}_filters` (`filter_name`,`filter_function`,`filter_active`) VALUES";
- $removeSQL = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_filters` WHERE";
+ $insertSQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_filters` (`filter_name`,`filter_function`,`filter_active`) VALUES';
+ $removeSQL = 'DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_filters` WHERE';
// Write all filters to database
foreach ($GLOBALS['cache_array']['filter']['chains'] as $filterName => $filterArray) {
// Is the config valid?
if (isConfigEntrySet($matches[1][$key])) {
// Set it for caching
- $GLOBALS['compile_config'][$matches[1][$key]] = "\" . getConfig('" . $matches[1][$key] . "') . \"";
+ $GLOBALS['compile_config'][$matches[1][$key]] = '{%config=' . $matches[1][$key] . '%}';
} elseif (isConfigEntrySet('default_' . strtoupper($matches[1][$key]))) {
// Use default value
- $GLOBALS['compile_config'][$matches[1][$key]] = "\" . getConfig('" . 'DEFAULT_' . strtoupper($matches[1][$key]) . "') . \"";
+ $GLOBALS['compile_config'][$matches[1][$key]] = '{%config=' . 'DEFAULT_' . strtoupper($matches[1][$key]) . '%}';
} elseif (isMessageIdValid('DEFAULT_' . strtoupper($matches[1][$key]))) {
// No config, try the language system
- $GLOBALS['compile_config'][$matches[1][$key]] = "\" . getMessage('". 'DEFAULT_' . strtoupper($matches[1][$key]) . "') . \"";
+ $GLOBALS['compile_config'][$matches[1][$key]] = '{%message,DEFAULT_' . strtoupper($matches[1][$key]) . '%}';
} else {
// Unhandled!
$GLOBALS['compile_config'][$matches[1][$key]] = '!' . $matches[1][$key] . '!';
addPageHeaderFooter();
// Compile all out
- while (((strpos($GLOBALS['output'], '{--') !== false) || (strpos($GLOBALS['output'], '{!') !== false) || (strpos($GLOBALS['output'], '{?') !== false) || (strpos($GLOBALS['output'], '{%') !== false)) && ($cnt < 3)) {
+ while (((strpos($GLOBALS['output'], '{--') !== false) || (strpos($GLOBALS['output'], '{DQUOTE}') !== false) || (strpos($GLOBALS['output'], '{!') !== false) || (strpos($GLOBALS['output'], '{?') !== false) || (strpos($GLOBALS['output'], '{%') !== false)) && ($cnt < 3)) {
// Init common variables
$content = array();
$newContent = '';
// Compile it
//* DEBUG: */ print '<pre>'.htmlentities($GLOBALS['output']).'</pre>';
- $eval = '$newContent = "' . compileCode(escapeQuotes($GLOBALS['output'])) . '";';
+ $eval = '$newContent = "' . str_replace('{DQUOTE}', '"', compileCode(escapeQuotes($GLOBALS['output']))) . '";';
//* DEBUG: */ die('<pre>'.htmlentities($eval).'</pre>');
eval($eval);
+ //* DEBUG: */ die('<pre>'.htmlentities($newContent).'</pre>');
// Was that eval okay?
if (empty($newContent)) {
}
// Add seperator if we have not yet reached total pages
- if ($page < $PAGES) $NAV .= ' | ';
+ if ($page < $PAGES) {
+ // Add it
+ $NAV .= '|';
+ } // END - if
} // END - for
// Define constants only once
$targetArray = array('del_user', 'edit_user', 'lock_user', 'add_points', 'sub_points');
// Begin of navigation links
- $OUT = '[ ';
+ $OUT = '[';
foreach ($targetArray as $tar) {
$OUT .= '<span class="admin_user_link"><a href="{%url=modules.php?module=admin&what=' . $tar . '&userid=' . $userid . '%}" title="{--ADMIN_LINK_';
// All other status is fine
$OUT .= strtoupper($tar);
}
- $OUT .= '--}</a></span> | ';
+ $OUT .= '--}</a></span>|';
}
// Finish navigation link
} // END - if
// Default message
- $message = getMaskedMessage('EXTENSION_PROBLEM_EXT_NOT_INSTALLED', $ext_name);
+ $message = getMaskedMessage('EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED', $ext_name);
// Is an admin logged in?
if (isAdmin()) {
// Then output admin message
- $message = getMaskedMessage('ADMIN_EXTENSION_PROBLEM_EXT_NOT_INSTALLED', $ext_name);
+ $message = getMaskedMessage('ADMIN_EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED', $ext_name);
} // END - if
// Return prepared message
}
// Generates a 'selection box' from given array
-function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent='') {
+function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent = '', $extraName = '') {
// Start the output
$OUT = '<select name="' . $name . '" size="1" class="admin_select">
<option value="X" disabled="disabled">{--PLEASE_SELECT--}</option>';
// Add the <option> entry
if (empty($optionContent)) {
// ... from template
- $OUT .= loadTemplate('select_' . $name . '_option', true, $option);
+ $OUT .= loadTemplate('select_' . $name . $extraName . '_option', true, $option);
} else {
// Direct HTML code
$OUT .= '<option value="' . $option[$optionValue] . '">' . $option[$optionContent] . '</option>';
);
// Load template and return it
- return loadTemplate('select_' . $name . '_box', true, $content);
+ return loadTemplate('select_' . $name . $extraName . '_box', true, $content);
}
// Get a module from filename and access level
if (ifFatalErrorsDetected()) {
addToInstallContent('<div class="install_fatal">');
foreach (getFatalArray() as $key => $err) {
- addToInstallContent('<div class="para"><strong>·</strong> {--FATAL_NO--}' . ($key + 1) . ': ' . $err . '</div>');
+ addToInstallContent('<div class="para"><strong>·</strong> {--FATAL_NO--}' . ($key + 1) . ': ' . $err . '</div>');
} // END - foreach
addToInstallContent('</div>');
} // END - if
'SUBJECT_DIRECT_PAYMENT' => "Direkte {?POINTS?}-Gutschrift durch das System",
'ADMIN_LOGOUT_SQL_PATCHES_DONE' => "Sie wurden automatisch ausgeloggt, da Sie die Erweiterung <strong>sql_patches</strong> installiert haben und dabei das Passort-Hashing geändert/verbessert wurde. Bitte erneut einloggen.",
'ADMIN_LOGOUT_SQL_PATCHES_REMOVE' => "Sie wurden automatisch ausgeloggt, da Sie die Erweiterung <strong>sql_patches</strong> entfernt haben. Bitte klicken Sie weiter, um jetzt das Passwort neu zu setzen.",
- 'ADMIN_POINTS_REPAYED' => "Es wurden dem Mitglied <span class=\"data\">%s {?POINTS?}</span> zurückgeschrieben.",
- 'ADMIN_POINTS_TO_JACKPOT' => "Es wurden <span class=\"data\">%s {?POINTS?}</span> in den Jackpot gelegt.",
+ 'ADMIN_POINTS_REPAYED' => "Es wurden dem Mitglied <span class=\"data\">%s {?POINTS?}</span> zurückgeschrieben.",
+ 'ADMIN_POINTS_TO_JACKPOT' => "Es wurden <span class=\"data\">%s {?POINTS?}</span> in den Jackpot gelegt.",
'ADMIN_NO_POINTS_REPAYED' => "Die Mailbuchung hatte keine {?POINTS?} zum zurückbuchen.",
- 'ADMIN_POINTS_SHREDDED' => "Es wurden <span class=\"data\">%s {?POINTS?}</span> geschrettert.",
- 'EXTENSION_PROBLEM_EXTENSION_INACTIVE' => "Kann nicht fortfahren! Fehler: Erweiterung <span class=\"data\">%s</span> deaktiviert.",
+ 'ADMIN_POINTS_SHREDDED' => "Es wurden <span class=\"data\">%s {?POINTS?}</span> geschrettert.",
'ADMIN_EXTENSION_PROBLEM_EXTENSION_INACTIVE' => "Die Erweiterung <span class=\"data\">%s</span> ist derzeit deaktiviert. <a href=\"{%%url=modules.php?module=admin&what=extensions%%}\">Hier</a> können Sie diese aktivieren.",
- 'EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED' => "Kann nicht fortfahren! Fehler: Erweiterung <span class=\"data\">%s</span> nicht installiert.",
'ADMIN_EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED' => "Die Erweiterung <span class=\"data\">%s</span> ist derzeit nicht installiert. <a href=\"{%%url=modules.php?module=admin&what=extensions%%}\">Hier</a> können Sie diese aktivieren.",
- 'EXTENSION_PROBLEM_NOT_INSTALLED' => "Erweiterung <span class=\"data\">%s</span> nicht installiert.",
+ 'EXTENSION_PROBLEM_EXTENSION_INACTIVE' => "Kann nicht fortfahren! Fehler: Erweiterung <span class=\"data\">%s</span> deaktiviert.",
+ 'EXTENSION_PROBLEM_EXTENSION_NOT_INSTALLED' => "Kann nicht fortfahren! Fehler: Erweiterung <span class=\"data\">%s</span> nicht installiert.",
'EXTENSION_PROBLEM_UNSET_EXT' => "Skriptfehler: Parameter <strong>ext</strong> nicht gesetzt.",
'EXTENSION_WARNING_EXTENSION_INACTIVE' => "Die Erweiterung <span class=\"data\">%s</span> ist nicht aktiv. Dies kann zu Störungen führen.<br />\nBitte aktivieren Sie diese unter <em>Verschiedenes->Erweiterungen</em>.",
'EXTENSION_WARNING_USER_LIMIT' => "Die Erweiterung <u>user</u> ist nicht aktiv. Die Anzahl Mitglieder pro Seite wurde auf 100 gesetzt. Bitte aktivieren Sie diese unter <em>Verschiedenes->Erweiterungen</em>.",
'ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_CHANGED' => "Es wurden keine Änderungen an den API-Parametern ausgeführt.",
'ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_REMOVED' => "Es wurden keine API-Parameter gelöscht.",
'ADMIN_NETWORK_ARRAY_TRANSLATION_404' => "Es wurden keine Übersetzungen zum Antwort-Array zum Werbenetzwerk <span class=\"data\">%s</span> gefunden.",
+ 'ADMIN_NETWORK_TRANSLATIONS_404' => "Es wurden keine Array-Übersetzungen für den Werbeart-Handler <span class=\"data\">%s (<a href=\"{%%network,getNetworkDataById,network_reflink=%%network%%%%}\" target=\"_blank\" title=\"{%%network,getNetworkDataById,network_title=%%network%%%%}\">{%%network,getNetworkDataById,network_title=%%network%%%%}</a>)</span> gefunden.",
// - Form titles
'ADMIN_NETWORK_ADD_TITLE' => "Neues Werbenetzwerk hinzufügen - Allgemeine Daten",
'ADMIN_NETWORK_EDIT_TITLE' => "Werbenetzwerk editieren - Allgemeine Daten",
'ADMIN_NETWORK_REQUEST_PARAMETER_EROTIC' => "Erotik erlaubt",
'ADMIN_NETWORK_REQUEST_PARAMETER_EXTRA' => "Extra-Parameter",
// - Return code translation
- 'ADMIN_NETWORK_ARRAY_TRANSLATION_INDEX' => "Rückgabe-Code auswählen",
- 'ADMIN_NETWORK_ARRAY_TRANSLATION_INDEX_TRANSLATION' => "",
+ 'ADMIN_NETWORK_ARRAY_TRANSLATION_INDEX' => "Neuen Array-Index eintragen",
+ 'ADMIN_NETWORK_ARRAY_TRANSLATION_INDEX_TRANSLATION' => "Index-Übersetzung auswählen",
// Error codes
'ADMIN_NETWORK_AFF_ID_PASS_WRONG_ERROR_CODE' => "Affiliate-Id oder -Passwort falsch",
'ADMIN_NETWORK_SITE_ID_NOT_ASSIGNED_ERROR_CODE' => "Seiten-Id nicht zugewiesen/ungültig",
'PAYOUT_TARGET_BANK2' => "Ziel-Bank",
'PAYOUT_ID' => "Auszahlungs-Id",
'PAYOUT_TIMESTAMP' => "Wann?",
- 'PAYOUT_STATUS' => "Status / Aktionen",
+ 'PAYOUT_STATUS' => "Status/Aktionen",
'PAYOUT_STATUS_NEW' => "Neu",
'PAYOUT_STATUS_ACCEPTED' => "Angenommen",
'PAYOUT_STATUS_REJECTED' => "Abgelehnt",
'SPONSOR_LOGIN_FAILED_LOCKED' => "Ihr Account wurde gesperrt, vermutlich wegen Nichteinhaltung von Regeln.",
'SPONSOR_LOGIN_FAILED_EMAIL' => "Sie haben Ihre Email-Adresse geändert und diese noch nicht bestätigt.",
'SPONSPOR_COOKIE_SETUP_FAILED' => "Es konnten keine Cookies gesetzt werden. Bitte Sicherheitseinstellungen in Ihrem Browser überprüfen.",
- 'SPONSOR_ONLY_AREA_ENTERED' => "Sie haben einen Bereich aufgerufen, der nur den Sponsoren vorenthalten ist, die auch bezahlt haben. Bitte kehren Sie zur [ <strong><a href=\"{%url=index.php%}\">Eingangsseite</a></strong> ] zurück.",
+ 'SPONSOR_ONLY_AREA_ENTERED' => "Sie haben einen Bereich aufgerufen, der nur den Sponsoren vorenthalten ist, die auch bezahlt haben. Bitte kehren Sie zur [<strong><a href=\"{%url=index.php%}\">Eingangsseite</a></strong>] zurück.",
'SPONSOR_ACCOUNT_STATUS_FAILED' => "Unerwarteter Zustand des Scriptes erreicht! Bitte Support benachrichtigen.",
'SPONSOR_ACCOUNT_IS_CONFIRMED_AGAIN' => "Ihr Sponsorenaccount ist wieder freigegeben! Sie können sich nun erneut einloggen.",
'ADMIN_CONFIG_SURFBAR_PAYMENT_MODEL_DYNAMIC' => "Dynamische Werte errechnen.",
'ADMIN_CONFIG_SURFBAR_DYNAMIC_PERCENT' => "Prozent auf dynamische Vergütung/ Verweildauer/Reload-Sperre:",
'ADMIN_CONFIG_SURFBAR_MAX_ORDER' => "Maximal durch Mitglied in Surfbar buchbare URLs:",
- 'ADMIN_CONFIG_SURFBAR_RESTART_TIME' => "Ruhezeit der Surfbar, wenn alle URLs in Reload-Lock sind: ",
+ 'ADMIN_CONFIG_SURFBAR_RESTART_TIME' => "Ruhezeit der Surfbar, wenn alle URLs in Reload-Lock sind:",
'ADMIN_CONFIG_SURFBAR_AUTOSTART' => "Surfbar soll nach Ruhezeit automatisch starten?",
'ADMIN_CONFIG_SURFBAR_STATS_RELOAD' => "Reload-Zeit der Statistik unterhalb der beworbenen Seite:",
'ADMIN_CONFIG_SURFBAR_PURGE_DELETED' => "Verweildauer gelöschter URLs in der Datenbank:",
'ADMIN_CONFIG_SURFBAR_PURGE_MIGRATED' => "Verweildauer migrierter URLs in der Datenbank:",
- 'ADMIN_CONFIG_SURFBAR_NOTE' => "<strong>Hinweise:</strong> Es wird empfohlen, die Ruhezeit etwas länger als die Reload-Sperre einzustellen. Migrierte URLs sind aus Mailbuchungen übernommene URLs, die das Mitglied noch bestätigen muss. Werden URLs aus freigeschalteten Mailbuchungen in die Surfbar "migriert" so muss erst das Mitglied der Aufnahme zustimmen. Tut es dies nicht, wird die URL wieder aus der Surfbar entfernt. Eine sofortige Freischaltung ist nicht möglich.",
+ 'ADMIN_CONFIG_SURFBAR_NOTE' => "<strong>Hinweise:</strong> Es wird empfohlen, die Ruhezeit etwas länger als die Reload-Sperre einzustellen. Migrierte URLs sind aus Mailbuchungen übernommene URLs, die das Mitglied noch bestätigen muss. Werden URLs aus freigeschalteten Mailbuchungen in die Surfbar "migriert" so muss erst das Mitglied der Aufnahme zustimmen. Tut es dies nicht, wird die URL wieder aus der Surfbar entfernt. Eine sofortige Freischaltung ist nicht möglich.",
'ADMIN_CONFIG_SURFBAR_PAUSE_MODE' => "Auf welche Seite soll umgeleitet werden, wenn das Mitglied alle gebuchten URLs besucht hat? (Wenn sie also im Reload-Lock sind)",
'ADMIN_CONFIG_SURFBAR_PAUSE_MODE_INTERNAL' => "Auf interne Pausenseite umleiten.",
'ADMIN_CONFIG_SURFBAR_PAUSE_MODE_EXTERNAL' => "Auf externe Seite umleiten.<br /><span class=\"admin_note\">(Bitte angeben)</span>",
die();
} // END - if
+// Private setter for current network id
+function setCurrentNetworkId ($id) {
+ $GLOBALS['current_network_id'] = bigintval($id);
+}
+
+// Private getter for current network id
+function getCurrentNetworkId () {
+ return $GLOBALS['current_network_id'];
+}
+
// Handle a (maybe) sent form here
function doNetworkHandleForm () {
// Was the form sent?
debug_report_bug('Network id ' . $id . ' is smaller than 1.');
} // END - if
+ // Set current network id
+ setCurrentNetworkId($id);
+
// Is it cached?
if (!isset($GLOBALS['network_data'][$id])) {
// By default we have no data
}
}
+// "Getter" for a network's data by provided type id number
+function getNetworkDataByTypeId ($id, $column = '') {
+ // Ids lower one are not accepted
+ if ($id < 1) {
+ // Not good, should be fixed
+ debug_report_bug('Network type id ' . $id . ' is smaller than 1.');
+ } // END - if
+
+ // Set current network id
+ setCurrentNetworkId($id);
+
+ // Is it cached?
+ if (!isset($GLOBALS['network_data'][$id])) {
+ // By default we have no data
+ $GLOBALS['network_data'][$id] = array();
+
+ // Query for the network data
+ $result = SQL_QUERY_ESC("SELECT
+ d.`network_id`, d.`network_short_name`, d.`network_title`, d.`network_reflink`, d.`network_data_seperator`, d.`network_row_seperator`, d.`network_request_type`, d.`network_charset`,
+ t.`network_type_handle`, t.`network_type_api_url`, t.`network_type_click_url`, t.`network_type_banner_url`
+FROM
+ `{?_MYSQL_PREFIX?}_network_data` AS d
+LEFT JOIN
+ `{?_MYSQL_PREFIX?}_network_types` AS t
+ON
+ d.`network_id`=t.`network_id`
+WHERE
+ t.`network_type_id`=%s
+LIMIT 1",
+ array(bigintval($id)), __FUNCTION__, __LINE__);
+
+ // Do we have an entry?
+ if (SQL_NUMROWS($result) == 1) {
+ // Then get it
+ $GLOBALS['network_data'][$id] = SQL_FETCHARRAY($result);
+ } // END - if
+
+ // Free result
+ SQL_FREERESULT($result);
+ } // END - if
+
+ // Return result
+ if (empty($column)) {
+ // Return array
+ return $GLOBALS['network_data'][$id];
+ } else {
+ // Return column
+ return $GLOBALS['network_data'][$id][$column];
+ }
+}
+
// "Getter" for a network type data by provided id number
function getNetworkTypeDataById ($id) {
// Ids lower one are not accepted
return $content;
}
+// Generator (somewhat getter) for a list of network types for all types
+function generateAdminDistinctNetworkTypeList () {
+ // Init content
+ $content = '';
+
+ // Query all types of this network
+ $result = SQL_QUERY("SELECT
+ t.`network_type_id`, t.`network_type_handle`, d.`network_title`
+FROM
+ `{?_MYSQL_PREFIX?}_network_types` AS t
+LEFT JOIN
+ `{?_MYSQL_PREFIX?}_network_data` AS d
+ON
+ t.`network_id`=d.`network_id`
+ORDER BY
+ d.`network_short_name` ASC,
+ t.`network_type_handle` ASC", __FILE__, __LINE__);
+
+ // Do we have entries?
+ if (SQL_NUMROWS($result) > 0) {
+ // List all entries
+ $rows = array();
+ while ($row = SQL_FETCHARRAY($result)) {
+ // Is this valid, then add it
+ if ((is_array($row)) && (isset($row['network_type_id']))) {
+ // Add entry
+ $rows[$row['network_type_id']] = $row;
+ } // END - if
+ } // END - while
+
+ // Generate the selection box
+ $content = generateSelectionBoxFromArray($rows, 'network_type', 'network_type_id', '', '_title');
+ } else {
+ // Nothing selected
+ $content = loadTemplate('admin_settings_unsaved', false, getMessage('ADMIN_ENTRIES_404'));
+ }
+
+ // Free the result
+ SQL_FREERESULT($result);
+ //* DEBUG: */ die('<pre>'.htmlentities($content).'</pre>');
+
+ // Return content
+ return $content;
+}
+
// Generator (somewhat getter) for network type options
function generateNetworkTypeOptions ($id) {
// Is this an array, then we just came back from edit/delete actions
if (!isset($GLOBALS['network_array_translation'][$default])) {
// Generate and cache it
$GLOBALS['network_array_translation'][$default] = generateOptionList(
- 'network_request_params',
- 'network_param_id',
- 'request_param_key',
+ 'network_translations',
+ 'network_translation',
+ 'network_translation',
$default,
'',
- sprintf("WHERE `network_id`='%s'", bigintval(getRequestParameter('network'))),
+ sprintf("WHERE `network_type_id`=%s",
+ bigintval(getRequestParameter('network_type'))
+ ),
$GLOBALS['network_array_translation_disabled'],
- 'ADMIN_NETWORK_REQUEST_PARAMETER_'
+ 'ADMIN_NETWORK_ARRAY_TRANSLATION_'
);
} // END - if
function doExpressionNetwork ($data) {
// Construct replacer
$replacer = sprintf(
- "\" . %s(%s, '%s') . \"",
+ "{DQUOTE} . %s(%s, '%s') . {DQUOTE}",
$data['callback'],
$data['matches'][4][$data['key']],
$data['extra_func']
);
+ // Replace %network% with the current network id
+ $replacer = str_replace('%network%', getCurrentNetworkId(), $replacer);
+
// Replace the code
$code = replaceExpressionCode($data, $replacer);
// [EOF]
?>
+
}
if ((($counter / getConfig('user_alpha')) == round($counter / getConfig('user_alpha'))) && ($counter > 0)) {
- $OUT .= ' ]<br />[ ';
+ $OUT .= ']<br />[';
} elseif ( $counter != $num ) {
- $OUT .= ' | ';
+ $OUT .= '|';
}
} // END - while
foreach ($list as $sort => $title) {
if ($sortby == $sort) {
- $OUT .= '<strong>' . $title . '</strong> | ';
+ $OUT .= '<strong>' . $title . '</strong>|';
} else {
- $OUT .= '<a href="{%url=modules.php?module=admin&what=list_user&letter=' . $letter . '&sortby=' . $sort.$add . '%}">' . $title . '</a> | ';
+ $OUT .= '<a href="{%url=modules.php?module=admin&what=list_user&letter=' . $letter . '&sortby=' . $sort . $add . '%}">' . $title . '</a>|';
}
} // END - foreach
$OUT .= '</a>';
}
- if ($page < $pages) $OUT .= ' | ';
+ if ($page < $pages) $OUT .= '|';
} // END - for
// Remember the list
* -------------------------------------------------------------------- *
* File : what-list_network_array_translation.php *
* -------------------------------------------------------------------- *
- * Short description : List/manage network API query parameters *
+ * Short description : List/manage network array index translations *
* -------------------------------------------------------------------- *
* Kurzbeschreibung : Verwaltet API-Abfrageparameter *
* -------------------------------------------------------------------- *
bigintval(getRequestParameter('network_type'))
), __FILE__, __LINE__);
+ // Remember the rows
+ $rows = SQL_NUMROWS($result);
+
// Do we have entries?
- if (SQL_NUMROWS($result) > 0) {
+ if ($rows > 0) {
// List all entries
$OUT = ''; $SW = 2;
while ($row = SQL_FETCHARRAY($result)) {
// Prepare data for template
$content = array(
- 'rows' => $OUT,
- 'network_id' => bigintval(getRequestParameter('network')),
- 'network_title' => $networkData['network_title'],
- 'network_reflink' => $networkData['network_reflink'],
+ 'rows' => $OUT,
+ 'network_id' => bigintval(getRequestParameter('network')),
+ 'network_title' => $networkData['network_title'],
+ 'network_reflink' => $networkData['network_reflink'],
);
// Load main template
SQL_FREERESULT($result);
// Add options list for network type
- $networkData['type_options'] = generateNetworkTypeOptions(getRequestParameter('network_type_id'));
+ $networkData['translation_index'] = ($rows + 1);
+ $networkData['type_options'] = generateNetworkTypeOptions(getRequestParameter('network_type_id'));
// Add form for adding new array_translation pair
loadTemplate('admin_add_network_array_translation', false, $networkData);
--- /dev/null
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL Start: 06/01/2010 *
+ * =================== Last change: 06/01/2010 *
+ * *
+ * -------------------------------------------------------------------- *
+ * File : what-list_network_translations.php *
+ * -------------------------------------------------------------------- *
+ * Short description : List/manage network array translations *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung : Verwaltet API-Abfrageparameter *
+ * -------------------------------------------------------------------- *
+ * $Revision:: 1794 $ *
+ * $Date:: 2010-05-28 19:55:19 +0200 (Fri, 28 May 2010) $ *
+ * $Tag:: 0.2.1-FINAL $ *
+ * $Author:: quix0r $ *
+ * Needs to be in all Files and every File needs "svn propset *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder *
+ * Copyright (c) 2009, 2010 by Mailer Developer Team *
+ * For more information visit: http://www.mxchange.org *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
+ * MA 02110-1301 USA *
+ ************************************************************************/
+
+// Some security stuff...
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+ die();
+} // END - if
+
+// Add description as navigation point
+addMenuDescription('admin', __FILE__);
+
+// These are expert settings!
+if (doVerifyExpertSettings() != 'agreed') {
+ // Abort here
+ return;
+} // END - if
+
+// By default we should display list/add new forms
+$GLOBALS['network_display'] = true;
+
+// Handle form here
+doNetworkHandleForm();
+
+// Display forms?
+if ($GLOBALS['network_display'] === false) {
+ // Abort here
+ return;
+} // END - if
+
+// Do we have a network selected?
+if (isGetRequestParameterSet('network_type')) {
+ // Get network data from given type-id
+ $networkData = getNetworkDataByTypeId(getRequestParameter('network_type'));
+
+ // Init disabled list
+ $GLOBALS['network_translations_disabled'] = array();
+
+ // Load all advert codes for given network
+ $result = SQL_QUERY("SELECT
+ `network_translate_id`, `network_type_id`, `network_translation`
+FROM
+ `{?_MYSQL_PREFIX?}_network_translations`
+ORDER BY
+ `network_translate_id` ASC", __FILE__, __LINE__);
+
+ // Remember the rows
+ $rows = SQL_NUMROWS($result);
+
+ // Do we have entries?
+ if ($rows > 0) {
+ // List all entries
+ $OUT = ''; $SW = 2;
+ while ($row = SQL_FETCHARRAY($result)) {
+ // Add/translate some data
+ $row['sw'] = $SW;
+
+ // Add it to network if the type matches selected
+ if ($row['network_type_id'] == getRequestParameter('network_type_id')) {
+ // Matches, then add it for disabling this entry
+ $GLOBALS['network_translations_disabled'][$row['network_array_index']] = true;
+ } // END - if
+
+ // Add row template and switch color
+ $OUT .= loadTemplate('admin_list_network_translations_row', true, $row);
+ $SW = 3 - $SW;
+ } // END - while
+
+ // Prepare data for template
+ $content = array(
+ 'rows' => $OUT,
+ );
+
+ // Load main template
+ loadTemplate('admin_list_network_translations', false, $content);
+ } else {
+ // No entries found
+ loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_NETWORK_TRANSLATIONS_404', $networkData['network_type_handle']));
+ }
+
+ // Free result
+ SQL_FREERESULT($result);
+
+ // Add form for adding new translations pair
+ loadTemplate('admin_add_network_translations');
+} else {
+ // Generate type-selection box
+ outputHtml(generateAdminDistinctNetworkTypeList());
+}
+
+// [EOF]
+?>
while ($content = SQL_FETCHARRAY($result)) {
if ($content['status'] == 'NEW') {
// Generate links for direct accepting and rejecting
- $content['status'] = '<a href="{%url=modules.php?module=admin&what=list_payouts&do=accept&pid=' . $content['id'] . '%}">{--PAYOUT_ACCEPT_PAYOUT--}</a> | <a href="{%url=modules.php?module=admin&what=list_payouts&do=reject&pid=' . $content['id'] . '%}">{--PAYOUT_REJECT_PAYOUT--}</a>';
+ $content['status'] = '<a href="{%url=modules.php?module=admin&what=list_payouts&do=accept&pid=' . $content['id'] . '%}">{--PAYOUT_ACCEPT_PAYOUT--}</a>|<a href="{%url=modules.php?module=admin&what=list_payouts&do=reject&pid=' . $content['id'] . '%}">{--PAYOUT_REJECT_PAYOUT--}</a>';
} else {
// Translate status
$content['status'] = getMessage('PAYOUT_STATUS_'.strtoupper($content['status']).'');
<tr>
<td align="right" width="250">{--ADMIN_NETWORK_ARRAY_TRANSLATION_INDEX--}:</td>
<td>
- <select name="request_param_key" class="admin_select" size="1">
- {%pipe,generateNetworkArrayTranslationOptions%}
- </select>
+ <input type="hidden" name="network_array_index" value="$content[translation_index]" />
+ <strong>$content[translation_index]</strong>
</td>
</tr>
<tr>
<td class="bottom" align="right" width="250">{--ADMIN_NETWORK_ARRAY_TRANSLATION_INDEX_TRANSLATION--}:</td>
<td class="bottom">
- <input type="text" name="index_translation" class="admin_normal" size="10" maxlength="255" />
+ <select class="admin_select" name="index_translation" size="1">
+ {%pipe,generateNetworkArrayTranslationOptions%}
+ </select>
</td>
</tr>
<tr>
</tr>
<tr>
<td align="center" class="switch_sw$content[sw] bottom right" width="100">
- [ <strong><a href="{%url=modules.php?module=admin&what=list_sponsor&id=$content[id]%}" title="{--ADMIN_SPONSOR_DETAILS_LINK_TITLE--}">$content[id]</a></strong> ]
+ [<strong><a href="{%url=modules.php?module=admin&what=list_sponsor&id=$content[id]%}" title="{--ADMIN_SPONSOR_DETAILS_LINK_TITLE--}">$content[id]</a></strong>]
</td>
<td align="center" class="switch_sw$content[sw] bottom right" width="240" colspan="2">
<a href="$content[email]">$content[gender] $content[surname] $content[family]</a>
</td>
<td align="center" class="switch_sw$content[sw] bottom" width="160">
- [ <strong><a href="{%url=modules.php?module=admin&what=edit_sponsor&id=$content[id]&mode=add_points%}" title="{--ADMIN_SPONSOR_ADD_POINTS_LINK_TITLE--}">$content[points]</a></strong> ]
+ [<strong><a href="{%url=modules.php?module=admin&what=edit_sponsor&id=$content[id]&mode=add_points%}" title="{--ADMIN_SPONSOR_ADD_POINTS_LINK_TITLE--}">$content[points]</a></strong>]
</td>
</tr>
<tr>
</tr>
<tr>
<td align="center" class="switch_sw$content[sw] bottom right" width="100">
- [ <strong><a href="{%url=modules.php?module=admin&what=lock_sponsor&id=$content[id]%}">$content[status]</a></strong> ]
+ [<strong><a href="{%url=modules.php?module=admin&what=lock_sponsor&id=$content[id]%}">$content[status]</a></strong>]
</td>
<td align="center" class="switch_sw$content[sw] bottom right" width="120">
$content[created]
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="admin_pagenav">
- [ {--USER_PAGENAV--}: $content[list] ]
+ [{--USER_PAGENAV--}:$content[list]]
</td>
</tr>
</table>
<tr>
<td align="center" colspan="2" class="guest_menu_title" id="guest_menu_action_$content[action]">
- <strong>::: $content[title] :::</strong>
+ <strong>:::$content[title]:::</strong>
</td>
</tr>
-<table border="0" cellspacing="0" cellpadding="0" width="440"
- class="register_header dashed">
+<div align="center">
+<table border="0" cellspacing="0" cellpadding="0" width="440" class="register_header dashed">
<tr>
<td width="60%" align="right" height="40" class="register_left">
- <strong>{--MAX_PER_DAY--}:</strong> </td>
- <td width="40%" class="register_right"><select name="max_mails"
- size="1" class="register_select">
- $content
- </select></td>
+ <strong>{--MAX_PER_DAY--}:</strong>
+ </td>
+ <td width="40%" class="register_right">
+ <select name="max_mails" size="1" class="register_select">
+ $content
+ </select>
+ </td>
</tr>
</table>
+</div>
<form accept-charset="utf-8" action="{%url=modules.php?module=index&what=sponsor_login&mode=activate%}" method="post">
<table border="0" cellspacing="0" cellpadding="0" class="guest_table dashed" width="400">
<tr>
- <td class="guest_title bottom" align="center" colspan="2">
- <strong>{--SPONSOR_SEND_ACTIVATION_LINK--}</strong>
- </td>
+ <td class="guest_title bottom" align="center" colspan="2">
+ <strong>{--SPONSOR_SEND_ACTIVATION_LINK--}</strong>
+ </td>
</tr>
<tr>
- <td class="bottom" align="right" style="padding-right: 10px">
- {--SPONSOR_ENTER_EMAIL--}:
- </td>
- <td class="bottom">
- <input type="text" name="email" class="guest_normal" size="20" maxlength="255" />
- </td>
+ <td class="bottom" align="right" style="padding-right: 10px">
+ {--SPONSOR_ENTER_EMAIL--}:
+ </td>
+ <td class="bottom">
+ <input type="text" name="email" class="guest_normal" size="20" maxlength="255" />
+ </td>
</tr>
<tr>
- <td colspan="2" align="center" class="guest_footer">
- <input type="reset" class="guest_reset" value="{--CLEAR_FORM--}" />
- <input type="submit" name="ok" class="guest_submit" value="{--SPONSOR_ACTIVATION_SUBMIT--}" />
- </td>
+ <td colspan="2" align="center" class="guest_footer">
+ <input type="reset" class="guest_reset" value="{--CLEAR_FORM--}" />
+ <input type="submit" name="ok" class="guest_submit" value="{--SPONSOR_ACTIVATION_SUBMIT--}" />
+ </td>
</tr>
</table>
</form>
<div class="para">
<div align="center">
- <div class="guest_note">{--SPONSOR_HOWTO_GET_ACTIVATION_LINK--}</div>
+ <div class="guest_note">{--SPONSOR_HOWTO_GET_ACTIVATION_LINK--}</div>
</div>
</div>
<div align="center">
<table border="0" cellspacing="0" cellpadding="0" class="guest_table" width="100%">
<tr>
- <td align="center">
- »» <a href="{%url=modules.php?module=index&what=sponsor_login%}">{--SPONSOR_BACK_TO_LOGIN--}</a><br />
- </td>
+ <td align="center">
+ »»<a href="{%url=modules.php?module=index&what=sponsor_login%}">{--SPONSOR_BACK_TO_LOGIN--}</a>
+ </td>
</tr>
</table>
</div>
</tr>
<tr>
<td align="right" width="200">
- {--SPONSOR_ENTER_COMPANY_TITLE--}:
+ {--SPONSOR_ENTER_COMPANY_TITLE--}:
</td>
<td width="300">
<input type="text" name="company" class="guest_normal" size="20" maxlength="255" value="$content[company]" />
</tr>
<tr>
<td align="right">
- {--SPONSOR_ENTER_COMPANY_POSITION--}:
+ {--SPONSOR_ENTER_COMPANY_POSITION--}:
</td>
<td>
<input type="text" name="position" class="guest_normal" size="20" maxlength="255" value="$content[position]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_TAX_IDENT--}:
+ {--SPONSOR_ENTER_TAX_IDENT--}:
</td>
<td>
<input type="text" name="tax_ident" class="guest_normal" size="20" maxlength="255" value="$content[tax_ident]" />
</tr>
<tr>
<td align="right">
- {--GUEST_GENDER--}:
+ {--GUEST_GENDER--}:
</td>
<td>
<select name="gender" class="guest_select" size="1">
</tr>
<tr>
<td align="right">
- {--GUEST_SURNAME--}:
+ {--GUEST_SURNAME--}:
</td>
<td>
<input type="text" name="surname" class="guest_normal" size="20" maxlength="255" value="$content[surname]" />
</tr>
<tr>
<td align="right">
- {--GUEST_FAMILY--}:
+ {--GUEST_FAMILY--}:
</td>
<td>
<input type="text" name="family" class="guest_normal" size="20" maxlength="255" value="$content[family]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_STREET_NR1--}:
+ {--SPONSOR_ENTER_STREET_NR1--}:
</td>
<td>
<input type="text" name="street_nr1" class="guest_normal" size="20" maxlength="255" value="$content[street_nr1]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_STREET_NR2--}:
+ {--SPONSOR_ENTER_STREET_NR2--}:
</td>
<td>
<input type="text" name="street_nr2" class="guest_normal" size="20" maxlength="255" value="$content[street_nr2]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_CNTRY_ZIP_CITY--}:
+ {--SPONSOR_ENTER_CNTRY_ZIP_CITY--}:
</td>
<td>
<input type="text" name="country" class="guest_normal" size="2" maxlength="2" value="$content[country]" />-<input type="text" name="zip" class="guest_normal" size="5" maxlength="6" value="$content[zip]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_PHONE--}:
+ {--SPONSOR_ENTER_PHONE--}:
</td>
<td>
<input type="text" name="phone" class="guest_normal" size="20" maxlength="255" value="$content[phone]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_FAX--}:
+ {--SPONSOR_ENTER_FAX--}:
</td>
<td>
<input type="text" name="fax" class="guest_normal" size="20" maxlength="255" value="$content[fax]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_CELL--}:
+ {--SPONSOR_ENTER_CELL--}:
</td>
<td>
<input type="text" name="cell" class="guest_normal" size="20" maxlength="255" value="$content[cell]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_EMAIL--}:
+ {--SPONSOR_ENTER_EMAIL--}:
</td>
<td>
<input type="text" name="email" class="guest_normal" size="20" maxlength="255" value="$content[email]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_URL--}:
+ {--SPONSOR_ENTER_URL--}:
</td>
<td>
<input type="text" name="url" class="guest_normal" size="20" maxlength="255" value="$content[url]" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_ENTER_PASSWORDS--}:
+ {--SPONSOR_ENTER_PASSWORDS--}:
</td>
<td>
<input type="password" name="pass1" class="guest_normal" size="10" maxlength="255" />
</tr>
<tr>
<td align="right" valign="top">
- {--SPONSOR_REFID_WAS--}:
+ {--SPONSOR_REFID_WAS--}:
</td>
<td>
<strong>$content[refid]</strong>
</tr>
<tr>
<td align="right">
- {--GUEST_SPONSOR_RECEIVE_WARNINGS--}
+ {--GUEST_SPONSOR_RECEIVE_WARNINGS--}
</td>
<td>
<select name="receive_warnings" class="guest_select" size="1">
</tr>
<tr>
<td align="right">
- {--SPONSOR_WARNING_INTERVAL--}:
+ {--SPONSOR_WARNING_INTERVAL--}:
</td>
<td>
<select name="warning_interval" class="guest_select" size="1">
<tr>
<td align="center" height="26%">
<div class="big">
- [ <a target="_parent" href="{%url=modules.php?module=index%}">Weiter...</a> ]
+ [<a target="_parent" href="{%url=modules.php?module=index%}">Weiter zur Hauptseite von {?MAIN_TITLE?}...</a>]
</div>
</td>
</tr>
var interval = null;
-var counter = "$content[restart]";
+var countDown = "$content[restart]";
var timer = document.getElementById("surfbar_counter");
var buttonDiv = document.getElementById("surfbar_button");
-function Restart () {
+function restart () {
this.location.reload();
}
-function ShowButton () {
+function showButton () {
buttonDiv.innerHTML = "<form accept-charset='utf-8' action='{?URL?}/surfbar.php' target='_self' method='GET'><input type='hidden' name='frame' value='top' /><input type='submit' id='member_submit' value='Surfbar erneut starten' /></form>";
}
-function Counter () {
- if (counter == 0) {
+function counter () {
+ if (countDown == 0) {
if ($content[autostart] == true) {
- Restart();
+ restart();
} else {
- ShowButton();
+ showButton();
}
window.clearInterval(interval);
} else {
- counter--;
- timer.innerHTML = counter;
+ countDown--;
+ timer.innerHTML = countDown;
}
}
-function Init () {
- interval = window.setInterval("Counter()", 1000);
+function init () {
+ interval = window.setInterval("counter()", 1000);
timer.innerHTML = "$content[restart]";
}
-window.setTimeout("Init()", 500);
+window.setTimeout("init()", 500);
-<big><strong>D E R E F E R R E R - {?MAIN_TITLE?}</strong></big><br />
-<br />
-<br />
-<br />
-<br />
-{--LOADER_NOT_WORKING--} [<a href="$content">{--LOADER_CLICK_HERE--}</a>]
+<div class="para">
+ <big><strong>DEREFERRER-{?MAIN_TITLE?}</strong></big>
+</div>
+
+<div class="para">
+ {--LOADER_NOT_WORKING--}
+ [<a href="$content">{--LOADER_CLICK_HERE--}</a>]
+</div>
<script type="text/javascript">
<!--
<script type="text/javascript">
<!--
-var Timer = "$content[time]";
+var timer = "$content[time]";
-function Init() {
- var Counter = window.setInterval("StartCounter()", 1000);
+function init() {
+ var Counter = window.setInterval("startCounter()", 1000);
}
-function StartCounter() {
- if (Timer < 1) {
+function startCounter() {
+ if (timer < 1) {
return false;
}
- Timer--;
- document.confirm.counter.value = Timer;
- if (Timer == 0) {
+ timer--;
+ document.confirm.counter.value = timer;
+ if (timer == 0) {
document.location.href = '{%url,js=mailid_top.php?userid=$content[userid]&$content[type]=$content[data]&mode=confirm&code=$content[rand]%}';
clearInterval(Counter);
}
</table>
<script type="text/javascript">
<!--
-document.confirm.counter.value = Timer;
-Init();
+document.confirm.counter.value = timer;
+init();
//-->
</script>
</div>
<div class="para">
- <strong>·</strong> $content[value]
+ <strong>·</strong>
+ $content[value]
</div>
</div>
<form accept-charset="utf-8" action="{?URL?}/modules.php" method="get">
<input type="hidden" name="module" value="$content[module]" />
<input type="hidden" name="what" value="$content[what]" />
-<input type="hidden" name="network" value="[%network%]" />
+<input type="hidden" name="network" value="{%network,getNetworkDataById,network_id=%network%%}" />
<div class="admin_table dashed">
<div class="admin_title bottom">
<div>
</div>
<div class="tiny">
- (<a href="{%network,getNetworkDataById,network_reflink=[%network%]%}"
- title="{%network,getNetworkDataById,network_title=[%network%]%}"
- target="_blank">{%network,getNetworkDataById,network_title=[%network%]%}</a>)
+ (<a href="{%network,getNetworkDataById,network_reflink=%network%%}"
+ title="{%network,getNetworkDataById,network_title=%network%%}"
+ target="_blank">{%network,getNetworkDataById,network_title=%network%%}</a>)
</div>
</div>
--- /dev/null
+<div align="center">
+<form accept-charset="utf-8" action="{?URL?}/modules.php" method="get">
+<input type="hidden" name="module" value="$content[module]" />
+<input type="hidden" name="what" value="$content[what]" />
+<div class="admin_table dashed">
+ <div class="admin_title bottom">
+ <div>
+ <strong>{--ADMIN_NETWORK_TYPE_SELECT_TITLE--}</strong>
+ </div>
+ </div>
+
+ <div class="bottom">
+ $content[selection_box]
+ </div>
+
+ <div class="admin_footer">
+ <input type="submit" class="admin_submit" value="{--ADMIN_NETWORK_TYPE_CHOOSE--}" />
+ </div>
+</div>
+</form>
+</div>
--- /dev/null
+<option value="$content[network_type_id]">$content[network_type_handle] ($content[network_title])</option>
<table border="0" cellspacing="0" cellpadding="0" width="300" class="member_table">
<tr>
<td align="center">
- {--BONUS_SHOW_YOU_HAVE_CONFIRMED--} <strong class="nobr">$content[yr_tmark]</strong>
+ {--BONUS_SHOW_YOU_HAVE_CONFIRMED--}
+ <strong class="nobr">$content[yr_tmark]</strong>
{--_ON--} <strong>$content[yr_level].</strong>
- {--BONUS_SHOW_CONFIRMED_BONUS_IS--}: <strong class="nobr">$content[yr_points] {?POINTS?}</strong>
+ {--BONUS_SHOW_CONFIRMED_BONUS_IS--}:
+ <strong class="nobr">$content[yr_points] {?POINTS?}</strong>
</td>
</tr>
</table>
<div align="center">
<ul class="show_timings_block">
<li class="show_timings_column" style="margin-left: 2px"><span class="show_timings_column">
- {--SHOW_TIMINGS_RUNTIME--} <span class="show_timings_data">$content[run_time]</span> {--SHOW_TIMINGS_SECS--}
+ {--SHOW_TIMINGS_RUNTIME--}
+ <span class="show_timings_data">$content[run_time] {--SHOW_TIMINGS_SECS--}</span>
</span></li>
<li class="show_timings_column" style="margin-left: 2px"><span class="show_timings_column">
- {--SHOW_TIMINGS_SQL_QUERIES--} <span class="show_timings_data">{?sql_count?}</span>
+ {--SHOW_TIMINGS_SQL_QUERIES--}
+ <span class="show_timings_data">{?sql_count?}</span>
</span></li>
<li class="show_timings_column" style="margin-left: 2px"><span class="show_timings_column">
- {--SHOW_TIMINGS_SQL_TIME--} <span class="show_timings_data">$content[sql_time] ms</span>
+ {--SHOW_TIMINGS_SQL_TIME--}
+ <span class="show_timings_data">$content[sql_time] ms</span>
</span></li>
<li class="show_timings_column" style="margin-right: 2px"><span class="show_timings_column">
- {--SHOW_TIMINGS_NUM_TEMPLATES--} <span class="show_timings_data">{?num_templates?}</span>
+ {--SHOW_TIMINGS_NUM_TEMPLATES--}
+ <span class="show_timings_data">{?num_templates?}</span>
</span></li>
</ul>
</div>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_COMPANY_TITLE--}:
+ {--SPONSOR_ENTER_COMPANY_TITLE--}:
</td>
<td class="bottom">
- <input type="text" name="company" class="guest_normal" size="20" maxlength="255" value="{%sponsor,company=$userid%}" />
+ <input type="text" name="company" class="guest_normal" size="20" maxlength="255" value="{%sponsor,company=$userid%}" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_COMPANY_POSITION--}:
+ {--SPONSOR_ENTER_COMPANY_POSITION--}:
</td>
<td class="bottom">
- <input type="text" name="position" class="guest_normal" size="20" maxlength="255" value="{%sponsor,position=$userid%}" />
+ <input type="text" name="position" class="guest_normal" size="20" maxlength="255" value="{%sponsor,position=$userid%}" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_TAX_IDENT--}:
+ {--SPONSOR_ENTER_TAX_IDENT--}:
</td>
<td class="bottom">
- <input type="text" name="tax_ident" class="guest_normal" size="20" maxlength="255" value="{%sponsor,tax_ident=$userid%}" />
+ <input type="text" name="tax_ident" class="guest_normal" size="20" maxlength="255" value="{%sponsor,tax_ident=$userid%}" />
</td>
</tr>
<tr>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--GUEST_GENDER--}:
+ {--GUEST_GENDER--}:
</td>
<td class="bottom">
- <select name="gender" class="guest_select" size="1">
+ <select name="gender" class="guest_select" size="1">
<option value="M"$content[gender_m]>{--GENDER_M--}</option>
<option value="F"$content[gender_f]>{--GENDER_F--}</option>
<option value="C"$content[gender_c]>{--GENDER_C--}</option>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--GUEST_SURNAME--}:
+ {--GUEST_SURNAME--}:
</td>
<td class="bottom">
- <input type="text" name="surname" class="guest_normal" size="20" maxlength="255" value="{%sponsor,surname=$userid%}" />
+ <input type="text" name="surname" class="guest_normal" size="20" maxlength="255" value="{%sponsor,surname=$userid%}" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--GUEST_FAMILY--}:
+ {--GUEST_FAMILY--}:
</td>
<td class="bottom">
- <input type="text" name="family" class="guest_normal" size="20" maxlength="255" value="{%sponsor,family=$userid%}" />
+ <input type="text" name="family" class="guest_normal" size="20" maxlength="255" value="{%sponsor,family=$userid%}" />
</td>
</tr>
<tr>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_STREET_NR1--}:
+ {--SPONSOR_ENTER_STREET_NR1--}:
</td>
<td class="bottom">
- <input type="text" name="street_nr1" class="guest_normal" size="20" maxlength="255" value="{%sponsor,street_nr1=$userid%}" />
+ <input type="text" name="street_nr1" class="guest_normal" size="20" maxlength="255" value="{%sponsor,street_nr1=$userid%}" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_STREET_NR2--}:
+ {--SPONSOR_ENTER_STREET_NR2--}:
</td>
<td class="bottom">
- <input type="text" name="street_nr2" class="guest_normal" size="20" maxlength="255" value="{%sponsor,street_nr2=$userid%}" />
+ <input type="text" name="street_nr2" class="guest_normal" size="20" maxlength="255" value="{%sponsor,street_nr2=$userid%}" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_CNTRY_ZIP_CITY--}:
+ {--SPONSOR_ENTER_CNTRY_ZIP_CITY--}:
</td>
<td class="bottom">
- <input type="text" name="country" class="guest_normal" size="2" maxlength="2" value="{%sponsor,county,determineCountry=$userid%}" />-<input type="text" name="zip" class="guest_normal" size="5" maxlength="6" value="{%sponsor,zip,bigintval=$userid%}" />
+ <input type="text" name="country" class="guest_normal" size="2" maxlength="2" value="{%sponsor,county,determineCountry=$userid%}" />-<input type="text" name="zip" class="guest_normal" size="5" maxlength="6" value="{%sponsor,zip,bigintval=$userid%}" />
<input type="text" name="city" class="guest_normal" size="10" maxlength="255" value="{%sponsor,city=$userid%}" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_PHONE--}:
+ {--SPONSOR_ENTER_PHONE--}:
</td>
<td class="bottom">
- <input type="text" name="phone" class="guest_normal" size="20" maxlength="255" value="$content[phone]" />
+ <input type="text" name="phone" class="guest_normal" size="20" maxlength="255" value="$content[phone]" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_FAX--}:
+ {--SPONSOR_ENTER_FAX--}:
</td>
<td class="bottom">
- <input type="text" name="fax" class="guest_normal" size="20" maxlength="255" value="$content[fax]" />
+ <input type="text" name="fax" class="guest_normal" size="20" maxlength="255" value="$content[fax]" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_CELL--}:
+ {--SPONSOR_ENTER_CELL--}:
</td>
<td class="bottom">
- <input type="text" name="cell" class="guest_normal" size="20" maxlength="255" value="$content[cell]" />
+ <input type="text" name="cell" class="guest_normal" size="20" maxlength="255" value="$content[cell]" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_EMAIL--}:
+ {--SPONSOR_ENTER_EMAIL--}:
</td>
<td class="bottom">
- <input type="text" name="email" class="guest_normal" size="20" maxlength="255" value="$content[email]" />
+ <input type="text" name="email" class="guest_normal" size="20" maxlength="255" value="$content[email]" />
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_URL--}:
+ {--SPONSOR_ENTER_URL--}:
</td>
<td class="bottom">
- <input type="text" name="url" class="guest_normal" size="20" maxlength="255" value="$content[url]" />
+ <input type="text" name="url" class="guest_normal" size="20" maxlength="255" value="$content[url]" />
</td>
</tr>
<tr>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_PASSWORD--}:
+ {--SPONSOR_ENTER_PASSWORD--}:
</td>
<td class="bottom">
- <input type="password" name="pass_old" class="guest_normal" size="10" maxlength="255" />
+ <input type="password" name="pass_old" class="guest_normal" size="10" maxlength="255" />
</td>
</tr>
<tr>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_ENTER_PASSWORDS--}:
+ {--SPONSOR_ENTER_PASSWORDS--}:
</td>
<td class="bottom">
- <input type="password" name="pass1" class="guest_normal" size="10" maxlength="255" />
+ <input type="password" name="pass1" class="guest_normal" size="10" maxlength="255" />
<input type="password" name="pass2" class="guest_normal" size="10" maxlength="255" />
</td>
</tr>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_POINTS_AMOUNT--}:
+ {--SPONSOR_POINTS_AMOUNT--}:
</td>
<td class="bottom">
- $content[points_amount] {?POINTS?}
+ $content[points_amount] {?POINTS?}
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_POINTS_USED--}:
+ {--SPONSOR_POINTS_USED--}:
</td>
<td class="bottom">
- $content[points_used] {?POINTS?}
+ $content[points_used] {?POINTS?}
</td>
</tr>
<tr>
<td class="bottom right" align="right" height="27">
- {--SPONSOR_POINTS_TOTAL--}:
+ {--SPONSOR_POINTS_TOTAL--}:
</td>
<td class="bottom">
- $content[points_total] {?POINTS?}
+ $content[points_total] {?POINTS?}
</td>
</tr>
<tr>
<!-- Werbebanner oder was auch immer? -->
-
+
</tr>
<tr>
<td class="bottom right" align="right" height="32">
- {--SPONSOR_ENTER_PASSWORD--}:
+ {--SPONSOR_ENTER_PASSWORD--}:
</td>
<td class="bottom">
- <input type="password" name="password" class="guest_normal" size="10" maxlength="255" />
+ <input type="password" name="password" class="guest_normal" size="10" maxlength="255" />
</td>
</tr>
<tr>
+<div align="center">
<table border="0" cellspacing="0" cellpadding="0" width="100%" id="surfbar_table">
<tr>
<td id="surfbar_td">
- »<span id="surfbar_points">$content[xxx]=$content[xxx] {?POINTS?}</span> in
- <span id="surfbar_counter">$content[xxx]</span> <span
- id="surfbar_counter_word">Sekunden</span>« »<span
- id="surfbar_reload">X</span> von <span
- id="surfbar_max">X</span> im Reload«<br />
+ <div>
+ »<span id="surfbar_points">$content[xxx]=$content[xxx] {?POINTS?}</span> in
+ <span id="surfbar_counter">$content[xxx]</span>
+ <span id="surfbar_counter_word">Sekunden</span>«
+ »<span id="surfbar_reload">X</span> von
+ <span id="surfbar_max">X</span> im Reload«
+ </div>
+ <div>
»<a href="$content[url]" target="_blank">Aktuelle Seite in neuem
- Fenster öffnen</a>« <span id="surfbar_navi">[<a
- href="#" onclick="return StartStopCounter();" id="start">Anhalten</a>|<a
- target="_parent" href="{%url=login.php%}">Loginbereich</a>|<a
- target="_parent" href="{%url=modules.php?module=login&what=logout%}">Ausloggen</a>|<a
- href="javascript:window.close()">Schliessen</a>]</span><br />
+ Fenster öffnen</a>«
+ <span id="surfbar_navi">[<a href="#" onclick="return startStopCounter();"
+ id="start">Anhalten</a>|<a target="_parent"
+ href="{%url=login.php%}">Loginbereich</a>|<a target="_parent"
+ href="{%url=modules.php?module=login&what=logout%}">Ausloggen</a>|<a
+ href="javascript:window.close()">Schliessen</a>]</span>
+ </div>
+ <div>
»{?MAIN_TITLE?} ist für den Inhalt nicht verantwortlich!«
+ </div>
</td>
</tr>
</table>
+</div>
<script type="text/javascript">
<!--
// @TODO Try to rewrite this JavaScript to js.php?js=surfbar_frame_top (wouldn't be easy)
var max = document.getElementById("surfbar_max");
var countDown = null;
-function StartStopCounter () {
+function startStopCounter () {
if (countDown == null) {
// Start counter
document.getElementById("start").innerHTML = "Anhalten";
- countDown = window.setInterval("StartCounter()", 1000);
+ countDown = window.setInterval("startCounter()", 1000);
} else {
document.getElementById("start").innerHTML = "Weiter";
window.clearInterval(countDown);
return false;
}
-function Init() {
- countDown = window.setInterval("StartCounter()", 1000);
- window.setTimeout("InitCounter()", 500);
+function init () {
+ countDown = window.setInterval("startCounter()", 1000);
+ window.setTimeout("initCounter()", 500);
}
-function Confirm() {
+function confirm () {
parent.surfbar_url.location="{%url=surfbar.php?id=$content[url_id]&check=$content[check]&salt=$content[salt]%}";
}
-function ReloadThis() {
+function reloadSurfbar () {
parent.surfbar_stats.location.reload();
this.location.reload();
}
-function InitCounter() {
+function initCounter () {
parent.surfbar_url.location.href = '$content[url]';
counter.innerHTML = '$content[reload]';
points.innerHTML = '$content[reward]';
max.innerHTML = '$content[max_urls]';
}
-function StartCounter() {
+function startCounter () {
if (currCounter < 1) {
return false;
}
if (currCounter == 0) {
clearInterval(countDown);
- Confirm();
- window.setTimeout("ReloadThis()", 500);
+ confirm();
+ window.setTimeout("reloadSurfbar()", 500);
}
}
-Init();
+init();
//-->
</script>
<div class="para">
Für jeden User, den Sie geworben haben erhalten Sie
-<strong>$content[ref_points]</strong> <span class="tiny">({?POINTS?})</span>
+<strong>$content[ref_points] {?POINTS?}</strong>
plus prozentualen Verdienst über <strong>$content[ref_levels]</strong>
Referal-Ebenen hinweg!
</div>