コード例 #1
0
ファイル: bookapi.php プロジェクト: j16sdiz/ctyc-library
 public function action_create()
 {
     // header('Content-Type: application/json');
     try {
         Database::instance()->query(NULL, "SET AUTOCOMMIT=0", NULL);
         Database::instance()->query(NULL, "BEGIN", NULL);
         $param = $this->request->param();
         if (isset($param['cat'])) {
             if (!isset($param['code'])) {
                 $param['code'] = self::get_unused_code($param['cat']);
             }
             if (!isset($param['copy']) || $param['copy'] + 0 > 0) {
                 $param['copy'] = 1;
             }
             $copies = isset($_REQUEST['copies']) ? $_REQUEST['copies'] : 1;
             $value = array_merge($param, $_REQUEST);
             unset($value['id']);
             $book = new Model_Book();
             $book->values($value);
             $book->copy = 1;
             $value = $book->as_array();
             if ($book->check()) {
                 $books = self::create_books($value, $copies, $param['copy'] + 0);
                 $this->request->response = json_encode(array("success" => true, "books" => $books));
             } else {
                 $this->request->response = json_encode(array("success" => false, "error" => $book->validate()->errors()));
             }
         } else {
             throw new Kohana_Exception('No cats found!');
         }
         Database::instance()->query(NULL, "ROLLBACK", NULL);
     } catch (Exception $e) {
         Database::instance()->query(NULL, "ROLLBACK", NULL);
         $this->request->response = json_encode(array("success" => false, "message" => $e->__toString()));
     }
     //		echo View::factory('profiler/stats');
 }
コード例 #2
0
ファイル: book.php プロジェクト: xXLXx/ddc
 public function action_edit($id = null)
 {
     $where = ['id' => $id];
     if (Model_User::is_current_user('teacher')) {
         $where['subject.user_id'] = Auth::get('id');
     }
     $book = Model_Book::find('first', ['where' => $where, 'related' => ['subject']]);
     if (empty($book)) {
         Session::set_flash('error', 'Book does not exist.');
         Response::redirect('site/book');
     }
     $val = Model_Book::validate('edit');
     if ($val->run()) {
         $bookUploadConfig = Config::get('upload_book_url');
         $bookUploadConfig['base_path'] = $bookUploadConfig['path'];
         $bookUploadConfig['path'] = $this->getFilePath($bookUploadConfig['path'], Input::post('sub_folder'), Input::post('course_id'));
         $isReuploaded = false;
         $book->book_name = Input::post('book_name');
         $book->subject_id = Input::post('subject_id');
         $book->course_id = Input::post('course_id');
         $book->is_institutional = Input::post('is_institutional');
         $book->sub_folder = Input::post('sub_folder');
         Upload::process(Config::get('upload_profile_picture'));
         if (empty(Upload::get_files()) || Upload::is_valid()) {
             if (!empty(Upload::get_files())) {
                 Upload::save();
                 $value = Upload::get_files();
                 foreach ($value as $files) {
                     $book->cover_photo = $value[0]['saved_as'];
                 }
             }
             Upload::process($bookUploadConfig);
             if (Upload::get_files() || empty(Upload::is_valid())) {
                 if (!empty(Upload::get_files())) {
                     Upload::save();
                     $value = Upload::get_files();
                     foreach ($value as $files) {
                         unlink($bookUploadConfig['base_path'] . '/' . $book->book_url);
                         $book->book_url = str_replace($bookUploadConfig['base_path'] . '/', '', $bookUploadConfig['path']) . '/' . $value[0]['saved_as'];
                         $isReuploaded = true;
                     }
                 }
                 $tmpPath = str_replace($bookUploadConfig['base_path'] . '/', '', $bookUploadConfig['path']);
                 if (!$isReuploaded && strpos($book->book_url, $tmpPath) == false) {
                     rename($bookUploadConfig['base_path'] . '/' . $book->book_url, $bookUploadConfig['path'] . '/' . preg_replace('/^.+\\//', '', $book->book_url));
                     $book->book_url = $tmpPath . '/' . preg_replace('/^.+\\//', '', $book->book_url);
                 }
                 if ($book->save()) {
                     Session::set_flash('success', e('Updated book #' . $id));
                     Response::redirect('site/book');
                 } else {
                     Session::set_flash('error', e('Could not update book #' . $id));
                 }
             } else {
                 Session::set_flash('error', 'Uploaded book is invalid.');
                 $this->template->set_global('book', $book, false);
             }
         } else {
             Session::set_flash('error', 'Cover photo is invalid.');
             $this->template->set_global('book', $book, false);
         }
     } else {
         if (Input::method() == 'POST') {
             $book->book_url = $val->validated('book_url');
             $book->book_name = $val->validated('book_name');
             $book->subject_id = $val->validated('subject_id');
             $book->cover_photo = $val->validated('cover_photo');
             $book->course_id = $val->validated('course_id');
             $book->is_institutional = $val->validated('is_institutional');
             $book->sub_folder = $val->validated('sub_folder');
             Session::set_flash('error', $val->error());
         }
         $this->template->set_global('book', $book, false);
     }
     $subjects = Model_Subject::getSubjectOptions();
     $courses = Model_Course::getCoursesOptions();
     $this->template->set_global('subjects', $subjects, false);
     $this->template->set_global('courses', $courses, false);
     $this->template->title = "Books";
     $this->template->content = View::forge('site/book/edit');
 }