Rewritten:
[core.git] / framework / main / classes / template / image / class_ImageTemplateEngine.php
index 3dbdb96d89426d926ff0fa6a6f5be67aab909f87..e04fd74749b73b9ad39c35dcfc072a3bfd07d09b 100644 (file)
@@ -4,12 +4,15 @@ namespace CoreFramework\Template\Engine;
 
 // Import framework stuff
 use CoreFramework\Factory\ObjectFactory;
+use CoreFramework\Filesystem\InvalidDirectoryException;
 use CoreFramework\Parser\Xml\XmlParser;
 use CoreFramework\Registry\Registry;
 use CoreFramework\Response\Responseable;
 use CoreFramework\Template\CompileableTemplate;
+use CoreFramework\Template\Engine\BaseTemplateEngine;
 
 // Import SPL stuff
+use \SplFileInfo;
 use \UnexpectedValueException;
 
 /**
@@ -84,7 +87,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         *
         * @return      $templateInstance               An instance of TemplateEngine
         * @throws      UnexpectedValueException                If the provided $templateBasePath is empty or no string
-        * @throws      BasePathIsNoDirectoryException  If $templateBasePath is no
+        * @throws      InvalidDirectoryException       If $templateBasePath is no
         *                                                                                      directory or not found
         * @throws      BasePathReadProtectedException  If $templateBasePath is
         *                                                                                      read-protected
@@ -97,7 +100,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                $applicationInstance = Registry::getRegistry()->getInstance('app');
 
                // Determine base path
-               $templateBasePath = $templateInstance->getConfigInstance()->getConfigEntry('application_base_path') . $applicationInstance->getRequestInstance()->getRequestElement('app') . '/';
+               $templateBasePath = $templateInstance->getConfigInstance()->getConfigEntry('application_base_path') . $applicationInstance->getAppShortName(). '/';
 
                // Is the base path valid?
                if (empty($templateBasePath)) {
@@ -108,7 +111,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                        throw new UnexpectedValueException(sprintf('[%s:%d] %s is not a string with a base path.', $templateInstance->__toString(), __LINE__, $templateBasePath), self::EXCEPTION_INVALID_STRING);
                } elseif (!is_dir($templateBasePath)) {
                        // Is not a path
-                       throw new BasePathIsNoDirectoryException(array($templateInstance, $templateBasePath), self::EXCEPTION_INVALID_PATH_NAME);
+                       throw new InvalidDirectoryException(array($templateInstance, $templateBasePath), self::EXCEPTION_INVALID_PATH_NAME);
                } elseif (!is_readable($templateBasePath)) {
                        // Is not readable
                        throw new BasePathReadProtectedException(array($templateInstance, $templateBasePath), self::EXCEPTION_READ_PROTECED_PATH);
@@ -122,7 +125,10 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                $templateInstance->setCodeTemplateExtension($templateInstance->getConfigInstance()->getConfigEntry('code_template_extension'));
 
                // Absolute output path for compiled templates
-               $templateInstance->setCompileOutputPath($templateInstance->getConfigInstance()->getConfigEntry('base_path') . $templateInstance->getConfigInstance()->getConfigEntry('compile_output_path'));
+               $templateInstance->setCompileOutputPath(sprintf('%s%s/',
+                       $templateBasePath,
+                       $templateInstance->getConfigInstance()->getConfigEntry('compile_output_path')
+               ));
 
                // Return the prepared instance
                return $templateInstance;
@@ -466,24 +472,24 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
        }
 
        /**
-        * Getter for image cache file (FQFN)
+        * Getter for image cache file instance
         *
-        * @return      $fqfn   Full-qualified file name of the image cache
+        * @return      $fileInstance   An instance of a SplFileInfo class
         */
-       public function getImageCacheFqfn () {
-               // Get the FQFN ready
-               $fqfn = sprintf('%s%s%s/%s.%s',
-                       $this->getConfigInstance()->getConfigEntry('base_path'),
+       public function getImageCacheFile () {
+               // Get the instance ready
+               $fileInstance = new SplFileInfo(sprintf('%s%s%s/%s.%s',
+                       $this->getConfigInstance()->getConfigEntry('framework_base_path'),
                        $this->getGenericBasePath(),
                        'images/_cache',
                        md5(
                                $this->getImageInstance()->getImageName() . ':' . $this->__toString() . ':' . $this->getImageInstance()->__toString()
                        ),
                        $this->getImageInstance()->getImageType()
-               );
+               ));
 
                // Return it
-               return $fqfn;
+               return $fileInstance;
        }
 
        /**