Image generator added, first CAPTCHA added with missing controller (partly work)
[shipsimu.git] / inc / classes / main / helper / images / class_ImageHelper.php
index 5490a408aa5283ecf94c10a3266c027a2e35a4bb..84081a11de710cad995fabc3d4c4fb984008b7f7 100644 (file)
@@ -27,6 +27,11 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
         */
        private $imageType = "png";
 
+       /**
+        * The image name
+        */
+       private $imageName = "";
+
        /**
         * Width of the image in pixel
         */
@@ -56,9 +61,14 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
        );
 
        /**
-        * Image message string
+        * All image strings
         */
-       private $imageString = "No message set!";
+       private $imageStrings = array();
+
+       /**
+        * Current string name
+        */
+       private $currString = "";
 
        /**
         * Protected constructor
@@ -105,7 +115,7 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
        }
 
        /**
-        * Getter for image type
+        * Getter for image name
         *
         * @return      $imageType      Type of the image
         */
@@ -113,6 +123,44 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
                return $this->imageType;
        }
 
+       /**
+        * Setter for base image
+        *
+        * @param       $baseImage      A base image template
+        * @return      void
+        */
+       public final function setBaseImage ($baseImage) {
+               $this->baseImage = (string) $baseImage;
+       }
+
+       /**
+        * Getter for base image
+        *
+        * @return      $baseImage      A base image template
+        */
+       public final function getBaseImage () {
+               return $this->baseImage;
+       }
+
+       /**
+        * Setter for image name
+        *
+        * @param       $imageName      Name of the image
+        * @return      void
+        */
+       public final function setImageName ($imageName) {
+               $this->imageName = (string) $imageName;
+       }
+
+       /**
+        * Getter for image name
+        *
+        * @return      $imageName      Name of the image
+        */
+       protected final function getImageName () {
+               return $this->imageName;
+       }
+
        /**
         * Setter for image width
         *
@@ -179,6 +227,24 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
                $this->foregroundColor['blue']  = (int) $blue;
        }
 
+       /**
+        * Adds an image string to the buffer by the given string name
+        *
+        * @param       $stringName             String name (identifier)
+        */
+       public function addTextLine ($stringName) {
+               // Create the image string
+               $this->imageStrings[$stringName] = array(
+                       'x'      => "",
+                       'y'      => "",
+                       'size'   => "",
+                       'string' => ""
+               );
+
+               // Set current string name
+               $this->currString = $stringName;
+       }
+
        /**
         * Setter for image message string
         *
@@ -186,7 +252,7 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
         * @return      void
         */
        public final function setImageString ($imageString) {
-               $this->imageString = (string) $imageString;
+               $this->imageStrings[$this->currString]['string'] = (string) $imageString;
        }
 
        /**
@@ -195,26 +261,56 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
         * @return      $imageString    A message to display in the image
         */
        public final function getImageString () {
-               return $this->imageString;
+               return $this->imageStrings[$this->currString]['string'];
        }
 
        /**
-        * Setter for base image
+        * Setter for X/Y coordinates for strings
         *
-        * @param       $baseImage      A base image template
+        * @param       $x      X coordinate
+        * @param       $y      Y coordinate
         * @return      void
         */
-       public final function setBaseImage ($baseImage) {
-               $this->baseImage = (string) $baseImage;
+       public final function setCoord ($x, $y) {
+               $this->imageStrings[$this->currString]['x'] = (int) $x;
+               $this->imageStrings[$this->currString]['y'] = (int) $y;
        }
 
        /**
-        * Getter for base image
+        * Getter for X coordinate
         *
-        * @return      $baseImage      A base image template
+        * @return      $x      X coordinate
         */
-       public final function getBaseImage () {
-               return $this->baseImage;
+       public final function getX () {
+               return $this->imageStrings[$this->currString]['x'];
+       }
+
+       /**
+        * Getter for Y coordinate
+        *
+        * @return      $y      Y coordinate
+        */
+       public final function getY () {
+               return $this->imageStrings[$this->currString]['y'];
+       }
+
+       /**
+        * Setter for font size
+        *
+        * @param       $fontSize       Font size for strings
+        * @return      void
+        */
+       public final function setFontSize ($fontSize) {
+               $this->imageStrings[$this->currString]['size'] = (int) $fontSize;
+       }
+
+       /**
+        * Getter for font size
+        *
+        * @return      $fontSize       Font size for strings
+        */
+       public final function getFontSize () {
+               return $this->imageStrings[$this->currString]['size'];
        }
 
        /**
@@ -230,6 +326,7 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
                $templateInstance->loadCodeTemplate($this->getBaseImage());
 
                // Assign all the image values with the template
+               $templateInstance->assignVariable("image_name"    , $this->getImageName());
                $templateInstance->assignVariable("image_type"    , $this->getImageType());
                $templateInstance->assignVariable("image_width"   , $this->getWidth());
                $templateInstance->assignVariable("image_height"  , $this->getHeight());
@@ -239,7 +336,21 @@ class ImageHelper extends BaseHelper implements HelpableTemplate {
                $templateInstance->assignVariable("image_fg_red"  , $this->foregroundColor['red']);
                $templateInstance->assignVariable("image_fg_green", $this->foregroundColor['green']);
                $templateInstance->assignVariable("image_fg_blue" , $this->foregroundColor['blue']);
-               $templateInstance->assignVariable("image_string"  , $this->getImageString());
+
+               // Add all strings
+               foreach ($this->imageStrings as $id=>$imageString) {
+                       // Set current string id
+                       $this->currString = $id;
+
+                       // Set variable group
+                       $templateInstance->setVariableGroup($id);
+
+                       // Add group variables
+                       $templateInstance->addGroupVariable("image_x"     , $this->getX());
+                       $templateInstance->addGroupVariable("image_y"     , $this->getY());
+                       $templateInstance->addGroupVariable("image_size"  , $this->getFontSize());
+                       $templateInstance->addGroupVariable("image_string", $this->getImageString());
+               } // END - foreach
 
                // Get the raw content
                $imageContent = $templateInstance->getRawTemplateData();