tutto cho che serve phoca

This commit is contained in:
2025-01-01 12:20:00 +01:00
parent bdb89e8575
commit c3386bb999
49 changed files with 6827 additions and 1 deletions

View File

@ -0,0 +1,26 @@
<?php
/*
* @package Joomla 1.5
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
*
* @component Phoca Gallery
* @copyright Copyright (C) Jan Pavelka www.phoca.cz
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
use Joomla\CMS\Language\Text;
class PhocaDownloadException
{
public static function renderErrorInfo ($msg, $jText = false){
if ($jText) {
return '<div class="alert alert-danger pg-error-info">'.Text::_($msg).'</div>';
} else {
return '<div class="alert alert-danger pg-error-info">'.$msg.'</div>';
}
}
}
?>

View File

@ -0,0 +1,24 @@
<?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' );
class PhocaDownloadExternal
{
public static function checkOSE($fileName) {
if (file_exists(JPATH_SITE.'/components/com_osemsc/init.php')
&& file_exists(JPATH_ADMINISTRATOR.'/components/com_ose_cpu/define.php')) {
require_once(JPATH_SITE.'components/com_osemsc/init.php');
oseRegistry :: call('content')->checkAccess('phoca', 'category', $fileName->catid);
} else if (file_exists(JPATH_ADMINISTRATOR . "/components/com_osemsc/warehouse/api.php")) {
require_once (JPATH_ADMINISTRATOR . "/components/com_osemsc/warehouse/api.php");
$checkmsc = new OSEMSCAPI();
$checkmsc->ACLCheck("phoca", "cat", $fileName->catid, true);
}
}
}
?>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,127 @@
<?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' );
use Joomla\CMS\Factory;
class PhocaDownloadSettings
{
public static function getManagerGroup($manager) {
$group = array();
switch ($manager) {
case 'icon':
case 'iconspec1':
case 'iconspec2':
$group['f'] = 2;//File
$group['i'] = 1;//Image
$group['t'] = 'icon';//Text
$group['c'] = '&amp;tmpl=component';
break;
case 'image':
$group['f'] = 2;//File
$group['i'] = 1;//Image
$group['t'] = 'image';//Text
$group['c'] = '&amp;tmpl=component';
break;
case 'filepreview':
$group['f'] = 3;
$group['i'] = 1;
$group['t'] = 'filename';
$group['c'] = '&amp;tmpl=component';
break;
case 'fileplay':
$group['f'] = 3;
$group['i'] = 0;
$group['t'] = 'filename';
$group['c'] = '&amp;tmpl=component';
break;
case 'filemultiple':
$group['f'] = 1;
$group['i'] = 0;
$group['t'] = 'filename';
$group['c'] = '';
break;
case 'file':
default:
$group['f'] = 1;
$group['i'] = 0;
$group['t'] = 'filename';
$group['c'] = '&amp;tmpl=component';
break;
}
return $group;
}
public static function getDefaultAllowedMimeTypesDownload() {
return '{hqx=application/mac-binhex40}{cpt=application/mac-compactpro}{csv=text/x-comma-separated-values}{bin=application/macbinary}{dms=application/octet-stream}{lha=application/octet-stream}{lzh=application/octet-stream}{exe=application/octet-stream}{class=application/octet-stream}{psd=application/x-photoshop}{so=application/octet-stream}{sea=application/octet-stream}{dll=application/octet-stream}{oda=application/oda}{pdf=application/pdf}{ai=application/postscript}{eps=application/postscript}{ps=application/postscript}{smi=application/smil}{smil=application/smil}{mif=application/vnd.mif}{xls=application/vnd.ms-excel}{ppt=application/powerpoint}{wbxml=application/wbxml}{wmlc=application/wmlc}{dcr=application/x-director}{dir=application/x-director}{dxr=application/x-director}{dvi=application/x-dvi}{gtar=application/x-gtar}{gz=application/x-gzip}{php=application/x-httpd-php}{php4=application/x-httpd-php}{php3=application/x-httpd-php}{phtml=application/x-httpd-php}{phps=application/x-httpd-php-source}{js=application/x-javascript}{swf=application/x-shockwave-flash}{sit=application/x-stuffit}{tar=application/x-tar}{tgz=application/x-tar}{xhtml=application/xhtml+xml}{xht=application/xhtml+xml}{zip=application/x-zip}{mid=audio/midi}{midi=audio/midi}{mpga=audio/mpeg}{mp2=audio/mpeg}{mp3=audio/mpeg}{aif=audio/x-aiff}{aiff=audio/x-aiff}{aifc=audio/x-aiff}{ram=audio/x-pn-realaudio}{rm=audio/x-pn-realaudio}{rpm=audio/x-pn-realaudio-plugin}{ra=audio/x-realaudio}{rv=video/vnd.rn-realvideo}{wav=audio/x-wav}{bmp=image/bmp}{gif=image/gif}{jpeg=image/jpeg}{jpg=image/jpeg}{jpe=image/jpeg}{png=image/png}{tiff=image/tiff}{tif=image/tiff}{css=text/css}{html=text/html}{htm=text/html}{shtml=text/html}{txt=text/plain}{text=text/plain}{log=text/plain}{rtx=text/richtext}{rtf=text/rtf}{xml=text/xml}{xsl=text/xml}{mpeg=video/mpeg}{mpg=video/mpeg}{mpe=video/mpeg}{qt=video/quicktime}{mov=video/quicktime}{avi=video/x-msvideo}{flv=video/x-flv}{movie=video/x-sgi-movie}{doc=application/msword}{xl=application/excel}{eml=message/rfc822}{pptx=application/vnd.openxmlformats-officedocument.presentationml.presentation}{xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet}{docx=application/vnd.openxmlformats-officedocument.wordprocessingml.document}{rar=application/x-rar-compressed}{odb=application/vnd.oasis.opendocument.database}{odc=application/vnd.oasis.opendocument.chart}{odf=application/vnd.oasis.opendocument.formula}{odg=application/vnd.oasis.opendocument.graphics}{odi=application/vnd.oasis.opendocument.image}{odm=application/vnd.oasis.opendocument.text-master}{odp=application/vnd.oasis.opendocument.presentation}{ods=application/vnd.oasis.opendocument.spreadsheet}{odt=application/vnd.oasis.opendocument.text}{sxc=application/vnd.sun.xml.calc}{sxd=application/vnd.sun.xml.draw}{sxg=application/vnd.sun.xml.writer.global}{sxi=application/vnd.sun.xml.impress}{sxm=application/vnd.sun.xml.math}{sxw=application/vnd.sun.xml.writer}{mp4=video/mp4}{mp4=application/octet-stream}';
}
public static function getDefaultAllowedMimeTypesUpload() {
return '{pdf=application/pdf}{ppt=application/powerpoint}{gz=application/x-gzip}{tar=application/x-tar}{tgz=application/x-tar}{zip=application/x-zip}{bmp=image/bmp}{gif=image/gif}{jpeg=image/jpeg}{jpg=image/jpeg}{jpe=image/jpeg}{png=image/png}{tiff=image/tiff}{tif=image/tiff}{txt=text/plain}{mpeg=video/mpeg}{mpg=video/mpeg}{mpe=video/mpeg}{qt=video/quicktime}{mov=video/quicktime}{avi=video/x-msvideo}{flv=video/x-flv}{doc=application/msword}{mp4=video/mp4}{mp4=application/octet-stream}';
}
public static function getHTMLTagsUpload() {
return array('abbr','acronym','address','applet','area','audioscope','base','basefont','bdo','bgsound','big','blackface','blink','blockquote','body','bq','br','button','caption','center','cite','code','col','colgroup','comment','custom','dd','del','dfn','dir','div','dl','dt','em','embed','fieldset','fn','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','iframe','ilayer','img','input','ins','isindex','keygen','kbd','label','layer','legend','li','limittext','link','listing','map','marquee','menu','meta','multicol','nobr','noembed','noframes','noscript','nosmartquotes','object','ol','optgroup','option','param','plaintext','pre','rt','ruby','s','samp','script','select','server','shadow','sidebar','small','spacer','span','strike','strong','style','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','ul','var','wbr','xml','xmp','!DOCTYPE', '!--');
}
public static function getLayoutText($type) {
$db = Factory::getDBO();
$query = 'SELECT a.'.$type
.' FROM #__phocadownload_layout AS a';
$db->setQuery($query, 0, 1);
$layout = $db->loadObject();
/*if (!$db->query()) {
throw new Exception($db->getErrorMsg(), 500);
return false;
}*/
if (isset($layout->$type)) {
return $layout->$type;
}
return '';
}
public static function getLayoutParams($type) {
$params = array();
switch($type) {
case 'categories':
$params['style'] = array('pd-title','pd-desc', 'pd-subcategory', 'pd-no-subcat');//'pd-',
$params['search'] = array('{pdtitle}','{pddescription}', '{pdsubcategories}', '{pdclear}');
break;
case 'category':
$params['style'] = array('pd-title','pd-image', 'pd-file', 'pd-fdesc', 'pd-mirrors', 'pd-mirror', 'pd-report', 'pd-rating', 'pd-tags', 'pd-buttons', 'pd-downloads', 'pd-video');
$params['search'] = array('{pdtitle}','{pdimage}', '{pdfile}', '{pdfilesize}', '{pdversion}', '{pdlicense}', '{pdauthor}', '{pdauthoremail}', '{pdfiledate}', '{pddownloads}', '{pddescription}', '{pdfeatures}', '{pdchangelog}', '{pdnotes}', '{pdmirrorlink1}', '{pdmirrorlink2}', '{pdreportlink}', '{pdrating}', '{pdtags}', '{pdfiledesctop}', '{pdfiledescbottom}', '{pdbuttondownload}', '{pdbuttondetails}', '{pdbuttonpreview}', '{pdbuttonplay}', '{pdvideo}');
break;
case 'file':
$params['style'] = array('pd-title','pd-image', 'pd-file', 'pd-fdesc', 'pd-mirrors', 'pd-mirror', 'pd-report', 'pd-rating', 'pd-tags', 'pd-downloads', 'pd-video');
$params['search'] = array('{pdtitle}','{pdimage}', '{pdfile}', '{pdfilesize}', '{pdversion}', '{pdlicense}', '{pdauthor}', '{pdauthoremail}', '{pdfiledate}', '{pddownloads}', '{pddescription}', '{pdfeatures}', '{pdchangelog}', '{pdnotes}', '{pdmirrorlink1}', '{pdmirrorlink2}', '{pdreportlink}', '{pdrating}', '{pdtags}', '{pdvideo}');
break;
}
return $params;
}
}
?>

View File

@ -0,0 +1,239 @@
<?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' );
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Installer\Installer;
use Joomla\CMS\Factory;
use Joomla\CMS\Application\ApplicationHelper;
use Joomla\CMS\Plugin\PluginHelper;
class PhocaDownloadUtils
{
public static function footer() {
echo '<div>Powe'.'red b'.'y <a href="ht'.'tp://www.pho'.'ca.c'.'z/pho'
.'cado'.'wn'.'load" tar'.'get="_bl'.'ank" title="Pho'.'ca Down' .'load">Pho'
.'ca Downl'.'oad</a></div>';
}
public static function getExtensionVersion($c = 'phocadownload') {
$folder = JPATH_ADMINISTRATOR .'/components/com_'.$c;
if (Folder::exists($folder)) {
$xmlFilesInDir = Folder::files($folder, '.xml$');
} else {
$folder = JPATH_SITE . '/components/com_'.$c;
if (Folder::exists($folder)) {
$xmlFilesInDir = Folder::files($folder, '.xml$');
} else {
$xmlFilesInDir = null;
}
}
$xml_items = array();
if (count($xmlFilesInDir))
{
foreach ($xmlFilesInDir as $xmlfile)
{
if ($data = Installer::parseXMLInstallFile($folder.'/'.$xmlfile)) {
foreach($data as $key => $value) {
$xml_items[$key] = $value;
}
}
}
}
if (isset($xml_items['version']) && $xml_items['version'] != '' ) {
return $xml_items['version'];
} else {
return '';
}
}
public static function setVars( $task = '') {
$a = array();
$app = Factory::getApplication();
$a['o'] = htmlspecialchars(strip_tags($app->input->get('option')));
$a['c'] = str_replace('com_', '', $a['o']);
$a['n'] = 'Phoca' . ucfirst(str_replace('com_phoca', '', $a['o']));
$a['l'] = strtoupper($a['o']);
$a['i'] = 'media/'.$a['o'].'/images/administrator/';
$a['s'] = 'media/'.$a['o'].'/css/administrator/'.$a['c'].'.css';
$a['task'] = $a['c'] . htmlspecialchars(strip_tags($task));
$a['tasks'] = $a['task']. 's';
return $a;
}
public static function getAliasName($alias) {
$alias = ApplicationHelper::stringURLSafe($alias);
if (trim(str_replace('-', '', $alias)) == '') {
$alias = Factory::getDate()->format("Y-m-d-H-i-s");
}
return $alias;
}
public static function strTrimAll($input) {
$output = '';
$input = trim($input);
for($i=0;$i<strlen($input);$i++) {
if(substr($input, $i, 1) != " ") {
$output .= trim(substr($input, $i, 1));
} else {
$output .= " ";
}
}
return $output;
}
public static function toArray($value = FALSE) {
if ($value == FALSE) {
return array(0 => 0);
} else if (empty($value)) {
return array(0 => 0);
} else if (is_array($value)) {
return $value;
} else {
return array(0 => $value);
}
}
public static function isURLAddress($url) {
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}
public static function setQuestionmarkOrAmp($url) {
$isThereQMR = false;
$isThereQMR = preg_match("/\?/i", $url);
if ($isThereQMR) {
return '&amp;';
} else {
return '?';
}
}
public static function getToken($title = '') {
$salt = md5($title . 'string '. date('s'). mt_rand(0,9999) . str_replace(mt_rand(0,9), mt_rand(0,9999), date('r')). 'end string');
$token = hash('sha256', $salt . time());
return $token;
}
public static function cleanFolderUrlName($string) {
$string = str_replace('@', '-', $string);
$string = str_replace('?', '-', $string);
$string = str_replace('&', '-', $string);
$string = str_replace('%', '-', $string);
return $string;
}
public static function getIntFromString($string) {
if (empty($string)) {
return 0;
}
$int = '';//$int = 0
$parts = explode(':', $string);
if (isset($parts[0])) {
$int = (int)$parts[0];
}
return $int;
}
public static function getInfo() {
PluginHelper::importPlugin('phocatools');
$results = Factory::getApplication()->triggerEvent('onPhocatoolsOnDisplayInfo', array('NjI5NTcxNzcxMTc='));
if (isset($results[0]) && $results[0] === true) {
return '';
}
return '<div style="text-align:right;color:#ccc;display:block">Powered by <a href="https://www.phoca.cz/phocadownload">Phoca Download</a></div>';
}
public static function filterValue($string, $type = 'html') {
switch ($type) {
case 'url':
return rawurlencode($string);
break;
case 'number':
return preg_replace( '/[^.0-9]/', '', (string)$string );
break;
case 'number2':
//return preg_replace( '/[^0-9\.,+-]/', '', $string );
return preg_replace( '/[^0-9\.,-]/', '', (string)$string );
break;
case 'alphanumeric':
return preg_replace("/[^a-zA-Z0-9]+/", '', (string)$string);
break;
case 'alphanumeric2':
return preg_replace("/[^\\w-]/", '', (string)$string);// Alphanumeric plus _ -
break;
case 'alphanumeric3':
return preg_replace("/[^\\w.-]/", '', (string)$string);// Alphanumeric plus _ . -
break;
case 'folder':
case 'file':
$string = preg_replace('/[\"\*\/\\\:\<\>\?\'\|]+/', '', (string)$string);
return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
break;
case 'folderpath':
case 'filepath':
$string = preg_replace('/[\"\*\:\<\>\?\'\|]+/', '', (string)$string);
return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
break;
case 'text':
return htmlspecialchars(strip_tags((string)$string), ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
break;
case 'html':
default:
return htmlspecialchars((string)$string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
break;
}
}
public static function getIp() {
$params = ComponentHelper::getParams('com_phocadownload');
$store_ip = $params->get( 'store_ip', 0 );
if ($store_ip == 0) {
return '';
}
$ip = false;
if(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] != getenv('SERVER_ADDR')) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
if (!$ip) {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
}
?>