/** * * @param string $object * @param string $object_id * @param array $datas * @return Bridge_Api_Youtube */ public function update_element($object, $object_id, array $datas) { $required_fields = ["description", "category", "tags", "title", "privacy"]; foreach ($required_fields as $field) { if (!array_key_exists($field, $datas)) { throw new Bridge_Exception_ActionMandatoryField("Le paramétre " . $field . " est manquant"); } } if (!$this->is_valid_object_id($object_id)) { throw new Bridge_Exception_ActionInvalidObjectId($object_id); } switch ($object) { case "video": $videoEntry = $this->_api->getFullVideoEntry($object_id); if ($videoEntry->getEditLink() === null) { throw new Bridge_Exception_ActionForbidden("You cannot edit this video object"); } $videoEntry->setVideoDescription(trim($datas['description'])); $videoEntry->setVideoCategory(trim($datas['category'])); $videoEntry->setVideoTags(trim($datas['tags'])); $videoEntry->setVideoTitle(trim($datas['title'])); if ($datas["privacy"] == "public") { $videoEntry->setVideoPublic(); } else { $videoEntry->setVideoPrivate(); } $this->_api->updateEntry($videoEntry, $videoEntry->getEditLink()->getHref()); break; default: throw new Bridge_Exception_ElementUnknown('Unknown element ' . $object); break; } return $this; }
/** * Update an existing video's meta-data. * * @param string $newVideoTitle The new title for the video entry. * @param string $newVideoDescription The new description for the video entry. * @param string $newVideoCategory The new category for the video entry. * @param string $newVideoTags The new set of tags for the video entry (whitespace separated). * @param string $videoId The video id for the video to be edited. * @return void */ function editVideoData($newVideoTitle, $newVideoDescription, $newVideoCategory, $newVideoTags, $videoId) { $httpClient = getAuthSubHttpClient(); $youTubeService = new Zend_Gdata_YouTube($httpClient); $feed = $youTubeService->getVideoFeed('http://gdata.youtube.com/feeds/users/default/uploads'); $videoEntryToUpdate = null; foreach ($feed as $entry) { if ($entry->getVideoId() == $videoId) { $videoEntryToUpdate = $entry; break; } } if (!$videoEntryToUpdate instanceof Zend_Gdata_YouTube_VideoEntry) { print 'ERROR - Could not find a video entry with id ' . $videoId . '<br />' . printCacheWarning(); return; } try { $putUrl = $videoEntryToUpdate->getEditLink()->getHref(); } catch (Zend_Gdata_App_Exception $e) { print 'ERROR - Could not obtain video entry\'s edit link: ' . $e->getMessage() . '<br />'; return; } $videoEntryToUpdate->setVideoTitle($newVideoTitle); $videoEntryToUpdate->setVideoDescription($newVideoDescription); $videoEntryToUpdate->setVideoCategory($newVideoCategory); // convert tags from space separated to comma separated $videoTagsArray = explode(' ', trim($newVideoTags)); // strip out empty array elements foreach ($videoTagsArray as $key => $value) { if (strlen($value) < 2) { unset($videoTagsArray[$key]); } } $videoEntryToUpdate->setVideoTags(implode(', ', $videoTagsArray)); try { $updatedEntry = $youTubeService->updateEntry($videoEntryToUpdate, $putUrl); if (loggingEnabled()) { logMessage($httpClient->getLastRequest(), 'request'); logMessage($httpClient->getLastResponse()->getBody(), 'response'); } } catch (Zend_Gdata_App_HttpException $httpException) { print 'ERROR ' . $httpException->getMessage() . ' HTTP details<br /><textarea cols="100" rows="20">' . $httpException->getRawResponseBody() . '</textarea><br />' . '<a href="session_details.php">' . 'click here to view details of last request</a><br />'; return; } catch (Zend_Gdata_App_Exception $e) { print 'ERROR - Could not post video meta-data: ' . $e->getMessage(); return; } print 'Entry updated successfully.<br /><a href="#" onclick="' . 'ytVideoApp.presentFeed(\'search_owner\', 5, 0, \'none\'); ' . 'ytVideoApp.refreshSearchResults();" >' . '(refresh your video listing)</a><br />' . printCacheWarning(); }
function editAction() { if ($_SESSION['role_id']!=0) { $this->_redirect($this->view->baseUrl().'/../admin/uploadvideo'); } else { $this->view->headTitle('UNC - Admin website'); $this->view->headLink()->appendStylesheet($this->view->baseUrl().'/application/templates/admin/css/layout.css'); $this->view->headScript()->appendFile($this->view->baseUrl().'/application/templates/admin/js/jquery-1.7.2.min.js','text/javascript'); $this->view->headScript()->appendFile($this->view->baseUrl().'/application/templates/admin/js/hideshow.js','text/javascript'); $video_id = $this->_request->getParam('video_id'); $video_link = $this->mVideo->getVideoLinkById($video_id); $this->view->role = $this->role; $info = $this->mVideo->getVideoById($video_id); $form = $this->formInsert(); $this->view->listCategoryId = explode(",", $info['category_id']); $this->view->listCategory = $this->mVideo->getListVideoCategory(); if($this->role=="0" | ($this->role=="1" & $this->user_login==$info['user_upload'])) { $form->setAction($this->view->baseUrl().'/admin/uploadvideo/edit/video_id/'.$video_id); $form->getElement('link')->setValue($info['video_full_link']); $form->getElement('title')->setValue($info['video_title']); $form->getElement('description')->setValue($info['video_description']); $form->getElement('is_active')->setValue($info['is_active']); $this->view->form = $form; $this->view->title = 'Sửa thông tin video'; if($this->_request->isPost()) { $listCategoryId = ""; foreach($_POST['checkbox'] as $check) { if($listCategoryId == "") $listCategoryId = $check; else $listCategoryId = $listCategoryId.','.$check; } $listCategoryId = str_replace("", "", $listCategoryId); if($form->isValid($_POST)) { if($video_link != null) { $input = array( 'video_link' => $video_link, 'video_title' => $form->getValue('title'), 'video_description' => $form->getValue('description'), 'is_active' => $form->getValue('is_active'), 'category_id' => $listCategoryId ); if($this->mVideo->editVideo($input)) { $_SESSION['result']='Cập nhật thành công'; } $youtube_id = $this->mVideo->getYouTubeIdByVideoId($video_id); $account = $this->mVideo->getAccountByYoutubeId($youtube_id); $user = $account['youtube_username']; $pass = $account['password']; try { $authenticationURL= 'https://www.google.com/accounts/ClientLogin'; Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); $httpClient = Zend_Gdata_ClientLogin::getHttpClient( $username = $user, $password = $pass, $service = 'youtube', $client = null, $source = 'NIWApp', $loginToken = null, $loginCaptcha = null, $authenticationURL ); Zend_Loader::loadClass('Zend_Gdata_YouTube'); $yt = new Zend_Gdata_YouTube($httpClient, 'NIW-App-1.0', '661085061264.apps.googleusercontent.com', 'AI39si4UPUxw1FE5hqSi0Z-B-5z3PIVovbBWKmqiMI3cXJ7lhvjJcABV-eqimb2EeSiuedWK8N9OGOdB1namX1CqqYki8jEfSQ'); $video = $yt->getFullVideoEntry($input['video_link']); $putUrl = $video->getEditLink()->getHref(); $video->setVideoTitle($input['video_title']); $video->setVideoDescription($input['video_description']); $yt->updateEntry($video, $putUrl); } catch (Exception $ex) { echo $ex->getMessage(); exit; } $this->_redirect($this->view->baseUrl().'/../admin/uploadvideo'); } else { $input = $this->_getInput($form,$listCategoryId); if ($this->mVideo->updateVideo($video_id,$input)) { $_SESSION['result']='Cập nhật thành công'; $this->_redirect($this->view->baseUrl().'/../admin/uploadvideo'); } else { $_SESSION['result']='Cập nhật không thành công'; $this->_redirect($this->view->baseUrl().'/../admin/uploadvideo'); } } } else { $form->populate($_POST); } } } else { $_SESSION['result']='Bạn không có quyền sửa mục này !'; $this->_redirect($this->view->baseUrl().'/../admin/uploadvideo'); } } }