- 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
./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/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: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
./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
// Load text for task if found
if (isFileReadable($tpl)) {
// 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);
} else {
// Write this in debug.log as well
logDebugMessage(__FUNCTION__, __LINE__, $message);
// Check "logical-area-mode"
function adminGetMenuMode () {
// Set the default menu mode as the mode for all admins
// 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
$adminMode = $mode;
// Get admin id
}
// Load a template file and return it's content (only it's name; do not use ' or ")
}
// 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) . ')');
// @TODO Remove this sanity-check if all is fine
if (!is_bool($return)) debug_report_bug(__FUNCTION__, __LINE__, 'return is not bool (' . gettype($return) . ')');
$GLOBALS['current_template'] = $template;
// Do we have cache?
$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])) {
// Evaluate the cache
eval(readTemplateCache($template));
} elseif (!isset($GLOBALS['template_eval'][$template])) {
$ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
// Prepare eval() command
$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
} 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
} 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 //-->';
}
} 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
} // END - if
} elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
// Only admins shall see this warning or when installation mode is active
}
// Compiles the given HTML/mail code
}
// 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
// Silently return it
return $code;
} // END - if
// Compiles the code (use compileCode() only for HTML because of the comments)
// @TODO $simple/$constants are deprecated
// 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
// Silently return it
return $code;
} // END - if
$secChars = $GLOBALS['url_chars'];
// Select full set of chars to replace when we e.g. want to compile URLs
$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);
// Compile more through a filter
$code = runFilterChain('compile_code', $code);
</td>
<td align="center" width="300" class="dashed tiny">
Aktueller Admin:
</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&action=logout%}">Ausloggen</a>
</td>
<td class="logout_box top bottom right" align="center" width="100">
<a class="logout_box tiny" href="{%url=modules.php?module=admin&action=logout%}">Ausloggen</a>
<div class="para">
Informieren Sie Ihre Gäste, Mitglieder oder Sponsoren über
<div class="para">
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.
</div>
<div class="para">
</div>
<div class="para">
Bezahlungen mit <a href="http://www.bitcoin.org/" rel="external"
target="_blank" title="Virtual P2P Currency BitCoin">BitCoins</a> sind mit
dieser Erweiterung möglich. BitCoin ist eine virtuelle
Bezahlungen mit <a href="http://www.bitcoin.org/" rel="external"
target="_blank" title="Virtual P2P Currency BitCoin">BitCoins</a> 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.
</div>
<div class="para">
</div>
<div class="para">
target="_blank" href="http://www.funcoins.de/join.php?refid=9265">FuCo</a>-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
target="_blank" href="http://www.funcoins.de/join.php?refid=9265">FuCo</a>-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.
</div>
<div class="para">
Um gleich einige Missverständnisse auszuräumen, sollten Sie im
Gastbereich eine News einstellen, wo Sie schreiben, dass Sie bald FunCoins
</div>
<div class="para">
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.
</div>
<div class="para">
</div>
<div class="para">
- 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.
</div>
<div class="para">
</div>
<div class="para">
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
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.
</div>
<div class="para">
<strong>Noch in Planung:</strong> Einige Werbenetzwerke bietet die
Möglichkeit eines V-Checks an. Dabei wird überprüft, ob auch
</div>
<div class="para">
<strong>Noch in Planung:</strong> 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.
</div>
<div class="para">
Sollte ein Werbenetzwerk (nur welche mit Interface werden unterstützt)
fehlen, melden Sie es bitte <a target="_blank"
</div>
<div class="para">
Sollte ein Werbenetzwerk (nur welche mit Interface werden unterstü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>
Forum</a>. Mein Team und ich binden es dann bald im Mailer-Projekt ein.
</div>
Erlaubt das Ändern der Zeitzone und sollte unbedingt installiert werden.
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.
Umständen ohne dieser Erweiterung nicht mehr korrekt funktionieren.
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
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ögliches Einsatzgebiet von YaCy wäre wie zuvor angedeutet eine
Webseitensuche (das ein bekanntes "Personal Website Search"
</div>
<div class="para">
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.
</div>
HTML-Kenntnissen) leichter fällt, YaCy einzubinden. Das Mitglied hat
dann ihm eine bekannte Darstellung der Suchergebnisse.
</div>
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
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.
</div>
machen mö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 öffentlichen Robinson-Peer wechseln. So kommen keine ungefilterten
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.