public function indexAction() { $this->disableRenderView(); Z_Fs::recursive_remove_directory(APPLICATION_PATH . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'session'); Z_Fs::create_folder(APPLICATION_PATH . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'session'); Z_FlashMessenger::addMessage('Сессия очищена'); }
public static function create_file($filename, $content = "", $rewrite = false, $rights = 0777) { global $m; $fileparts = explode(DIRECTORY_SEPARATOR, rtrim($filename, DIRECTORY_SEPARATOR)); $pathparts = $fileparts; unset($pathparts[count($pathparts) - 1]); $path = rtrim(implode(DIRECTORY_SEPARATOR, $pathparts), DIRECTORY_SEPARATOR); if (Z_Fs::create_folder($path)) { if (file_exists($filename) && !$rewrite) { return false; } else { file_put_contents($filename, $content); chmod($filename, $rights); } } else { return false; } /* $i=0; $fileparts_count = count($fileparts); foreach ($fileparts as $part) { $i++; if ($i<$fileparts_count) { if (file_exists($curdir.$part)) { } else { if (is_writable($curdir)) { mkdir($curdir.$part); chmod($curdir.$part,$rights); } else { return false; } } } $curdir .= $part.DIRECTORY_SEPARATOR; } $curdir = rtrim($curdir,DIRECTORY_SEPARATOR); if (file_exists($curdir) && !$rewrite) { return false; } else { file_put_contents($curdir,$content); chmod($curdir,$rights); } */ return true; }
public function addSuccess($param) { if ($param['resourceId'] && $param['model']) { $nameExploded = explode('_', $param['resourceId']); $nameExploded = array_map('ucfirst', $nameExploded); $controllerName = $nameExploded[count($nameExploded) - 1]; unset($nameExploded[count($nameExploded) - 1]); $ds = DIRECTORY_SEPARATOR; $path = APPLICATION_PATH . $ds . 'modules' . $ds . $this->getRequest()->getModuleName() . $ds . 'controllers' . (($pathAdd = implode($ds, $nameExploded)) ? $ds . $pathAdd : ''); $fileName = $controllerName . 'Controller.php'; $controllerName = ucfirst($this->getRequest()->getModuleName()) . '_' . (($filePrefix = implode('_', $nameExploded)) ? $filePrefix . '_' : '') . $controllerName . 'Controller'; $class_file = new Zend_CodeGenerator_Php_Class(array('name' => $controllerName, 'extendedclass' => 'Z_Admin_Controller_Datacontrol_Abstract')); Z_Fs::create_file($path . $ds . $fileName, "<?\n" . $class_file->generate()); } }
public function indexAction() { $this->_helper->viewRenderer->setNoRender(true); Zend_Layout::getMvcInstance()->disableLayout(); $data = array('error' => '1', 'errorcode' => '1', 'preview' => '', 'path' => '', 'filename' => '', 'type' => ''); if (Z_Auth::getInstance()->getUser()->getLogin() == 'guest') { $this->_forward('index', 'index'); return; } if (empty($_FILES['Filedata']['name']) || $_FILES['Filedata']['size'] <= 0) { $data['errorcode'] = '2'; echo Zend_Json::encode($data); return; } $options = array('jpg', 'jpeg', 'png', 'gif'); $validator = new Z_Validate_File_Extension($options); if (!$validator->isValid($_FILES['Filedata']['name'])) { $data['errorcode'] = '3'; echo Zend_Json::encode($data); return; } $save_path = SITE_PATH . DIRECTORY_SEPARATOR . 'upload' . DIRECTORY_SEPARATOR . 'tmpajdoqODU1'; Z_Fs::create_folder($save_path); $filename = Z_Transliterator::translateCyr($_FILES['Filedata']['name']); $aim = $save_path . DIRECTORY_SEPARATOR . $filename; if (!@move_uploaded_file($_FILES['Filedata']['tmp_name'], $aim)) { $data['errorcode'] = '4'; echo Zend_Json::encode($data); return; } // $storage = new Z_File_Storage(); //$debuginfo = $_FILES['Filedata']['tmp_name'] . '---' . $_FILES['Filedata']['name']; //$debuginfo = $_FILES['Filedata']['tmp_name'] . '---' . $_FILES['Filedata']['name']; // $pf = $storage->create($_FILES['Filedata']['tmp_name'], array( // 'realname' => $_FILES['Filedata']['name'])); $prevurl = $this->view->z_Preview($aim, array('w' => 200, 'h' => 170)); $fileurl = '/upload/tmpajdoqODU1/' . $filename; $data = array('error' => '0', 'errorcode' => '0', 'preview' => $prevurl, 'path' => $fileurl, 'filename' => $filename, 'type' => 'pic'); echo Zend_Json::encode($data); // foreach($_FILES as $key=>$file) // { // $new_name = $file['tmp_name'].'_new'; // move_uploaded_file($file['tmp_name'],$new_name); // $_FILES[$key]['tmp_name'] = $new_name; // } // $nameSpace = new Zend_Session_Namespace('Z-File-Uploader'); // $nameSpace->files = $_FILES; }
public function listAction() { $path = APPLICATION_PATH . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'backups' . DIRECTORY_SEPARATOR; if (file_exists($path)) { $filesIn = Z_Fs::rscandir($path); $result = null; foreach ($filesIn as $fileIn) { $pi = pathinfo($fileIn); //backup_" . date("m-d-Y_H-i") . ".tar") if (isset($pi['extension']) && $pi['extension'] == 'tar' && isset($pi['basename'])) { $pattern = "#backup\\_(\\d+\\-\\d+\\-\\d{2,4}\\_\\d+\\-\\d+)#"; $matches = array(); preg_match($pattern, $pi['basename'], $matches); if (isset($matches[1])) { $name = base64_encode($pi['basename']); $date = new Zend_Date($matches[1], 'MM-dd-yyyy_h-m'); $result[] = array('name' => $name, 'date' => $date->get(Zend_Date::DATETIME_MEDIUM), 'size' => Z_Fs::getFormattedFileSize($fileIn)); } } } $this->view->backups = $result; } }
/** * Генерирует класс модели * @param string $className * Название класса (без префикса) * @param string $tableName * Название таблицы в БД * @param array $params * Параметры для переопределения настроек по умолчанию * @return string */ public static function generate($className, $tableName = NULL, $params = array()) { if (strpos($className, 'z_') === 0 && Z_Auth::getInstance()->getUser()->getRole() == 'root') { $path_prefix = APPLICATION_PATH . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . 'Z' . DIRECTORY_SEPARATOR . 'Model'; self::$_classPrefix = isset($params['prefixz']) ? $params['prefixz'] : self::$_classPrefixZ; } else { $path_prefix = APPLICATION_PATH . DIRECTORY_SEPARATOR . 'models'; self::$_classPrefix = isset($params['prefix']) ? $params['prefix'] : self::$_classPrefix; } if ($tableName == NULL) { $tableName = strtolower($className); } $className = explode('_', $className); $className = array_map('ucfirst', $className); $path = $className; unset($path[count($path) - 1]); $path = implode(DIRECTORY_SEPARATOR, $path); $filename = $className[count($className) - 1] . '.php'; $className = implode('_', $className); $filepath = $path_prefix . DIRECTORY_SEPARATOR . $path; $generator = new Zend_CodeGenerator_Php_Class(); $generator->setName(self::$_classPrefix . $className)->setExtendedClass(self::$_extendedClass)->setProperty(array('name' => '_name', 'visibility' => 'protected', 'defaultValue' => $tableName)); Z_Fs::create_file($filepath . DIRECTORY_SEPARATOR . $filename, "<?\n" . $generator->generate()); }
public function multiloadAction() { $this->setViewPathes(); $this->view->recid = $this->getResourceInfo()->id; // $this->view->debugparams = $this->_getAllParams(); $this->view->formaction = $this->view->url(array('id' => $this->_getParam('id'), 'action' => 'multiadd')); $modelForms = new Z_Model_Resourceforms(); $elements = $modelForms->fetchAll(array('resourceid=?' => $this->z_resourceInfo->id, 'type!=?' => 'MultiImage', 'required=?' => '1')); //$this->view->debugparams=$elements->toArray(); //проверка нужна чтобы убедиться что на форме где есть мультизагрузка картинок нет обязательных элементов //если они есть то функция загрузки голых картинок в ленту не имеет смысла, так как обязательные поля будут пустыми //поэтому мы скрываем эту кнопку и отфутболиваем действие загрузки голых картинок (не реализовано) if (count($elements)) { $this->view->hasReqired = true; } else { $this->view->hasReqired = false; } //1. выдача кнопки для загрузки //2. выдача ленты с формами или отработка полученных данных с этих форм или голых картинок, //при наличии обязательных параметров формы - функция загрузки голых картинок недоступна //очистка директории не работает для голой загрузки картинок $temp_path = SITE_PATH . DIRECTORY_SEPARATOR . 'upload' . DIRECTORY_SEPARATOR . 'tmpajdoqODU1'; //папка куда кидаются все загруженные мультизагрузчиком файлы Z_Fs::recursive_remove_directory($temp_path); // $this->view->form = $form; }
private function create_file($filename, $content = "", $rewrite = false, $rights = 0777) { global $m; try { $fileparts = explode(DIRECTORY_SEPARATOR, rtrim($filename, DIRECTORY_SEPARATOR)); $pathparts = $fileparts; unset($pathparts[count($pathparts) - 1]); $path = rtrim(implode(DIRECTORY_SEPARATOR, $pathparts), DIRECTORY_SEPARATOR); if (Z_Fs::create_folder($path)) { if (file_exists($filename) && !$rewrite) { return false; } else { file_put_contents($filename, $content); @chmod($filename, $rights); } } else { return false; } return true; } catch (Exception $exc) { return false; } }
public function init() { // create backup directory if not exists $errors = array(); $this->setFileAmount(0); $backup_dir = $this->getBackupDir(); // cleanup old backups if (is_file($backup_dir . "/backup-dump.sql")) { unlink($backup_dir . "/backup-dump.sql"); } // get steps $steps = array(); // get available tables $model = new Z_Model_Config(); $db = $model->getAdapter(); $tables = $db->fetchAll("SHOW FULL TABLES"); $steps[] = array("mysql-tables", null); // tables foreach ($tables as $table) { $name = current($table); $type = next($table); if ($type != "VIEW") { $steps[] = array("mysql", array("name" => $name, "type" => $type)); } } // views foreach ($tables as $table) { reset($table); $name = current($table); $type = next($table); if ($type == "VIEW") { $steps[] = array("mysql", array("name" => $name, "type" => $type)); } } $steps[] = array("mysql-complete", null); // check files $currentFileCount = 0; $currentFileSize = 0; $currentStepFiles = array(); // check permissions $filter_dir_end_name = array('session', 'captcha', 'cache', 'backups'); $filesIn = Z_Fs::rscandir($this->PR_ROOT, $filter_dir_end_name); clearstatcache(); $filesToBackup = null; foreach ($filesIn as $fileIn) { if (!is_readable($fileIn)) { $errors[] = $fileIn . " is not readable."; } if ($currentFileCount > 300 || $currentFileSize > 20000000) { $currentFileCount = 0; $currentFileSize = 0; if (!empty($currentStepFiles)) { $filesToBackup[] = $currentStepFiles; } $currentStepFiles = array(); } if (file_exists($fileIn)) { $currentFileSize += filesize($fileIn); $currentFileCount++; $currentStepFiles[] = $fileIn; } } if (!empty($currentStepFiles)) { $filesToBackup[] = $currentStepFiles; } if (count($filesToBackup)) { $this->setFilesToBackup($filesToBackup); $fileSteps = count($filesToBackup); for ($i = 0; $i < $fileSteps; $i++) { $steps[] = array("files", array("step" => $i)); } $steps[] = array("complete", null); } if (!empty($errors)) { $steps = null; } return array("steps" => $steps, "errors" => $errors); }