示例#1
0
 public static function importYtb($ytbLink, $folder, &$errorMsg = '')
 {
     $ytbCode = str_replace("&feature=related", "", PhocaGalleryYoutube::getCode(strip_tags($ytbLink)));
     $ytb = array();
     $ytb['title'] = '';
     $ytb['desc'] = '';
     $ytb['filename'] = '';
     $ytb['link'] = strip_tags($ytbLink);
     if (!function_exists("curl_init")) {
         $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_NOT_LOADED_CURL');
         return false;
     } else {
         if ($ytbCode == '') {
             $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_URL_NOT_CORRECT');
             return false;
         } else {
             // Data
             $cUrl = curl_init("http://gdata.youtube.com/feeds/api/videos/" . strip_tags($ytbCode));
             curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
             $xml = curl_exec($cUrl);
             curl_close($cUrl);
             $xml = str_replace('<media:', '<phcmedia', $xml);
             $xml = str_replace('</media:', '</phcmedia', $xml);
             $data = JFactory::getXML($xml, false);
             //Title
             if (isset($data->title)) {
                 $ytb['title'] = (string) $data->title;
             }
             if ($ytb['title'] == '' && isset($data->phcmediagroup->phcmediatitle)) {
                 $ytb['title'] = (string) $data->phcmediagroup->phcmediatitle;
             }
             if (isset($data->phcmediagroup->phcmediadescription)) {
                 $ytb['desc'] = (string) $data->phcmediagroup->phcmediadescription;
             }
             // Thumbnail
             if (isset($data->phcmediagroup->phcmediathumbnail[0]['url'])) {
                 $cUrl = curl_init(strip_tags((string) $data->phcmediagroup->phcmediathumbnail[0]['url']));
                 curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
                 $img = curl_exec($cUrl);
                 curl_close($cUrl);
             }
             if ($img != '') {
                 $cUrl = curl_init("http://img.youtube.com/vi/" . strip_tags($ytbCode) . "/0.jpg");
                 curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
                 $img = curl_exec($cUrl);
                 curl_close($cUrl);
             }
             $ytb['filename'] = $folder . strip_tags($ytbCode) . '.jpg';
             if (JFile::exists(JPATH_ROOT . DS . 'images' . DS . 'phocagallery' . DS . $ytb['filename'], $img)) {
                 $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_VIDEO_EXISTS');
                 return false;
             }
             if (!JFile::write(JPATH_ROOT . DS . 'images' . DS . 'phocagallery' . DS . $ytb['filename'], $img)) {
                 $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_WRITE_IMAGE');
                 return false;
             }
         }
     }
     return $ytb;
 }
示例#2
0
 function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $document =& JFactory::getDocument();
     $this->params = $app->getParams();
     $user =& JFactory::getUser();
     $var['slideshow'] = JRequest::getVar('phocaslideshow', 0, '', 'int');
     $var['download'] = JRequest::getVar('phocadownload', 0, '', 'int');
     $uri =& JFactory::getURI();
     $this->tmpl['action'] = $uri->toString();
     $path = PhocaGalleryPath::getPath();
     $neededAccessLevels = PhocaGalleryAccess::getNeededAccessLevels();
     $access = PhocaGalleryAccess::isAccess($user->authorisedLevels(), $neededAccessLevels);
     // Information from the plugin - window is displayed after plugin action
     $get = array();
     $get['detail'] = JRequest::getVar('detail', '', 'get', 'string');
     $get['buttons'] = JRequest::getVar('buttons', '', 'get', 'string');
     $get['ratingimg'] = JRequest::getVar('ratingimg', '', 'get', 'string');
     $this->tmpl['picasa_correct_width_l'] = (int) $this->params->get('large_image_width', 640);
     $this->tmpl['picasa_correct_height_l'] = (int) $this->params->get('large_image_height', 480);
     $this->tmpl['enablecustomcss'] = $this->params->get('enable_custom_css', 0);
     $this->tmpl['customcss'] = $this->params->get('custom_css', '');
     $this->tmpl['enable_multibox'] = $this->params->get('enable_multibox', 0);
     $this->tmpl['multibox_height'] = (int) $this->params->get('multibox_height', 560);
     $this->tmpl['multibox_width'] = (int) $this->params->get('multibox_width', 980);
     $this->tmpl['multibox_map_height'] = (int) $this->params->get('multibox_map_height', 300);
     $this->tmpl['multibox_map_width'] = (int) $this->params->get('multibox_map_width', 280);
     $this->tmpl['multibox_height_overflow'] = (int) $this->tmpl['multibox_height'] - 10;
     //padding
     $this->tmpl['multibox_left_bgcolor'] = $this->params->get('multibox_left_bgcolor', '#000000');
     $this->tmpl['multibox_right_bgcolor'] = $this->params->get('multibox_right_bgcolor', '#ffffff');
     $this->tmpl['multibox_comments_width'] = $this->params->get('multibox_comments_width', 300);
     $this->tmpl['multibox_comments_height'] = $this->params->get('multibox_comments_height', 600);
     $this->tmpl['multibox_thubms_box_width'] = $this->params->get('multibox_thubms_box_width', 300);
     $this->tmpl['multibox_thubms_count'] = $this->params->get('multibox_thubms_count', 4);
     $this->tmpl['large_image_width'] = $this->params->get('large_image_width', 640);
     $this->tmpl['large_image_height'] = $this->params->get('large_image_height', 640);
     $this->tmpl['multibox_fixed_cols'] = $this->params->get('multibox_fixed_cols', 1);
     $this->tmpl['display_multibox'] = $this->params->get('display_multibox', array(1, 2));
     // CSS
     JHtml::stylesheet('components/com_phocagallery/assets/phocagallery.css');
     if ($this->tmpl['enablecustomcss'] == 1) {
         JHtml::stylesheet('components/com_phocagallery/assets/phocagallerycustom.css');
         PhocaGalleryRenderFront::displayCustomCSS($this->tmpl['customcss']);
     }
     // Plugin information
     $this->tmpl['detailwindow'] = $this->params->get('detail_window', 0);
     if (isset($get['detail']) && $get['detail'] != '') {
         $this->tmpl['detailwindow'] = $get['detail'];
     }
     // Plugin information
     $this->tmpl['detailbuttons'] = $this->params->get('detail_buttons', 1);
     if (isset($get['buttons']) && $get['buttons'] != '') {
         $this->tmpl['detailbuttons'] = $get['buttons'];
     }
     // Close and Reload links (for different window types)
     $close = PhocaGalleryRenderFront::renderCloseReloadDetail($this->tmpl['detailwindow']);
     $this->tmpl['detailwindowclose'] = $close['detailwindowclose'];
     $this->tmpl['detailwindowreload'] = $close['detailwindowreload'];
     $this->tmpl['displaydescriptiondetail'] = $this->params->get('display_description_detail', 0);
     $this->tmpl['displaytitleindescription'] = $this->params->get('display_title_description', 0);
     $this->tmpl['descriptiondetailheight'] = $this->params->get('description_detail_height', 16);
     $this->tmpl['fontsizedesc'] = $this->params->get('font_size_desc', 11);
     $this->tmpl['fontcolordesc'] = $this->params->get('font_color_desc', '#333333');
     $this->tmpl['detailwindowbackgroundcolor'] = $this->params->get('detail_window_background_color', '#ffffff');
     $this->tmpl['descriptionlightboxfontcolor'] = $this->params->get('description_lightbox_font_color', '#ffffff');
     $this->tmpl['descriptionlightboxbgcolor'] = $this->params->get('description_lightbox_bg_color', '#000000');
     $this->tmpl['descriptionlightboxfontsize'] = $this->params->get('description_lightbox_font_size', 12);
     $this->tmpl['displayratingimg'] = $this->params->get('display_rating_img', 0);
     $this->tmpl['displayicondownload'] = $this->params->get('display_icon_download', 0);
     $this->tmpl['externalcommentsystem'] = $this->params->get('external_comment_system', 0);
     $this->tmpl['largewidth'] = $this->params->get('large_image_width', 640);
     $this->tmpl['largeheight'] = $this->params->get('large_image_height', 480);
     $this->tmpl['boxlargewidth'] = $this->params->get('front_modal_box_width', 680);
     $this->tmpl['boxlargeheight'] = $this->params->get('front_modal_box_height', 560);
     $this->tmpl['slideshow_delay'] = $this->params->get('slideshow_delay', 3000);
     $this->tmpl['slideshow_pause'] = $this->params->get('slideshow_pause', 2500);
     $this->tmpl['slideshowrandom'] = $this->params->get('slideshow_random', 0);
     $this->tmpl['slideshow_description'] = $this->params->get('slideshow_description', 'peekaboo');
     $this->tmpl['gallerymetakey'] = $this->params->get('gallery_metakey', '');
     $this->tmpl['gallerymetadesc'] = $this->params->get('gallery_metadesc', '');
     $this->tmpl['altvalue'] = $this->params->get('alt_value', 1);
     $this->tmpl['enablecustomcss'] = $this->params->get('enable_custom_css', 0);
     $this->tmpl['customcss'] = $this->params->get('custom_css', '');
     $this->tmpl['display_tags_links'] = $this->params->get('display_tags_links', 0);
     $this->tmpl['ytb_display'] = $this->params->get('ytb_display', 0);
     $paramsFb = PhocaGalleryFbSystem::getCommentsParams($this->params->get('fb_comment_user_id', ''));
     // Facebook
     $this->tmpl['fb_comment_app_id'] = isset($paramsFb['fb_comment_app_id']) ? $paramsFb['fb_comment_app_id'] : '';
     $this->tmpl['fb_comment_width'] = isset($paramsFb['fb_comment_width']) ? $paramsFb['fb_comment_width'] : 550;
     $this->tmpl['fb_comment_lang'] = isset($paramsFb['fb_comment_lang']) ? $paramsFb['fb_comment_lang'] : 'en_US';
     $this->tmpl['fb_comment_count'] = isset($paramsFb['fb_comment_count']) ? $paramsFb['fb_comment_count'] : '';
     $oH = '';
     if ($this->tmpl['enable_multibox'] == 1) {
         $this->tmpl['fb_comment_width'] = $this->tmpl['multibox_comments_width'];
         $oH = 'overflow:hidden;';
     }
     // CSS
     JHtml::stylesheet('components/com_phocagallery/assets/phocagallery.css');
     if ($this->tmpl['enablecustomcss'] == 1) {
         JHtml::stylesheet('components/com_phocagallery/assets/phocagallerycustom.css');
         if ($this->tmpl['customcss'] != '') {
             $document->addCustomTag("\n <style type=\"text/css\"> \n" . $this->escape(strip_tags($this->tmpl['customcss'])) . "\n </style> \n");
         }
     }
     //Multibox displaying
     $this->tmpl['mb_title'] = PhocaGalleryUtils::isEnabledMultiboxFeature(1);
     $this->tmpl['mb_desc'] = PhocaGalleryUtils::isEnabledMultiboxFeature(2);
     $this->tmpl['mb_uploaded_by'] = PhocaGalleryUtils::isEnabledMultiboxFeature(3);
     $this->tmpl['mb_rating'] = PhocaGalleryUtils::isEnabledMultiboxFeature(4);
     $this->tmpl['mb_maps'] = PhocaGalleryUtils::isEnabledMultiboxFeature(5);
     $this->tmpl['mb_tags'] = PhocaGalleryUtils::isEnabledMultiboxFeature(6);
     $this->tmpl['mb_comments'] = PhocaGalleryUtils::isEnabledMultiboxFeature(7);
     $this->tmpl['mb_thumbs'] = PhocaGalleryUtils::isEnabledMultiboxFeature(8);
     // No bar in Detail View
     if ($this->tmpl['detailwindow'] == 7) {
     } else {
         $document->addCustomTag("<style type=\"text/css\"> \n" . " html, body, .contentpane, #all, #main {" . $oH . "background:" . $this->tmpl['detailwindowbackgroundcolor'] . ";padding:0px !important;margin:0px !important; width: 100% !important; max-width: 100% !important;} \n" . " center, table {background:" . $this->tmpl['detailwindowbackgroundcolor'] . ";} \n" . " #sbox-window {background-color:#fff;padding:5px} \n" . "body {min-width:100%} \n" . ".rt-container {width:100%} \n" . " </style> \n");
     }
     // Download from the detail view which is not in the popupbox
     if ($var['download'] == 2) {
         $this->tmpl['displayicondownload'] = 2;
     }
     // Plugin Information
     if (isset($get['ratingimg']) && $get['ratingimg'] != '') {
         $this->tmpl['displayratingimg'] = $get['ratingimg'];
     }
     // Model
     $model =& $this->getModel();
     $item = $model->getData();
     //Multibox Thumbnails
     $this->tmpl['mb_thumbs_data'] = '';
     if ($this->tmpl['mb_thumbs'] == 1) {
         // if we get item variable, we have rights to load the thumbnails, this is why we checking it
         if (isset($item->id) && isset($item->catid) && (int) $item->id > 0 && (int) $item->catid > 0) {
             $this->tmpl['mb_thumbs_data'] = $model->getThumbnails((int) $item->id, (int) $item->catid, (int) $item->ordering);
         }
     }
     // User Avatar
     $this->tmpl['useravatarimg'] = '';
     $this->tmpl['useravatarmiddle'] = '';
     $userAvatar = PhocaGalleryUser::getUserAvatar($item->userid);
     if ($userAvatar) {
         $pathAvatarAbs = $path->avatar_abs . 'thumbs' . DS . 'phoca_thumb_s_' . $userAvatar->avatar;
         $pathAvatarRel = $path->avatar_rel . 'thumbs/phoca_thumb_s_' . $userAvatar->avatar;
         if (JFile::exists($pathAvatarAbs)) {
             $sIH = $this->params->get('small_image_height', 50);
             $sIHR = @getImageSize($pathAvatarAbs);
             if (isset($sIHR[1])) {
                 $sIH = $sIHR[1];
             }
             if ((int) $sIH > 0) {
                 $this->tmpl['useravatarmiddle'] = (int) $sIH / 2 - 10;
             }
             $this->tmpl['useravatarimg'] = '<img src="' . JURI::base(true) . '/' . $pathAvatarRel . '?imagesid=' . md5(uniqid(time())) . '" alt="" />';
         }
     }
     // Access check - don't display the image if you have no access to this image (if user add own url)
     // USER RIGHT - ACCESS - - - - - - - - - -
     $rightDisplay = 0;
     if (!empty($item)) {
         $rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $item->cataccessuserid, $item->cataccess, $user->authorisedLevels(), $user->get('id', 0), 0);
     }
     if ((int) $rightDisplay == 0) {
         echo $close['html'];
         //Some problem with cache - Joomla! return this message if there is no reason for do it.
         //$this->tmpl['pl']		= 'index.php?option=com_users&view=login&return='.base64_encode($uri->toString());
         //$app->redirect(JRoute::_($this->tmpl['pl'], false), JText::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
         exit;
     }
     // - - - - - - - - - - - - - - - - - - - -
     phocagalleryimport('phocagallery.image.image');
     phocagalleryimport('phocagallery.render.renderdetailbutton');
     // Javascript Slideshow buttons
     $detailButton = new PhocaGalleryRenderDetailButton();
     if ($this->tmpl['enable_multibox'] == 1) {
         $detailButton->setType('multibox');
     }
     $item->reloadbutton = $detailButton->getReload($item->catslug, $item->slug);
     $item->closebutton = $detailButton->getClose($item->catslug, $item->slug);
     $item->closetext = $detailButton->getCloseText($item->catslug, $item->slug);
     $item->nextbutton = $detailButton->getNext((int) $item->catid, (int) $item->id, (int) $item->ordering);
     $item->nextbuttonhref = $detailButton->getNext((int) $item->catid, (int) $item->id, (int) $item->ordering, 1);
     $item->prevbutton = $detailButton->getPrevious((int) $item->catid, (int) $item->id, (int) $item->ordering);
     $slideshowData = $detailButton->getJsSlideshow((int) $item->catid, (int) $item->id, (int) $var['slideshow'], $item->catslug, $item->slug);
     $item->slideshowbutton = $slideshowData['icons'];
     $item->slideshowfiles = $slideshowData['files'];
     $item->slideshow = $var['slideshow'];
     $item->download = $var['download'];
     // ALT VALUE
     $altValue = PhocaGalleryRenderFront::getAltValue($this->tmpl['altvalue'], $item->title, $item->description, $item->metadesc);
     $item->altvalue = $altValue;
     // Get file thumbnail or No Image
     $item->filenameno = $item->filename;
     $item->filename = PhocaGalleryFile::getTitleFromFile($item->filename, 1);
     $item->filesize = PhocaGalleryFile::getFileSize($item->filenameno);
     $realImageSize = '';
     $extImage = PhocaGalleryImage::isExtImage($item->extid);
     if ($extImage) {
         $item->extl = $item->extl;
         $item->exto = $item->exto;
         $realImageSize = PhocaGalleryImage::getRealImageSize($item->extl, '', 1);
         $item->imagesize = PhocaGalleryImage::getImageSize($item->exto, 1, 1);
         if ($item->extw != '') {
             $extw = explode(',', $item->extw);
             $item->extw = $extw[0];
         }
         $correctImageRes = PhocaGalleryPicasa::correctSizeWithRate($item->extw, $item->exth, $this->tmpl['picasa_correct_width_l'], $this->tmpl['picasa_correct_height_l']);
         $item->linkimage = JHtml::_('image', $item->extl, $item->altvalue, array('width' => $correctImageRes['width'], 'height' => $correctImageRes['height'], 'class' => 'pg-detail-image'));
         $item->realimagewidth = $correctImageRes['width'];
         $item->realimageheight = $correctImageRes['height'];
     } else {
         $item->linkthumbnailpath = PhocaGalleryImageFront::displayCategoryImageOrNoImage($item->filenameno, 'large');
         $item->linkimage = JHtml::_('image', $item->linkthumbnailpath, $item->altvalue, array('class' => 'pg-detail-image'));
         $realImageSize = PhocaGalleryImage::getRealImageSize($item->filenameno);
         $item->imagesize = PhocaGalleryImage::getImageSize($item->filenameno, 1);
         if (isset($realImageSize['w']) && isset($realImageSize['h'])) {
             $item->realimagewidth = $realImageSize['w'];
             $item->realimageheight = $realImageSize['h'];
         } else {
             $item->realimagewidth = $this->tmpl['largewidth'];
             $item->realimageheight = $this->tmpl['largeheight'];
         }
     }
     // Add Statistics
     $model->hit(JRequest::getVar('id', '', '', 'int'));
     // R A T I N G
     // Only registered (VOTES + COMMENTS)
     $this->tmpl['notregisteredimg'] = true;
     $this->tmpl['usernameimg'] = '';
     if ($access > 0) {
         $this->tmpl['notregisteredimg'] = false;
         $this->tmpl['usernameimg'] = $user->name;
     }
     // VOTES Statistics Img
     if ((int) $this->tmpl['displayratingimg'] == 1 || $this->tmpl['mb_rating']) {
         $this->tmpl['votescountimg'] = 0;
         $this->tmpl['votesaverageimg'] = 0;
         $this->tmpl['voteswidthimg'] = 0;
         $votesStatistics = PhocaGalleryRateImage::getVotesStatistics((int) $item->id);
         if (!empty($votesStatistics->count)) {
             $this->tmpl['votescountimg'] = $votesStatistics->count;
         }
         if (!empty($votesStatistics->average)) {
             $this->tmpl['votesaverageimg'] = $votesStatistics->average;
             if ($this->tmpl['votesaverageimg'] > 0) {
                 $this->tmpl['votesaverageimg'] = round((double) $this->tmpl['votesaverageimg'] / 0.5) * 0.5;
                 $this->tmpl['voteswidthimg'] = 22 * $this->tmpl['votesaverageimg'];
             } else {
                 $this->tmpl['votesaverageimg'] = (int) 0;
                 // not float displaying
             }
         }
         if ((int) $this->tmpl['votescountimg'] > 1) {
             $this->tmpl['votestextimg'] = 'COM_PHOCAGALLERY_VOTES';
         } else {
             $this->tmpl['votestextimg'] = 'COM_PHOCAGALLERY_VOTE';
         }
         // Already rated?
         $this->tmpl['alreadyratedimg'] = PhocaGalleryRateImage::checkUserVote((int) $item->id, (int) $user->id);
     }
     // Tags
     $this->tmpl['displaying_tags_output'] = '';
     if ($this->tmpl['display_tags_links'] == 1 || $this->tmpl['display_tags_links'] == 3 || $this->tmpl['mb_tags']) {
         if ($this->tmpl['detailwindow'] == 7) {
             $this->tmpl['displaying_tags_output'] = PhocaGalleryTag::displayTags($item->id);
         } else {
             $this->tmpl['displaying_tags_output'] = PhocaGalleryTag::displayTags($item->id, 1);
         }
     }
     // Back button
     $this->tmpl['backbutton'] = '';
     if ($this->tmpl['detailwindow'] == 7) {
         phocagalleryimport('phocagallery.image.image');
         $formatIcon =& PhocaGalleryImage::getFormatIcon();
         $this->tmpl['backbutton'] = '<div><a href="' . JRoute::_('index.php?option=com_phocagallery&view=category&id=' . $item->catslug . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int')) . '"' . ' title="' . JText::_('COM_PHOCAGALLERY_BACK_TO_CATEGORY') . '">' . JHtml::_('image', 'components/com_phocagallery/assets/images/icon-up-images.' . $formatIcon, JText::_('COM_PHOCAGALLERY_BACK_TO_CATEGORY')) . '</a></div>';
     }
     // ASIGN
     $this->assignRef('tmpl', $this->tmpl);
     $this->assignRef('item', $item);
     $this->_prepareDocument($item);
     if ($this->tmpl['enable_multibox'] == 1) {
         if ($item->download > 0) {
             if ($this->tmpl['displayicondownload'] == 2) {
                 $backLink = 'index.php?option=com_phocagallery&view=category&id=' . $item->catslug . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int');
                 phocagalleryimport('phocagallery.file.filedownload');
                 if (isset($item->exto) && $item->exto != '') {
                     PhocaGalleryFileDownload::download($item, $backLink, 1);
                 } else {
                     PhocaGalleryFileDownload::download($item, $backLink);
                 }
                 exit;
             } else {
                 parent::display('multibox');
                 //parent::display('download');
             }
         } else {
             if (isset($item->videocode) && $item->videocode != '' && $item->videocode != '0') {
                 $item->videocode = PhocaGalleryYoutube::displayVideo($item->videocode);
             }
             parent::display('multibox');
         }
     } else {
         if (isset($item->videocode) && $item->videocode != '' && $item->videocode != '0') {
             $item->videocode = PhocaGalleryYoutube::displayVideo($item->videocode);
             if ($this->tmpl['detailwindow'] != 7 && $this->tmpl['ytb_display'] == 1) {
                 $document->addCustomTag("<style type=\"text/css\"> \n" . " html, body, .contentpane, div#all, div#main, div#system-message-container {padding: 0px !important;margin: 0px !important;} \n" . " div#sbox-window {background-color:#fff;padding: 0px;margin: 0px;} \n" . " </style> \n");
             }
             parent::display('video');
         } else {
             parent::display('slideshowjs');
             if ($item->slideshow == 1) {
                 parent::display('slideshow');
             } else {
                 if ($item->download > 0) {
                     if ($this->tmpl['displayicondownload'] == 2) {
                         $backLink = 'index.php?option=com_phocagallery&view=category&id=' . $item->catslug . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int');
                         phocagalleryimport('phocagallery.file.filedownload');
                         if (isset($item->exto) && $item->exto != '') {
                             PhocaGalleryFileDownload::download($item, $backLink, 1);
                         } else {
                             PhocaGalleryFileDownload::download($item, $backLink);
                         }
                         exit;
                     } else {
                         parent::display('download');
                     }
                 } else {
                     parent::display($tpl);
                 }
             }
         }
     }
 }
示例#3
0
 function import()
 {
     JRequest::checkToken() or die('Invalid Token');
     $app = JFactory::getApplication();
     //$post	= JRequest::get('post');
     $ytb_link = JRequest::getVar('ytb_link', '', 'post', 'string', JREQUEST_NOTRIM);
     $field = JRequest::getVar('field', '', 'post', 'string', JREQUEST_NOTRIM);
     $catid = JRequest::getVar('catid', 0, 'post', 'int');
     $folder = '';
     if ((int) $catid > 0) {
         $db = JFactory::getDBO();
         $query = 'SELECT c.userfolder' . ' FROM #__phocagallery_categories AS c' . ' WHERE c.id = ' . $db->Quote((int) $catid);
         $db->setQuery($query, 0, 1);
         $folderObj = $db->loadObject();
         if (!$db->query()) {
             $this->setError($db->getErrorMsg());
             return false;
         }
         if (isset($folderObj->userfolder) && $folderObj->userfolder != '') {
             $folder = $folderObj->userfolder . '/';
             // Save to category folder
         } else {
             $folder = '';
             // No category folder - save to root
         }
     } else {
         $errorMsg .= JText::_('COM_PHOCAGALLERY_YTB_ERROR_NO_CATEGORY');
     }
     $ytb = PhocaGalleryYoutube::importYtb($ytb_link, $folder, $errorYtbMsg);
     /*		
     		$ytb_code 	= str_replace("&feature=related","",PhocaGalleryYoutube::getCode(strip_tags($ytb_link)));
     
     		$msg = $errorMsg = '';
     		$ytb				= array();
     		$ytb['title']		= '';
     		$ytb['desc']		= '';
     		$ytb['filename']	= '';
     		$ytb['link']		= strip_tags($ytb_link);
     			
     		if(!function_exists("curl_init")){
     			$errorMsg .= JText::_('COM_PHOCAGALLERY_YTB_NOT_LOADED_CURL');
     		} else if ($ytb_code == '') {
     			$errorMsg .= JText::_('COM_PHOCAGALLERY_YTB_URL_NOT_CORRECT');
     		} else {
     			
     			$folder = '';
     			if ((int)$catid > 0) {
     				$db =JFactory::getDBO();
     				$query = 'SELECT c.userfolder'
     				.' FROM #__phocagallery_categories AS c'
     				.' WHERE c.id = '.$db->Quote((int)$catid);
     
     				$db->setQuery($query, 0, 1);
     				$folderObj = $db->loadObject();
     				
     				if (!$db->query()) {
     					$this->setError($db->getErrorMsg());
     					return false;
     				}
     				
     				if (isset($folderObj->userfolder) && $folderObj->userfolder != '') {
     					$folder = $folderObj->userfolder . '/';// Save to category folder
     				} else {
     					$folder = '';// No category folder - save to root
     				}
     			} else {
     				$errorMsg .= JText::_('COM_PHOCAGALLERY_YTB_ERROR_NO_CATEGORY');
     			}
     			
     			// Data
     			$cUrl		= curl_init("http://gdata.youtube.com/feeds/api/videos/".strip_tags($ytb_code));
                 curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
                 $xml		= curl_exec($cUrl);
                 curl_close($cUrl);
     			
     			$xml 	= str_replace('<media:', '<phcmedia', $xml);
     			$xml 	= str_replace('</media:', '</phcmedia', $xml);
     			
     			$data 	= JFactory::getXML($xml, false);
     
     			//Title			
     			if (isset($data->title)) {
     				$ytb['title'] = (string)$data->title;
     			}
     			
     			if ($ytb['title'] == '' && isset($data->phcmediagroup->phcmediatitle)) {
     				$ytb['title'] = (string)$data->phcmediagroup->phcmediatitle;
     			}
     			
     			if (isset($data->phcmediagroup->phcmediadescription)) {
     				$ytb['desc'] = (string)$data->phcmediagroup->phcmediadescription;
     			}
     			
     			// Thumbnail
     			if (isset($data->phcmediagroup->phcmediathumbnail[0]['url'])) {
     				$cUrl		= curl_init(strip_tags((string)$data->phcmediagroup->phcmediathumbnail[0]['url']));
     				curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
     				$img		= curl_exec($cUrl);
     				curl_close($cUrl);
     			}
                 	
     			if ($img != '') {
     				$cUrl		= curl_init("http://img.youtube.com/vi/".strip_tags($ytb_code)."/0.jpg");
     				curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
     				$img		= curl_exec($cUrl);
     				curl_close($cUrl);
     			}
     	
     			$ytb['filename']	= $folder.strip_tags($ytb_code).'.jpg';
     			
                 if (!JFile::write(JPATH_ROOT . DS . 'images' . DS . 'phocagallery' . DS . $ytb['filename'], $img)) {
     				$errorMsg .= JText::_('COM_PHOCAGALLERY_YTB_ERROR_WRITE_IMAGE');
     			}
     		}*/
     JRequest::setVar('ytb_title', $ytb['title']);
     JRequest::setVar('ytb_desc', $ytb['desc']);
     JRequest::setVar('ytb_filename', $ytb['filename']);
     JRequest::setVar('ytb_link', $ytb['link']);
     if ($errorMsg != '') {
         $msg = $errorMsg;
         $import = '';
     } else {
         $msg = JText::_('COM_PHOCAGALLERY_YTB_SUCCESS_IMPORT');
         $import = '&import=1';
         $app->getUserStateFromRequest($this->context . '.ytb_title', 'ytb_title', $ytb['title'], 'string');
         $app->getUserStateFromRequest($this->context . '.ytb_desc', 'ytb_desc', $ytb['desc'], 'string');
         $app->getUserStateFromRequest($this->context . '.ytb_filename', 'ytb_filename', $ytb['filename'], 'string');
         $app->getUserStateFromRequest($this->context . '.ytb_link', 'ytb_link', $ytb['link'], 'string');
     }
     $redirect = 'index.php?option=com_phocagallery&view=phocagalleryytb&tmpl=component&field=' . $field . '&catid=' . (int) $catid . $import;
     $this->setRedirect($redirect, $msg);
 }
示例#4
0
 function ytbupload()
 {
     JRequest::checkToken() or jexit('Invalid Token');
     jimport('joomla.client.helper');
     $app = JFactory::getApplication();
     $ftp = JClientHelper::setCredentialsFromRequest('ftp');
     $user = JFactory::getUser();
     $path = PhocaGalleryPath::getPath();
     $return = $this->input->get('return-url', null, 'base64');
     $format = $this->input->get('format', 'html', 'cmd');
     $viewBack = $this->input->get('viewback', '', 'string');
     $tab = $this->input->get('tab', 0, 'int');
     $catid = $this->input->get('id', '', 'string');
     $rating = $this->input->get('rating', '', 'string');
     $Itemid = $this->input->get('Itemid', 0, 'int');
     $limitStart = $this->input->get('limitstart', 0, 'int');
     $paramsC = JComponentHelper::getParams('com_phocagallery');
     $catid = (int) $catid;
     if ((int) $catid < 1) {
         $app->redirect($redirectUrl, JText::_('COM_PHOCAGALLERY_PLEASE_SELECT_CATEGORY'));
         return false;
     }
     $catidAlias = $catid;
     // for return
     // Set the limistart (TODO)
     if ($limitStart > 0) {
         $limitStartUrl = '&limitstart=' . $limitStart;
     } else {
         $limitStartUrl = '';
     }
     $return = JRoute::_('index.php?option=com_phocagallery&view=category&id=' . $catidAlias . '&tab=' . $tab . '&Itemid=' . $Itemid . $limitStartUrl, false);
     $redirectUrl = $return;
     $model = $this->getModel('category');
     // USER RIGHT - UPLOAD - - - - - - - - - - -
     // 2, 2 means that user access will be ignored in function getUserRight for display Delete button
     $rightDisplayUpload = 0;
     $catAccess = PhocaGalleryAccess::getCategoryAccess((int) $catid);
     if (!empty($catAccess)) {
         $rightDisplayUpload = PhocaGalleryAccess::getUserRight('uploaduserid', $catAccess->uploaduserid, 2, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
     }
     // - - - - - - - - - - - - - - - - - - - - - -
     // USER RIGHT - FOLDER - - - - - - - - - - - -
     $rightFolder = '';
     if (isset($catAccess->userfolder)) {
         $rightFolder = $catAccess->userfolder;
     }
     // - - - - - - - - - - - - - - - - - - - - - -
     if ($rightDisplayUpload == 1) {
         if ($rightFolder == '') {
             $errUploadMsg = JText::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_DEFINED');
             $app->redirect($redirectUrl, $errUploadMsg);
             return false;
         }
         if (!JFolder::exists($path->image_abs . $rightFolder . DS)) {
             $errUploadMsg = JText::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_EXISTS');
             $app->redirect($redirectUrl, $errUploadMsg);
             return false;
         }
         // Sending and setting data for common realsingleupload function
         $this->input->set('folder', $rightFolder);
         //Set the right path for uploaded image (category folder included)
         $this->input->set('return-url', base64_encode($return));
         // set return url
         //$fileName = PhocaGalleryFileUpload::realSingleUpload(2);
         $ytbLink = $this->input->get('phocagalleryytbuploadlink', '', 'string');
         $errorYtbMsg = '';
         $ytbData = PhocaGalleryYoutube::importYtb($ytbLink, $rightFolder . DS, $errorYtbMsg);
         if ($ytbData && isset($ytbData['filename'])) {
             if (PhocaGalleryControllerCategory::save((int) $catid, $ytbData['filename'], $return, $succeeded, $errUploadMsg, false, $ytbData)) {
                 $app->redirect($redirectUrl, $errUploadMsg);
                 return true;
             } else {
                 $app->redirect($redirectUrl, $errUploadMsg);
                 return false;
             }
         } else {
             $app->redirect($redirectUrl, $errorYtbMsg);
             return false;
         }
         if ($fileName != '') {
             // Saving file name into database with relative path
             $fileName = $rightFolder . '/' . strtolower($fileName);
             if (PhocaGalleryControllerUser::save((int) $catid, $fileName, $return, $succeeded, $errUploadMsg, false)) {
                 $app->redirect($redirectUrl, $errUploadMsg);
                 return true;
             } else {
                 $app->redirect($redirectUrl, $errUploadMsg);
                 return false;
             }
         }
     } else {
         $errUploadMsg = JText::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION');
         $app->redirect($this->_loginurl, JText::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
         return false;
     }
 }
示例#5
0
 function ytbupload()
 {
     jimport('joomla.client.helper');
     $app = JFactory::getApplication();
     $ftp = JClientHelper::setCredentialsFromRequest('ftp');
     $user = JFactory::getUser();
     $path = PhocaGalleryPath::getPath();
     //$folder		= JRequest::getVar( 'folder', '', '', 'path' );
     $tab = JRequest::getVar('tab', 0, '', 'int');
     $format = JRequest::getVar('format', 'html', '', 'cmd');
     $return = JRequest::getVar('return-url', null, 'post', 'base64');
     $viewBack = JRequest::getVar('viewback', '', '', '');
     $catid = JRequest::getVar('catid', '', '', 'int');
     $Itemid = JRequest::getVar('Itemid', 0, '', 'int');
     $paramsC = JComponentHelper::getParams('com_phocagallery');
     $limitStartUrl = $this->getLimitStartUrl(0, 'subcat');
     $return = JRoute::_($this->_url . $limitStartUrl->subcat . $limitStartUrl->image, false);
     $redirectUrl = $return;
     if ((int) $catid < 1) {
         $app->redirect($redirectUrl, JText::_('COM_PHOCAGALLERY_PLEASE_SELECT_CATEGORY'));
         return false;
     }
     // Get user catid, we are not in the category, so we must find the catid
     $model = $this->getModel('user');
     $isOwnerCategory = $model->isOwnerCategory($this->_user->id, $catid);
     if (!$isOwnerCategory) {
         $app->redirect($this->_loginurl, JText::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
         return false;
     }
     // USER RIGHT - UPLOAD - - - - - - - - - - -
     // 2, 2 means that user access will be ignored in function getUserRight for display Delete button
     $rightDisplayUpload = 0;
     $catAccess = PhocaGalleryAccess::getCategoryAccess((int) $catid);
     if (!empty($catAccess)) {
         $rightDisplayUpload = PhocaGalleryAccess::getUserRight('uploaduserid', $catAccess->uploaduserid, 2, $user->authorisedLevels(), $user->get('id', 0), 0);
     }
     // - - - - - - - - - - - - - - - - - - - - - -
     // USER RIGHT - FOLDER - - - - - - - - - - - -
     $rightFolder = '';
     if (isset($catAccess->userfolder)) {
         $rightFolder = $catAccess->userfolder;
     }
     // - - - - - - - - - - - - - - - - - - - - - -
     if ($rightDisplayUpload == 1) {
         if ($rightFolder == '') {
             $errUploadMsg = JText::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_DEFINED');
             $app->redirect($redirectUrl, $errUploadMsg);
             return false;
         }
         if (!JFolder::exists($path->image_abs . $rightFolder . DS)) {
             $errUploadMsg = JText::_('COM_PHOCAGALLERY_USER_FOLDER_NOT_EXISTS');
             $app->redirect($redirectUrl, $errUploadMsg);
             return false;
         }
         // Sending and setting data for common realsingleupload function
         JRequest::setVar('folder', $rightFolder);
         //Set the right path for uploaded image (category folder included)
         JRequest::setVar('return-url', base64_encode($return));
         // set return url
         //$fileName = PhocaGalleryFileUpload::realSingleUpload(2);
         $ytbLink = JRequest::getVar('phocagalleryytbuploadlink', '', 'post', 'string', JREQUEST_NOTRIM);
         $errorYtbMsg = '';
         $ytbData = PhocaGalleryYoutube::importYtb($ytbLink, $rightFolder . DS, $errorYtbMsg);
         if ($ytbData && isset($ytbData['filename'])) {
             if (PhocaGalleryControllerUser::save((int) $catid, $ytbData['filename'], $return, $succeeded, $errUploadMsg, false, $ytbData)) {
                 $app->redirect($redirectUrl, $errUploadMsg);
                 return true;
             } else {
                 $app->redirect($redirectUrl, $errUploadMsg);
                 return false;
             }
         } else {
             $app->redirect($redirectUrl, $errorYtbMsg);
             return false;
         }
         if ($fileName != '') {
             // Saving file name into database with relative path
             $fileName = $rightFolder . '/' . strtolower($fileName);
             if (PhocaGalleryControllerUser::save((int) $catid, $fileName, $return, $succeeded, $errUploadMsg, false)) {
                 $app->redirect($redirectUrl, $errUploadMsg);
                 return true;
             } else {
                 $app->redirect($redirectUrl, $errUploadMsg);
                 return false;
             }
         }
     } else {
         $errUploadMsg = JText::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION');
         $app->redirect($this->_loginurl, JText::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
         return false;
     }
 }
示例#6
0
 public static function importYtb($ytbLink, $folder, &$errorMsg = '')
 {
     $ytbCode = str_replace("&feature=related", "", PhocaGalleryYoutube::getCode(strip_tags($ytbLink)));
     $ytb = array();
     $ytb['title'] = '';
     $ytb['desc'] = '';
     $ytb['filename'] = '';
     $ytb['link'] = strip_tags($ytbLink);
     if (!function_exists("curl_init")) {
         $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_NOT_LOADED_CURL');
         return false;
     } else {
         if ($ytbCode == '') {
             $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_URL_NOT_CORRECT');
             return false;
         } else {
             $paramsC = JComponentHelper::getParams('com_phocagallery');
             $key = $paramsC->get('youtube_api_key', '');
             $ssl = $paramsC->get('youtube_api_ssl', 0);
             // Data
             //$cUrl		= curl_init("http://gdata.youtube.com/feeds/api/videos/".strip_tags($ytbCode));
             $cUrl = curl_init('https://www.googleapis.com/youtube/v3/videos?id=' . strip_tags($ytbCode) . '&part=snippet&key=' . strip_tags($key));
             if ($ssl == 0) {
                 curl_setopt($cUrl, CURLOPT_SSL_VERIFYPEER, false);
             } else {
                 curl_setopt($cUrl, CURLOPT_SSL_VERIFYPEER, true);
             }
             curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
             $json = curl_exec($cUrl);
             curl_close($cUrl);
             $o = json_decode($json);
             if (!empty($o) && isset($o->error->message)) {
                 $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_IMPORTING_DATA') . '(' . strip_tags($o->error->message) . ')';
                 return false;
             } else {
                 if (!empty($o) && isset($o->items[0]->snippet)) {
                     $oS = $o->items[0]->snippet;
                     if (isset($oS->title)) {
                         $ytb['title'] = (string) $oS->title;
                     }
                     if ($ytb['title'] == '' && isset($oS->localized->title)) {
                         $ytb['title'] = (string) $oS->localized->title;
                     }
                     if (isset($oS->description)) {
                         $ytb['desc'] = (string) $oS->description;
                     }
                     if ($ytb['desc'] == '' && isset($oS->localized->description)) {
                         $ytb['desc'] = (string) $oS->localized->description;
                     }
                     if (isset($oS->thumbnails->standard->url)) {
                         $cUrl = curl_init(strip_tags((string) $oS->thumbnails->standard->url));
                         if ($ssl == 0) {
                             curl_setopt($cUrl, CURLOPT_SSL_VERIFYPEER, false);
                         } else {
                             curl_setopt($cUrl, CURLOPT_SSL_VERIFYPEER, true);
                         }
                         curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
                         $img = curl_exec($cUrl);
                         curl_close($cUrl);
                     }
                     $ytb['filename'] = $folder . strip_tags($ytbCode) . '.jpg';
                     if ($img != '') {
                         if (JFile::exists(JPATH_ROOT . DS . 'images' . DS . 'phocagallery' . DS . $ytb['filename'], $img)) {
                             //$errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_VIDEO_EXISTS');
                             //return false;
                             //Overwrite the images
                         }
                         if (!JFile::write(JPATH_ROOT . DS . 'images' . DS . 'phocagallery' . DS . $ytb['filename'], $img)) {
                             $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_WRITE_IMAGE');
                             return false;
                         }
                     }
                 } else {
                     $errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_IMPORTING_DATA');
                     return false;
                 }
             }
             // API 2
             /*$xml 	= str_replace('<media:', '<phcmedia', $xml);
             			$xml 	= str_replace('</media:', '</phcmedia', $xml);
             			
             			$data 	= JFactory::getXML($xml, false);
             
             			//Title			
             			if (isset($data->title)) {
             				$ytb['title'] = (string)$data->title;
             			}
             			
             			if ($ytb['title'] == '' && isset($data->phcmediagroup->phcmediatitle)) {
             				$ytb['title'] = (string)$data->phcmediagroup->phcmediatitle;
             			}
             			
             			if (isset($data->phcmediagroup->phcmediadescription)) {
             				$ytb['desc'] = (string)$data->phcmediagroup->phcmediadescription;
             			}
             			
             			// Thumbnail
             			if (isset($data->phcmediagroup->phcmediathumbnail[0]['url'])) {
             				$cUrl		= curl_init(strip_tags((string)$data->phcmediagroup->phcmediathumbnail[0]['url']));
             				curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
             				$img		= curl_exec($cUrl);
             				curl_close($cUrl);
             			}
                         	
             			if ($img != '') {
             				$cUrl		= curl_init("http://img.youtube.com/vi/".strip_tags($ytbCode)."/0.jpg");
             				curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
             				$img		= curl_exec($cUrl);
             				curl_close($cUrl);
             			}
             	
             			$ytb['filename']	= $folder.strip_tags($ytbCode).'.jpg';
             			
             			if (JFile::exists(JPATH_ROOT . DS . 'images' . DS . 'phocagallery' . DS . $ytb['filename'], $img)) {
             				$errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_VIDEO_EXISTS');
             				return false;
             			}
             			
                         if (!JFile::write(JPATH_ROOT . DS . 'images' . DS . 'phocagallery' . DS . $ytb['filename'], $img)) {
             				$errorMsg = JText::_('COM_PHOCAGALLERY_YTB_ERROR_WRITE_IMAGE');
             				return false;
             			}*/
         }
     }
     return $ytb;
 }