/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
+ function applyFilters($q, $au, $roo)
+ {
+ $tn = $this->tableName();
+
+ if(!empty($q['search']['filename'])){
+ $this->whereAdd("
+ $tn.filename LIKE '%{$this->escape($q['search']['filename'])}%'
+ ");
+ }
+
+
+ }
function checkPerm($lvl, $au)
{
$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);
}
}
+ 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');
*
*
*/
- 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();
+ $b = basename($fn);
if (file_exists($fn)) {
- unlink($fn);
+
+ if (file_exists($deldir . '/'. $b)) {
+ unlink($fn);
+ } else {
+ rename($fn, $deldir .'/'. $b);
+ }
+
+
}
// 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) {
- unlink($d. '/'. $fn);
+
+ if (file_exists($deldir . '/'. $fn)) {
+ unlink($d. '/'. $fn);
+ continue;
+ }
+ rename($d. '/'. $fn, $deldir .'/'. $fn);
+
}
}
}
$roo->jerr("File upload failed : error = ". (!empty($this->err) ? $this->err : ''));
}
- $roo->addEvent("ADD", $this, $this->toEventString());
+ $this->addEvent($ar, $roo);
$r = DB_DataObject::factory($this->tableName());
$r->id = $this->id;
}
+ function addEvent($ar, $roo)
+ {
+ $roo->addEvent("ADD", $this, $this->toEventString());
+ }
+
function toEventString()
{
$this->filesize = filesize($f);
+ if($this->mimetype == 'application/pdf'){
+ $this->no_of_pages = $this->getPdfPages($f);
+ }
+
$this->update($o);
return true;
}
+ function toBase64()
+ {
+ if(!preg_match('/^image\//', $this->mimetype)){
+ return false;
+ }
+
+ $file = $this->getStoreName();
+
+ if(!file_exists($file)){
+ return false;
+ }
+
+ $data = file_get_contents($file);
+
+ $base64 = 'data:' . $this->mimetype . ';base64,' . base64_encode($data);
+
+ return $base64;
+ }
+
+ function getPdfPages($file)
+ {
+ require_once 'System.php';
+
+ $page = 0;
+
+ $pdfinfo = System::which('pdfinfo');
+
+ if (!file_exists($file) || empty($pdfinfo)) {
+ return $page;
+ }
+
+ $cmd = "{$pdfinfo} {$file}";
+
+ $ret = `$cmd`;
+
+ $info = explode("\n", $ret);
+
+ foreach ($info as $i){
+
+ if(!preg_match('/^Pages:[\s]*([0-9]+)/', $i, $matches)){
+ continue;
+ }
+
+ $page = (empty($matches[1])) ? 0 : $matches[1];
+ }
+
+ return $page;
+ }
+
}