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(); }
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; }
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))); } }