/** * Delete module functionality * * @return afResponse * @author Sergey Startsev */ protected function processDelete() { $type = $this->getParameter('type'); $place = $this->getParameter('place'); $name = $this->getParameter('name'); $permissions = new Permissions(); $are_writable = $permissions->areWritable(array(sfConfig::get('sf_apps_dir') . '/' . $place . '/modules/', sfConfig::get('sf_apps_dir') . '/' . $place . '/modules/' . $name)); if ($are_writable !== true) { return $are_writable; } $response = afResponseHelper::create(); $console = afStudioConsole::getInstance(); if (!$type || !$place || !$name) { return $response->success(false)->message("Can't delete module <b>{$name}</b> inside <b>{$place}</b> {$type}!"); } $moduleDir = afStudioUtil::getRootDir() . "/{$type}s/{$place}/modules/{$name}/"; afsFileSystem::create()->remove($moduleDir); if (file_exists($moduleDir)) { return $response->success(false)->message("Can't delete module <b>{$name}</b> inside <b>{$place}</b> {$type}!"); } return $response->success(true)->message("Deleted module <b>{$name}</b> inside <b>{$place}</b> {$type}!")->console($console->execute('sf cc')); }
/** * Delete xml functionality * * @return afResponse * @author Sergey Startsev */ protected function processDelete() { // init params $name = pathinfo($this->getParameter('name'), PATHINFO_FILENAME); $module = $this->getParameter('module'); $model = $this->getParameter('model'); $place = $this->getParameter('place'); $place_type = $this->getParameter('type', 'app'); if ($place_type == 'app') { $dir = 'apps'; } elseif ($place_type == 'plugin') { $dir = 'plugins'; } $permissions = new Permissions(); $are_writable = $permissions->areWritable(array(sfConfig::get('sf_root_dir') . '/' . $dir . '/' . $place . '/modules/', sfConfig::get('sf_root_dir') . '/' . $dir . '/' . $place . '/modules/' . $module, sfConfig::get('sf_root_dir') . '/' . $dir . '/' . $place . '/modules/' . $module . '/actions/', sfConfig::get('sf_root_dir') . '/' . $dir . '/' . $place . '/modules/' . $module . '/templates/')); if ($are_writable !== true) { return $are_writable; } // retrieve widget $widget = afsWidgetModelHelper::retrieve($name, $module, $place, $place_type, $model); if (!$widget->isNew()) { $response = $widget->delete(); if ($response->getParameter(afResponseSuccessDecorator::IDENTIFICATOR)) { $response->console(afStudioConsole::getInstance()->execute('sf cc')); } return $response; } return afResponseHelper::create()->success(false)->message("Widget <b>{$name}</b> doesn't exists"); }
/** * Add plugin functionality * * @return afResponse * @author Sergey Startsev */ protected function processAdd() { $name = $this->getParameter('name'); $root = sfConfig::get('sf_root_dir'); $console = afStudioConsole::getInstance(); $response = afResponseHelper::create(); $filesystem = afsFileSystem::create(); $permissions = new Permissions(); $are_writable = $permissions->areWritable(array($root . "/plugins/")); if ($are_writable !== true) { return $are_writable; } $dir = "{$root}/plugins/{$name}"; if (empty($name)) { return $response->success(false)->message('Please enter plugin name'); } if (substr($name, -6) != 'Plugin') { return $response->success(false)->message("Plugin '{$name}' should Contains 'Plugin' in the end"); } if (file_exists($dir)) { return $response->success(false)->message("Plugin '{$name}' already exists"); } $dirs = array($dir, "{$dir}/config", "{$dir}/modules"); foreach ($dirs as $dir) { $filesystem->mkdirs($dir); } if (file_exists($dir)) { // create config file with auto enable all modules in current plugin $created = afStudioUtil::writeFile("{$dir}/config/config.php", afStudioPluginCommandTemplate::config($name)); $console_result = $console->execute(array('afs fix-perms', 'sf cc')); return $response->success(true)->message("Plugin '{$name}' successfully created")->console($console_result); } return $response->success(false)->message("Some problems to create dirs, please check permissions, and run fix-perms task"); }
/** * Checking if model is writable * * @return true or afResponseHelper * @author Michal Piotrowski */ public function isModelWritable() { $permissions = new Permissions(); $are_writable = $permissions->areWritable(array(sfConfig::get('sf_config_dir') . '/schema.yml', sfConfig::get('sf_lib_dir') . '/filter', sfConfig::get('sf_lib_dir') . '/filter/base', sfConfig::get('sf_lib_dir') . '/form', sfConfig::get('sf_lib_dir') . '/form/base', sfConfig::get('sf_lib_dir') . '/model', sfConfig::get('sf_lib_dir') . '/model/map', sfConfig::get('sf_lib_dir') . '/model/migration', sfConfig::get('sf_lib_dir') . '/model/om'), true); return $are_writable; }
/** * Configuring project * * @param sfWebRequest $request * @return string */ public function executeConfigureProject(sfWebRequest $request) { $permissions = new Permissions(); $are_writable = $permissions->areWritable(array(sfConfig::get('sf_root_dir') . '/config/databases.yml', sfConfig::get('sf_root_dir') . '/config/project.yml')); if ($are_writable !== true) { echo $are_writable; die; } $pcm = new ProjectConfigurationManager($request); return $this->renderText($pcm->build()); }