X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ftemplate%2Fclass_BaseTemplateEngine.php;h=8690db6fe519d8f038307dbe7684e8712eb56d71;hb=12dbc1af8f0bc2981711b17c7c955f270c440b35;hp=4db73b617de299fc4c976bb955506c8a622ee28d;hpb=c59dccf46c5d0e3b7f2687370b2b15023b1ecdfe;p=hub.git
diff --git a/inc/classes/main/template/class_BaseTemplateEngine.php b/inc/classes/main/template/class_BaseTemplateEngine.php
index 4db73b617..8690db6fe 100644
--- a/inc/classes/main/template/class_BaseTemplateEngine.php
+++ b/inc/classes/main/template/class_BaseTemplateEngine.php
@@ -69,11 +69,6 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
*/
private $varStack = array();
- /**
- * Configuration variables in a simple array
- */
- private $configVariables = array();
-
/**
* Loaded templates for recursive protection and detection
*/
@@ -154,10 +149,12 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
// Is the group there?
if (isset($this->varStack[$this->currGroup])) {
// Now search for it
- foreach ($this->varStack[$this->currGroup] as $idx=>$currEntry) {
+ foreach ($this->varStack[$this->currGroup] as $idx => $currEntry) {
+ //* DEBUG: */ echo __METHOD__.":currGroup={$this->currGroup},idx={$idx},currEntry={$currEntry['name']},var={$var}
\n";
// Is the entry found?
if ($currEntry['name'] == $var) {
// Found!
+ //* DEBUG: */ echo __METHOD__.":FOUND!
\n";
$found = $idx;
break;
} // END - if
@@ -586,7 +583,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
// Did we find some variables?
if ((is_array($variableMatches)) && (count($variableMatches) == 4) && (count($variableMatches[0]) > 0)) {
// Initialize all missing variables
- foreach ($variableMatches[3] as $key=>$var) {
+ foreach ($variableMatches[3] as $key => $var) {
// Variable name
$varName = $variableMatches[1][$key];
@@ -628,10 +625,17 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
if ((!isset($this->loadedRawData[$template])) && (!in_array($template, $this->loadedTemplates))) {
// Template not found, but maybe variable assigned?
+ //* DEBUG: */ echo __METHOD__.":template={$template}
\n";
if ($this->isVariableAlreadySet($template) !== false) {
// Use that content here
$this->loadedRawData[$template] = $this->readVariable($template);
+ // Recursive protection:
+ $this->loadedTemplates[] = $template;
+ } elseif (isset($this->varStack['config'][$template])) {
+ // Use that content here
+ $this->loadedRawData[$template] = $this->varStack['config'][$template];
+
// Recursive protection:
$this->loadedTemplates[] = $template;
} else {
@@ -671,7 +675,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
if (in_array($template, $this->compiledTemplates)) {
// Abort here...
return;
- }
+ } // END - if
// Remember this template being compiled
$this->compiledTemplates[] = $template;
@@ -703,7 +707,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
*/
private function insertAllTemplates (array $templateMatches) {
// Run through all loaded codes
- foreach ($this->loadedRawData as $template=>$code) {
+ foreach ($this->loadedRawData as $template => $code) {
// Search for the template
$foundIndex = array_search($template, $templateMatches[1]);
@@ -766,7 +770,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
*/
private function assignAllVariables (array $varMatches) {
// Search for all variables
- foreach ($varMatches[1] as $key=>$var) {
+ foreach ($varMatches[1] as $key => $var) {
// Detect leading equals
if (substr($varMatches[2][$key], 0, 1) == "=") {
@@ -796,7 +800,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
if (count($this->loadedRawData) > 0) {
// Then compile all!
- foreach ($this->loadedRawData as $template=>$code) {
+ foreach ($this->loadedRawData as $template => $code) {
// Is this template already compiled?
if (in_array($template, $this->compiledTemplates)) {
@@ -836,7 +840,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
*/
private function insertRawTemplates () {
// Load all templates
- foreach ($this->rawTemplates as $template=>$content) {
+ foreach ($this->rawTemplates as $template => $content) {
// Set the template as a variable with the content
$this->assignVariable($template, $content);
}
@@ -895,7 +899,8 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
*/
public function assignConfigVariable ($var) {
// Sweet and simple...
- $this->configVariables[$var] = $this->getConfigInstance()->readConfig($var);
+ //* DEBUG: */ echo __METHOD__.":var={$var}
\n";
+ $this->varStack['config'][$var] = $this->getConfigInstance()->readConfig($var);
}
/**
@@ -916,7 +921,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
/**
* Load a specified code template into the engine
*
- * @param $template The code template we shall load which is
+ * @param $template The code template we shall load which is
* located in "code" by default
* @return void
*/
@@ -944,14 +949,16 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
// Transfer it's name/value combination to the $content array
//* DEBUG: */ echo $currVariable['name']."=
".htmlentities($currVariable['value'])."\n"; $dummy[$currVariable['name']] = $currVariable['value']; - }// END - if - // Set the new variable (don't remove the second dollar !) + // Set the new variable (don't remove the second dollar!) $$validVar = $dummy; // Prepare all configuration variables - $config = $this->configVariables; + $config = null; + if (isset($this->varStack['config'])) { + $config = $this->varStack['config']; + } // END - if // Remove some variables unset($idx); @@ -1091,7 +1098,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { default: // Unknown type found // Construct message - $msg = sprintf("[%s->%s] Unknown/unsupported template type %s detected.", + $msg = sprintf("[%s->%s] Unknown/unsupported template type %s detected.", $this->__toString(), __FUNCTION__, $this->getTemplateType() @@ -1165,7 +1172,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return void */ public function transferToResponse (Responseable $responseInstance) { - // Get the content and set it in the response class + // Get the content and set it in response class $responseInstance->writeToBody($this->getCompiledData()); } @@ -1184,6 +1191,9 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Get version number and assign it $this->assignVariable('app_version' , $appInstance->getAppVersion()); + + // Assign extra application-depending data + $appInstance->assignExtraTemplateData($this); } /**