示例#1
0
文件: Topic.php 项目: kstep/pnut
 public function actionReorder($params)
 {
     $view = $this->ajaxView();
     $view->state = 'failed';
     if ($params['id'] && $params['targid']) {
         $otopic = new Model_Topic($this->getStorage(), $params['id']);
         $ttopic = new Model_Topic($this->getStorage(), $params['targid']);
         $view->id = $otopic->getId();
         $view->target_id = $ttopic->getId();
         $view->parent_id = $otopic->parent;
         if ($otopic->isLoaded() && $ttopic->isLoaded()) {
             $this->canPerform($otopic, 'edit');
             $view->state = 'reordered';
             $view->place = $params['place'];
             switch ($params['place']) {
                 case 'before':
                     $method = 'insertBefore';
                     break;
                 case 'after':
                     $method = 'insertAfter';
                     break;
                 default:
                     if ($otopic->isBefore($ttopic)) {
                         $method = 'insertAfter';
                         $view->place = 'after';
                     } else {
                         $method = 'insertBefore';
                         $view->place = 'before';
                     }
             }
             try {
                 $otopic->{$method}($ttopic);
             } catch (Exception $e) {
                 $view->state = 'failed';
                 $view->error = $e->getMessage();
             }
         } else {
             $view->error = 'Topic(s) not found.';
         }
     } else {
         $view->error = 'Topic IDs are not set.';
     }
     return $view;
 }