public function save(Application_Model_Megavideo $megavideo)
 {
     $wrapper = new X_Megavideo($megavideo->getIdVideo());
     preg_match('#\\?v=(.+?)$#', $megavideo->getIdVideo(), $id);
     $megavideo->setIdVideo(@$id[1] ? $id[1] : $megavideo->getIdVideo());
     if ($megavideo->getLabel() == '' || is_null($megavideo->getLabel())) {
         $megavideo->setLabel(urldecode($wrapper->get('TITLE')));
     }
     if ($megavideo->getDescription() == '' || is_null($megavideo->getDescription())) {
         $megavideo->setDescription(urldecode($wrapper->get('DESCRIPTION')));
     }
     $data = array('idVideo' => $megavideo->getIdVideo(), 'description' => $megavideo->getDescription(), 'category' => $megavideo->getCategory(), 'label' => $megavideo->getLabel());
     if (null === ($id = $megavideo->getId())) {
         unset($data['id']);
         $this->getDbTable()->insert($data);
     } else {
         $this->getDbTable()->update($data, array('id = ?' => $id));
     }
 }
 /**
  * Restore backupped videos 
  * This is not a trigger of plugin API. It's called by Backupper plugin
  */
 function restoreItems($items)
 {
     //return parent::restoreItems($items);
     $models = Application_Model_MegavideoMapper::i()->fetchAll();
     // cleaning up all shares
     foreach ($models as $model) {
         Application_Model_MegavideoMapper::i()->delete($model->getId());
     }
     foreach (@$items['videos'] as $modelInfo) {
         $model = new Application_Model_Megavideo();
         $model->setIdVideo(@$modelInfo['idVideo'])->setDescription(@$modelInfo['description'])->setCategory(@$modelInfo['category'])->setLabel(@$modelInfo['label']);
         // i don't set id, or db adapter will try to update old data that i cleaned
         Application_Model_MegavideoMapper::i()->directSave($model);
     }
     return X_Env::_('p_megavideo_backupper_restoreditems') . ": " . count($items['videos']);
 }
 public function addAction()
 {
     $request = $this->getRequest();
     $form = new Application_Form_Megavideo();
     $form->setAction($this->_helper->url('add'));
     $isAjax = $request->getParam('isAjax', false);
     if ($this->getRequest()->isPost()) {
         if ($form->isValid($request->getPost())) {
             $idVideo = $form->getValue('idVideo');
             @(list($idVideo, $type) = explode('_', $idVideo));
             if ($type == 'd') {
                 // this is a megaupload->megavideo file. I need to find the real id
                 $idVideo = $this->_getRealMegavideoId($idVideo);
             }
             $video = new Application_Model_Megavideo($form->getValues());
             $video->setIdVideo($idVideo);
             // Nel caso in cui sia un edit request
             if (!is_null($request->getParam('id', null))) {
                 $video->setId($request->getParam('id', null));
             }
             $mapper = Application_Model_MegavideoMapper::i();
             $mapper->save($video);
             if ($isAjax) {
                 header('Content-Type:text/plain');
                 echo '1';
                 $this->_helper->viewRenderer->setNoRender(true);
                 $this->_helper->layout->disableLayout();
                 return;
             } else {
                 //return $this->_helper->redirector('index');
                 $this->_helper->redirector('category', 'megavideo', 'default', array('id' => urlencode($video->getCategory())));
             }
         }
     }
     if ($isAjax) {
         header('Content-Type:text/plain');
         echo '0';
         $this->_helper->viewRenderer->setNoRender(true);
         $this->_helper->layout->disableLayout();
     } else {
         $this->view->form = $form;
     }
 }