]> git.mxchange.org Git - mailer.git/commitdiff
Template engine fixed:
authorRoland Häder <roland@mxchange.org>
Thu, 27 Jan 2011 20:11:45 +0000 (20:11 +0000)
committerRoland Häder <roland@mxchange.org>
Thu, 27 Jan 2011 20:11:45 +0000 (20:11 +0000)
- 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

DOCS/TODOs.txt
inc/extensions-functions.php
inc/modules/admin/admin-inc.php
inc/template-functions.php
templates/de/html/admin/admin_welcome.tpl
templates/de/html/ext/ext_announcement.tpl
templates/de/html/ext/ext_bitcoins.tpl
templates/de/html/ext/ext_funcoins.tpl
templates/de/html/ext/ext_network.tpl
templates/de/html/ext/ext_timezone.tpl
templates/de/html/ext/ext_yacy.tpl

index ac953e6ee46d96f616cca72953d4a826e6030523..1a024da49ff7e56027111e8bcf91b39760f9f228 100644 (file)
 ./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
index 7e5895c8d415d79f5184591a22c0ea643fe19889..f40643935e8825193b1ec427ddb032413f1f89f6 100644 (file)
@@ -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);
index 4eadcc4894a63950df4e26ff2c6f864fd6ccd864..126e4dd5beff94265cf4f025fa1735d47e6d114d 100644 (file)
@@ -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
index da8ddcfe8a674f6cf6d4b3829038174aa69aefd8..bdb505d8fbd63be40be7494ebefdcf60eca102ca 100644 (file)
@@ -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 = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
 
                                        // 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 = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
-                               $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);
index 205290ac862f4ff5eb1631e1760cb48dd4fbd902..e9ab676d2b71dca697d033282ee5b6d4096ab12d 100644 (file)
@@ -8,7 +8,7 @@
                </td>
                <td align="center" width="300" class="dashed tiny">
                        Aktueller Admin:
-                       [<span class="notice tiny" title="Erweiterung admins nicht installiert.">{%pipe,getAdminLogin=$content[id]%}</span>]
+                       [<span class="notice tiny" title="Erweiterung admins nicht installiert.">{%pipe,getAdminLogin=$content%}</span>]
                </td>
                <td class="logout_box top bottom right" align="center" width="100">
                        <a class="logout_box tiny" href="{%url=modules.php?module=admin&amp;action=logout%}">Ausloggen</a>
index a0d4f27766ca7ce5d14a4c8d71fba8c597675927..b6d86447c133271519e630223534547398be0d49 100644 (file)
@@ -1,9 +1,10 @@
 <div class="para">
        Informieren Sie Ihre G&auml;ste, Mitglieder oder Sponsoren &uuml;ber
-       wichtige Ereignisse Ihres {?mt_word2?}. Dazu geben Sie eine kurze
-       &Uuml;berschrift, optional einen Teaser (mehr dazu weiter unten) und den
-       Text f&uuml;r die Ank&uuml;ndigung ein. Zus&auml;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 &Uuml;berschrift, optional einen Teaser (mehr dazu weiter
+       unten) und den Text f&uuml;r die Ank&uuml;ndigung ein. Zus&auml;tzlich
+       ist ein Ablaufdatum einstellbar, wann die Mail in das Archiv verschoben
+       wird.
 </div>
 
 <div class="para">
index b5f45913720842bc3e12bda6764d0ef256a7209a..fb3aa23e92ea81796147f179391ea36cc1d227c7 100644 (file)
@@ -2,12 +2,13 @@
        Bezahlungen mit <a href="http://www.bitcoin.org/" rel="external"
         target="_blank" title="Virtual P2P Currency BitCoin">BitCoins</a> sind mit
        dieser Erweiterung m&ouml;glich.  BitCoin ist eine virtuelle
-       Internetw&auml;hrung mit der Ihre Sponsoren Werbung bei Ihrem {?MT_WORD?}
-       bezahlen k&ouml;nnen. &Uuml;blicherweise wird solch eine virtuelle
-       W&auml;hrung (wie z.B. FunCoins, Wernis, Klammlose usw.) auf einem zentralen
-       Server oder auch Serverfarm (Cluster durchaus) gehostet, wo dann meistens
-       eine prohit&auml;hre Software installiert ist und der Anbieter die
-       Herrschaft &uuml;ber die W&auml;hrung und alle Transaktionen hat.
+       Internetw&auml;hrung mit der Ihre Sponsoren Werbung bei Ihrem
+       {OPEN_CONFIG}mt_word{CLOSE_CONFIG} bezahlen k&ouml;nnen. &Uuml;blicherweise
+       wird solch eine virtuelle W&auml;hrung (wie z.B. FunCoins, Wernis, Klammlose
+       usw.) auf einem zentralen Server oder auch Serverfarm (Cluster durchaus)
+       gehostet, wo dann meistens eine prohit&auml;hre Software installiert ist und
+       der Anbieter die Herrschaft &uuml;ber die W&auml;hrung und alle Transaktionen
+       hat.
 </div>
 
 <div class="para">
index 98a274915fb664f29144ee699affd2e74418c809..8ea1e47c46f98d9ce8827dcd83a2fb7af91c4e49 100644 (file)
@@ -3,14 +3,15 @@
         target="_blank" href="http://www.funcoins.de/join.php?refid=9265">FuCo</a>-EX&#178;
        API m&ouml;glich. Um diese auch nutzen zu k&ouml;nnen, ben&ouml;tigen Sie
        ein Betreiberkonto, dass Sie sich bei der FunCoins-Bank kostenlos holen und
-       die Aufnahme Ihres {?MT_WORD2?} beantragen k&ouml;nnen.
+       die Aufnahme Ihres {OPEN_CONFIG}mt_word2{CLOSE_CONFIG} beantragen
+       k&ouml;nnen.
 </div>
 
 <div class="para">
        Um gleich einige Missverst&auml;ndnisse auszur&auml;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.
 </div>
 
 <div class="para">
index 7e414a33e922c0970c10048bc05c491dadb33d32..6566195559d79dca392bd85ea24594c1229ba226 100644 (file)
@@ -1,8 +1,8 @@
 <div class="para">
-       Ein {?mt_word?} lebt von Sponsoren (sei es direkt angemeldete - dazu nutzen
-       Sie bitte ext-sponsor - oder &uuml;ber Werbenetzwerke angeworbene), da auch
-       irgentwo die Kosten (Domain-, Serverkosten und mehr) gedeckt werden
-       m&uuml;ssen.
+       Ein {OPEN_CONFIG}mt_word{CLOSE_CONFIG} lebt von Sponsoren (sei es direkt
+       angemeldete - dazu nutzen Sie bitte ext-sponsor - oder &uuml;ber
+       Werbenetzwerke angeworbene), da auch irgentwo die Kosten (Domain-,
+       Serverkosten und mehr) gedeckt werden m&uuml;ssen.
 </div>
 
 <div class="para">
        m&ouml;glichst allen Werbenetzwerken kompatibel sein. Sie brauchen also nur
        Ihre Interface-Zugangsdaten (meistens Ihre User-Id, Seiten-Id und
        Interface-Passwort) im Adminmen&uuml; eintragen und schon k&ouml;nnen die
-       Kampagnen aus dem Werbenetzwerk zu diesem {?mt_word?} &uuml;bertragen
-       werden, Sie machen dazu nur wenige Klicks und brauchen keine Werbetexte oder
-       URLs umst&auml;ndlich kopieren.
+       Kampagnen aus dem Werbenetzwerk zu diesem {OPEN_CONFIG}mt_word{CLOSE_CONFIG}
+       &uuml;bertragen werden, Sie machen dazu nur wenige Klicks und brauchen keine
+       Werbetexte oder URLs umst&auml;ndlich kopieren.
 </div>
 
 <div class="para">
        <strong>Noch in Planung:</strong> Einige Werbenetzwerke bietet die
        M&ouml;glichkeit eines V-Checks an. Dabei wird &uuml;berpr&uuml;ft, ob auch
-       die beworbene URL aufgerufen wurde und wird dann an Ihren {?mt_word?} bei
-       korrektem Aufruf zur&uuml;ckgemeldet.
+       die beworbene URL aufgerufen wurde und wird dann an Ihren
+       {OPEN_CONFIG}mt_word{CLOSE_CONFIG} bei korrektem Aufruf zur&uuml;ckgemeldet.
 </div>
 
 <div class="para">
        Sollte ein Werbenetzwerk (nur welche mit Interface werden unterst&uuml;tzt)
        fehlen, melden Sie es bitte <a target="_blank"
- href="http://forum.mxchange.org/topic-462.html" rel="external">in diesem
       href="http://forum.mxchange.org/topic-462.html" rel="external">in diesem
        Forum</a>. Mein Team und ich binden es dann bald im Mailer-Projekt ein.
 </div>
index d44cbb44d25e9430b4bb7d4f2d9506daf07a3dfa..5e6974248fb21e4125c15910c99f3dabfaa89138 100644 (file)
@@ -1,3 +1,3 @@
 Erlaubt das &Auml;ndern der Zeitzone und sollte unbedingt installiert werden.
-Einige Funktionen Ihres {OPEN_CONFIG}MT_WORD2{CLOSE_CONFIG} k&ouml;nnten unter
+Einige Funktionen Ihres {OPEN_CONFIG}mt_word2{CLOSE_CONFIG} k&ouml;nnten unter
 Umst&auml;nden ohne dieser Erweiterung nicht mehr korrekt funktionieren.
index eb8c2f14e853d15521fdf4f6da3c333af54dd014..f8658d877e86d1c3954224f49567ff93503be240 100644 (file)
@@ -3,17 +3,18 @@
         title="YaCy Peer-To-Peer Suchmaschine">YaCy</a> 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.
 </div>
 
 <div class="para">
        M&ouml;gliches Einsatzgebiet von YaCy w&auml;re wie zuvor angedeutet eine
        Webseitensuche (das ein bekanntes &quot;Personal Website Search&quot;
-       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&auml;llt, YaCy einzubinden. Das Mitglied hat
        dann ihm eine bekannte Darstellung der Suchergebnisse.
 </div>
        Sie k&ouml;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&ouml;chten.
 </div>
 
        selber entscheiden kann, welche Webseiten er sperrt und welche nicht,
        sollten Sie in der YaCy-Konfiguration DHT komplett ausschalten und z.B.
        auf einen &ouml;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&ouml;glich, dass trotz
-       Einschr&auml;nkung des URL-Filters (nur Ihre Webseite wie oben beschrieben)
-       immer noch unerw&uuml;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&ouml;glich,
+       dass trotz Einschr&auml;nkung des URL-Filters (nur Ihre Webseite wie oben
+       beschrieben) immer noch unerw&uuml;nschte Suchergebnisse (Bildersuche z.B.)
+       von Ihrem Peer durchsuchbar sind, da Ihr Peer andere im YaCy-Netzwerk
+       befindlichen Peers anfragt.
 </div>