Example #1
0
 public function update()
 {
     if (!$this->has_post()) {
         return redirect_message(array('admin', $this->get_class(), $this->promo->id, 'edit'), array('_flash_message' => '非 POST 方法,錯誤的頁面請求。'));
     }
     $posts = OAInput::post();
     $cover = OAInput::file('cover');
     if (!((string) $this->promo->cover || $cover)) {
         return redirect_message(array('admin', $this->get_class(), $this->promo->id, 'edit'), array('_flash_message' => '請選擇圖片(gif、jpg、png)檔案!', 'posts' => $posts));
     }
     if ($msg = $this->_validation_posts($posts)) {
         return redirect_message(array('admin', $this->get_class(), $this->promo->id, 'edit'), array('_flash_message' => $msg, 'posts' => $posts));
     }
     if ($columns = array_intersect_key($posts, $this->promo->table()->columns)) {
         foreach ($columns as $column => $value) {
             $this->promo->{$column} = $value;
         }
     }
     $promo = $this->promo;
     $update = Promo::transaction(function () use($promo, $cover) {
         if (!$promo->save()) {
             return false;
         }
         if ($cover && !$promo->cover->put($cover)) {
             return false;
         }
         return true;
     });
     if (!$update) {
         return redirect_message(array('admin', $this->get_class(), $this->promo->id, 'edit'), array('_flash_message' => '更新失敗!', 'posts' => $posts));
     }
     return redirect_message(array('admin', $this->get_class()), array('_flash_message' => '更新成功!'));
 }
 public function __construct()
 {
     parent::__construct();
     if (!Cfg::system('delay_job', 'is_check') || !(($value = OAInput::post(Cfg::system('delay_job', 'key'))) !== null && $value == md5(Cfg::system('delay_job', 'value')))) {
         show_error('The delay job key or value error! Please confirm your program again.');
     }
 }
Example #3
0
 public function ckeditors_upload_image()
 {
     $funcNum = $_GET['CKEditorFuncNum'];
     $upload = OAInput::file('upload');
     if (!($upload && verifyCreateOrm($img = CkeditorPicture::create(array('name' => ''))) && $img->name->put($upload, true))) {
         echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction ({$funcNum}, '', '上傳失敗!');</script>";
     } else {
         echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction ({$funcNum}, '" . $img->name->url('400h') . "', '上傳成功!');</script>";
     }
 }
Example #4
0
 public function pv()
 {
     if (!(($id = OAInput::post('id')) && ($class = OAInput::post('class')) && class_exists($class) && in_array($class, array('Work', 'Article')))) {
         return show_404();
     }
     if (!($obj = $class::find_by_id($id, array('select' => 'id, pv')))) {
         return $this->output_json(array('status' => false));
     }
     $obj->pv += 1;
     $update = $class::transaction(function () use($obj) {
         return $obj->save();
     });
     if (!$update) {
         return $this->output_json(array('status' => true, 'pv' => $obj->pv - 1));
     }
     return $this->output_json(array('status' => true, 'pv' => $obj->pv));
 }
Example #5
0
 public function create()
 {
     if (!$this->has_post()) {
         return redirect_message(array($this->get_class()), array('_flash_message' => '非 POST 方法,錯誤的頁面請求。'));
     }
     $posts = OAInput::post();
     if ($msg = $this->_validation_posts($posts)) {
         return redirect_message(array($this->get_class()), array('_flash_message' => $msg, 'posts' => $posts));
     }
     $contact = null;
     $create = Contact::transaction(function () use($posts, &$contact) {
         return verifyCreateOrm($contact = Contact::create(array_intersect_key($posts, Contact::table()->columns)));
     });
     if (!($create && $contact)) {
         return redirect_message(array($this->get_class()), array('_flash_message' => '新增失敗,系統可能在維修,請稍候再嘗試一次!', 'posts' => $posts));
     }
     delay_job('contacts', 'mail', array('id' => $contact->id));
     return redirect_message(array($this->get_class()), array('_flash_message' => '新增成功,已經收到您的建議,我們會儘快回覆您!'));
 }
Example #6
0
 public function mail()
 {
     if (!(($id = OAInput::post('id')) && ($contact = Contact::find_by_id($id, array('select' => 'name, email, message'))))) {
         return false;
     }
     if (!(($admin_ids = array_unique(column_array(UserRole::find('all', array('select' => 'user_id', 'conditions' => array('name IN (?)', array('root', 'contact_manager')))), 'user_id'))) && ($admins = User::find('all', array('select' => 'name, email', 'conditions' => array('id IN (?)', $admin_ids)))))) {
         return false;
     }
     $this->load->library('OAMail');
     $email = $contact->email;
     $name = $contact->name;
     $message = $contact->message;
     $mail = OAMail::create()->setSubject('[系統通知] 官網有新的留言!')->setBody("<article style='font-size:15px;line-height:22px;color:rgb(85,85,85)'><p style='margin-bottom:0'>Hi 管理員,</p><section style='padding:5px 20px'><p>剛剛有一個訪客在您的「聯絡我們」留言囉,以下他所留下的聯絡資料:</p><table style='width:100%;border-collapse:collapse'><tbody><tr><th style='width:100px;text-align:right;padding:11px 5px 10px 0;border-bottom:1px dashed rgba(200,200,200,1)'>E-Mail:</th><td style='text-align:left;text-align:left;padding:11px 0 10px 5px;border-bottom:1px dashed rgba(200,200,200,1)'>" . $email . "</td></tr><tr><th style='width:100px;text-align:right;padding:11px 5px 10px 0;border-bottom:1px dashed rgba(200,200,200,1)'>稱 呼:</th><td style='text-align:left;text-align:left;padding:11px 0 10px 5px;border-bottom:1px dashed rgba(200,200,200,1)'>" . $name . "</td></tr><tr><th style='width:100px;text-align:right;padding:11px 5px 10px 0;border-bottom:1px dashed rgba(200,200,200,1)'>內容:</th><td style='text-align:left;text-align:left;padding:11px 0 10px 5px;border-bottom:1px dashed rgba(200,200,200,1)'>" . $message . "</td></tr></tbody></table><br/><p style='text-align:right'>如果需要詳細列表,可以置<a href='" . base_url('admin', 'contacts') . "' style='color:rgba(96,156,255,1);margin:0 2px'>管理後台</a>檢閱。</p></section></article>");
     foreach ($admins as $admin) {
         $mail->addTo($admin->email, $admin->name);
     }
     $mail->send();
     $mail = OAMail::create()->setSubject('[宙思設計] 留言成功通知!')->setBody("<article style='font-size:15px;line-height:22px;color:rgb(85, 85, 85)'><p style='margin-bottom:0'>Hi " . $name . ",</p><section style='padding:5px 20px'><p>您好,我們是<a href='http://www.zeusdesign.com.tw/' style='color:rgba(96, 156, 255, 1);margin:0 2px'>宙思設計</a>團隊,我們已經收到您的留言囉。</p><p>我們稍後會有專人主動與您聯絡或回信給您!</p><p>若是尚未得到回覆,您可以至<a href='https://www.facebook.com/ZeusDesignStudio/' style='color:rgba(96, 156, 255, 1);margin:0 2px'>宙思設計臉書粉絲專頁</a>留言,或來電(02-2941-6737)聯絡我們。</p><p style='text-align:right'>- <a href='http://www.zeusdesign.com.tw/' style='color:rgba(96, 156, 255, 1);margin:0 2px'>宙思設計</a>團隊感謝您。</p></section></article>")->addTo($email, $name);
     $mail->send();
 }
Example #7
0
 public function update()
 {
     if (!$this->has_post()) {
         return redirect_message(array('admin', $this->get_class(), $this->user->id, 'edit'), array('_flash_message' => '非 POST 方法,錯誤的頁面請求。'));
     }
     $posts = OAInput::post();
     if ($msg = $this->_validation_posts($posts)) {
         return redirect_message(array('admin', $this->get_class(), $this->user->id, 'edit'), array('_flash_message' => $msg, 'posts' => $posts));
     }
     if ($columns = array_intersect_key($posts, $this->user->table()->columns)) {
         foreach ($columns as $column => $value) {
             $this->user->{$column} = $value;
         }
     }
     $user = $this->user;
     $update = user::transaction(function () use($user) {
         return $user->save();
     });
     if (!$update) {
         return redirect_message(array('admin', $this->get_class(), $this->user->id, 'edit'), array('_flash_message' => '更新失敗!', 'posts' => $posts));
     }
     $ori_keys = column_array($user->roles, 'name');
     if (($del_keys = array_diff($ori_keys, $posts['roles'])) && ($roles = UserRole::find('all', array('select' => 'id', 'conditions' => array('user_id = ? AND name IN (?)', $user->id, $del_keys))))) {
         foreach ($roles as $role) {
             UserRole::transaction(function () use($role) {
                 return $role->destroy();
             });
         }
     }
     if ($add_keys = array_diff($posts['roles'], $ori_keys)) {
         foreach ($add_keys as $add_key) {
             UserRole::transaction(function () use($add_key, $user) {
                 return verifyCreateOrm(UserRole::create(Array_intersect_key(array('name' => $add_key, 'user_id' => $user->id), UserRole::table()->columns)));
             });
         }
     }
     return redirect_message(array('admin', $this->get_class()), array('_flash_message' => '更新成功!'));
 }
Example #8
0
 public function update()
 {
     if (!$this->has_post()) {
         return redirect_message(array('admin', $this->get_class(), $this->tag->id, 'edit'), array('_flash_message' => '非 POST 方法,錯誤的頁面請求。'));
     }
     $posts = OAInput::post();
     if ($msg = $this->_validation_posts($posts)) {
         return redirect_message(array('admin', $this->get_class(), $this->tag->id, 'edit'), array('_flash_message' => $msg, 'posts' => $posts));
     }
     if ($columns = array_intersect_key($posts, $this->tag->table()->columns)) {
         foreach ($columns as $column => $value) {
             $this->tag->{$column} = $value;
         }
     }
     $tag = $this->tag;
     $update = InvoiceTag::transaction(function () use($tag) {
         return $tag->save();
     });
     if (!$update) {
         return redirect_message(array('admin', $this->get_class(), $this->tag->id, 'edit'), array('_flash_message' => '更新失敗!', 'posts' => $posts));
     }
     return redirect_message(array('admin', $this->get_class()), array('_flash_message' => '更新成功!'));
 }
Example #9
0
 public function is_visibled($id = 0)
 {
     if (!($id && ($article = Article::find_by_id($id, array('select' => 'id, is_visibled, updated_at'))))) {
         return $this->output_json(array('status' => false, 'message' => '當案不存在,或者您的權限不夠喔!'));
     }
     $posts = OAInput::post();
     if ($msg = $this->_validation_is_visibled_posts($posts)) {
         return $this->output_json(array('status' => false, 'message' => $msg, 'content' => Article::$visibleNames[$article->is_visibled]));
     }
     if ($columns = array_intersect_key($posts, $article->table()->columns)) {
         foreach ($columns as $column => $value) {
             $article->{$column} = $value;
         }
     }
     $update = Article::transaction(function () use($article) {
         return $article->save();
     });
     if (!$update) {
         return $this->output_json(array('status' => false, 'message' => '更新失敗!', 'content' => Article::$visibleNames[$article->is_visibled]));
     }
     $this->_clean_cell($article);
     return $this->output_json(array('status' => true, 'message' => '更新成功!', 'content' => Article::$visibleNames[$article->is_visibled]));
 }
Example #10
0
 public function is_replied($id = 0)
 {
     if (!($id && ($contact = Contact::find_by_id($id, array('select' => 'id, is_replied, updated_at'))))) {
         return $this->output_json(array('status' => false, 'message' => '當案不存在,或者您的權限不夠喔!'));
     }
     $posts = OAInput::post();
     if ($msg = $this->_validation_is_replied_posts($posts)) {
         return $this->output_json(array('status' => false, 'message' => $msg, 'content' => Contact::$replyNames[$contact->is_replied]));
     }
     if ($columns = array_intersect_key($posts, $contact->table()->columns)) {
         foreach ($columns as $column => $value) {
             $contact->{$column} = $value;
         }
     }
     $update = Contact::transaction(function () use($contact) {
         return $contact->save();
     });
     if ($update) {
         return $this->output_json(array('status' => true, 'message' => '更新成功!', 'content' => Contact::$replyNames[$contact->is_replied]));
     } else {
         return $this->output_json(array('status' => false, 'message' => '更新失敗!', 'content' => Contact::$replyNames[$contact->is_replied]));
     }
 }
Example #11
0
 public function update()
 {
     if (!$this->has_post()) {
         return redirect_message(array('admin', 'work_tags', $this->tag->id, 'works', $this->work->id, 'edit'), array('_flash_message' => '非 POST 方法,錯誤的頁面請求。'));
     }
     $posts = OAInput::post();
     $cover = OAInput::file('cover');
     if (!((string) $this->work->cover || $cover)) {
         return redirect_message(array('admin', 'work_tags', $this->tag->id, 'works', $this->work->id, 'edit'), array('_flash_message' => '請選擇圖片(gif、jpg、png)檔案!', 'posts' => $posts));
     }
     if ($msg = $this->_validation_posts($posts)) {
         return redirect_message(array('admin', 'work_tags', $this->tag->id, 'works', $this->work->id, 'edit'), array('_flash_message' => $msg, 'posts' => $posts));
     }
     if ($columns = array_intersect_key($posts, $this->work->table()->columns)) {
         foreach ($columns as $column => $value) {
             $this->work->{$column} = $value;
         }
     }
     $work = $this->work;
     $update = WorkTag::transaction(function () use($work, $cover) {
         if (!$work->save()) {
             return false;
         }
         if ($cover && !$work->cover->put($cover)) {
             return false;
         }
         return true;
     });
     if (!$update) {
         return redirect_message(array('admin', 'work_tags', $this->tag->id, 'works', $this->work->id, 'edit'), array('_flash_message' => '更新失敗!', 'posts' => $posts));
     }
     if (($del_ids = array_diff(column_array($work->pictures, 'id'), $posts['pic_ids'])) && ($pictures = WorkPicture::find('all', array('select' => 'id, name', 'conditions' => array('id IN (?)', $del_ids))))) {
         foreach ($pictures as $picture) {
             WorkPicture::transaction(function () use($picture) {
                 return $picture->destroy();
             });
         }
     }
     if ($pictures = OAInput::file('pictures[]')) {
         foreach ($pictures as $picture) {
             WorkPicture::transaction(function () use($picture, $work) {
                 return verifyCreateOrm($pic = WorkPicture::create(array_intersect_key(array_merge($picture, array('work_id' => $work->id)), WorkPicture::table()->columns))) && $pic->name->put($picture);
             });
         }
     }
     $clean_blocks = WorkBlock::transaction(function () use($work) {
         foreach ($work->blocks as $block) {
             if (!$block->destroy()) {
                 return false;
             }
         }
         return true;
     });
     if ($blocks = $posts['blocks']) {
         foreach ($blocks as $block) {
             if (!($b = null) && WorkBlock::transaction(function () use($block, $work, &$b) {
                 return verifyCreateOrm($b = WorkBlock::create(array_intersect_key(array_merge($block, array('work_id' => $work->id)), WorkBlock::table()->columns)));
             })) {
                 if (($items = $block['items']) && $b) {
                     foreach ($items as $item) {
                         WorkBlockItem::transaction(function () use($item, $b) {
                             return verifyCreateOrm(WorkBlockItem::create(array_intersect_key(array_merge($item, array('work_block_id' => $b->id)), WorkBlockItem::table()->columns)));
                         });
                     }
                 }
             }
         }
     }
     return redirect_message(array('admin', 'work_tags', $this->tag->id, 'works', $this->work->id, 'edit'), array('_flash_message' => '更新成功!'));
 }