From: Roland Häder Date: Thu, 27 Jan 2011 20:11:45 +0000 (+0000) Subject: Template engine fixed: X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=commitdiff_plain;h=46c1acbca83153bb96f76cc084d532069b88d96e Template engine fixed: - Template engine does now not compile the code, this is required for loading extension's description templates and maintaining the embeded EL code. This will make sure that configuration entries and other "dynamic data" can be inserted on execution time and not on compilation time. - Some extension's description templates still had {?foo_bar?} EL code instead of {OPEN_CONFIG}foo_bar{CLOSE_CONFIG}. The first one would insert configuration data on compilation time, the second on execution time. - TODOs.txt updated --- diff --git a/DOCS/TODOs.txt b/DOCS/TODOs.txt index ac953e6ee4..1a024da49f 100644 --- a/DOCS/TODOs.txt +++ b/DOCS/TODOs.txt @@ -184,16 +184,16 @@ ./inc/mysql-manager.php:368: // @TODO Try to rewrite this to one or more functions ./inc/mysql-manager.php:44:// @TODO Can we cache this? ./inc/revision-functions.php:169:// @TODO This function does also set and get in 'cache_array' -./inc/template-functions.php:1043: // @TODO Deprecate this thing -./inc/template-functions.php:1054: // @TODO Deprecate this thing -./inc/template-functions.php:1141: // @TODO This can be easily moved out after the merge from EL branch to this is complete -./inc/template-functions.php:1174: // @TODO Add a little more infos here -./inc/template-functions.php:1483:// @TODO Lame description for this function -./inc/template-functions.php:1505: // @TODO Move this in a filter +./inc/template-functions.php:1045: // @TODO Deprecate this thing +./inc/template-functions.php:1056: // @TODO Deprecate this thing +./inc/template-functions.php:1143: // @TODO This can be easily moved out after the merge from EL branch to this is complete +./inc/template-functions.php:1176: // @TODO Add a little more infos here +./inc/template-functions.php:1485:// @TODO Lame description for this function +./inc/template-functions.php:1507: // @TODO Move this in a filter ./inc/template-functions.php:189: * @TODO On some pages this is buggy ./inc/template-functions.php:265: // @TODO Remove this sanity-check if all is fine ./inc/template-functions.php:578:// @TODO $simple/$constants are deprecated -./inc/template-functions.php:602: // @TODO Do only use $content and deprecate $GLOBALS and $DATA in templates +./inc/template-functions.php:604: // @TODO Do only use $content and deprecate $GLOBALS and $DATA in templates ./inc/wrapper-functions.php:130:// @TODO Implement $compress ./inc/wrapper-functions.php:137:// @TODO Implement $decompress ./inc/wrapper-functions.php:489:// @TODO Do some more sanity check here diff --git a/inc/extensions-functions.php b/inc/extensions-functions.php index 7e5895c8d4..f40643935e 100644 --- a/inc/extensions-functions.php +++ b/inc/extensions-functions.php @@ -1014,8 +1014,8 @@ function createNewExtensionTask ($ext_name) { // Load text for task if found if (isFileReadable($tpl)) { - // Load extension's own text template (HTML!) - $message = loadTemplate('ext_' . $ext_name, true); + // Load extension's description template (but do not compile the code) + $message = loadTemplate('ext_' . $ext_name, true, array(), false); } else { // Write this in debug.log as well logDebugMessage(__FUNCTION__, __LINE__, $message); diff --git a/inc/modules/admin/admin-inc.php b/inc/modules/admin/admin-inc.php index 4eadcc4894..126e4dd5be 100644 --- a/inc/modules/admin/admin-inc.php +++ b/inc/modules/admin/admin-inc.php @@ -648,7 +648,14 @@ function generateUserProfileLink ($userid, $title = '', $what = 'list_user') { // Check "logical-area-mode" function adminGetMenuMode () { // Set the default menu mode as the mode for all admins - $mode = getAdminMenu(); + $mode = 'global'; + + // If sql_patches is up-to-date enough, use the configuration + if (isExtensionInstalledAndNewer('sql_patches', '0.3.2')) { + $mode = getAdminMenu(); + } // END - if + + // Backup it $adminMode = $mode; // Get admin id diff --git a/inc/template-functions.php b/inc/template-functions.php index da8ddcfe8a..bdb505d8fb 100644 --- a/inc/template-functions.php +++ b/inc/template-functions.php @@ -261,7 +261,7 @@ function outputRawCode ($htmlCode) { } // Load a template file and return it's content (only it's name; do not use ' or ") -function loadTemplate ($template, $return = false, $content = array()) { +function loadTemplate ($template, $return = false, $content = array(), $compileCode = true) { // @TODO Remove this sanity-check if all is fine if (!is_bool($return)) debug_report_bug(__FUNCTION__, __LINE__, 'return is not bool (' . gettype($return) . ')'); @@ -269,7 +269,7 @@ function loadTemplate ($template, $return = false, $content = array()) { $GLOBALS['current_template'] = $template; // Do we have cache? - if ((isDebuggingTemplateCache() === false) && (isTemplateCached($template))) { + if ((!isDebuggingTemplateCache()) && (isTemplateCached($template))) { // Evaluate the cache eval(readTemplateCache($template)); } elseif (!isset($GLOBALS['template_eval'][$template])) { @@ -309,18 +309,18 @@ function loadTemplate ($template, $return = false, $content = array()) { $ret = '' . $GLOBALS['tpl_content'][$template] . ''; // Prepare eval() command - $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($ret)) . '";'; + $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($ret), false, true, true, $compileCode) . '";'; } elseif (substr($template, 0, 3) == 'js_') { // JavaScripts don't like entities and timings - $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'][$template])) . '");'; + $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'][$template]), false, true, true, $compileCode) . '");'; } else { // Prepare eval() command, other output doesn't like entities, maybe - $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'][$template])) . '");'; + $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['tpl_content'][$template]), false, true, true, $compileCode) . '");'; } } else { // Add surrounding HTML comments to help finding bugs faster $ret = '' . $GLOBALS['tpl_content'][$template] . ''; - $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($ret)) . '";'; + $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($ret), false, true, true, $compileCode) . '";'; } // END - if } elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) { // Only admins shall see this warning or when installation mode is active @@ -548,9 +548,9 @@ function generateCaptchaCode ($code, $type, $DATA, $userid) { } // Compiles the given HTML/mail code -function compileCode ($code, $simple = false, $constants = true, $full = true) { - // Is the code a string? - if (!is_string($code)) { +function compileCode ($code, $simple = false, $constants = true, $full = true, $compileCode = true) { + // Is the code a string or should we not compile? + if ((!is_string($code)) || ($compileCode === false)) { // Silently return it return $code; } // END - if @@ -576,9 +576,9 @@ function compileCode ($code, $simple = false, $constants = true, $full = true) { // Compiles the code (use compileCode() only for HTML because of the comments) // @TODO $simple/$constants are deprecated -function compileRawCode ($code, $simple = false, $constants = true, $full = true) { - // Is the code a string? - if (!is_string($code)) { +function compileRawCode ($code, $simple = false, $constants = true, $full = true, $compileCode = true) { + // Is the code a string or shall we not compile? + if ((!is_string($code)) || ($compileCode === false)) { // Silently return it return $code; } // END - if @@ -587,7 +587,9 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true $secChars = $GLOBALS['url_chars']; // Select full set of chars to replace when we e.g. want to compile URLs - if ($full === true) $secChars = $GLOBALS['security_chars']; + if ($full === true) { + $secChars = $GLOBALS['security_chars']; + } // END - if // Compile more through a filter $code = runFilterChain('compile_code', $code); diff --git a/templates/de/html/admin/admin_welcome.tpl b/templates/de/html/admin/admin_welcome.tpl index 205290ac86..e9ab676d2b 100644 --- a/templates/de/html/admin/admin_welcome.tpl +++ b/templates/de/html/admin/admin_welcome.tpl @@ -8,7 +8,7 @@ Aktueller Admin: - [{%pipe,getAdminLogin=$content[id]%}] + [{%pipe,getAdminLogin=$content%}] Ausloggen diff --git a/templates/de/html/ext/ext_announcement.tpl b/templates/de/html/ext/ext_announcement.tpl index a0d4f27766..b6d86447c1 100644 --- a/templates/de/html/ext/ext_announcement.tpl +++ b/templates/de/html/ext/ext_announcement.tpl @@ -1,9 +1,10 @@
Informieren Sie Ihre Gäste, Mitglieder oder Sponsoren über - wichtige Ereignisse Ihres {?mt_word2?}. Dazu geben Sie eine kurze - Überschrift, optional einen Teaser (mehr dazu weiter unten) und den - Text für die Ankündigung ein. Zusätzlich ist ein Ablaufdatum - einstellbar, wann die Mail in das Archiv verschoben wird. + wichtige Ereignisse Ihres {OPEN_CONFIG}mt_word2{CLOSE_CONFIG}. Dazu geben + Sie eine kurze Überschrift, optional einen Teaser (mehr dazu weiter + unten) und den Text für die Ankündigung ein. Zusätzlich + ist ein Ablaufdatum einstellbar, wann die Mail in das Archiv verschoben + wird.
diff --git a/templates/de/html/ext/ext_bitcoins.tpl b/templates/de/html/ext/ext_bitcoins.tpl index b5f4591372..fb3aa23e92 100644 --- a/templates/de/html/ext/ext_bitcoins.tpl +++ b/templates/de/html/ext/ext_bitcoins.tpl @@ -2,12 +2,13 @@ Bezahlungen mit BitCoins sind mit dieser Erweiterung möglich. BitCoin ist eine virtuelle - Internetwährung mit der Ihre Sponsoren Werbung bei Ihrem {?MT_WORD?} - bezahlen können. Üblicherweise wird solch eine virtuelle - Währung (wie z.B. FunCoins, Wernis, Klammlose usw.) auf einem zentralen - Server oder auch Serverfarm (Cluster durchaus) gehostet, wo dann meistens - eine prohitähre Software installiert ist und der Anbieter die - Herrschaft über die Währung und alle Transaktionen hat. + Internetwährung mit der Ihre Sponsoren Werbung bei Ihrem + {OPEN_CONFIG}mt_word{CLOSE_CONFIG} bezahlen können. Üblicherweise + wird solch eine virtuelle Währung (wie z.B. FunCoins, Wernis, Klammlose + usw.) auf einem zentralen Server oder auch Serverfarm (Cluster durchaus) + gehostet, wo dann meistens eine prohitähre Software installiert ist und + der Anbieter die Herrschaft über die Währung und alle Transaktionen + hat.
diff --git a/templates/de/html/ext/ext_funcoins.tpl b/templates/de/html/ext/ext_funcoins.tpl index 98a274915f..8ea1e47c46 100644 --- a/templates/de/html/ext/ext_funcoins.tpl +++ b/templates/de/html/ext/ext_funcoins.tpl @@ -3,14 +3,15 @@ target="_blank" href="http://www.funcoins.de/join.php?refid=9265">FuCo-EX² API möglich. Um diese auch nutzen zu können, benötigen Sie ein Betreiberkonto, dass Sie sich bei der FunCoins-Bank kostenlos holen und - die Aufnahme Ihres {?MT_WORD2?} beantragen können. + die Aufnahme Ihres {OPEN_CONFIG}mt_word2{CLOSE_CONFIG} beantragen + können.
Um gleich einige Missverständnisse auszuräumen, sollten Sie im Gastbereich eine News einstellen, wo Sie schreiben, dass Sie bald FunCoins - anbieten. Dies kann die Aufnahme Ihres {?MT_WORD2?} deutlich beschleunigen - und vereinfachen. + anbieten. Dies kann die Aufnahme Ihres {OPEN_CONFIG}mt_word2{CLOSE_CONFIG} + deutlich beschleunigen und vereinfachen.
diff --git a/templates/de/html/ext/ext_network.tpl b/templates/de/html/ext/ext_network.tpl index 7e414a33e9..6566195559 100644 --- a/templates/de/html/ext/ext_network.tpl +++ b/templates/de/html/ext/ext_network.tpl @@ -1,8 +1,8 @@
- Ein {?mt_word?} lebt von Sponsoren (sei es direkt angemeldete - dazu nutzen - Sie bitte ext-sponsor - oder über Werbenetzwerke angeworbene), da auch - irgentwo die Kosten (Domain-, Serverkosten und mehr) gedeckt werden - müssen. + Ein {OPEN_CONFIG}mt_word{CLOSE_CONFIG} lebt von Sponsoren (sei es direkt + angemeldete - dazu nutzen Sie bitte ext-sponsor - oder über + Werbenetzwerke angeworbene), da auch irgentwo die Kosten (Domain-, + Serverkosten und mehr) gedeckt werden müssen.
@@ -19,21 +19,21 @@ möglichst allen Werbenetzwerken kompatibel sein. Sie brauchen also nur Ihre Interface-Zugangsdaten (meistens Ihre User-Id, Seiten-Id und Interface-Passwort) im Adminmenü eintragen und schon können die - Kampagnen aus dem Werbenetzwerk zu diesem {?mt_word?} übertragen - werden, Sie machen dazu nur wenige Klicks und brauchen keine Werbetexte oder - URLs umständlich kopieren. + Kampagnen aus dem Werbenetzwerk zu diesem {OPEN_CONFIG}mt_word{CLOSE_CONFIG} + übertragen werden, Sie machen dazu nur wenige Klicks und brauchen keine + Werbetexte oder URLs umständlich kopieren.
Noch in Planung: Einige Werbenetzwerke bietet die Möglichkeit eines V-Checks an. Dabei wird überprüft, ob auch - die beworbene URL aufgerufen wurde und wird dann an Ihren {?mt_word?} bei - korrektem Aufruf zurückgemeldet. + die beworbene URL aufgerufen wurde und wird dann an Ihren + {OPEN_CONFIG}mt_word{CLOSE_CONFIG} bei korrektem Aufruf zurückgemeldet.
Sollte ein Werbenetzwerk (nur welche mit Interface werden unterstützt) fehlen, melden Sie es bitte in diesem + href="http://forum.mxchange.org/topic-462.html" rel="external">in diesem Forum. Mein Team und ich binden es dann bald im Mailer-Projekt ein.
diff --git a/templates/de/html/ext/ext_timezone.tpl b/templates/de/html/ext/ext_timezone.tpl index d44cbb44d2..5e6974248f 100644 --- a/templates/de/html/ext/ext_timezone.tpl +++ b/templates/de/html/ext/ext_timezone.tpl @@ -1,3 +1,3 @@ Erlaubt das Ändern der Zeitzone und sollte unbedingt installiert werden. -Einige Funktionen Ihres {OPEN_CONFIG}MT_WORD2{CLOSE_CONFIG} könnten unter +Einige Funktionen Ihres {OPEN_CONFIG}mt_word2{CLOSE_CONFIG} könnten unter Umständen ohne dieser Erweiterung nicht mehr korrekt funktionieren. diff --git a/templates/de/html/ext/ext_yacy.tpl b/templates/de/html/ext/ext_yacy.tpl index eb8c2f14e8..f8658d877e 100644 --- a/templates/de/html/ext/ext_yacy.tpl +++ b/templates/de/html/ext/ext_yacy.tpl @@ -3,17 +3,18 @@ title="YaCy Peer-To-Peer Suchmaschine">YaCy ist eine auf dem Peer-To-Peer-Prinzip aufbauende Suchmaschine. Diese Erweiterung hilft Ihnen bei der Integration eines YaCy-Peers (z.B. auf dem selben Server - installiertem) in Ihren {?MT_WORD?} als Webseitensuche. + installiertem) in Ihren {OPEN_CONFIG}mt_word{CLOSE_CONFIG} als + Webseitensuche.
Mögliches Einsatzgebiet von YaCy wäre wie zuvor angedeutet eine Webseitensuche (das ein bekanntes "Personal Website Search" - Produkt ersetzen kann), {?MT_WORD3?} haben durchaus Foren oder gar einen - Blog installiert, die eine Suche anbieten + einige Seiten auf der - Hauptseite. Diesses alles zusammen liesse sich mit YaCy dann mit einer - einheitlichen Suchmaske durchsuchbar machen. Die Erweiterung macht hier - deswegen Sinn, da es dann dem Webmaster (mit zum Teil sehr wenig + Produkt ersetzen kann), {OPEN_CONFIG}mt_word3{CLOSE_CONFIG} haben durchaus + Foren oder gar einen Blog installiert, die eine Suche anbieten + einige + Seiten auf der Hauptseite. Diesses alles zusammen liesse sich mit YaCy + dann mit einer einheitlichen Suchmaske durchsuchbar machen. Die Erweiterung + macht hier deswegen Sinn, da es dann dem Webmaster (mit zum Teil sehr wenig HTML-Kenntnissen) leichter fällt, YaCy einzubinden. Das Mitglied hat dann ihm eine bekannte Darstellung der Suchergebnisse.
@@ -22,10 +23,11 @@ Sie können bei der Konfiguration nebst Hostnamen (bitte nicht mit dem YaCy-internen Peer-Namen verwechseln) und Portnummer (meistens 8080) auch weitere Einstellungen, wie z.B. ob global oder nur der lokale Peer - durchsucht werden soll und ob nur {?URL?} oder die gesamte Domain {?DOMAIN?} - durchsuchbar ist. Die gesamte Domain durchsuchbar zu machen, macht dann Sinn, - wenn Sie noch ein Forum, Bug-Tracker (meistens eher nicht der Fall) oder einen - Blog installiert haben und diese auch mit der selben Suchmaske durchsuchbar + durchsucht werden soll und ob nur {OPEN_CONFIG}URL{CLOSE_CONFIG} oder die + gesamte Domain {OPEN_CONFIG}DOMAIN{CLOSE_CONFIG} durchsuchbar ist. Die + gesamte Domain durchsuchbar zu machen, macht dann Sinn, wenn Sie noch ein + Forum, Bug-Tracker (meistens eher nicht der Fall) oder einen Blog + installiert haben und diese auch mit der selben Suchmaske durchsuchbar machen möchten. @@ -35,10 +37,10 @@ selber entscheiden kann, welche Webseiten er sperrt und welche nicht, sollten Sie in der YaCy-Konfiguration DHT komplett ausschalten und z.B. auf einen öffentlichen Robinson-Peer wechseln. So kommen keine ungefilterten - Suchergebisse in Ihren {?MT_WORD?} rein, die Sie eventuell nicht zeigen - wollen. Ist DHT an, ist es durchaus möglich, dass trotz - Einschränkung des URL-Filters (nur Ihre Webseite wie oben beschrieben) - immer noch unerwünschte Suchergebnisse (Bildersuche z.B.) von Ihrem - Peer durchsuchbar sind, da Ihr Peer andere im YaCy-Netzwerk befindlichen - Peers anfragt. + Suchergebisse in Ihren {OPEN_CONFIG}mt_word{CLOSE_CONFIG} rein, die Sie + eventuell nicht zeigen wollen. Ist DHT an, ist es durchaus möglich, + dass trotz Einschränkung des URL-Filters (nur Ihre Webseite wie oben + beschrieben) immer noch unerwünschte Suchergebnisse (Bildersuche z.B.) + von Ihrem Peer durchsuchbar sind, da Ihr Peer andere im YaCy-Netzwerk + befindlichen Peers anfragt.