[dev] [commit] r950 - phplib/models wwwbase/ajax wwwbase/elfinder-connector wwwbase/js

automailer at dexonline.ro automailer at dexonline.ro
Wed Aug 21 21:52:39 EEST 2013


Author: grigoroiualex
Date: Wed Aug 21 21:52:39 2013
New Revision: 950

Log:
Creates and deletes thumbnails for uploaded visual images. TODO: rename, copy-paste, copy-delete

Modified:
   phplib/models/Visual.php
   wwwbase/ajax/visualTag.php
   wwwbase/elfinder-connector/elFinderModToDB.class.php
   wwwbase/elfinder-connector/visual_connector.php
   wwwbase/js/visualTag.js

Modified: phplib/models/Visual.php
==============================================================================
--- phplib/models/Visual.php	Wed Aug 21 18:39:17 2013	(r949)
+++ phplib/models/Visual.php	Wed Aug 21 21:52:39 2013	(r950)
@@ -3,6 +3,8 @@
 class Visual extends BaseObject implements DatedObject {
   public static $_table = 'Visual';
   public static $parentDir = 'visual';
+  public static $thumbDir = '.thumb';
+  public static $cmd, $altPath;
 
   /** Retrieves the path relative to the visual folder */
   public static function getPath($givenPath) {
@@ -12,10 +14,64 @@
     return $matches[0];
   }
 
+  /** Creates the absolute path of the thumb directory based on the $path parameter */
+  static function thumbDirPath($path) {
+    preg_match('/[^\/]+$/', $path, $name);
+    $path = str_replace($name[0], '', $path);
+    
+    return util_getRootPath() . 'wwwbase/img/' . $path . self::$thumbDir;
+  }
+
+  /** Creates the absolute path of the thumbnail file based on the $path parameter */
+  static function thumbPath($path) {
+    preg_match('/[^\/]+$/', $path, $name);
+    $path = str_replace($name[0], '', $path);
+
+    return util_getRootPath() . 'wwwbase/img/' . $path . self::$thumbDir . '/' . $name[0];
+  }
+
+  /** Checks if the directory specified in $path is empty */
+  static function isDirEmpty($path) {
+    $files = scandir($path);
+    if(count($files) == 2) {
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  /** Extended by deleting removed image thumbnails */
   function delete() {
     VisualTag::deleteByImageId($this->id);    
+
+    $thumbPath = self::thumbPath($this->path);
+    $thumbDirPath = self::thumbDirPath($this->path);
+
+    if(file_exists($thumbPath)) {
+      unlink($thumbPath);
+    }
+
+    if(file_exists($thumbDirPath) && self::isDirEmpty($thumbDirPath)) {
+      rmdir($thumbDirPath);
+    }
     
     parent::delete();
   }
+
+  /** Extended by creating uploaded image thumbnail */
+  function save() {
+    $thumbDirPath = self::thumbDirPath($this->path);
+
+    if(!file_exists($thumbDirPath)) {
+      mkdir($thumbDirPath);
+    }
+
+    $thumbPath = self::thumbPath($this->path); 
+    $thumb = new Imagick(util_getRootPath() . 'wwwbase/img/' . $this->path);
+    $thumb->thumbnailImage(200, 200, true);
+    $thumb->writeImage( $thumbPath);
+
+    parent::save();
+  }
 }
 ?>

Modified: wwwbase/ajax/visualTag.php
==============================================================================
--- wwwbase/ajax/visualTag.php	Wed Aug 21 18:39:17 2013	(r949)
+++ wwwbase/ajax/visualTag.php	Wed Aug 21 21:52:39 2013	(r950)
@@ -9,7 +9,7 @@
 
 $resp = array('more' => 'false', 'results' => array());
 foreach($lexems as $lexem) {
-  $resp['results'][] = array('id' => $lexem->id, 'text' => (string)$lexem->formUtf8General);
+  $resp['results'][] = array('id' => $lexem->id, 'text' => (string)$lexem->formUtf8General, 'description' => (string)$lexem->description);
 }
 
 echo json_encode($resp);

Modified: wwwbase/elfinder-connector/elFinderModToDB.class.php
==============================================================================
--- wwwbase/elfinder-connector/elFinderModToDB.class.php	Wed Aug 21 18:39:17 2013	(r949)
+++ wwwbase/elfinder-connector/elFinderModToDB.class.php	Wed Aug 21 21:52:39 2013	(r950)
@@ -1,6 +1,8 @@
 <?php
 
-include_once '../../phplib/models/Visual.php';
+autoloadModelsClass('Visual');
+autoloadModelsClass('BaseObject');
+autoloadModelsClass('DatedObject');
 
 class elFinderModToDB extends Visual {
 
@@ -17,6 +19,7 @@
     if(!empty($result['added'])) {
       foreach($result['added'] as $file) {
         $path = Visual::getPath($elfinder->realpath($file['hash']));
+        Visual::$cmd = $cmd;
 
         $line = Model::factory('Visual')->create();
         $line->path = $path;
@@ -50,6 +53,7 @@
         $oldPath = Visual::getPath($result['removed'][0]['realpath']);
         $newPath = Visual::getPath($elfinder->realpath($result['added'][0]['hash']));
         $entries = Model::factory('Visual')->where_like('path', "{$oldPath}/%")->find_many();
+        Visual::$cmd = $cmd;
 
         if(!empty($entries)) {
           /** Directory was renamed **/
@@ -63,7 +67,6 @@
           $line = Visual::get_by_path($oldPath);
 
           if(!empty($line)) {
-            $line->path = $newPath;
             $line->save();
           }
         }

Modified: wwwbase/elfinder-connector/visual_connector.php
==============================================================================
--- wwwbase/elfinder-connector/visual_connector.php	Wed Aug 21 18:39:17 2013	(r949)
+++ wwwbase/elfinder-connector/visual_connector.php	Wed Aug 21 21:52:39 2013	(r950)
@@ -1,6 +1,6 @@
 <?php
 
-error_reporting(0); // Set E_ALL for debuging
+error_reporting(E_ALL); // Set E_ALL for debuging
 
 include_once __DIR__ . '/elFinderConnector.class.php';
 include_once __DIR__ . '/elFinder.class.php';
@@ -50,7 +50,7 @@
       'uploadAllow'   => array('image'), // mimetypes allowed to upload
       'disabled'      => array('resize', 'mkfile', 'duplicate'), // list of not allowed commands
       'imgLib'        => 'gd', // image manipulation library (imagick, mogrify, gd)
-      'tmbPath'       => '.tmb', // directory name for image thumbnails. Set to "" to avoid thumbnails generation
+      'tmbPath'       => '.elfTmb', // directory name for image thumbnails. Set to "" to avoid thumbnails generation
     )
   )
 );

Modified: wwwbase/js/visualTag.js
==============================================================================
--- wwwbase/js/visualTag.js	Wed Aug 21 18:39:17 2013	(r949)
+++ wwwbase/js/visualTag.js	Wed Aug 21 21:52:39 2013	(r950)
@@ -46,8 +46,6 @@
   $('#clrSel').click(function(e) {
     jcrop_api.release();
 
-    alert($('#lexem').select2('data').text);
-
     resetCoords();
   });
 
@@ -88,12 +86,14 @@
       data: function(term, page) { return {term: term}; }, 
       results: function(data, page) { return { results: data.results }; },
     },
-    formatResult: function(data) {
+    formatResult: select2Format,
+    /*function(data) {
       return data.text;
-    },
-    formatSelection: function(data) {
+    },*/
+    formatSelection: select2Format,
+    /*function(data) {
       return data.text;
-    },
+    },*/
     width: '200px',
 
   }).on('change', function(e) {
@@ -106,22 +106,26 @@
 });
 
 function validateTag() {
-  var lexem = document.getElementById('lexem').value;
-  var xImg = document.getElementById('xImg').value;
-  var yImg = document.getElementById('yImg').value;
-  var xTag = document.getElementById('xTag').value;
-  var yTag = document.getElementById('yTag').value;
+  var lexeme = $('#lexeme').val();
+  var xImg = $('#xImg').val();
+  var yImg = $('#yImg').val();
+  var xTag = $('#xTag').val();
+  var yTag = $('#yTag').val();
 
-  if(!lexem) {
+  if(!lexeme) {
     alert('Ai uitat să completezi câmpul Cuvânt');
     return false;
 
-  } else if(!xImg || !yImg) {
+  } else if(!xTag || !yTag) {
     alert('Ai uitat să completezi câmpurile Coordonatele centrului etichetei');
     return false;
 
-  } else if(!xTag || !yTag) {
+  } else if(!xImg || !yImg) {
     alert('Ai uitat să completezi câmpurile Coordonatele zonei etichetate');
     return false;
   }
 };
+
+function select2Format(lex) {
+  return lex.text + '  ' + lex.description;
+}


More information about the Dev mailing list