projects
/
Pman.Core
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sync
[Pman.Core]
/
DataObjects
/
Images.php
diff --git
a/DataObjects/Images.php
b/DataObjects/Images.php
index
dbee94a
..
15a9101
100644
(file)
--- a/
DataObjects/Images.php
+++ b/
DataObjects/Images.php
@@
-118,9
+118,10
@@
class Pman_Core_DataObjects_Images extends DB_DataObject
$this->mimetype = $y->fromFilename($filename);
}
$this->mimetype = $y->fromFilename($filename);
}
- $this->mimetype= strtolower($this->mimetype);
+ $this->mimetype
= strtolower($this->mimetype);
- if (array_shift(explode('/', $this->mimetype)) == 'image') {
+ $mta = explode('/', $this->mimetype);
+ if (array_shift($mta) == 'image') {
$imgs = @getimagesize($file);
$imgs = @getimagesize($file);
@@
-131,6
+132,10
@@
class Pman_Core_DataObjects_Images extends DB_DataObject
}
}
}
}
+ if($this->mimetype == 'application/pdf'){
+ $this->no_of_pages = $this->getPdfPages($file);
+ }
+
$this->filesize = filesize($file);
$this->created = date('Y-m-d H:i:s');
$this->filesize = filesize($file);
$this->created = date('Y-m-d H:i:s');
@@
-192,21
+197,42
@@
class Pman_Core_DataObjects_Images extends DB_DataObject
*
*
*/
*
*
*/
- function beforeDelete()
+ function beforeDelete(
$dependants_array, $roo
)
{
{
+
+ $opts = HTML_FlexyFramework::get()->Pman;
+ $deldir = $opts['storedir']. '/_deleted_images_';
+ if (!file_exists( $deldir )) {
+ mkdir($deldir, 0755);
+ }
+
$fn = $this->getStoreName();
$fn = $this->getStoreName();
+ $b = basename($fn);
if (file_exists($fn)) {
if (file_exists($fn)) {
- unlink($fn);
+
+ if (file_exists($deldir . '/'. $b)) {
+ unlink($fn);
+ } else {
+ rename($fn, $deldir .'/'. $b);
+ }
+
+
}
// delete thumbs..
}
// delete thumbs..
- $b = basename($fn);
+
$d = dirname($fn);
if (file_exists($d)) {
$dh = opendir($d);
while (false !== ($fn = readdir($dh))) {
if (substr($fn, 0, strlen($b)) == $b) {
$d = dirname($fn);
if (file_exists($d)) {
$dh = opendir($d);
while (false !== ($fn = readdir($dh))) {
if (substr($fn, 0, strlen($b)) == $b) {
- unlink($d. '/'. $fn);
+
+ if (file_exists($deldir . '/'. $fn)) {
+ unlink($d. '/'. $fn);
+ continue;
+ }
+ rename($d. '/'. $fn, $deldir .'/'. $fn);
+
}
}
}
}
}
}
@@
-765,6
+791,10
@@
class Pman_Core_DataObjects_Images extends DB_DataObject
$this->filesize = filesize($f);
$this->filesize = filesize($f);
+ if($this->mimetype == 'application/pdf'){
+ $this->no_of_pages = $this->getPdfPages($f);
+ }
+
$this->update($o);
return true;
$this->update($o);
return true;
@@
-790,28
+820,34
@@
class Pman_Core_DataObjects_Images extends DB_DataObject
return $base64;
}
return $base64;
}
- function get
NumberOfPages(
)
+ function get
PdfPages($file
)
{
{
- $ret = false;
+ require_once 'System.php';
+
+ $page = 0;
+
+ $pdfinfo = System::which('pdfinfo');
+
+ if (!file_exists($file) || empty($pdfinfo)) {
+ return $page;
+ }
- switch ($this->mimetype) {
+ $cmd = "{$pdfinfo} {$file}";
+
+ $ret = `$cmd`;
+
+ $info = explode("\n", $ret);
+
+ foreach ($info as $i){
+
+ if(!preg_match('/^Pages:[\s]*([0-9]+)/', $i, $matches)){
+ continue;
+ }
- case 'application/pdf' :
-
- $file = $this->getStoreName();
-
- if(!file_exists($file)){
- return false;
- }
-
-
-
- break;
- default :
- break;
+ $page = (empty($matches[1])) ? 0 : $matches[1];
}
}
- return $
ret
;
+ return $
page
;
}
}
}
}