[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