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 ac953e6..1a024da 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 7e5895c..f406439 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 4eadcc4..126e4dd 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 da8ddcf..bdb505d 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 205290a..e9ab676 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 a0d4f27..b6d8644 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 b5f4591..fb3aa23 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 98a2749..8ea1e47 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 7e414a3..6566195 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 d44cbb4..5e69742 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 eb8c2f1..f8658d8 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>