<div dir="ltr">„cut-paste” în loc de „cut-delete” în comment. Greșeala mea. </div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 21, 2013 at 9:52 PM, <span dir="ltr"><<a href="mailto:automailer@dexonline.ro" target="_blank">automailer@dexonline.ro</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: grigoroiualex<br>
Date: Wed Aug 21 21:52:39 2013<br>
New Revision: 950<br>
<br>
Log:<br>
Creates and deletes thumbnails for uploaded visual images. TODO: rename, copy-paste, copy-delete<br>
<br>
Modified:<br>
phplib/models/Visual.php<br>
wwwbase/ajax/visualTag.php<br>
wwwbase/elfinder-connector/elFinderModToDB.class.php<br>
wwwbase/elfinder-connector/visual_connector.php<br>
wwwbase/js/visualTag.js<br>
<br>
Modified: phplib/models/Visual.php<br>
==============================================================================<br>
--- phplib/models/Visual.php Wed Aug 21 18:39:17 2013 (r949)<br>
+++ phplib/models/Visual.php Wed Aug 21 21:52:39 2013 (r950)<br>
@@ -3,6 +3,8 @@<br>
class Visual extends BaseObject implements DatedObject {<br>
public static $_table = 'Visual';<br>
public static $parentDir = 'visual';<br>
+ public static $thumbDir = '.thumb';<br>
+ public static $cmd, $altPath;<br>
<br>
/** Retrieves the path relative to the visual folder */<br>
public static function getPath($givenPath) {<br>
@@ -12,10 +14,64 @@<br>
return $matches[0];<br>
}<br>
<br>
+ /** Creates the absolute path of the thumb directory based on the $path parameter */<br>
+ static function thumbDirPath($path) {<br>
+ preg_match('/[^\/]+$/', $path, $name);<br>
+ $path = str_replace($name[0], '', $path);<br>
+<br>
+ return util_getRootPath() . 'wwwbase/img/' . $path . self::$thumbDir;<br>
+ }<br>
+<br>
+ /** Creates the absolute path of the thumbnail file based on the $path parameter */<br>
+ static function thumbPath($path) {<br>
+ preg_match('/[^\/]+$/', $path, $name);<br>
+ $path = str_replace($name[0], '', $path);<br>
+<br>
+ return util_getRootPath() . 'wwwbase/img/' . $path . self::$thumbDir . '/' . $name[0];<br>
+ }<br>
+<br>
+ /** Checks if the directory specified in $path is empty */<br>
+ static function isDirEmpty($path) {<br>
+ $files = scandir($path);<br>
+ if(count($files) == 2) {<br>
+ return true;<br>
+ } else {<br>
+ return false;<br>
+ }<br>
+ }<br>
+<br>
+ /** Extended by deleting removed image thumbnails */<br>
function delete() {<br>
VisualTag::deleteByImageId($this->id);<br>
+<br>
+ $thumbPath = self::thumbPath($this->path);<br>
+ $thumbDirPath = self::thumbDirPath($this->path);<br>
+<br>
+ if(file_exists($thumbPath)) {<br>
+ unlink($thumbPath);<br>
+ }<br>
+<br>
+ if(file_exists($thumbDirPath) && self::isDirEmpty($thumbDirPath)) {<br>
+ rmdir($thumbDirPath);<br>
+ }<br>
<br>
parent::delete();<br>
}<br>
+<br>
+ /** Extended by creating uploaded image thumbnail */<br>
+ function save() {<br>
+ $thumbDirPath = self::thumbDirPath($this->path);<br>
+<br>
+ if(!file_exists($thumbDirPath)) {<br>
+ mkdir($thumbDirPath);<br>
+ }<br>
+<br>
+ $thumbPath = self::thumbPath($this->path);<br>
+ $thumb = new Imagick(util_getRootPath() . 'wwwbase/img/' . $this->path);<br>
+ $thumb->thumbnailImage(200, 200, true);<br>
+ $thumb->writeImage( $thumbPath);<br>
+<br>
+ parent::save();<br>
+ }<br>
}<br>
?><br>
<br>
Modified: wwwbase/ajax/visualTag.php<br>
==============================================================================<br>
--- wwwbase/ajax/visualTag.php Wed Aug 21 18:39:17 2013 (r949)<br>
+++ wwwbase/ajax/visualTag.php Wed Aug 21 21:52:39 2013 (r950)<br>
@@ -9,7 +9,7 @@<br>
<br>
$resp = array('more' => 'false', 'results' => array());<br>
foreach($lexems as $lexem) {<br>
- $resp['results'][] = array('id' => $lexem->id, 'text' => (string)$lexem->formUtf8General);<br>
+ $resp['results'][] = array('id' => $lexem->id, 'text' => (string)$lexem->formUtf8General, 'description' => (string)$lexem->description);<br>
}<br>
<br>
echo json_encode($resp);<br>
<br>
Modified: wwwbase/elfinder-connector/elFinderModToDB.class.php<br>
==============================================================================<br>
--- wwwbase/elfinder-connector/elFinderModToDB.class.php Wed Aug 21 18:39:17 2013 (r949)<br>
+++ wwwbase/elfinder-connector/elFinderModToDB.class.php Wed Aug 21 21:52:39 2013 (r950)<br>
@@ -1,6 +1,8 @@<br>
<?php<br>
<br>
-include_once '../../phplib/models/Visual.php';<br>
+autoloadModelsClass('Visual');<br>
+autoloadModelsClass('BaseObject');<br>
+autoloadModelsClass('DatedObject');<br>
<br>
class elFinderModToDB extends Visual {<br>
<br>
@@ -17,6 +19,7 @@<br>
if(!empty($result['added'])) {<br>
foreach($result['added'] as $file) {<br>
$path = Visual::getPath($elfinder->realpath($file['hash']));<br>
+ Visual::$cmd = $cmd;<br>
<br>
$line = Model::factory('Visual')->create();<br>
$line->path = $path;<br>
@@ -50,6 +53,7 @@<br>
$oldPath = Visual::getPath($result['removed'][0]['realpath']);<br>
$newPath = Visual::getPath($elfinder->realpath($result['added'][0]['hash']));<br>
$entries = Model::factory('Visual')->where_like('path', "{$oldPath}/%")->find_many();<br>
+ Visual::$cmd = $cmd;<br>
<br>
if(!empty($entries)) {<br>
/** Directory was renamed **/<br>
@@ -63,7 +67,6 @@<br>
$line = Visual::get_by_path($oldPath);<br>
<br>
if(!empty($line)) {<br>
- $line->path = $newPath;<br>
$line->save();<br>
}<br>
}<br>
<br>
Modified: wwwbase/elfinder-connector/visual_connector.php<br>
==============================================================================<br>
--- wwwbase/elfinder-connector/visual_connector.php Wed Aug 21 18:39:17 2013 (r949)<br>
+++ wwwbase/elfinder-connector/visual_connector.php Wed Aug 21 21:52:39 2013 (r950)<br>
@@ -1,6 +1,6 @@<br>
<?php<br>
<br>
-error_reporting(0); // Set E_ALL for debuging<br>
+error_reporting(E_ALL); // Set E_ALL for debuging<br>
<br>
include_once __DIR__ . '/elFinderConnector.class.php';<br>
include_once __DIR__ . '/elFinder.class.php';<br>
@@ -50,7 +50,7 @@<br>
'uploadAllow' => array('image'), // mimetypes allowed to upload<br>
'disabled' => array('resize', 'mkfile', 'duplicate'), // list of not allowed commands<br>
'imgLib' => 'gd', // image manipulation library (imagick, mogrify, gd)<br>
- 'tmbPath' => '.tmb', // directory name for image thumbnails. Set to "" to avoid thumbnails generation<br>
+ 'tmbPath' => '.elfTmb', // directory name for image thumbnails. Set to "" to avoid thumbnails generation<br>
)<br>
)<br>
);<br>
<br>
Modified: wwwbase/js/visualTag.js<br>
==============================================================================<br>
--- wwwbase/js/visualTag.js Wed Aug 21 18:39:17 2013 (r949)<br>
+++ wwwbase/js/visualTag.js Wed Aug 21 21:52:39 2013 (r950)<br>
@@ -46,8 +46,6 @@<br>
$('#clrSel').click(function(e) {<br>
jcrop_api.release();<br>
<br>
- alert($('#lexem').select2('data').text);<br>
-<br>
resetCoords();<br>
});<br>
<br>
@@ -88,12 +86,14 @@<br>
data: function(term, page) { return {term: term}; },<br>
results: function(data, page) { return { results: data.results }; },<br>
},<br>
- formatResult: function(data) {<br>
+ formatResult: select2Format,<br>
+ /*function(data) {<br>
return data.text;<br>
- },<br>
- formatSelection: function(data) {<br>
+ },*/<br>
+ formatSelection: select2Format,<br>
+ /*function(data) {<br>
return data.text;<br>
- },<br>
+ },*/<br>
width: '200px',<br>
<br>
}).on('change', function(e) {<br>
@@ -106,22 +106,26 @@<br>
});<br>
<br>
function validateTag() {<br>
- var lexem = document.getElementById('lexem').value;<br>
- var xImg = document.getElementById('xImg').value;<br>
- var yImg = document.getElementById('yImg').value;<br>
- var xTag = document.getElementById('xTag').value;<br>
- var yTag = document.getElementById('yTag').value;<br>
+ var lexeme = $('#lexeme').val();<br>
+ var xImg = $('#xImg').val();<br>
+ var yImg = $('#yImg').val();<br>
+ var xTag = $('#xTag').val();<br>
+ var yTag = $('#yTag').val();<br>
<br>
- if(!lexem) {<br>
+ if(!lexeme) {<br>
alert('Ai uitat să completezi câmpul Cuvânt');<br>
return false;<br>
<br>
- } else if(!xImg || !yImg) {<br>
+ } else if(!xTag || !yTag) {<br>
alert('Ai uitat să completezi câmpurile Coordonatele centrului etichetei');<br>
return false;<br>
<br>
- } else if(!xTag || !yTag) {<br>
+ } else if(!xImg || !yImg) {<br>
alert('Ai uitat să completezi câmpurile Coordonatele zonei etichetate');<br>
return false;<br>
}<br>
};<br>
+<br>
+function select2Format(lex) {<br>
+ return lex.text + ' ' + lex.description;<br>
+}<br>
_______________________________________________<br>
Dev mailing list<br>
<a href="mailto:Dev@dexonline.ro">Dev@dexonline.ro</a><br>
<a href="http://list.dexonline.ro/listinfo/dev" target="_blank">http://list.dexonline.ro/listinfo/dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div><span style="font-family:georgia,serif">Toate cele bune,</span><br></div><div><font face="georgia, serif">Grigoroiu Marian Alexandru</font></div>
</div>
</div>