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; }
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); } } } } }
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); }
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; } }
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; } }
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; }