示例#1
0
文件: Audio.php 项目: noikiy/PD
 public static function unlink($dir, $deleteRootToo = true)
 {
     $dir = rtrim($dir, '/');
     if (!($dh = @opendir($dir))) {
         return;
     }
     $model_images = new Model_Images();
     while (false !== ($obj = readdir($dh))) {
         if ($obj == '.' || $obj == '..') {
             continue;
         }
         if (!@unlink($dir . '/' . $obj)) {
             if (is_file($dir . '/' . $obj)) {
                 $model_images->deleteImages($dir . '/' . $obj, true);
             }
             self::unlink($dir . '/' . $obj, true);
         }
     }
     closedir($dh);
     if ($deleteRootToo) {
         @rmdir($dir);
     }
     return;
 }
示例#2
0
 public function deleteAction()
 {
     $json = array();
     $pathp = $this->getRequest()->getPost('path');
     if ($pathp !== null) {
         $path = rtrim($this->upload_folder . str_replace('../', '', $pathp), '/');
         if (!file_exists($path)) {
             $json['error'] = $this->translate('Path not found');
         }
         if (rtrim($path, '/') == rtrim($this->upload_folder, '/')) {
             $json['error'] = $this->translate('You can not delete the base path');
         }
     } else {
         $json['error'] = $this->translate('No path is selected');
     }
     if (!isset($json['error'])) {
         if (is_file($path)) {
             $images = new Model_Images();
             $images->deleteImages($pathp);
         } elseif (is_dir($path)) {
             $this->recursiveDelete($path);
             $cache_folder = $this->upload_folder . DS . 'cache' . $pathp;
             $this->recursiveDelete($cache_folder);
         }
         $json['success'] = $this->translate('Deletion is successful');
     }
     $response = $this->getResponse();
     $response->addHeader('Cache-Control: no-cache, must-revalidate');
     $response->addHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     $response->addHeader('Content-type: application/json');
     $this->setInvokeArg('noViewRenderer', true);
     echo JO_Json::encode($json);
 }
示例#3
0
 public function changeAction()
 {
     $request = $this->getRequest();
     $collectionID = $request->getRequest('change');
     if (!$collectionID || !is_numeric($collectionID)) {
         return $this->forward('error', 'error404');
     }
     $referer = $request->getServer('HTTP_REFERER');
     if ($collectionID) {
         $collection = Model_Collections::get($collectionID);
         if (!$collection) {
             return $this->forward('error', 'error404');
         }
         if (JO_Session::get('user_id') == $collection['user_id']) {
             if ($request->isPost()) {
                 $model_images = new Model_Images();
                 $image = $request->getFile('file_upload');
                 if ($image) {
                     $users_path = '/collections/' . date('Y/m') . '/' . $id . '/';
                     $upload_folder = realpath(BASE_PATH . '/uploads');
                     $upload_folder .= $users_path;
                     $upload = new JO_Upload();
                     $upload->setFile($image)->setExtension(array('.jpg', '.jpeg', '.png', '.gif'))->setUploadDir($upload_folder);
                     $new_name = md5(time() . serialize($image));
                     if ($upload->upload($new_name)) {
                         $info = $upload->getFileInfo();
                         if ($info) {
                             $file_path = $users_path . $info['name'];
                             Model_Collections::editImage($collection['id'], $file_path);
                             $model_images->deleteImages($collection['photo']);
                         } else {
                             JO_Session::set('msg_error', $this->translate('There was an unexpected error with uploading the file'));
                         }
                     }
                 }
                 $collection['name'] = $request->getPost('name') ? $request->getPost('name') : $this->translate('Bookmark Collection');
                 $collection['description'] = $request->getPost('description');
                 $collection['public'] = $request->getPost('publically_visible') ? 'false' : 'true';
             }
             Model_Collections::edit(array('collection_id' => $collectionID, 'name' => $collection['name'], 'description' => $collection['description'], 'publically_visible' => $collection['public'] == 'false' ? 'true' : 'false'));
             JO_Session::set('msg_success', 'You have successfully update this collection!');
         }
     }
     $this->redirect($referer);
 }
示例#4
0
 public function editAction()
 {
     $request = $this->getRequest();
     if (!JO_Session::get('user_id')) {
         JO_Session::set('msg_error', $this->translate('You must be logged to change your profile'));
         $redir = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login');
         if ($request->getRequest('tool') == 'change_avatar') {
             die(json_encode(array('logout' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=login'))));
         } else {
             $this->redirect($redir);
         }
     }
     $this->getLayout()->meta_title = $this->translate('Edit settings');
     $this->getLayout()->meta_description = $this->translate('Edit settings');
     if (JO_Session::get('msg_success')) {
         $this->view->msg_success = JO_Session::get('msg_success');
         JO_Session::clear('msg_success');
     } elseif (JO_Session::get('msg_error')) {
         $this->view->error = JO_Session::get('msg_error');
         JO_Session::clear('msg_error');
     }
     $tool = $request->getRequest('tool');
     $username = JO_Session::get('username');
     $this->view->user = Model_Users::getByUserName($username);
     $this->view->author_header = Helper_Author::authorHeader($this->view->user);
     $this->view->settings_box = Helper_Author::getSettingsBox($tool);
     $this->view->crumbs = array(array('name' => $this->translate('Home'), 'href' => $request->getBaseUrl()), array('name' => $this->translate('Profile'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&username='******'name' => $this->translate('Settings'), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=edit')));
     switch ($tool) {
         case 'change_avatar':
             $image = $request->getFile('file');
             if ($image) {
                 $users_path = '/users/' . JO_Date::getInstance(JO_Session::get('register_datetime'), 'yy/mm') . '/' . JO_Session::get('user_id') . '/';
                 $upload_folder = realpath(BASE_PATH . '/uploads');
                 $upload_folder .= $users_path;
                 $upload = new JO_Upload();
                 $upload->setFile($image)->setExtension(array('.jpg', '.jpeg', '.png', '.gif'))->setUploadDir($upload_folder);
                 $new_name = md5(time() . serialize($image));
                 if ($upload->upload($new_name)) {
                     $info = $upload->getFileInfo();
                     if ($info) {
                         $file_path = $users_path . $info['name'];
                         $model_images = new Model_Images();
                         if (JO_Session::get('avatar')) {
                             $model_images->deleteImages(JO_Session::get('avatar'), true);
                         }
                         $thumb = $model_images->resize($file_path, JO_Registry::forceGet('user_avatar_width'), JO_Registry::forceGet('user_avatar_height'), true);
                         Model_Users::editAvatar(JO_Session::get('user_id'), $file_path);
                         die('{ "avatar": "' . $thumb . '", "msg_success": "' . $this->translate('You have successfully changed your avatar') . '"}');
                     } else {
                         die('{ "msg_error": "' . $this->translate('There was an unexpected error with uploading the file') . '"}');
                     }
                 } else {
                     die('{ "msg_error": "' . $this->translate('The file must be valid image') . '" }');
                 }
             }
             break;
         case 'change_password':
             if ($request->isPost()) {
                 $s = Model_Users::editPassword(JO_Session::get('user_id'), array('password' => $request->getPost('password'), 'new_password' => $request->getPost('new_password'), 'new_password_confirm' => $request->getPost('new_password_confirm')));
                 if ($s === true) {
                     $this->session->set('msg_success', $this->translate('You have successfully updated your password'));
                 } else {
                     $this->session->set('msg_error', $s);
                 }
                 $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=users&action=edit&tool=change_password'));
             }
             $this->view->formtitle = $this->translate('Change your password');
             $this->view->crumbs[] = array('name' => $this->view->formtitle);
             $this->view->author_form = $this->view->renderByModule('single_user/change_password', 'users', 'themes');
             break;
         case 'exclusive_author':
             if ($request->isPost()) {
                 $exclusive_author = $request->getPost('exclusive_author');
                 Model_Users::editExclusive(JO_Session::get('user_id'), $exclusive_author);
                 if ($exclusive_author == 'true') {
                     JO_Session::set('msg_success', $this->translate('You have successfully changed to exclusive author'));
                 } else {
                     JO_Session::set('msg_success', $this->translate('You have successfully changed to non exclusive author'));
                 }
                 $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=users&action=edit&tool=exclusive_author'));
             }
             if ($this->view->user['exclusive_author'] == 'true') {
                 $this->view->formtitle = $this->translate('Exclusive Author');
                 $this->view->button = $this->translate('Unsubscribe me as exclusive author');
             } else {
                 $this->view->formtitle = $this->translate('Non-Exclusive Author');
                 $this->view->button = $this->translate('Subscribe me as exclusive author');
             }
             $this->view->top_text = $this->translate('Agreeing to keep your portfolio of items for sale exclusive to the Marketplaces entitles you to a higher percentage of each sale - from 40% to 70%. You can still sell other items elsewhere (on other marketplaces, your own site) however any items you place on an Marketplace must be exclusively sold there.');
             $this->view->bottom_text = $this->translate('You can opt-out of the exclusivity program by clicking the button below. You will be given a 30 day grace period wherein the agreement is still observed after which your payments will return to normal and you may commence selling your items elsewhere.');
             $this->view->crumbs[] = array('name' => $this->view->formtitle);
             $this->view->author_form = $this->view->renderByModule('single_user/exclusive_author', 'users', 'themes');
             break;
         case 'sale_license':
             if ($request->isPost()) {
                 if ($request->getPost('license')) {
                     Model_Users::editLicense(JO_Session::get('user_id'), $request->getPost('license'));
                     JO_Session::set('msg_success', $this->translate('You have successfully changed the license types'));
                 } else {
                     JO_Session::set('msg_error', $this->translate('You have to choose your license'));
                 }
                 $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=users&action=edit&tool=sale_license'));
             }
             $this->view->formtitle = $this->translate('Sale License');
             $this->view->crumbs[] = array('name' => $this->view->formtitle);
             $this->view->license = unserialize($this->view->user['license']);
             $this->view->author_form = $this->view->renderByModule('single_user/sale_license', 'users', 'themes');
             break;
         case 'social':
             if ($request->issetParam('sn')) {
                 $sn = (int) $request->getParam('sn');
                 unset($this->view->user['social'][$sn - 1]);
                 $this->view->user['social'] = array_values($this->view->user['social']);
                 Model_Users::editSocial(JO_Session::get('user_id'), $this->view->user['social']);
                 $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=edit&tool=social'));
             }
             if ($request->isPost()) {
                 $socials = array();
                 $errors = array();
                 $social_links = $request->getPost('social_link');
                 $social_names = $request->getPost('social_name');
                 $cnt = count($social_links) < count($social_names) ? count($social_names) : count($social_links);
                 for ($i = 0; $i < $cnt; $i++) {
                     $social_names[$i] = trim($social_names[$i]);
                     $social_links[$i] = trim($social_links[$i]);
                     if (empty($social_names[$i]) && empty($social_links[$i])) {
                         break;
                     }
                     if (empty($social_names[$i])) {
                         $errors[$i]['social_name'] = $this->translate('You must fill the name of the social media');
                     }
                     if (empty($social_links[$i])) {
                         $errors[$i]['social_link'] = $this->translate('You must fill valid link for your profile');
                     }
                     $socials[] = array('name' => $social_names[$i], 'href' => $social_links[$i]);
                 }
                 if (empty($errors)) {
                     Model_Users::editSocial(JO_Session::get('user_id'), $socials);
                     JO_Session::set('msg_success', $this->translate('You have successfully changed your social media profiles'));
                 } else {
                     JO_Session::set('msg_error', $errors);
                     $this->session->set('data', $socials);
                 }
                 $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=edit&tool=social'));
             }
             if ($this->session->issetKey('data')) {
                 $social = $this->session->get('data');
                 $this->session->clear('data');
                 if (count($social) > count($this->view->user['social'])) {
                     $last = end($social);
                     $this->view->new_user = $last['name'];
                     $this->view->new_href = $last['href'];
                 }
             }
             $this->view->formtitle = $this->translate('Social Media profiles');
             $this->view->crumbs[] = array('name' => $this->view->formtitle);
             $this->view->author_form = $this->view->renderByModule('single_user/social', 'users', 'themes');
             break;
         default:
             if ($request->isPost()) {
                 $firstname = trim($request->getPost('firstname'));
                 $lastname = trim($request->getPost('lastname'));
                 $email = trim($request->getPost('email'));
                 if (empty($firstname)) {
                     $error['firstname'] = $this->translate('You must fill your firstname');
                 }
                 if (empty($lastname)) {
                     $error['lastname'] = $this->translate('You must fill your lastname');
                 }
                 if (empty($email)) {
                     $error['email'] = $this->translate('You must fill your email');
                 } elseif (!Model_Users::ValidMail($email)) {
                     $this->view->error['email'] = $this->translate('You must fill valid email');
                 }
                 if ($request->getPost('facebook') == 1) {
                     if ($this->view->user['fb_id'] == 0) {
                         $facebook = new WM_Facebook_Api(array('appId' => JO_Registry::forceGet('facebook_appid'), 'secret' => JO_Registry::forceGet('facebook_secret')));
                         $fbData = $facebook->api('/me');
                         $request->setParams('fb_id', $fbData['id']);
                     } else {
                         $request->setParams('fb_id', $this->view->user['fb_id']);
                     }
                 } else {
                     $request->setParams('fb_id', 0);
                 }
                 if (!count($error)) {
                     Model_Users::editPersonal($this->view->user['user_id'], $request->getParams());
                     JO_Session::set('msg_success', $this->translate('Your personal data has been successfully saved'));
                 } else {
                     JO_Session::set('msg_error', $error);
                 }
                 $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=edit'));
             }
             $this->view->formtitle = $this->translate('Avatar and Personal Information');
             $this->view->crumbs[] = array('name' => $this->view->formtitle);
             $model_images = new Helper_Images();
             if ($this->view->user['avatar']) {
                 $thumb = $model_images->resize($this->view->user['avatar'], JO_Registry::forceGet('user_avatar_width'), JO_Registry::forceGet('user_avatar_height'), true);
             } else {
                 $this->view->user['avatar'] = 'data/themes/images/noavatar.png';
             }
             $this->view->upl_form_action = WM_Router::create($request->getBaseUrl() . '?controller=users&action=edit&tool=change_avatar');
             $this->view->countries = Model_Countries::getCountries();
             $this->view->author_form = $this->view->renderByModule('single_user/avatar', 'users', 'themes');
     }
     $this->view->children = array();
     $this->view->children['header_part'] = 'layout/header_part';
     $this->view->children['footer_part'] = 'layout/footer_part';
 }