本文整理汇总了PHP中waFiles::move方法的典型用法代码示例。如果您正苦于以下问题:PHP waFiles::move方法的具体用法?PHP waFiles::move怎么用?PHP waFiles::move使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类waFiles
的用法示例。
在下文中一共展示了waFiles::move方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
public function execute()
{
$id = waRequest::post('id', null, waRequest::TYPE_INT);
if (!$id) {
throw new waException("Can't rotate photo");
}
$direction = waRequest::post('direction', 'left', waRequest::TYPE_STRING_TRIM);
if (isset($this->derection_angles[$direction])) {
$photo_model = new photosPhotoModel();
$photo_rights_model = new photosPhotoRightsModel();
$photo = $photo_model->getById($id);
if (!$photo_rights_model->checkRights($photo, true)) {
throw new waException(_w("You don't have sufficient access rights"));
}
$photo_path = photosPhoto::getPhotoPath($photo);
$paths = array();
try {
$image = new photosImage($photo_path);
$result_photo_path = preg_replace('/(\\.[^\\.]+)$/', '.result$1', $photo_path);
$backup_photo_path = preg_replace('/(\\.[^\\.]+)$/', '.backup$1', $photo_path);
$paths[] = $result_photo_path;
$result = $image->rotate($this->derection_angles[$direction])->save($result_photo_path);
if ($result) {
$count = 0;
while (!file_exists($result_photo_path) && ++$count < 5) {
sleep(1);
}
if (!file_exists($result_photo_path)) {
throw new waException("Error while rotate. I/O error");
}
$paths[] = $backup_photo_path;
if (waFiles::move($photo_path, $backup_photo_path)) {
if (!waFiles::move($result_photo_path, $photo_path)) {
if (!waFiles::move($backup_photo_path, $photo_path)) {
throw new waException("Error while rotate. Original file corupted but backuped");
}
throw new waException("Error while rotate. Operation canceled");
} else {
$edit_datetime = date('Y-m-d H:i:s');
$data = array('edit_datetime' => $edit_datetime, 'width' => $photo['height'], 'height' => $photo['width']);
$photo_model->updateById($id, $data);
$photo = array_merge($photo, $data);
$thumb_dir = photosPhoto::getPhotoThumbDir($photo);
$back_thumb_dir = preg_replace('@(/$|$)@', '.back$1', $thumb_dir, 1);
$paths[] = $back_thumb_dir;
waFiles::delete($back_thumb_dir);
if (!(waFiles::move($thumb_dir, $back_thumb_dir) || waFiles::delete($back_thumb_dir)) && !waFiles::delete($thumb_dir)) {
throw new waException("Error while rebuild thumbnails");
}
}
$photo['thumb'] = photosPhoto::getThumbInfo($photo, photosPhoto::getThumbPhotoSize());
$photo['thumb_big'] = photosPhoto::getThumbInfo($photo, photosPhoto::getBigPhotoSize());
$photo['thumb_middle'] = photosPhoto::getThumbInfo($photo, photosPhoto::getMiddlePhotoSize());
$original_photo_path = photosPhoto::getOriginalPhotoPath($photo);
if (wa('photos')->getConfig()->getOption('save_original') && file_exists($original_photo_path)) {
$photo['original_exists'] = true;
} else {
$photo['original_exists'] = false;
}
$this->response['photo'] = $photo;
$this->log('photo_edit', 1);
$obligatory_sizes = $this->getConfig()->getSizes();
try {
photosPhoto::generateThumbs($photo, $obligatory_sizes);
} catch (Exception $e) {
waLog::log($e->getMessage());
}
} else {
throw new waException("Error while rotate. Operation canceled");
}
}
foreach ($paths as $path) {
waFiles::delete($path);
}
} catch (Exception $e) {
foreach ($paths as $path) {
waFiles::delete($path);
}
throw $e;
}
}
}
示例2: move
/**
* Rename existing theme
* @param string $id
* @param array $params
* @throws waException
* @return waTheme
*/
public function move($id, $params = array())
{
if ($this->id != $id && (!$this->init('system') || empty($this->info['system']))) {
self::verify($id);
$target = wa()->getDataPath("themes/{$id}", true, $this->app, false);
if (file_exists($target)) {
throw new waException(sprintf(_ws("Theme %s already exists"), $id));
}
self::protect($this->app);
waFiles::move($this->path, $target);
$class = get_class($this);
/**
* @var waTheme $instance
*/
$instance = new $class($id, $this->app);
$instance->init();
$instance->info['id'] = $id;
$instance->changed['id'] = true;
foreach ($params as $param => $value) {
$instance[$param] = $value;
}
$instance->save();
return $instance;
} elseif ($this->type == self::ORIGINAL || !empty($this->info['system'])) {
return $this->copy($id, $params);
} else {
foreach ($params as $param => $value) {
$this[$param] = $value;
}
if ($params) {
$this->save();
}
return $this;
}
}
示例3: execute
public function execute()
{
$this->response = array();
// Initialize all needed post vars as $vars in current namespace
foreach (array('x1', 'y1', 'x2', 'y2', 'w', 'h', 'ww', 'orig') as $var) {
if (null === (${$var} = (int) waRequest::post($var))) {
// $$ black magic...
$this->response['error'] = 'wrong parameters';
return;
}
}
$id = $this->getId();
$contact = new waContact($id);
// Path to file we need to crop
$rand = mt_rand();
$dir = waContact::getPhotoDir($id, true);
$filename = wa()->getDataPath("{$dir}{$rand}.original.jpg", true, 'contacts');
$oldDir = wa()->getDataPath("{$dir}", true, 'contacts');
$no_old_photo = false;
if (!$orig) {
// Delete the old photos if they exist
if (file_exists($oldDir)) {
waFiles::delete($oldDir);
$no_old_photo = true;
}
waFiles::create($oldDir);
// Is there an uploaded file in session?
$photoEditors = $this->getStorage()->read('photoEditors');
if (!isset($photoEditors[$id]) || !file_exists($photoEditors[$id])) {
$this->response['error'] = 'Photo editor session is not found or already expired.';
return;
}
$newFile = $photoEditors[$id];
// Save the original image in jpeg for future use
try {
$img = waImage::factory($newFile)->save($filename);
} catch (Exception $e) {
$this->response['error'] = 'Unable to save new file ' . $filename . ' (' . pathinfo($filename, PATHINFO_EXTENSION) . ') as jpeg: ' . $e->getMessage();
return;
}
// Remove uploaded file
unset($photoEditors[$id]);
$this->getStorage()->write('photoEditors', $photoEditors);
unlink($newFile);
} else {
// cropping an old file. Move it temporarily to temp dir to delete all cached thumbnails
$oldFile = wa()->getDataPath("{$dir}{$contact['photo']}.original.jpg", TRUE, 'contacts');
$tempOldFile = wa()->getTempPath("{$id}/{$rand}.original.jpg", 'contacts');
waFiles::move($oldFile, $tempOldFile);
// Delete thumbnails
if (file_exists($oldDir)) {
waFiles::delete($oldDir);
}
waFiles::create($oldDir);
// return original image to its proper place
waFiles::move($tempOldFile, $filename);
}
if (!file_exists($filename)) {
$this->response['error'] = 'Image to crop not found (check directory access rights).';
return;
}
// Crop and save selected area
$croppedFilename = wa()->getDataPath("{$dir}{$rand}.jpg", TRUE, 'contacts');
try {
$img = waImage::factory($filename);
$scale = $img->width / $ww;
$img->crop(floor($w * $scale), floor($h * $scale), floor($x1 * $scale), floor($y1 * $scale))->save($croppedFilename);
} catch (Exception $e) {
$this->response['error'] = 'Unable to crop an image: ' . $e->getMessage();
return;
}
// Update record in DB for this user
$contact['photo'] = $rand;
$contact->save();
if ($no_old_photo) {
$old_app = null;
if (wa()->getApp() !== 'contacts') {
$old_app = wa()->getApp();
waSystem::setActive('contacts');
}
$this->logAction('photo_add', null, $contact->getId());
if ($old_app) {
waSystem::setActive($old_app);
}
}
// Update recent history to reload thumbnail correctly (if not called from personal account)
if (wa()->getUser()->get('is_user')) {
$history = new contactsHistoryModel();
$history->save('/contact/' . $id, null, null, '--');
}
$this->response = array('url' => $contact->getPhoto());
}
示例4: execute
public function execute()
{
$id = waRequest::get('id', null, waRequest::TYPE_INT);
if (!$id) {
throw new waException("Unknown image");
}
$direction = waRequest::post('direction', 'left', waRequest::TYPE_STRING_TRIM);
if (!isset($this->angles[$direction])) {
throw new waException("Can't rotate image");
}
$product_images_model = new shopProductImagesModel();
$image = $product_images_model->getById($id);
if (!$image) {
throw new waException("Unknown image");
}
// check rights
$product_model = new shopProductModel();
if (!$product_model->checkRights($image['product_id'])) {
throw new waException(_w("Access denied"));
}
$image_path = shopImage::getPath($image);
$paths = array();
try {
$result_image_path = preg_replace('/(\\.[^\\.]+)$/', '.result$1', $image_path);
$backup_image_path = preg_replace('/(\\.[^\\.]+)$/', '.backup$1', $image_path);
$paths[] = $result_image_path;
if ($this->rotate($image_path, $result_image_path, $this->angles[$direction])) {
$count = 0;
while (!file_exists($result_image_path) && ++$count < 5) {
sleep(1);
}
if (!file_exists($result_image_path)) {
throw new waException(_w("Error while rotate. I/O error"));
}
if (!waFiles::move($image_path, $backup_image_path)) {
throw new waException(_w("Error while rotate. Operation canceled"));
}
$paths[] = $backup_image_path;
if (!waFiles::move($result_image_path, $image_path)) {
if (!waFiles::move($backup_image_path, $image_path)) {
throw new waException(_w("Error while rotate. Original file corupted but backuped"));
}
throw new waException(_w("Error while rotate. Operation canceled"));
}
$datetime = date('Y-m-d H:i:s');
$data = array('edit_datetime' => $datetime, 'width' => $image['height'], 'height' => $image['width']);
$product_images_model->updateById($id, $data);
$image = array_merge($image, $data);
$thumb_dir = shopImage::getThumbsPath($image);
$back_thumb_dir = preg_replace('@(/$|$)@', '.back$1', $thumb_dir, 1);
$paths[] = $back_thumb_dir;
waFiles::delete($back_thumb_dir);
if (!(waFiles::move($thumb_dir, $back_thumb_dir) || waFiles::delete($back_thumb_dir)) && !waFiles::delete($thumb_dir)) {
throw new waException(_w("Error while rebuild thumbnails"));
}
$config = $this->getConfig();
try {
shopImage::generateThumbs($image, $config->getImageSizes());
} catch (Exception $e) {
waLog::log($e->getMessage());
}
$this->response = $image;
$edit_datetime_ts = strtotime($image['edit_datetime']);
$this->response['url_big'] = shopImage::getUrl($image, $config->getImageSize('big')) . '?' . $edit_datetime_ts;
$this->response['url_crop'] = shopImage::getUrl($image, $config->getImageSize('crop')) . '?' . $edit_datetime_ts;
}
foreach ($paths as $path) {
waFiles::delete($path);
}
} catch (Exception $e) {
foreach ($paths as $path) {
waFiles::delete($path);
}
throw $e;
}
}
示例5: stepImportImage
private function stepImportImage()
{
/**
* @var shopProductImagesModel $model
*/
static $model;
if (!is_array($this->data['map'][self::STAGE_IMAGE]) && $this->data['map'][self::STAGE_IMAGE]) {
$this->data['map'][self::STAGE_IMAGE] = array($this->data['map'][self::STAGE_IMAGE]);
}
if ($file = reset($this->data['map'][self::STAGE_IMAGE])) {
if (!$model) {
$model = new shopProductImagesModel();
}
//TODO store image id & if repeated - skip it
$target = 'new';
$u = @parse_url($file);
$_is_url = false;
if (!$u || !(isset($u['scheme']) && isset($u['host']) && isset($u['path']))) {
} elseif (in_array($u['scheme'], array('http', 'https', 'ftp', 'ftps'))) {
$_is_url = true;
} else {
$target = 'skip';
$file = null;
$this->error(sprintf('Unsupported file source protocol', $u['scheme']));
}
$search = array('product_id' => $this->data['map'][self::STAGE_PRODUCT], 'ext' => pathinfo($file, PATHINFO_EXTENSION));
try {
$name = preg_replace('@[^a-zA-Zа-яА-Я0-9\\._\\-]+@', '', basename(urldecode($file)));
if ($_is_url) {
$pattern = sprintf('@/(%d)/images/(\\d+)/\\2\\.(\\d+(x\\d+)?)\\.([^\\.]+)$@', $search['product_id']);
if (preg_match($pattern, $file, $matches)) {
$image = array('product_id' => $matches[1], 'id' => $matches[2], 'ext' => $matches[5]);
if (strpos($file, shopImage::getUrl($image, $matches[3])) !== false && $model->getByField($image)) {
#skip local file
$target = 'skip';
$file = null;
}
}
if ($file) {
waFiles::upload($file, $file = wa()->getTempPath('csv/upload/images/' . waLocale::transliterate($name, 'en_US')));
}
} elseif ($file) {
$file = $this->data['upload_path'] . $file;
}
if ($file && file_exists($file)) {
if ($image = waImage::factory($file)) {
$search['original_filename'] = $name;
$data = array('product_id' => $this->data['map'][self::STAGE_PRODUCT], 'upload_datetime' => date('Y-m-d H:i:s'), 'width' => $image->width, 'height' => $image->height, 'size' => filesize($file), 'original_filename' => $name, 'ext' => pathinfo($file, PATHINFO_EXTENSION));
if ($exists = $model->getByField($search)) {
$data = array_merge($exists, $data);
$thumb_dir = shopImage::getThumbsPath($data);
$back_thumb_dir = preg_replace('@(/$|$)@', '.back$1', $thumb_dir, 1);
$paths[] = $back_thumb_dir;
waFiles::delete($back_thumb_dir);
// old backups
if (file_exists($thumb_dir)) {
if (!(waFiles::move($thumb_dir, $back_thumb_dir) || waFiles::delete($back_thumb_dir)) && !waFiles::delete($thumb_dir)) {
throw new waException(_w("Error while rebuild thumbnails"));
}
}
}
$image_changed = false;
/**
* TODO move it code into product core method
*/
/**
* Extend add/update product images
* Make extra workup
* @event image_upload
*/
$event = wa()->event('image_upload', $image);
if ($event) {
foreach ($event as $result) {
if ($result) {
$image_changed = true;
break;
}
}
}
if (empty($data['id'])) {
$image_id = $data['id'] = $model->add($data);
} else {
$image_id = $data['id'];
$target = 'update';
$model->updateById($image_id, $data);
}
if (!$image_id) {
throw new waException("Database error");
}
$image_path = shopImage::getPath($data);
if (file_exists($image_path) && !is_writable($image_path) || !file_exists($image_path) && !waFiles::create($image_path)) {
$model->deleteById($image_id);
throw new waException(sprintf("The insufficient file write permissions for the %s folder.", substr($image_path, strlen($this->getConfig()->getRootPath()))));
}
if ($image_changed) {
$image->save($image_path);
/**
* @var shopConfig $config
*/
$config = $this->getConfig();
//.........这里部分代码省略.........
示例6: execute
public function execute()
{
$id = waRequest::post('id', null, waRequest::TYPE_INT);
if (!$id) {
throw new waException("Can't restore photo");
}
$photo_model = new photosPhotoModel();
$photo_rights_model = new photosPhotoRightsModel();
$photo = $photo_model->getById($id);
if (!$photo_rights_model->checkRights($photo, true)) {
throw new waException("You don't have sufficient access rights");
}
$original_photo_path = photosPhoto::getOriginalPhotoPath($photo);
if (!wa('photos')->getConfig()->getOption('save_original') || !file_exists($original_photo_path)) {
throw new waException("Can't restore photo. Original photo doesn't exist");
}
$paths = array();
try {
$photo_path = photosPhoto::getPhotoPath($photo);
$backup_photo_path = preg_replace('/(\\.[^\\.]+)$/', '.backup$1', $photo_path);
if (waFiles::move($photo_path, $backup_photo_path)) {
if (!waFiles::move($original_photo_path, $photo_path)) {
if (!waFiles::move($backup_photo_path, $photo_path)) {
throw new waException("Error while restore. Current file corupted but backuped");
}
$paths[] = $backup_photo_path;
throw new waException("Error while restore. Operation canceled");
} else {
$image = new photosImage($photo_path);
$edit_datetime = date('Y-m-d H:i:s');
$data = array('edit_datetime' => $edit_datetime, 'width' => $image->width, 'height' => $image->height);
$photo_model->updateById($id, $data);
$photo = array_merge($photo, $data);
$thumb_dir = photosPhoto::getPhotoThumbDir($photo);
$back_thumb_dir = preg_replace('@(/$|$)@', '.back$1', $thumb_dir, 1);
$paths[] = $back_thumb_dir;
waFiles::delete($back_thumb_dir);
// old backups
if (!waFiles::move($thumb_dir, $back_thumb_dir) && !waFiles::delete($thumb_dir)) {
throw new waException("Error while rebuild thumbnails");
}
$photo['original_exists'] = false;
$photo['thumb'] = photosPhoto::getThumbInfo($photo, photosPhoto::getThumbPhotoSize());
$photo['thumb_big'] = photosPhoto::getThumbInfo($photo, photosPhoto::getBigPhotoSize());
$photo['thumb_middle'] = photosPhoto::getThumbInfo($photo, photosPhoto::getMiddlePhotoSize());
$sizes = $this->getConfig()->getSizes();
try {
photosPhoto::generateThumbs($photo, $sizes);
} catch (Exception $e) {
waLog::log($e->getMessage());
}
$this->response['photo'] = $photo;
$this->log('photo_reverttooriginal', 1);
}
} else {
throw new waException("Error while restore. Operation canceled");
}
foreach ($paths as $path) {
waFiles::delete($path);
}
} catch (Exception $e) {
foreach ($paths as $path) {
waFiles::delete($path);
}
throw $e;
}
}
示例7: execute
public function execute()
{
$path = $this->getConfig()->getPath('config', 'routing');
if (file_exists($path)) {
$routes = (include $path);
} else {
$routes = array();
}
$domain = siteHelper::getDomain();
$url = mb_strtolower(rtrim(waRequest::post('url'), '/'));
if ($url != $domain) {
$domain_model = new siteDomainModel();
// domain already exists
if ($domain_model->getByName($url)) {
$this->errors = sprintf(_w("Website with a domain name %s is already registered in this Webasyst installation. Delete %s website (Site app > %s > Settings) to be able to use it's domain name for another website."), $url, $url, $url);
return;
}
$domain_model->updateById(siteHelper::getDomainId(), array('name' => $url));
$routes[$url] = $routes[$domain];
unset($routes[$domain]);
// move configs
$old = $this->getConfig()->getConfigPath('domains/' . $domain . '.php');
if (file_exists($old)) {
waFiles::move($old, $this->getConfig()->getConfigPath('domains/' . $url . '.php'));
}
$old = wa()->getDataPath('data/' . $domain . '/', true, 'site', false);
if (file_exists($old)) {
waFiles::move($old, wa()->getDataPath('data/' . $url . '/', true));
clearstatcache();
try {
waFiles::delete($old, true);
} catch (waException $e) {
}
}
$domain = $url;
siteHelper::setDomain(siteHelper::getDomainId(), $domain);
}
// save wa_apps
$domain_config_path = $this->getConfig()->getConfigPath('domains/' . $domain . '.php');
if (file_exists($domain_config_path)) {
$domain_config = (include $domain_config_path);
} else {
$domain_config = array();
}
$title = waRequest::post('title');
$style = waRequest::post('background');
if (!$style || substr($style, 0, 1) == '.') {
if ($s = $this->saveBackground()) {
$style = '.' . $s;
}
}
$domain_model = new siteDomainModel();
$domain_model->updateById(siteHelper::getDomainId(), array('title' => $title, 'style' => $style));
$save_config = false;
if ($title) {
$domain_config['name'] = $title;
$save_config = true;
} else {
if (isset($domain_config['name'])) {
unset($domain_config['name']);
$save_config = true;
}
}
waUtils::varExportToFile($routes, $path);
if (waRequest::post('wa_apps_type')) {
$apps = waRequest::post('apps');
if (!$domain_config) {
// create directory
waFiles::create($domain_config_path);
}
$domain_config['apps'] = array();
foreach ($apps['url'] as $i => $u) {
$domain_config['apps'][] = array('url' => $u, 'name' => $apps['name'][$i]);
}
$save_config = true;
} else {
if (isset($domain_config['apps'])) {
unset($domain_config['apps']);
$save_config = true;
}
}
if (waRequest::post('cdn')) {
$domain_config['cdn'] = waRequest::post('cdn');
$save_config = true;
} elseif (!empty($domain_config['cdn'])) {
unset($domain_config['cdn']);
$save_config = true;
}
// save other settings
foreach (array('head_js', 'google_analytics') as $key) {
if (!empty($domain_config[$key]) || waRequest::post($key)) {
$domain_config[$key] = waRequest::post($key);
$save_config = true;
}
}
if ($save_config && !waUtils::varExportToFile($domain_config, $domain_config_path)) {
$this->errors = sprintf(_w('Settings could not be saved due to the insufficient file write permissions for the "%s" folder.'), 'wa-config/apps/site/domains');
}
$this->saveFavicon();
$this->saveTouchicon();
//.........这里部分代码省略.........
示例8: rotate
public function rotate($id, $clockwise = true)
{
$photo_rights_model = new photosPhotoRightsModel();
$photo = $this->getById($id);
if (!$photo || !$photo_rights_model->checkRights($photo, true)) {
throw new waException(_w("You don't have sufficient access rights"));
}
$photo_path = photosPhoto::getPhotoPath($photo);
$paths = array();
try {
$image = new photosImage($photo_path);
$result_photo_path = preg_replace('/(\\.[^\\.]+)$/', '.result$1', $photo_path);
$backup_photo_path = preg_replace('/(\\.[^\\.]+)$/', '.backup$1', $photo_path);
$paths[] = $result_photo_path;
$angle = $clockwise ? '90' : '-90';
$result = $image->rotate($angle)->save($result_photo_path);
if ($result) {
$count = 0;
while (!file_exists($result_photo_path) && ++$count < 5) {
sleep(1);
}
if (!file_exists($result_photo_path)) {
throw new waException("Error while rotate. I/O error");
}
$paths[] = $backup_photo_path;
if (waFiles::move($photo_path, $backup_photo_path)) {
if (!waFiles::move($result_photo_path, $photo_path)) {
if (!waFiles::move($backup_photo_path, $photo_path)) {
throw new waException("Error while rotate. Original file corupted but backuped");
}
throw new waException("Error while rotate. Operation canceled");
} else {
$edit_datetime = date('Y-m-d H:i:s');
$data = array('edit_datetime' => $edit_datetime, 'width' => $photo['height'], 'height' => $photo['width']);
$this->updateById($id, $data);
$photo = array_merge($photo, $data);
$thumb_dir = photosPhoto::getPhotoThumbDir($photo);
$back_thumb_dir = preg_replace('@(/$|$)@', '.back$1', $thumb_dir, 1);
$paths[] = $back_thumb_dir;
waFiles::delete($back_thumb_dir);
if (!(waFiles::move($thumb_dir, $back_thumb_dir) || waFiles::delete($back_thumb_dir)) && !waFiles::delete($thumb_dir)) {
throw new waException("Error while rebuild thumbnails");
}
}
$obligatory_sizes = wa('photos')->getConfig()->getSizes();
try {
photosPhoto::generateThumbs($photo, $obligatory_sizes);
} catch (Exception $e) {
waLog::log($e->getMessage());
}
} else {
throw new waException("Error while rotate. Operation canceled");
}
}
foreach ($paths as $path) {
waFiles::delete($path);
}
} catch (Exception $e) {
foreach ($paths as $path) {
waFiles::delete($path);
}
throw $e;
}
}
示例9: finish
protected function finish($filename)
{
$result = !!$this->getRequest()->post('cleanup');
try {
if ($result) {
if (wa()->getEnv() == 'backend') {
$this->logAction('catalog_export', array('type' => 'YML'));
}
$file = $this->getTempPath();
$target = $this->data['path']['offers'];
if ($this->data['processed_count']['product']) {
if (file_exists($file)) {
waFiles::delete($target);
waFiles::move($file, $target);
}
shopYandexmarketPlugin::path('shops.dtd');
if (wa()->getEnv() == 'backend') {
$this->validate();
}
} else {
$this->error('Не выгружено ни одного товарного предложения, файл не обновлен');
$this->error(var_export($this->data, true));
}
}
} catch (Exception $ex) {
$this->error($ex->getMessage());
}
$this->info();
return $result;
}
示例10: create
protected function create($app_id, $path, $params = array())
{
$report = '';
if (!file_exists($path)) {
$path .= '/';
mkdir($path);
mkdir($path . 'css');
touch($path . 'css/' . $app_id . '.css');
mkdir($path . 'js');
touch($path . 'js/' . $app_id . '.js');
mkdir($path . 'img');
// lib
mkdir($path . 'lib');
waFiles::protect($path . 'lib');
mkdir($path . 'lib/actions');
// backend controller
mkdir($path . 'lib/actions/backend');
// api
if (isset($params['api'])) {
mkdir($path . 'lib/api');
if ($params['api'] !== true) {
mkdir($path . 'lib/api/' . $params['api']);
} else {
mkdir($path . 'lib/api/v1');
}
}
// cli
if (isset($params['cli'])) {
mkdir($path . 'lib/cli');
}
mkdir($path . 'lib/classes');
mkdir($path . 'lib/models');
// config
mkdir($path . 'lib/config');
// app description
$app = array('name' => empty($params['name']) ? ucfirst($app_id) : $params['name'], 'icon' => 'img/' . $app_id . '.gif', 'version' => $version = empty($params['version']) ? '0.1' : $params['version'], 'vendor' => $vendor = empty($params['vendor']) ? '--' : $params['vendor']);
if (isset($params['frontend'])) {
$app['frontend'] = true;
if (isset($params['themes'])) {
$app['themes'] = true;
}
$routing = array('*' => 'frontend');
waUtils::varExportToFile($routing, $path . 'lib/config/routing.php');
// frontend controller
mkdir($path . 'lib/actions/frontend');
}
// plugins
if (isset($params['plugins'])) {
$app['plugins'] = true;
mkdir($path . 'plugins');
}
waUtils::varExportToFile($app, $path . 'lib/config/app.php');
// templates
mkdir($path . 'templates');
waFiles::protect($path . 'templates');
mkdir($path . 'templates/actions');
mkdir($path . 'templates/actions/backend');
// backend template
if (isset($params['frontend'])) {
// frontend template
mkdir($path . 'templates/actions/frontend');
}
// locale
mkdir($path . 'locale');
waFiles::protect($path . 'locale');
if (isset($params['frontend']) && isset($params['themes'])) {
// themes
mkdir($path . 'themes');
mkdir($path . 'themes/default');
$theme = new waTheme('default', $app_id, true);
$theme->name = 'Default theme';
$theme->description = 'Auto generated default theme';
$theme->vendor = $vendor;
$theme->system = 1;
$theme->addFile('index.html', 'Frontend index file');
touch($path . 'themes/default/index.html');
$theme->addFile('default.css', 'Frontend CSS file');
touch($path . 'themes/default/default.css');
$theme->version = $version;
$theme->save();
waFiles::move($theme->path . '/theme.xml', $path . 'themes/default/theme.xml');
}
$report .= <<<REPORT
App with id "{$app_id}" created!
Useful commands:
#generate app's database description file db.php
php wa.php generateDb {$app_id}
#generate app's locale files
php wa-system/locale/locale.php {$app_id}
REPORT;
if (isset($params['plugins'])) {
$report .= "\n\n" . <<<REPORT
#create a plugin with specified 'plugin_id' for your app
php wa.php createPlugin {$app_id} plugin_id
REPORT;
}
//TODO add hint about compress command
} else {
//.........这里部分代码省略.........
示例11: array
$path = $this->getPath('plugins');
$root = $this->getRootPath();
if (!file_exists($root . '/.svn') && !file_exists($root . '/.git')) {
$plugin_types = array('shipping', 'payment');
foreach ($plugin_types as $type) {
$base_path = $path . '/' . $type . '/';
foreach (waFiles::listdir($path . '/' . $type) as $plugin) {
if (preg_match('/[A-Z]/', $plugin)) {
try {
$plugin_path = $base_path . $plugin;
$file_name = $plugin_path . '/lib/' . $plugin . ucfirst($type) . '.class.php';
$plugin = strtolower($plugin);
$dest_file_name = $plugin_path . '/lib/' . $plugin . ucfirst($type) . '.class.php';
$dest_plugin_path = $base_path . $plugin;
waFiles::move($file_name, $dest_file_name);
waFiles::move($plugin_path, $dest_plugin_path);
} catch (Exception $e) {
waLog::log($e->getMessage());
}
}
}
foreach (waFiles::listdir($path . '/' . $type) as $plugin) {
if (preg_match('/[A-Z]/', $plugin)) {
$plugin_path = $base_path . $plugin;
try {
waFiles::delete($plugin_path);
} catch (Exception $e) {
waLog::log($e->getMessage());
}
}
}
示例12: execute
public function execute()
{
$id = waRequest::post('id', null, waRequest::TYPE_INT);
if (!$id) {
throw new waException("Can't restore image");
}
$product_images_model = new shopProductImagesModel();
$image = $product_images_model->getById($id);
if (!$image) {
throw new waException("Can't restore image");
}
// check rights
$product_model = new shopProductModel();
if (!$product_model->checkRights($image['product_id'])) {
throw new waException(_w("Access denied"));
}
$original_image_path = shopImage::getOriginalPath($image);
if (!wa('shop')->getConfig()->getOption('image_save_original') || !file_exists($original_image_path)) {
throw new waException("Can't restore image. Original image doesn't exist");
}
$image_path = shopImage::getPath($image);
$paths = array();
try {
$backup_image_path = preg_replace('/(\\.[^\\.]+)$/', '.backup$1', $image_path);
if (!waFiles::move($image_path, $backup_image_path)) {
throw new waException("Error while restore. Operation canceled");
}
$paths[] = $backup_image_path;
if (!waFiles::move($original_image_path, $image_path)) {
if (!waFiles::move($backup_image_path, $image_path)) {
throw new waException("Error while restore. Current file corupted but backuped");
}
throw new waException("Error while restore. Operation canceled");
}
$data = $this->getData($image_path);
$product_images_model->updateById($id, $data);
$image = array_merge($image, $data);
$thumb_dir = shopImage::getThumbsPath($image);
$back_thumb_dir = preg_replace('@(/$|$)@', '.back$1', $thumb_dir, 1);
$paths[] = $back_thumb_dir;
waFiles::delete($back_thumb_dir);
// old backups
if (!(waFiles::move($thumb_dir, $back_thumb_dir) || waFiles::delete($back_thumb_dir)) && !waFiles::delete($thumb_dir)) {
throw new waException(_w("Error while rebuild thumbnails"));
}
/**
* @var shopConfig $config
*/
$config = $this->getConfig();
try {
shopImage::generateThumbs($image, $config->getImageSizes());
} catch (Exception $e) {
waLog::log($e->getMessage());
}
$this->response = $image;
$edit_datetime_ts = strtotime($image['edit_datetime']);
$this->response['url_big'] = shopImage::getUrl($image, $config->getImageSize('big')) . '?' . $edit_datetime_ts;
$this->response['url_crop'] = shopImage::getUrl($image, $config->getImageSize('crop')) . '?' . $edit_datetime_ts;
foreach ($paths as $path) {
waFiles::delete($path);
}
} catch (Exception $e) {
foreach ($paths as $path) {
waFiles::delete($path);
}
throw $e;
}
}
示例13: include
if (file_exists($file)) {
include($file);
} else {
header("HTTP/1.0 404 Not Found");
}
');
waFiles::copy(wa()->getAppPath('lib/config/data/.htaccess', 'contacts'), $path . '/.htaccess');
$old_path = wa()->getDataPath('photo', true, 'contacts', false);
if (file_exists($old_path) && is_dir($old_path)) {
$model = new waModel();
$all_success = true;
$contact_ids = $model->query("SELECT id FROM wa_contact WHERE photo > 0")->fetchAll(null, true);
foreach ($contact_ids as $contact_id) {
$old_filepath = $old_path . '/' . $contact_id;
if (file_exists($old_filepath) && is_dir($old_filepath)) {
$filepath = wa()->getDataPath(waContact::getPhotoDir($contact_id), true, 'contacts');
try {
$success = @waFiles::move($old_filepath, $filepath);
$all_success = $all_success && $success;
} catch (Exception $e) {
$all_success = false;
}
}
}
if ($all_success) {
try {
waFiles::delete(wa()->getDataPath('photo', true, 'contacts', false));
} catch (waException $e) {
}
}
}
示例14: create
protected function create($params = array())
{
//TODO layout|ajax|simple mode
$structure = array("css/{$this->app_id}.css", "js/{$this->app_id}.js", "img/", "img/{$this->app_id}48.png" => $this->root_path . 'wa-content/img/dummy-app-icon-48.png', "img/{$this->app_id}96.png" => $this->root_path . 'wa-content/img/dummy-app-icon-96.png', "lib/", "lib/actions/backend/", "lib/actions/backend/{$this->app_id}Backend.action.php" => $this->getActionCode(), "templates/actions/backend/Backend.html" => $this->getDefaultTemplate(), "lib/classes/", "lib/models/", "lib/config/", "locale/");
$features = array_map('trim', preg_split('@[,\\s]+@', ifset($params['features'], $this->getDefaults('features'))));
// api
if (in_array('api', $features, true)) {
$structure = array_merge($structure, array("lib/api/v1/"));
}
if (in_array('cli', $features, true)) {
$structure = array_merge($structure, array("lib/cli/", "lib/cli/{$this->app_id}Example.cli.php" => $this->getCliController()));
}
$protect = array('lib', 'templates');
// app description
$app = array('name' => empty($params['name']) ? ucfirst($this->app_id) : $params['name'], 'icon' => array(48 => "img/{$this->app_id}48.png", 96 => "img/{$this->app_id}96.png"), 'version' => ifempty($params['version'], $this->getDefaults('version')), 'vendor' => ifempty($params['vendor'], $this->getDefaults('vendor')));
if (isset($params['frontend'])) {
$app['frontend'] = true;
if ($params['frontend'] == 'themes') {
$app['themes'] = true;
}
$routing = array('*' => 'frontend');
$structure['lib/config/routing.php'] = $routing;
$structure = array_merge($structure, array('lib/actions/frontend/', "lib/actions/frontend/{$this->app_id}Frontend.action.php" => $this->getActionCode('default', false, $app)));
if (!empty($app['themes'])) {
$structure = array_merge($structure, array('themes/.htaccess' => '
<FilesMatch "\\.(php\\d*|html?|xml)$">
Deny from all
</FilesMatch>
', 'themes/default/index.html' => $this->getFrontendTemplate(), 'themes/default/css/default.css'));
} else {
$structure = array_merge($structure, array("templates/actions/frontend/Frontend.html" => $this->getFrontendTemplate(), "css/frontend/{$this->app_id}.css"));
}
}
if (isset($params['plugins'])) {
$structure = array_merge($structure, array("plugins/"));
$app['plugins'] = true;
}
$structure['lib/config/app.php'] = $app;
$this->createStructure($structure);
$this->protect($protect);
if (!empty($app['themes'])) {
waFiles::delete(wa()->getDataPath('themes/default', true, $this->app_id));
$theme = new waTheme('default', $this->app_id, true);
$theme->name = 'Default theme';
$theme->description = 'Auto generated default theme';
$theme->vendor = $app['vendor'];
$theme->version = $app['version'];
$theme->addFile('index.html', 'Frontend index file');
$theme->addFile('css/default.css', 'Frontend CSS file');
$theme->save();
waFiles::move($theme->path . '/theme.xml', $this->path . 'themes/default/theme.xml');
}
if (!isset($params['disable'])) {
$this->installApp();
$errors = $this->flushCache();
if ($errors) {
print "Error during delete cache files:\n\t" . implode("\n\t", $errors) . "\n";
}
}
return $app;
}