Reconcile to live bytes. Diff vs pristine = Cadline modifications (trial-download flow, Hungarian routes, DB query — ~10 files per audit) + line-endings/install files. Signed-off-by: LÁZÁR Imre <imre@illusion.hu> Assisted-by: claude-code@claude-opus-4-8
640 lines
27 KiB
PHP
640 lines
27 KiB
PHP
<?php
|
|
/* @package Joomla
|
|
* @copyright Copyright (C) Open Source Matters. All rights reserved.
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
|
|
* @extension Phoca Extension
|
|
* @copyright Copyright (C) Jan Pavelka www.phoca.cz
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
|
|
*/
|
|
defined( '_JEXEC' ) or die( 'Restricted access' );
|
|
if(!defined('DS')) define('DS', DIRECTORY_SEPARATOR);
|
|
jimport( 'joomla.plugin.plugin' );
|
|
if (!JComponentHelper::isEnabled('com_phocadownload', true)) {
|
|
return JError::raiseError(JText::_('PLG_CONTENT_PHOCADOWNLOAD_PHOCA_DOWNLOAD_ERROR'), JText::_('PLG_CONTENT_PHOCADOWNLOAD_PHOCA_DOWNLOAD_NOT_INSTALLED_ON_YOUR_SYSTEM'));
|
|
}
|
|
if (! class_exists('PhocaDownloadLoader')) {
|
|
require_once( JPATH_ADMINISTRATOR.'/components/com_phocadownload/libraries/loader.php');
|
|
}
|
|
phocadownloadimport('phocadownload.utils.settings');
|
|
phocadownloadimport('phocadownload.path.path');
|
|
phocadownloadimport('phocadownload.path.route');
|
|
phocadownloadimport('phocadownload.file.file');
|
|
phocadownloadimport('phocadownload.utils.utils');
|
|
phocadownloadimport('phocadownload.render.layout');
|
|
phocadownloadimport('phocadownload.ordering.ordering');
|
|
|
|
|
|
class plgContentPhocaDownload extends JPlugin
|
|
{
|
|
public function __construct(& $subject, $config) {
|
|
parent::__construct($subject, $config);
|
|
$this->loadLanguage();
|
|
}
|
|
|
|
public function onContentPrepare($context, &$article, &$params, $page = 0) {
|
|
|
|
$document = JFactory::getDocument();
|
|
$db = JFactory::getDBO();
|
|
$iSize = $this->params->get('icon_size', 32);
|
|
$iMime = $this->params->get('file_icon_mime', 0);
|
|
$component = 'com_phocadownload';
|
|
$paramsC = JComponentHelper::getParams($component) ;
|
|
$ordering = $paramsC->get( 'file_ordering', 1 );
|
|
|
|
|
|
// Start Plugin
|
|
$regex_one = '/({phocadownload\s*)(.*?)(})/si';
|
|
$regex_all = '/{phocadownload\s*.*?}/si';
|
|
$matches = array();
|
|
$count_matches = preg_match_all($regex_all,$article->text,$matches,PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER);
|
|
|
|
JHTML::stylesheet( 'media/com_phocadownload/css/main/phocadownload.css' );
|
|
JHTML::stylesheet( 'media/plg_content_phocadownload/css/phocadownload.css' );
|
|
|
|
|
|
// Start if count_matches
|
|
if ($count_matches != 0) {
|
|
|
|
$l = new PhocaDownloadLayout();
|
|
|
|
// Start CSS
|
|
for($i = 0; $i < $count_matches; $i++) {
|
|
|
|
$view = '';
|
|
$id = '';
|
|
$text = '';
|
|
$target = '';
|
|
$playerwidth = $paramsC->get( 'player_width', 328 );
|
|
$playerheight = $paramsC->get( 'player_height', 200 );
|
|
$previewwidth = $paramsC->get( 'preview_width', 640 );
|
|
$previewheight = $paramsC->get( 'preview_height', 480 );
|
|
$playerheightmp3 = $paramsC->get( 'player_mp3_height', 30 );
|
|
$url = '';
|
|
$youtubewidth = 448;
|
|
$youtubeheight = 336;
|
|
$fileView = $paramsC->get( 'display_file_view', 0 );
|
|
$previewWindow = $paramsC->get( 'preview_popup_window', 0 );
|
|
$playWindow = $paramsC->get( 'play_popup_window', 0 );
|
|
$limit = 5;
|
|
|
|
|
|
// Get plugin parameters
|
|
$phocadownload = $matches[0][$i][0];
|
|
preg_match($regex_one,$phocadownload,$phocadownload_parts);
|
|
$parts = explode("|", $phocadownload_parts[2]);
|
|
$values_replace = array ("/^'/", "/'$/", "/^'/", "/'$/", "/<br \/>/");
|
|
|
|
|
|
foreach($parts as $key => $value) {
|
|
$values = explode("=", $value, 2);
|
|
|
|
foreach ($values_replace as $key2 => $values2) {
|
|
$values = preg_replace($values2, '', $values);
|
|
}
|
|
|
|
// Get plugin parameters from article
|
|
if($values[0]=='view') {$view = $values[1];}
|
|
else if($values[0]=='id') {$id = $values[1];}
|
|
else if($values[0]=='text') {$text = $values[1];}
|
|
else if($values[0]=='target') {$target = $values[1];}
|
|
else if($values[0]=='playerwidth') {$playerwidth = (int)$values[1];}
|
|
else if($values[0]=='playerheight') {$playerheight = (int)$values[1];}
|
|
else if($values[0]=='playerheightmp3') {$playerheightmp3 = (int)$values[1];}
|
|
|
|
else if($values[0]=='previewwidth') {$previewwidth = (int)$values[1];}
|
|
else if($values[0]=='previewheight') {$previewheight = (int)$values[1];}
|
|
|
|
else if($values[0]=='youtubewidth') {$youtubewidth = (int)$values[1];}
|
|
else if($values[0]=='youtubeheight') {$youtubeheight = (int)$values[1];}
|
|
|
|
else if($values[0]=='previewwindow') {$previewWindow = (int)$values[1];}
|
|
else if($values[0]=='playwindow') {$playWindow = (int)$values[1];}
|
|
else if($values[0]=='limit') {$limit = (int)$values[1];}
|
|
|
|
else if($values[0]=='url') {$url = $values[1];}
|
|
|
|
}
|
|
|
|
switch($target) {
|
|
case 'b':
|
|
$targetOutput = 'target="_blank" ';
|
|
break;
|
|
case 't':
|
|
$targetOutput = 'target="_top" ';
|
|
break;
|
|
case 'p':
|
|
$targetOutput = 'target="_parent" ';
|
|
break;
|
|
case 's':
|
|
$targetOutput = 'target="_self" ';
|
|
break;
|
|
default:
|
|
$targetOutput = '';
|
|
break;
|
|
}
|
|
|
|
$output = '';
|
|
/*
|
|
//Itemid
|
|
$menu =& JSite::getMenu();
|
|
$itemSection= $menu->getItems('link', 'index.php?option=com_phocadownload&view=sections');
|
|
if(isset($itemSection[0])) {
|
|
$itemId = $itemSection[0]->id;
|
|
} else {
|
|
$itemId = JRequest::getVar('Itemid', 1, 'get', 'int');
|
|
}
|
|
*/
|
|
switch($view) {
|
|
/*
|
|
// - - - - - - - - - - - - - - - -
|
|
// SECTIONS
|
|
// - - - - - - - - - - - - - - - -
|
|
case 'sections':
|
|
if ($text !='') {
|
|
$textOutput = $text;
|
|
} else {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_SECTIONS');
|
|
}
|
|
|
|
$link = PhocaDownloadRoute::getSectionsRoute();
|
|
|
|
$output .= '<div class="phocadownloadsections'.(int)$iSize.'"><a href="'. JRoute::_($link).'" '.$targetOutput.'>'. $textOutput.'</a></div>';
|
|
break;
|
|
|
|
// - - - - - - - - - - - - - - - -
|
|
// SECTION
|
|
// - - - - - - - - - - - - - - - -
|
|
case 'section':
|
|
if ((int)$id > 0) {
|
|
$query = 'SELECT a.id, a.title, a.alias,'
|
|
. ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug'
|
|
. ' FROM #__phocadownload_sections AS a'
|
|
. ' WHERE a.id = '.(int)$id;
|
|
|
|
$db->setQuery($query);
|
|
$item = $db->loadObject();
|
|
|
|
if (isset($item->id) && isset($item->slug)) {
|
|
|
|
if ($text !='') {
|
|
$textOutput = $text;
|
|
} else if (isset($item->title) && $item->title != '') {
|
|
$textOutput = $item->title;
|
|
} else {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_SECTION');
|
|
}
|
|
$link = PhocaDownloadRoute::getSectionRoute($item->id, $item->alias);
|
|
// 'index.php?option=com_phocadownload&view=section&id='.$item->slug.'&Itemid='. $itemId
|
|
|
|
$output .= '<div class="phocadownloadsection'.(int)$iSize.'"><a href="'. JRoute::_($link).'" '.$targetOutput.'>'. $textOutput.'</a></div>';
|
|
}
|
|
}
|
|
break;
|
|
*/
|
|
|
|
// - - - - - - - - - - - - - - - -
|
|
// CATEGORIES
|
|
// - - - - - - - - - - - - - - - -
|
|
case 'categories':
|
|
if ($text !='') {
|
|
$textOutput = $text;
|
|
} else {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_CATEGORIES');
|
|
}
|
|
|
|
$link = PhocaDownloadRoute::getCategoriesRoute();
|
|
|
|
$output .= '<div class="phocadownloadcategories'.(int)$iSize.'"><a href="'. JRoute::_($link).'" '.$targetOutput.'>'. $textOutput.'</a></div>';
|
|
break;
|
|
|
|
// - - - - - - - - - - - - - - - -
|
|
// CATEGORY
|
|
// - - - - - - - - - - - - - - - -
|
|
case 'category':
|
|
if ((int)$id > 0) {
|
|
$query = 'SELECT a.id, a.title, a.alias,'
|
|
. ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug'
|
|
. ' FROM #__phocadownload_categories AS a'
|
|
. ' WHERE a.id = '.(int)$id;
|
|
|
|
$db->setQuery($query);
|
|
$item = $db->loadObject();
|
|
|
|
if (isset($item->id) && isset($item->slug)) {
|
|
|
|
if ($text !='') {
|
|
$textOutput = $text;
|
|
} else if (isset($item->title) && $item->title != '') {
|
|
$textOutput = $item->title;
|
|
} else {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_CATEGORY');
|
|
}
|
|
$link = PhocaDownloadRoute::getCategoryRoute($item->id, $item->alias);
|
|
//'index.php?option=com_phocadownload&view=category&id='.$item->slug.'&Itemid='. $itemId
|
|
$output .= '<div class="phocadownloadcategory'.(int)$iSize.'"><a href="'. JRoute::_($link).'" '.$targetOutput.'>'. $textOutput.'</a></div>';
|
|
}
|
|
|
|
}
|
|
break;
|
|
|
|
|
|
// - - - - - - - - - - - - - - - -
|
|
// FILELIST
|
|
// - - - - - - - - - - - - - - - -
|
|
case 'filelist':
|
|
|
|
$fileOrdering = PhocaDownloadOrdering::getOrderingText($ordering);
|
|
|
|
$query = 'SELECT a.id, a.title, a.alias, a.filename_play, a.filename_preview, a.link_external, a.image_filename, a.filename, c.id as catid, a.confirm_license, c.title as cattitle, c.alias as catalias,'
|
|
. ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,'
|
|
. ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as catslug'
|
|
. ' FROM #__phocadownload AS a'
|
|
. ' LEFT JOIN #__phocadownload_categories AS c ON a.catid = c.id';
|
|
|
|
if ((int)$id > 0) {
|
|
$query .= ' WHERE c.id = '.(int)$id;
|
|
//$query .= ' WHERE c.id = '.(int)$id . ' AND a.published = 1 AND a.approved = 1';
|
|
} else {
|
|
//$query .= ' WHERE a.published = 1 AND a.approved = 1';
|
|
}
|
|
|
|
$query .= ' ORDER BY a.'.$fileOrdering;
|
|
$query .= ' LIMIT 0, '.(int)$limit;
|
|
|
|
$db->setQuery($query);
|
|
$items = $db->loadObjectList();
|
|
|
|
if (!empty($items)) {
|
|
$output .= '<div class="phocadownloadfilelist">';
|
|
foreach ($items as $item) {
|
|
$imageFileName = $l->getImageFileName($item->image_filename, $item->filename, 3, (int)$iSize);
|
|
|
|
if (isset($item->id) && isset($item->slug) && isset($item->catid) && isset($item->catslug)) {
|
|
|
|
if ($text !='') {
|
|
$textOutput = $text;
|
|
} else if (isset($item->title) && $item->title != '') {
|
|
$textOutput = $item->title;
|
|
} else {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_FILE');
|
|
}
|
|
|
|
if ((isset($item->confirm_license) && $item->confirm_license > 0) || $fileView == 1) {
|
|
$link = PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias, $item->catalias,0, 'file');
|
|
|
|
if ($iMime == 1) {
|
|
$output .= '<div class="pd-filename phocadownloadfilelistitem phoca-dl-file-box-mod">'. $imageFileName['filenamethumb']. '<div class="pd-document'.(int)$iSize.'" '. $imageFileName['filenamestyle'].'><a href="'. JRoute::_($link).'" '. $targetOutput.'>'. $textOutput.'</a></div></div>';
|
|
} else {
|
|
$output .= '<div class="phocadownloadfilelist'.(int)$iSize.'"><a href="'. JRoute::_($link).'" '.$targetOutput.'>'. $textOutput.'</a></div>';
|
|
}
|
|
|
|
} else {
|
|
if ($item->link_external != '') {
|
|
$link = $item->link_external;
|
|
} else {
|
|
$link = PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias,$item->catalias, 0, 'download');
|
|
}
|
|
|
|
if ($iMime == 1) {
|
|
$output .= '<div class="pd-filename phocadownloadfilelistitem phoca-dl-file-box-mod">'. $imageFileName['filenamethumb']. '<div class="pd-document'.(int)$iSize.'" '. $imageFileName['filenamestyle'].'><a href="'. JRoute::_($link).'" '. $targetOutput.'>'. $textOutput.'</a></div></div>';
|
|
} else {
|
|
$output .= '<div class="phocadownloadfilelist'.(int)$iSize.'"><a href="'. JRoute::_($link).'" '.$targetOutput.'>'. $textOutput.'</a></div>';
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
$output .= '</div>';
|
|
|
|
}
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
// - - - - - - - - - - - - - - - -
|
|
// FILE
|
|
// - - - - - - - - - - - - - - - -
|
|
case 'file':
|
|
case 'fileplay':
|
|
case 'fileplaylink':
|
|
case 'filepreviewlink':
|
|
if ((int)$id > 0) {
|
|
$query = 'SELECT a.id, a.title, a.alias, a.filename_play, a.filename_preview, a.link_external, a.image_filename, a.filename, c.id as catid, a.confirm_license, c.title as cattitle, c.alias as catalias,'
|
|
. ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,'
|
|
. ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as catslug'
|
|
. ' FROM #__phocadownload AS a'
|
|
. ' LEFT JOIN #__phocadownload_categories AS c ON a.catid = c.id'
|
|
. ' WHERE a.id = '.(int)$id;
|
|
|
|
$db->setQuery($query);
|
|
$item = $db->loadObject();
|
|
|
|
if (isset($item->id) && isset($item->slug) && isset($item->catid) && isset($item->catslug)) {
|
|
|
|
if ($text !='') {
|
|
$textOutput = $text;
|
|
} else if (isset($item->title) && $item->title != '') {
|
|
$textOutput = $item->title;
|
|
} else {
|
|
if ($view == 'fileplay') {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PLAY_FILE');
|
|
} else {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_DOWNLOAD_FILE');
|
|
}
|
|
}
|
|
|
|
$imageFileName = $l->getImageFileName($item->image_filename, $item->filename, 3, (int)$iSize);
|
|
|
|
// - - - - -
|
|
// PLAY
|
|
// - - - - -
|
|
if ($view == 'fileplay') {
|
|
$play = 1;
|
|
$fileExt = '';
|
|
$filePath = PhocaDownloadPath::getPathSet('fileplay');
|
|
|
|
$filePath = str_replace ( '../', JURI::base(true).'/', $filePath['orig_rel_ds']);
|
|
if (isset($item->filename_play) && $item->filename_play != '') {
|
|
$fileExt = PhocaDownloadFile::getExtension($item->filename_play);
|
|
$canPlay = PhocaDownloadFile::canPlay($item->filename_play);
|
|
if ($canPlay) {
|
|
$tmpl['playfilewithpath'] = $filePath . $item->filename_play;
|
|
$tmpl['playerpath'] = JURI::base().'components/com_phocadownload/assets/flowplayer/';
|
|
} else {
|
|
$output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_NO_CORRECT_FILE_FOR_PLAYING_FOUND');
|
|
$play = 0;
|
|
}
|
|
} else {
|
|
$output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_NO_FILE_FOR_PLAYING_FOUND');
|
|
$play = 0;
|
|
}
|
|
|
|
if ($play == 1) {
|
|
|
|
//Correct MP3
|
|
$tmpl['filetype'] = '';
|
|
if ($fileExt == 'mp3') {
|
|
$tmpl['filetype'] = 'mp3';
|
|
$playerheight = $playerheightmp3;
|
|
}
|
|
$versionFLP = '3.2.2';
|
|
$versionFLPJS = '3.2.2';
|
|
|
|
//Flow Player
|
|
|
|
$document->addScript($tmpl['playerpath'].'flowplayer-'.$versionFLPJS.'.min.js');
|
|
|
|
$output .= '<div style="text-align:center;margin: 10px auto">'. "\n"
|
|
.'<div style="margin: 0 auto;text-align:center; width:'. $playerwidth.'px"><a href="'. $tmpl['playfilewithpath'].'" style="display:block;width:'. $playerwidth.'px;height:'. $playerheight.'px" id="pdplayer'.$i.'"></a>'. "\n";
|
|
|
|
if ($tmpl['filetype'] == 'mp3') {
|
|
$output .= '<script type="text/javascript">'. "\n"
|
|
.'window.addEvent("domready", function() {'. "\n"
|
|
|
|
|
|
.'flowplayer("pdplayer'.$i.'", "'.$tmpl['playerpath'].'flowplayer-'.$versionFLP.'.swf",'
|
|
.'{ ' . "\n"
|
|
.' clip: { '. "\n"
|
|
.' url: \''.$tmpl['playfilewithpath'].'\','. "\n"
|
|
.' autoPlay: false' . "\n"
|
|
// .' autoBuffering: true' . "\n"
|
|
.' }, '. "\n"
|
|
.' plugins: { '. "\n"
|
|
.' controls: { ' . "\n"
|
|
.' fullscreen: false, '. "\n"
|
|
.' height: '. $playerheight . "\n"
|
|
.' } ' . "\n"
|
|
.' } '. "\n"
|
|
.'} '. "\n"
|
|
.');'. "\n"
|
|
|
|
.'});'
|
|
.'</script>'. "\n";
|
|
} else {
|
|
|
|
$output .= '<script type="text/javascript">'. "\n"
|
|
.'window.addEvent("domready", function() {'. "\n"
|
|
|
|
.'flowplayer("pdplayer'.$i.'", "'. $tmpl['playerpath'].'flowplayer-'.$versionFLP.'.swf",'. "\n"
|
|
.'{ ' . "\n"
|
|
.' clip: { '. "\n"
|
|
.' url: \''.$tmpl['playfilewithpath'].'\','. "\n"
|
|
.' autoPlay: false,' . "\n"
|
|
.' autoBuffering: true' . "\n"
|
|
.' }, '. "\n"
|
|
.'} '. "\n"
|
|
.');'. "\n"
|
|
|
|
.'});'
|
|
.'</script>'. "\n";
|
|
}
|
|
|
|
$output .= '</div></div>'. "\n";
|
|
}
|
|
|
|
} else if ($view == 'fileplaylink') {
|
|
|
|
// PLAY - - - - - - - - - - - -
|
|
$windowWidthPl = (int)$playerwidth + 30;
|
|
$windowHeightPl = (int)$playerheight + 30;
|
|
$windowHeightPlMP3 = (int)$playerheightmp3 + 30;
|
|
//$playWindow = $paramsC->get( 'play_popup_window', 0 );
|
|
if ($playWindow == 1) {
|
|
$buttonPl = new JObject();
|
|
$buttonPl->set('methodname', 'js-button');
|
|
$buttonPl->set('options', "window.open(this.href,'win2','width=".$windowWidthPl.",height=".$windowHeightPl.",scrollbars=yes,menubar=no,resizable=yes'); return false;");
|
|
$buttonPl->set('optionsmp3', "window.open(this.href,'win2','width=".$windowWidthPl.",height=".$windowHeightPlMP3.",scrollbars=yes,menubar=no,resizable=yes'); return false;");
|
|
} else {
|
|
JHTML::_('behavior.modal', 'a.modal-button');
|
|
$document->addCustomTag( "<style type=\"text/css\"> \n"
|
|
." #sbox-window.phocadownloadplaywindow {background-color:#fff;padding:2px} \n"
|
|
." #sbox-overlay.phocadownloadplayoverlay {background-color:#000;} \n"
|
|
." </style> \n");
|
|
$buttonPl = new JObject();
|
|
$buttonPl->set('name', 'image');
|
|
$buttonPl->set('modal', true);
|
|
$buttonPl->set('methodname', 'modal-button');
|
|
$buttonPl->set('options', "{handler: 'iframe', size: {x: ".$windowWidthPl.", y: ".$windowHeightPl."}, overlayOpacity: 0.7, classWindow: 'phocadownloadplaywindow', classOverlay: 'phocadownloadplayoverlay'}");
|
|
$buttonPl->set('optionsmp3', "{handler: 'iframe', size: {x: ".$windowWidthPl.", y: ".$windowHeightPlMP3."}, overlayOpacity: 0.7, classWindow: 'phocadownloadplaywindow', classOverlay: 'phocadownloadplayoverlay'}");
|
|
}
|
|
// - - - - - - - - - - - - - - -
|
|
|
|
$fileExt = '';
|
|
$filePath = PhocaDownloadPath::getPathSet('fileplay');
|
|
|
|
$filePath = str_replace ( '../', JURI::base(true).'/', $filePath['orig_rel_ds']);
|
|
if (isset($item->filename_play) && $item->filename_play != '') {
|
|
$fileExt = PhocaDownloadFile::getExtension($item->filename_play);
|
|
|
|
|
|
$canPlay = PhocaDownloadFile::canPlay($item->filename_play);
|
|
if ($canPlay) {
|
|
// Special height for music only
|
|
$buttonPlOptions = $buttonPl->options;
|
|
if ($fileExt == 'mp3') {
|
|
$buttonPlOptions = $buttonPl->optionsmp3;
|
|
}
|
|
/*if ($text == '') {
|
|
$text = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PLAY');
|
|
}*/
|
|
|
|
if ($text !='') {
|
|
$textOutput = $text;
|
|
//} else if (isset($item->title) && $item->title != '') {
|
|
// $textOutput = $item->title;
|
|
} else {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PLAY');
|
|
}
|
|
|
|
$playLink = JRoute::_(PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias, $item->catalias,0, 'play'));
|
|
|
|
|
|
if ($iMime == 1) {
|
|
$output .= '<div class="pd-filename phocadownloadfile phoca-dl-file-box-mod">'. $imageFileName['filenamethumb']. '<div class="pd-document'.(int)$iSize.'" '. $imageFileName['filenamestyle'].'>';
|
|
} else {
|
|
$output .= '<div><div class="phocadownloadplay'.(int)$iSize.'">';
|
|
}
|
|
|
|
if ($playWindow == 1) {
|
|
$output .= '<a href="'.$playLink.'" onclick="'. $buttonPlOptions.'" >'. $textOutput.'</a>';
|
|
} else {
|
|
$output .= '<a class="modal-button" href="'.$playLink.'" rel="'. $buttonPlOptions.'" >'. $textOutput.'</a>';
|
|
}
|
|
$output .= '</div></div>';
|
|
}
|
|
} else {
|
|
$output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_NO_FILE_FOR_PLAYING_FOUND');
|
|
}
|
|
|
|
|
|
|
|
|
|
} else if ($view == 'filepreviewlink') {
|
|
|
|
|
|
if (isset($item->filename_preview) && $item->filename_preview != '') {
|
|
$fileExt = PhocaDownloadFile::getExtension($item->filename_preview);
|
|
if ($fileExt == 'pdf' || $fileExt == 'jpeg' || $fileExt == 'jpg' || $fileExt == 'png' || $fileExt == 'gif') {
|
|
|
|
$filePath = PhocaDownloadPath::getPathSet('filepreview');
|
|
$filePath = str_replace ( '../', JURI::base(true).'/', $filePath['orig_rel_ds']);
|
|
$previewLink = $filePath . $item->filename_preview;
|
|
//$previewWindow = $paramsC->get( 'preview_popup_window', 0 );
|
|
|
|
// PREVIEW - - - - - - - - - - - -
|
|
$windowWidthPr = (int)$previewwidth + 20;
|
|
$windowHeightPr = (int)$previewheight + 20;
|
|
if ($previewWindow == 1) {
|
|
$buttonPr = new JObject();
|
|
$buttonPr->set('methodname', 'js-button');
|
|
$buttonPr->set('options', "window.open(this.href,'win2','width=".$windowWidthPr.",height=".$windowHeightPr.",scrollbars=yes,menubar=no,resizable=yes'); return false;");
|
|
} else {
|
|
JHTML::_('behavior.modal', 'a.modal-button');
|
|
$document->addCustomTag( "<style type=\"text/css\"> \n"
|
|
." #sbox-window.phocadownloadpreviewwindow {background-color:#fff;padding:2px} \n"
|
|
." #sbox-overlay.phocadownloadpreviewoverlay {background-color:#000;} \n"
|
|
." </style> \n");
|
|
$buttonPr = new JObject();
|
|
$buttonPr->set('name', 'image');
|
|
$buttonPr->set('modal', true);
|
|
$buttonPr->set('methodname', 'modal-button');
|
|
$buttonPr->set('options', "{handler: 'iframe', size: {x: ".$windowWidthPr.", y: ".$windowHeightPr."}, overlayOpacity: 0.7, classWindow: 'phocadownloadpreviewwindow', classOverlay: 'phocadownloadpreviewoverlay'}");
|
|
$buttonPr->set('optionsimg', "{handler: 'image', size: {x: 200, y: 150}, overlayOpacity: 0.7, classWindow: 'phocadownloadpreviewwindow', classOverlay: 'phocadownloadpreviewoverlay'}");
|
|
}
|
|
// - - - - - - - - - - - - - - -
|
|
|
|
|
|
|
|
/*if ($text == '') {
|
|
$text = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PREVIEW');
|
|
}*/
|
|
|
|
if ($text !='') {
|
|
$textOutput = $text;
|
|
//} else if (isset($item->title) && $item->title != '') {
|
|
// $textOutput = $item->title;
|
|
} else {
|
|
$textOutput = JText::_('PLG_CONTENT_PHOCADOWNLOAD_PREVIEW');
|
|
}
|
|
if ($iMime == 1) {
|
|
$output .= '<div class="pd-filename phocadownloadfile phoca-dl-file-box-mod">'. $imageFileName['filenamethumb']. '<div class="pd-document'.(int)$iSize.'" '. $imageFileName['filenamestyle'].'>';
|
|
} else {
|
|
$output .= '<div><div class="phocadownloadpreview'.(int)$iSize.'">';
|
|
}
|
|
|
|
if ($previewWindow == 1) {
|
|
$output .= '<a href="'.$previewLink.'" onclick="'. $buttonPr->options.'" >'. $text.'</a>';
|
|
} else {
|
|
if ($fileExt == 'pdf') {
|
|
// Iframe - modal
|
|
$output .= '<a class="modal-button" href="'.$previewLink.'" rel="'. $buttonPr->options.'" >'. $textOutput.'</a>';
|
|
} else {
|
|
// Image - modal
|
|
$output .= '<a class="modal-button" href="'.$previewLink.'" rel="'. $buttonPr->optionsimg.'" >'. $textOutput.'</a>';
|
|
}
|
|
}
|
|
$output .= '</div></div>';
|
|
}
|
|
} else {
|
|
$output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_NO_FILE_FOR_PREVIEWING_FOUND');
|
|
}
|
|
|
|
} else {
|
|
if ((isset($item->confirm_license) && $item->confirm_license > 0) || $fileView == 1) {
|
|
$link = PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias, $item->catalias,0, 'file');
|
|
//'index.php?option=com_phocadownload&view=file&id='.$item->slug.'&Itemid='.$itemId
|
|
|
|
if ($iMime == 1) {
|
|
$output .= '<div class="pd-filename phocadownloadfile phoca-dl-file-box-mod">'. $imageFileName['filenamethumb']. '<div class="pd-document'.(int)$iSize.'" '. $imageFileName['filenamestyle'].'><a href="'. JRoute::_($link).'" '. $targetOutput.'>'. $textOutput.'</a></div></div>';
|
|
} else {
|
|
$output .= '<div class="phocadownloadfile'.(int)$iSize.'"><a href="'. JRoute::_($link).'" '.$targetOutput.'>'. $textOutput.'</a></div>';
|
|
}
|
|
|
|
} else {
|
|
if ($item->link_external != '') {
|
|
$link = $item->link_external;
|
|
} else {
|
|
$link = PhocaDownloadRoute::getFileRoute($item->id,$item->catid,$item->alias,$item->catalias,0, 'download');
|
|
}
|
|
//$link = PhocaDownloadRoute::getCategoryRoute($item->catid,$item->catalias,$item->sectionid);
|
|
|
|
//'index.php?option=com_phocadownload&view=category&id='. $item->catslug. '&download='. $item->slug. '&Itemid=' . $itemId
|
|
|
|
if ($iMime == 1) {
|
|
$output .= '<div class="pd-filename phocadownloadfile phoca-dl-file-box-mod">'. $imageFileName['filenamethumb']. '<div class="pd-document'.(int)$iSize.'" '. $imageFileName['filenamestyle'].'><a href="'. JRoute::_($link).'" '. $targetOutput.'>'. $textOutput.'</a></div></div>';
|
|
} else {
|
|
$output .= '<div class="phocadownloadfile'.(int)$iSize.'"><a href="'. JRoute::_($link).'" '.$targetOutput.'>'. $textOutput.'</a></div>';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
break;
|
|
|
|
// - - - - - - - - - - - - - - - -
|
|
// YOUTUBE
|
|
// - - - - - - - - - - - - - - - -
|
|
case 'youtube':
|
|
|
|
if ($url != '' && PhocaDownloadUtils::isURLAddress($url) ) {
|
|
$l = new PhocaDownloadLayout();
|
|
$pdVideo = $l->displayVideo($url, 0, $youtubewidth, $youtubeheight);
|
|
$output .= $pdVideo;
|
|
} else {
|
|
$output .= JText::_('PLG_CONTENT_PHOCADOWNLOAD_WRONG_YOUTUBE_URL');
|
|
}
|
|
break;
|
|
|
|
|
|
}
|
|
$article->text = preg_replace($regex_all, $output, $article->text, 1);
|
|
}
|
|
}// end if count_matches
|
|
return true;
|
|
}
|
|
}
|
|
?>
|