Example #1
0
 /**
  * Reorder screenshots
  *
  * @return     void
  */
 public function reorderTask()
 {
     // Incoming parent ID
     $pid = Request::getInt('pid', 0);
     $version = Request::getVar('version', 'dev');
     if (!$pid) {
         $this->setError(Lang::txt('COM_TOOLS_CONTRIBUTE_NO_ID'));
         $this->displayTask($pid, $version);
         return;
     }
     // get tool object
     $obj = new \Components\Tools\Tables\Tool($this->database);
     $this->_toolid = $obj->getToolIdFromResource($pid);
     // make sure user is authorized to go further
     if (!$this->check_access($this->_toolid)) {
         App::abort(403, Lang::txt('COM_TOOLS_ALERTNOTAUTH'));
         return;
     }
     // Get version id
     $objV = new \Components\Tools\Tables\Version($this->database);
     $vid = $objV->getVersionIdFromResource($pid, $version);
     if ($vid == NULL) {
         $this->setError(Lang::txt('COM_TOOLS_CONTRIBUTE_VERSION_ID_NOT_FOUND'));
         $this->displayTask($pid, $version);
         return;
     }
     // Incoming
     $file_toleft = Request::getVar('fl', '');
     $order_toleft = Request::getInt('ol', 1);
     $file_toright = Request::getVar('fr', '');
     $order_toright = Request::getInt('or', 0);
     $neworder_toleft = $order_toleft != 0 ? $order_toleft - 1 : 0;
     $neworder_toright = $order_toright + 1;
     // Instantiate a new screenshot object
     $ss = new \Components\Resources\Tables\Screenshot($this->database);
     $shot1 = $ss->getScreenshot($file_toright, $pid, $vid);
     $shot2 = $ss->getScreenshot($file_toleft, $pid, $vid);
     // Do we have information stored?
     if ($shot1) {
         $ss->saveScreenshot($file_toright, $pid, $vid, $neworder_toright);
     } else {
         $ss->saveScreenshot($file_toright, $pid, $vid, $neworder_toright, true);
     }
     if ($shot1) {
         $ss->saveScreenshot($file_toleft, $pid, $vid, $neworder_toleft);
     } else {
         $ss->saveScreenshot($file_toleft, $pid, $vid, $neworder_toleft, true);
     }
     $this->_rid = $pid;
     // Push through to the screenshot view
     $this->displayTask($pid, $version);
 }