Пример #1
0
 public function delete()
 {
     $pk = $this->getPk();
     $this->beforeDelete();
     $this->getFinder()->delete($pk, $this->data[$pk]);
     $this->modified_data = $this->data;
     fx::trigger('after_delete', array('entity' => $this));
     $this->afterDelete();
 }
Пример #2
0
 public function trigger($event, $params = array())
 {
     if (is_string($event)) {
         $event = new \Floxim\Floxim\System\Event($event, $params);
     }
     $event['controller'] = $this;
     $sig = explode(":", $this->getSignature());
     $event['controller_name'] = $sig[0];
     $event['action_name'] = $sig[1];
     $event_res = fx::trigger($event);
     return $event_res;
 }
Пример #3
0
 public function rm($filename)
 {
     if (is_array($filename)) {
         foreach ($filename as $file) {
             $result = $this->rm($file);
         }
         return 0;
     }
     if (!$filename) {
         return 1;
     }
     $local_filename = fx::path()->abs($filename);
     if (!file_exists($local_filename)) {
         return 1;
     }
     $result = 0;
     if (is_dir($local_filename)) {
         $filename = rtrim($filename, '/') . '/';
         $local_filename = rtrim($local_filename, '/') . '/';
         $handle = opendir($local_filename);
         if ($handle) {
             $failed_files = array();
             // that could not be removed via the local filesystem
             while (($file = readdir($handle)) !== false) {
                 if ($file != "." && $file != "..") {
                     $local_file = $local_filename . $file;
                     if (is_dir($local_file)) {
                         $result |= $this->rm($filename . $file);
                     } else {
                         if (!@unlink($local_file)) {
                             // try to delete via the local filesystem
                             $failed_files[] = $file;
                         }
                     }
                 }
             }
             closedir($handle);
             if (!empty($failed_files)) {
                 $result |= $this->rmFtp($filename, $failed_files);
             }
         }
         if (is_writable($local_filename)) {
             $success = @rmdir($local_filename);
         }
         if (isset($success) && $success) {
             return 0;
         } else {
             $ch = curl_init();
             curl_setopt($ch, CURLOPT_URL, $this->base_url . '/' . dirname($filename) . '/');
             curl_setopt($ch, CURLOPT_POSTQUOTE, array("RMD " . basename($filename)));
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
             if (curl_exec($ch) !== false) {
                 curl_close($ch);
                 return $result;
             } else {
                 $info = curl_getinfo($ch);
                 curl_close($ch);
                 return $result | $info["http_code"];
             }
         }
     } else {
         if (is_writable($local_filename)) {
             $success = @unlink($local_filename);
         }
         if (isset($success) && $success) {
             fx::trigger('unlink', array('file' => $local_filename));
             return 0;
         }
         return $this->rmFtp(dirname($filename), array(basename($filename)));
     }
 }