public function insertAction()
 {
     $message = array();
     $insertTokenNamespace = new Zend_Session_Namespace("INSERT_TOKEN");
     $topicId = $this->_getParam("tpid");
     if ($this->_getParam('submit')) {
         if ($topicId) {
             //Check is topic belongs to this user
             $topicTbl = new VC_DbTable_Store_Topic();
             $isBelongThisUser = $topicTbl->checkRecordExistMultiCond(array('id' => $topicId, 'user_id' => $this->userId));
             if (!$isBelongThisUser) {
                 throw new Zend_Exception("This topic does not belong you");
             }
             if ($this->_getParam('title') && $this->_getParam('content')) {
                 $insertData = array();
                 $insertData['title'] = $this->_getParam('title');
                 $insertData['content'] = $this->_getParam('content');
                 $insertData['root_link'] = $this->_getParam('root_link');
                 $insertData['topic_id'] = $topicId;
                 $insertData['user_id'] = $this->userId;
                 $insertData['post_date'] = date("Y-m-d");
                 $articleTbl = new VC_DbTable_Store_Article();
                 $articleId = $articleTbl->insert($insertData);
                 //Move files from upload tmp to file
                 $fileBus = new VC_Business_File();
                 $moveFile = $fileBus->moveTmpFileToFile($this->userId, $insertTokenNamespace->insertToken, $articleId);
                 unset($insertTokenNamespace->insertToken);
                 unset($insertTokenNamespace);
                 $this->_redirect("article/view/?tpid=" . $topicId);
             } else {
                 if (!$this->_getParam('title')) {
                     $message[] = "You have to input title";
                 }
                 if (!$this->_getParam('content')) {
                     $message[] = "You have to input content";
                 }
             }
             //$this->view->topicInfo = $topicTbl->findById($topicId);
         } else {
             $message[] = "You have to choose topic";
         }
     } else {
         //Create insert token
         $time = time();
         $insertTokenNamespace->insertToken = $time;
         $this->view->insertToken = $time;
     }
     $menuObj = new VC_Business_MenuFactory();
     $groupAndTopic = $menuObj->getGroupsAndTopicsOfUser($this->userId);
     //echo "<pre>"; var_dump($groupAndTopic); echo "</pre>"; die;
     $this->view->groupAndTopic = $groupAndTopic;
     $this->view->data = $this->_getAllParams();
     $this->view->message = $message;
     $this->view->insertToken = $insertTokenNamespace->insertToken;
     //Get all temp file uploaded of this article
     $uploadTmpTbl = new VC_DbTable_Common("upload_tmp", "id");
     $this->view->listUploadFiles = $uploadTmpTbl->fetchAll("user_id = " . $this->userId . " AND insert_token = '" . $insertTokenNamespace->insertToken . "'");
 }
 public function indexAction()
 {
     if ($this->userId == 0) {
         throw new VC_Exception("You have not permission");
     }
     $invidualDir = 'u_' . $this->userId;
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->getHelper('layout')->disableLayout();
     $uploadRootDir = ROOT_PATH . '/Sources/store/public/uploads';
     $uploadDir = $uploadRootDir . '/' . $invidualDir;
     if (!is_dir($uploadDir)) {
         mkdir($uploadDir, 0777);
         copy($uploadRootDir . "/index.html", $uploadDir . "/index.html");
     }
     $error = "";
     $msg = "";
     $config = VC_Config::getConfig();
     $maxFileSize = 0;
     $valid = false;
     if (isset($config['file']['upload']['size'])) {
         $maxFileSize = $config['file']['upload']['size'];
     } else {
         $error = "System error, please contact to administrator to resolve this problem, thank you very much";
     }
     $fileElementName = 'fileToUpload';
     $upload = new Zend_File_Transfer_Adapter_Http("http");
     $allowExt = explode(",", str_replace(" ", "", $config['file']['upload']['ext']));
     $upload->addValidator('Extension', true, $allowExt);
     $upload->addValidator('FilesSize', true, array('min' => '10B', 'max' => $maxFileSize));
     $upload->addValidator('Count', true, array('min' => 1, 'max' => 1));
     $messages = array();
     $files = $upload->getFileInfo();
     if ($upload->isValid() && $upload->isUploaded()) {
         reset($files);
         $fileInputName = key($files);
         //Get file extension
         $fileName = $files[$fileInputName]['name'];
         $ext = substr($fileName, strrpos($fileName, "."));
         $fileName = preg_replace("/[^a-z.0-9]/i", "", $_FILES[$fileInputName]['name']);
         $tempPath = $files[$fileInputName]['tmp_name'];
         $baseName = str_replace($ext, "", $fileName);
         //Name no ext
         if ("" == $fileName) {
             $fileName = time() . $ext;
         }
         if (file_exists($uploadDir . "/" . $fileName)) {
             $fileName = $baseName . "_" . time() . $ext;
         }
         if (move_uploaded_file($tempPath, $uploadDir . "/" . $fileName)) {
             $valid = true;
         } else {
             $error = "Could not upload file, please try again.";
         }
     }
     if ($valid) {
         //Save to upload_tmp in DB
         $uploadTmpTbl = new VC_DbTable_Common("upload_tmp", "id");
         $uploadTmpData = array();
         $uploadTmpData['file_name'] = $this->_getParam("file_name", $fileName);
         $uploadTmpData['user_id'] = $this->userId;
         $uploadTmpData['upload_date'] = date("Y-m-d");
         $insertTokenNamespace = new Zend_Session_Namespace("INSERT_TOKEN");
         $uploadTmpData['insert_token'] = $insertTokenNamespace->insertToken;
         $iconPath = VC_Business_File::getFileIcon($ext, '/uploads/' . $invidualDir . '/' . $fileName);
         $filePath = '/uploads/' . $invidualDir . '/' . $fileName;
         $uploadTmpData['icon_path'] = $iconPath;
         $uploadTmpData['file_path'] = $filePath;
         $uploadTmpTbl->insert($uploadTmpData);
         $result = array('error' => '', 'icon' => $iconPath, 'file' => $filePath, 'name' => $uploadTmpData['file_name']);
         echo Zend_Json_Encoder::encode($result, true);
     } else {
         $messages = $upload->getMessages();
         $result = array('error' => implode("\n", $messages) . "\n" . $error, 'file' => '');
         echo Zend_Json_Encoder::encode($result);
     }
 }