Tweak the downloader, added some mime type function to helper class. Fixed the dropbox button.

This commit is contained in:
Llewellyn van der Merwe 2018-03-04 01:35:30 +02:00
parent 529afcfe8b
commit 3db36fd6a5
No known key found for this signature in database
GPG Key ID: CAD7B16D27AF28C5
23 changed files with 1569 additions and 175 deletions

View File

@ -30,31 +30,31 @@ The best way to see all your options is to install this component on you Joomla
## Build Time :hourglass:
**180 Hours** or **23 Eight Hour Days** (actual time the author saved -
**184 Hours** or **23 Eight Hour Days** (actual time the author saved -
due to [Automated Component Builder](https://www.vdm.io/joomla-component-builder))
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> never making one mistake or taking any coffee break.)
+ *Line count*: **64404**
+ *File count*: **451**
+ *Line count*: **65798**
+ *File count*: **444**
+ *Folder count*: **93**
**118 Hours** or **14 Eight Hour Days** (the actual time the author spent)
**121 Hours** or **15 Eight Hour Days** (the actual time the author spent)
> (with the following break down:
> **debugging @45hours** = codingtime / 4;
> **debugging @46hours** = codingtime / 4;
> **planning @26hours** = codingtime / 7;
> **mapping @18hours** = codingtime / 10;
> **office @30hours** = codingtime / 6;)
> **office @31hours** = codingtime / 6;)
**298 Hours** or **37 Eight Hour Days**
**305 Hours** or **38 Eight Hour Days**
(a total of the realistic time frame for this project)
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)
Project duration: **7.4 weeks** or **1.5 months**
Project duration: **7.6 weeks** or **1.6 months**
> This **component** was build with a Joomla [Automated Component Builder](https://www.vdm.io/joomla-component-builder).
> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)

View File

@ -30,31 +30,31 @@ The best way to see all your options is to install this component on you Joomla
## Build Time :hourglass:
**180 Hours** or **23 Eight Hour Days** (actual time the author saved -
**184 Hours** or **23 Eight Hour Days** (actual time the author saved -
due to [Automated Component Builder](https://www.vdm.io/joomla-component-builder))
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> never making one mistake or taking any coffee break.)
+ *Line count*: **64404**
+ *File count*: **451**
+ *Line count*: **65798**
+ *File count*: **444**
+ *Folder count*: **93**
**118 Hours** or **14 Eight Hour Days** (the actual time the author spent)
**121 Hours** or **15 Eight Hour Days** (the actual time the author spent)
> (with the following break down:
> **debugging @45hours** = codingtime / 4;
> **debugging @46hours** = codingtime / 4;
> **planning @26hours** = codingtime / 7;
> **mapping @18hours** = codingtime / 10;
> **office @30hours** = codingtime / 6;)
> **office @31hours** = codingtime / 6;)
**298 Hours** or **37 Eight Hour Days**
**305 Hours** or **38 Eight Hour Days**
(a total of the realistic time frame for this project)
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)
Project duration: **7.4 weeks** or **1.5 months**
Project duration: **7.6 weeks** or **1.6 months**
> This **component** was build with a Joomla [Automated Component Builder](https://www.vdm.io/joomla-component-builder).
> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)

View File

@ -187,7 +187,9 @@ abstract class SermondistributorHelper
{
$dropURL = $safe->encryptString($dropURL);
}
$sermon->download_links[$filename] = $downloadURL.'&link='.self::base64_urlencode($dropURL).'&filename='.$filename;
// lock the info key
$infoKey = $safe->encryptString($key);
$sermon->download_links[$filename] = $downloadURL.'&info='.self::base64_urlencode($infoKey).'&link='.self::base64_urlencode($dropURL).'&filename='.$filename;
$sermon->onclick[$filename] = '';
}
elseif (2 == $sermon->link_type && $dropURL)
@ -235,8 +237,9 @@ abstract class SermondistributorHelper
{
$dropURL = $safe->encryptString($dropURL);
}
// get the file name (use the same method as the auto
$sermon->download_links[$filename] = $downloadURL.'&link='.self::base64_urlencode($dropURL).'&filename='.$filename;
// lock the info key
$infoKey = $safe->encryptString($key);
$sermon->download_links[$filename] = $downloadURL.'&info='.self::base64_urlencode($infoKey).'&link='.self::base64_urlencode($dropURL).'&filename='.$filename;
$sermon->onclick[$filename] = '';
}
elseif (2 == $sermon->link_type && $dropURL)
@ -576,7 +579,7 @@ abstract class SermondistributorHelper
return false;
}
public static function countDownload($counter,$filename)
public static function countDownload($counter, $filename)
{
// Get local key
$localkey = self::getLocalKey();
@ -627,7 +630,761 @@ abstract class SermondistributorHelper
return false;
}
protected static function getDownloadFileName(&$sermon,$file,$type)
public static function getFileInfo($key)
{
if (self::checkString($key) && (base64_encode(base64_decode($key, true)) === $key))
{
// Get local key
$localkey = self::getLocalKey();
$opener = new FOFEncryptAes($localkey, 128);
$key = rtrim($opener->decryptString($key), "\0");
// load the links from the database
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query->select('size');
$query->from($db->quoteName('#__sermondistributor_local_listing'));
$query->where($db->quoteName('key') . ' = '. $db->quote($key));
// Reset the query using our newly populated query object.
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
$info = array();
// get the size of the file
$info['filesize'] = $db->loadResult();
// get the mime type
$info['type'] = self::mimeType($key);
// return info
return $info;
}
}
return false;
}
/**
* File Extension to Mimetype
*
**/
protected static $fileExtentionToMimeType = array(
"3dml" => "text/vnd.in3d.3dml",
"3g2" => "video/3gpp2",
"3gp" => "video/3gpp",
"7z" => "application/x-7z-compressed",
"aab" => "application/x-authorware-bin",
"aac" => "audio/x-aac",
"aam" => "application/x-authorware-map",
"aas" => "application/x-authorware-seg",
"abw" => "application/x-abiword",
"ac" => "application/pkix-attr-cert",
"acc" => "application/vnd.americandynamics.acc",
"ace" => "application/x-ace-compressed",
"acu" => "application/vnd.acucobol",
"adp" => "audio/adpcm",
"aep" => "application/vnd.audiograph",
"afp" => "application/vnd.ibm.modcap",
"ahead" => "application/vnd.ahead.space",
"ai" => "application/postscript",
"aif" => "audio/x-aiff",
"air" => "application/vnd.adobe.air-application-installer-package+zip",
"ait" => "application/vnd.dvb.ait",
"ami" => "application/vnd.amiga.ami",
"apk" => "application/vnd.android.package-archive",
"application" => "application/x-ms-application",
"apr" => "application/vnd.lotus-approach",
"asf" => "video/x-ms-asf",
"aso" => "application/vnd.accpac.simply.aso",
"atc" => "application/vnd.acucorp",
"atom" => "application/atom+xml",
"atomcat" => "application/atomcat+xml",
"atomsvc" => "application/atomsvc+xml",
"atx" => "application/vnd.antix.game-component",
"au" => "audio/basic",
"avi" => "video/x-msvideo",
"aw" => "application/applixware",
"azf" => "application/vnd.airzip.filesecure.azf",
"azs" => "application/vnd.airzip.filesecure.azs",
"azw" => "application/vnd.amazon.ebook",
"bcpio" => "application/x-bcpio",
"bdf" => "application/x-font-bdf",
"bdm" => "application/vnd.syncml.dm+wbxml",
"bed" => "application/vnd.realvnc.bed",
"bh2" => "application/vnd.fujitsu.oasysprs",
"bin" => "application/octet-stream",
"bmi" => "application/vnd.bmi",
"bmp" => "image/bmp",
"box" => "application/vnd.previewsystems.box",
"btif" => "image/prs.btif",
"bz" => "application/x-bzip",
"bz2" => "application/x-bzip2",
"c" => "text/x-c",
"c11amc" => "application/vnd.cluetrust.cartomobile-config",
"c11amz" => "application/vnd.cluetrust.cartomobile-config-pkg",
"c4g" => "application/vnd.clonk.c4group",
"cab" => "application/vnd.ms-cab-compressed",
"car" => "application/vnd.curl.car",
"cat" => "application/vnd.ms-pki.seccat",
"ccxml" => "application/ccxml+xml,",
"cdbcmsg" => "application/vnd.contact.cmsg",
"cdkey" => "application/vnd.mediastation.cdkey",
"cdmia" => "application/cdmi-capability",
"cdmic" => "application/cdmi-container",
"cdmid" => "application/cdmi-domain",
"cdmio" => "application/cdmi-object",
"cdmiq" => "application/cdmi-queue",
"cdx" => "chemical/x-cdx",
"cdxml" => "application/vnd.chemdraw+xml",
"cdy" => "application/vnd.cinderella",
"cer" => "application/pkix-cert",
"cgm" => "image/cgm",
"chat" => "application/x-chat",
"chm" => "application/vnd.ms-htmlhelp",
"chrt" => "application/vnd.kde.kchart",
"cif" => "chemical/x-cif",
"cii" => "application/vnd.anser-web-certificate-issue-initiation",
"cil" => "application/vnd.ms-artgalry",
"cla" => "application/vnd.claymore",
"class" => "application/java-vm",
"clkk" => "application/vnd.crick.clicker.keyboard",
"clkp" => "application/vnd.crick.clicker.palette",
"clkt" => "application/vnd.crick.clicker.template",
"clkw" => "application/vnd.crick.clicker.wordbank",
"clkx" => "application/vnd.crick.clicker",
"clp" => "application/x-msclip",
"cmc" => "application/vnd.cosmocaller",
"cmdf" => "chemical/x-cmdf",
"cml" => "chemical/x-cml",
"cmp" => "application/vnd.yellowriver-custom-menu",
"cmx" => "image/x-cmx",
"cod" => "application/vnd.rim.cod",
"cpio" => "application/x-cpio",
"cpt" => "application/mac-compactpro",
"crd" => "application/x-mscardfile",
"crl" => "application/pkix-crl",
"cryptonote" => "application/vnd.rig.cryptonote",
"csh" => "application/x-csh",
"csml" => "chemical/x-csml",
"csp" => "application/vnd.commonspace",
"css" => "text/css",
"csv" => "text/csv",
"cu" => "application/cu-seeme",
"curl" => "text/vnd.curl",
"cww" => "application/prs.cww",
"dae" => "model/vnd.collada+xml",
"daf" => "application/vnd.mobius.daf",
"davmount" => "application/davmount+xml",
"dcurl" => "text/vnd.curl.dcurl",
"dd2" => "application/vnd.oma.dd2+xml",
"ddd" => "application/vnd.fujixerox.ddd",
"deb" => "application/x-debian-package",
"der" => "application/x-x509-ca-cert",
"dfac" => "application/vnd.dreamfactory",
"dir" => "application/x-director",
"dis" => "application/vnd.mobius.dis",
"djvu" => "image/vnd.djvu",
"dna" => "application/vnd.dna",
"doc" => "application/msword",
"docm" => "application/vnd.ms-word.document.macroenabled.12",
"docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"dotm" => "application/vnd.ms-word.template.macroenabled.12",
"dotx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
"dp" => "application/vnd.osgi.dp",
"dpg" => "application/vnd.dpgraph",
"dra" => "audio/vnd.dra",
"dsc" => "text/prs.lines.tag",
"dssc" => "application/dssc+der",
"dtb" => "application/x-dtbook+xml",
"dtd" => "application/xml-dtd",
"dts" => "audio/vnd.dts",
"dtshd" => "audio/vnd.dts.hd",
"dvi" => "application/x-dvi",
"dwf" => "model/vnd.dwf",
"dwg" => "image/vnd.dwg",
"dxf" => "image/vnd.dxf",
"dxp" => "application/vnd.spotfire.dxp",
"ecelp4800" => "audio/vnd.nuera.ecelp4800",
"ecelp7470" => "audio/vnd.nuera.ecelp7470",
"ecelp9600" => "audio/vnd.nuera.ecelp9600",
"edm" => "application/vnd.novadigm.edm",
"edx" => "application/vnd.novadigm.edx",
"efif" => "application/vnd.picsel",
"ei6" => "application/vnd.pg.osasli",
"eml" => "message/rfc822",
"emma" => "application/emma+xml",
"eol" => "audio/vnd.digital-winds",
"eot" => "application/vnd.ms-fontobject",
"epub" => "application/epub+zip",
"es" => "application/ecmascript",
"es3" => "application/vnd.eszigno3+xml",
"esf" => "application/vnd.epson.esf",
"etx" => "text/x-setext",
"exe" => "application/x-msdownload",
"exi" => "application/exi",
"ext" => "application/vnd.novadigm.ext",
"ez2" => "application/vnd.ezpix-album",
"ez3" => "application/vnd.ezpix-package",
"f" => "text/x-fortran",
"f4v" => "video/x-f4v",
"fbs" => "image/vnd.fastbidsheet",
"fcs" => "application/vnd.isac.fcs",
"fdf" => "application/vnd.fdf",
"fe_launch" => "application/vnd.denovo.fcselayout-link",
"fg5" => "application/vnd.fujitsu.oasysgp",
"fh" => "image/x-freehand",
"fig" => "application/x-xfig",
"fli" => "video/x-fli",
"flo" => "application/vnd.micrografx.flo",
"flv" => "video/x-flv",
"flw" => "application/vnd.kde.kivio",
"flx" => "text/vnd.fmi.flexstor",
"fly" => "text/vnd.fly",
"fm" => "application/vnd.framemaker",
"fnc" => "application/vnd.frogans.fnc",
"fpx" => "image/vnd.fpx",
"fsc" => "application/vnd.fsc.weblaunch",
"fst" => "image/vnd.fst",
"ftc" => "application/vnd.fluxtime.clip",
"fti" => "application/vnd.anser-web-funds-transfer-initiation",
"fvt" => "video/vnd.fvt",
"fxp" => "application/vnd.adobe.fxp",
"fzs" => "application/vnd.fuzzysheet",
"g2w" => "application/vnd.geoplan",
"g3" => "image/g3fax",
"g3w" => "application/vnd.geospace",
"gac" => "application/vnd.groove-account",
"gdl" => "model/vnd.gdl",
"geo" => "application/vnd.dynageo",
"gex" => "application/vnd.geometry-explorer",
"ggb" => "application/vnd.geogebra.file",
"ggt" => "application/vnd.geogebra.tool",
"ghf" => "application/vnd.groove-help",
"gif" => "image/gif",
"gim" => "application/vnd.groove-identity-message",
"gmx" => "application/vnd.gmx",
"gnumeric" => "application/x-gnumeric",
"gph" => "application/vnd.flographit",
"gqf" => "application/vnd.grafeq",
"gram" => "application/srgs",
"grv" => "application/vnd.groove-injector",
"grxml" => "application/srgs+xml",
"gsf" => "application/x-font-ghostscript",
"gtar" => "application/x-gtar",
"gtm" => "application/vnd.groove-tool-message",
"gtw" => "model/vnd.gtw",
"gv" => "text/vnd.graphviz",
"gxt" => "application/vnd.geonext",
"h261" => "video/h261",
"h263" => "video/h263",
"h264" => "video/h264",
"hal" => "application/vnd.hal+xml",
"hbci" => "application/vnd.hbci",
"hdf" => "application/x-hdf",
"hlp" => "application/winhlp",
"hpgl" => "application/vnd.hp-hpgl",
"hpid" => "application/vnd.hp-hpid",
"hps" => "application/vnd.hp-hps",
"hqx" => "application/mac-binhex40",
"htke" => "application/vnd.kenameaapp",
"html" => "text/html",
"hvd" => "application/vnd.yamaha.hv-dic",
"hvp" => "application/vnd.yamaha.hv-voice",
"hvs" => "application/vnd.yamaha.hv-script",
"i2g" => "application/vnd.intergeo",
"icc" => "application/vnd.iccprofile",
"ice" => "x-conference/x-cooltalk",
"ico" => "image/x-icon",
"ics" => "text/calendar",
"ief" => "image/ief",
"ifm" => "application/vnd.shana.informed.formdata",
"igl" => "application/vnd.igloader",
"igm" => "application/vnd.insors.igm",
"igs" => "model/iges",
"igx" => "application/vnd.micrografx.igx",
"iif" => "application/vnd.shana.informed.interchange",
"imp" => "application/vnd.accpac.simply.imp",
"ims" => "application/vnd.ms-ims",
"ipfix" => "application/ipfix",
"ipk" => "application/vnd.shana.informed.package",
"irm" => "application/vnd.ibm.rights-management",
"irp" => "application/vnd.irepository.package+xml",
"itp" => "application/vnd.shana.informed.formtemplate",
"ivp" => "application/vnd.immervision-ivp",
"ivu" => "application/vnd.immervision-ivu",
"jad" => "text/vnd.sun.j2me.app-descriptor",
"jam" => "application/vnd.jam",
"jar" => "application/java-archive",
"java" => "text/x-java-source,java",
"jisp" => "application/vnd.jisp",
"jlt" => "application/vnd.hp-jlyt",
"jnlp" => "application/x-java-jnlp-file",
"joda" => "application/vnd.joost.joda-archive",
"jpeg" => "image/jpeg",
"jpg" => "image/jpeg",
"jpgv" => "video/jpeg",
"jpm" => "video/jpm",
"js" => "application/javascript",
"json" => "application/json",
"karbon" => "application/vnd.kde.karbon",
"kfo" => "application/vnd.kde.kformula",
"kia" => "application/vnd.kidspiration",
"kml" => "application/vnd.google-earth.kml+xml",
"kmz" => "application/vnd.google-earth.kmz",
"kne" => "application/vnd.kinar",
"kon" => "application/vnd.kde.kontour",
"kpr" => "application/vnd.kde.kpresenter",
"ksp" => "application/vnd.kde.kspread",
"ktx" => "image/ktx",
"ktz" => "application/vnd.kahootz",
"kwd" => "application/vnd.kde.kword",
"lasxml" => "application/vnd.las.las+xml",
"latex" => "application/x-latex",
"lbd" => "application/vnd.llamagraphics.life-balance.desktop",
"lbe" => "application/vnd.llamagraphics.life-balance.exchange+xml",
"les" => "application/vnd.hhe.lesson-player",
"link66" => "application/vnd.route66.link66+xml",
"lrm" => "application/vnd.ms-lrm",
"ltf" => "application/vnd.frogans.ltf",
"lvp" => "audio/vnd.lucent.voice",
"lwp" => "application/vnd.lotus-wordpro",
"m21" => "application/mp21",
"m3u" => "audio/x-mpegurl",
"m3u8" => "application/vnd.apple.mpegurl",
"m4v" => "video/x-m4v",
"ma" => "application/mathematica",
"mads" => "application/mads+xml",
"mag" => "application/vnd.ecowin.chart",
"map" => "application/json",
"mathml" => "application/mathml+xml",
"mbk" => "application/vnd.mobius.mbk",
"mbox" => "application/mbox",
"mc1" => "application/vnd.medcalcdata",
"mcd" => "application/vnd.mcd",
"mcurl" => "text/vnd.curl.mcurl",
"md" => "text/x-markdown",
"mdb" => "application/x-msaccess",
"mdi" => "image/vnd.ms-modi",
"meta4" => "application/metalink4+xml",
"mets" => "application/mets+xml",
"mfm" => "application/vnd.mfmp",
"mgp" => "application/vnd.osgeo.mapguide.package",
"mgz" => "application/vnd.proteus.magazine",
"mid" => "audio/midi",
"mif" => "application/vnd.mif",
"mj2" => "video/mj2",
"mlp" => "application/vnd.dolby.mlp",
"mmd" => "application/vnd.chipnuts.karaoke-mmd",
"mmf" => "application/vnd.smaf",
"mmr" => "image/vnd.fujixerox.edmics-mmr",
"mny" => "application/x-msmoney",
"mods" => "application/mods+xml",
"movie" => "video/x-sgi-movie",
"mp1" => "audio/mpeg",
"mp2" => "audio/mpeg",
"mp3" => "audio/mpeg",
"mp4" => "video/mp4",
"mp4a" => "audio/mp4",
"mpc" => "application/vnd.mophun.certificate",
"mpeg" => "video/mpeg",
"mpga" => "audio/mpeg",
"mpkg" => "application/vnd.apple.installer+xml",
"mpm" => "application/vnd.blueice.multipass",
"mpn" => "application/vnd.mophun.application",
"mpp" => "application/vnd.ms-project",
"mpy" => "application/vnd.ibm.minipay",
"mqy" => "application/vnd.mobius.mqy",
"mrc" => "application/marc",
"mrcx" => "application/marcxml+xml",
"mscml" => "application/mediaservercontrol+xml",
"mseq" => "application/vnd.mseq",
"msf" => "application/vnd.epson.msf",
"msh" => "model/mesh",
"msl" => "application/vnd.mobius.msl",
"msty" => "application/vnd.muvee.style",
"mts" => "model/vnd.mts",
"mus" => "application/vnd.musician",
"musicxml" => "application/vnd.recordare.musicxml+xml",
"mvb" => "application/x-msmediaview",
"mwf" => "application/vnd.mfer",
"mxf" => "application/mxf",
"mxl" => "application/vnd.recordare.musicxml",
"mxml" => "application/xv+xml",
"mxs" => "application/vnd.triscape.mxs",
"mxu" => "video/vnd.mpegurl",
"n-gage" => "application/vnd.nokia.n-gage.symbian.install",
"n3" => "text/n3",
"nbp" => "application/vnd.wolfram.player",
"nc" => "application/x-netcdf",
"ncx" => "application/x-dtbncx+xml",
"ngdat" => "application/vnd.nokia.n-gage.data",
"nlu" => "application/vnd.neurolanguage.nlu",
"nml" => "application/vnd.enliven",
"nnd" => "application/vnd.noblenet-directory",
"nns" => "application/vnd.noblenet-sealer",
"nnw" => "application/vnd.noblenet-web",
"npx" => "image/vnd.net-fpx",
"nsf" => "application/vnd.lotus-notes",
"oa2" => "application/vnd.fujitsu.oasys2",
"oa3" => "application/vnd.fujitsu.oasys3",
"oas" => "application/vnd.fujitsu.oasys",
"obd" => "application/x-msbinder",
"oda" => "application/oda",
"odb" => "application/vnd.oasis.opendocument.database",
"odc" => "application/vnd.oasis.opendocument.chart",
"odf" => "application/vnd.oasis.opendocument.formula",
"odft" => "application/vnd.oasis.opendocument.formula-template",
"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",
"oga" => "audio/ogg",
"ogv" => "video/ogg",
"ogx" => "application/ogg",
"onetoc" => "application/onenote",
"opf" => "application/oebps-package+xml",
"org" => "application/vnd.lotus-organizer",
"osf" => "application/vnd.yamaha.openscoreformat",
"osfpvg" => "application/vnd.yamaha.openscoreformat.osfpvg+xml",
"otc" => "application/vnd.oasis.opendocument.chart-template",
"otf" => "application/x-font-otf",
"otg" => "application/vnd.oasis.opendocument.graphics-template",
"oth" => "application/vnd.oasis.opendocument.text-web",
"oti" => "application/vnd.oasis.opendocument.image-template",
"otp" => "application/vnd.oasis.opendocument.presentation-template",
"ots" => "application/vnd.oasis.opendocument.spreadsheet-template",
"ott" => "application/vnd.oasis.opendocument.text-template",
"oxt" => "application/vnd.openofficeorg.extension",
"p" => "text/x-pascal",
"p10" => "application/pkcs10",
"p12" => "application/x-pkcs12",
"p7b" => "application/x-pkcs7-certificates",
"p7m" => "application/pkcs7-mime",
"p7r" => "application/x-pkcs7-certreqresp",
"p7s" => "application/pkcs7-signature",
"p8" => "application/pkcs8",
"par" => "text/plain-bas",
"paw" => "application/vnd.pawaafile",
"pbd" => "application/vnd.powerbuilder6",
"pbm" => "image/x-portable-bitmap",
"pcf" => "application/x-font-pcf",
"pcl" => "application/vnd.hp-pcl",
"pclxl" => "application/vnd.hp-pclxl",
"pcurl" => "application/vnd.curl.pcurl",
"pcx" => "image/x-pcx",
"pdb" => "application/vnd.palm",
"pdf" => "application/pdf",
"pfa" => "application/x-font-type1",
"pfr" => "application/font-tdpfr",
"pgm" => "image/x-portable-graymap",
"pgn" => "application/x-chess-pgn",
"pgp" => "application/pgp-signature",
"pic" => "image/x-pict",
"pki" => "application/pkixcmp",
"pkipath" => "application/pkix-pkipath",
"plb" => "application/vnd.3gpp.pic-bw-large",
"plc" => "application/vnd.mobius.plc",
"plf" => "application/vnd.pocketlearn",
"pls" => "application/pls+xml",
"pml" => "application/vnd.ctc-posml",
"png" => "image/png",
"pnm" => "image/x-portable-anymap",
"portpkg" => "application/vnd.macports.portpkg",
"potm" => "application/vnd.ms-powerpoint.template.macroenabled.12",
"potx" => "application/vnd.openxmlformats-officedocument.presentationml.template",
"ppam" => "application/vnd.ms-powerpoint.addin.macroenabled.12",
"ppd" => "application/vnd.cups-ppd",
"ppm" => "image/x-portable-pixmap",
"ppsm" => "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
"ppsx" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
"ppt" => "application/vnd.ms-powerpoint",
"pptm" => "application/vnd.ms-powerpoint.presentation.macroenabled.12",
"pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"prc" => "application/x-mobipocket-ebook",
"pre" => "application/vnd.lotus-freelance",
"prf" => "application/pics-rules",
"psb" => "application/vnd.3gpp.pic-bw-small",
"psd" => "image/vnd.adobe.photoshop",
"psf" => "application/x-font-linux-psf",
"pskcxml" => "application/pskc+xml",
"ptid" => "application/vnd.pvi.ptid1",
"pub" => "application/x-mspublisher",
"pvb" => "application/vnd.3gpp.pic-bw-var",
"pwn" => "application/vnd.3m.post-it-notes",
"pya" => "audio/vnd.ms-playready.media.pya",
"pyv" => "video/vnd.ms-playready.media.pyv",
"qam" => "application/vnd.epson.quickanime",
"qbo" => "application/vnd.intu.qbo",
"qfx" => "application/vnd.intu.qfx",
"qps" => "application/vnd.publishare-delta-tree",
"qt" => "video/quicktime",
"qxd" => "application/vnd.quark.quarkxpress",
"ram" => "audio/x-pn-realaudio",
"rar" => "application/x-rar-compressed",
"ras" => "image/x-cmu-raster",
"rcprofile" => "application/vnd.ipunplugged.rcprofile",
"rdf" => "application/rdf+xml",
"rdz" => "application/vnd.data-vision.rdz",
"rep" => "application/vnd.businessobjects",
"res" => "application/x-dtbresource+xml",
"rgb" => "image/x-rgb",
"rif" => "application/reginfo+xml",
"rip" => "audio/vnd.rip",
"rl" => "application/resource-lists+xml",
"rlc" => "image/vnd.fujixerox.edmics-rlc",
"rld" => "application/resource-lists-diff+xml",
"rm" => "application/vnd.rn-realmedia",
"rmp" => "audio/x-pn-realaudio-plugin",
"rms" => "application/vnd.jcp.javame.midlet-rms",
"rnc" => "application/relax-ng-compact-syntax",
"rp9" => "application/vnd.cloanto.rp9",
"rpss" => "application/vnd.nokia.radio-presets",
"rpst" => "application/vnd.nokia.radio-preset",
"rq" => "application/sparql-query",
"rs" => "application/rls-services+xml",
"rsd" => "application/rsd+xml",
"rss" => "application/rss+xml",
"rtf" => "application/rtf",
"rtx" => "text/richtext",
"s" => "text/x-asm",
"saf" => "application/vnd.yamaha.smaf-audio",
"sbml" => "application/sbml+xml",
"sc" => "application/vnd.ibm.secure-container",
"scd" => "application/x-msschedule",
"scm" => "application/vnd.lotus-screencam",
"scq" => "application/scvp-cv-request",
"scs" => "application/scvp-cv-response",
"scurl" => "text/vnd.curl.scurl",
"sda" => "application/vnd.stardivision.draw",
"sdc" => "application/vnd.stardivision.calc",
"sdd" => "application/vnd.stardivision.impress",
"sdkm" => "application/vnd.solent.sdkm+xml",
"sdp" => "application/sdp",
"sdw" => "application/vnd.stardivision.writer",
"see" => "application/vnd.seemail",
"seed" => "application/vnd.fdsn.seed",
"sema" => "application/vnd.sema",
"semd" => "application/vnd.semd",
"semf" => "application/vnd.semf",
"ser" => "application/java-serialized-object",
"setpay" => "application/set-payment-initiation",
"setreg" => "application/set-registration-initiation",
"sfd-hdstx" => "application/vnd.hydrostatix.sof-data",
"sfs" => "application/vnd.spotfire.sfs",
"sgl" => "application/vnd.stardivision.writer-global",
"sgml" => "text/sgml",
"sh" => "application/x-sh",
"shar" => "application/x-shar",
"shf" => "application/shf+xml",
"sis" => "application/vnd.symbian.install",
"sit" => "application/x-stuffit",
"sitx" => "application/x-stuffitx",
"skp" => "application/vnd.koan",
"sldm" => "application/vnd.ms-powerpoint.slide.macroenabled.12",
"sldx" => "application/vnd.openxmlformats-officedocument.presentationml.slide",
"slt" => "application/vnd.epson.salt",
"sm" => "application/vnd.stepmania.stepchart",
"smf" => "application/vnd.stardivision.math",
"smi" => "application/smil+xml",
"snf" => "application/x-font-snf",
"spf" => "application/vnd.yamaha.smaf-phrase",
"spl" => "application/x-futuresplash",
"spot" => "text/vnd.in3d.spot",
"spp" => "application/scvp-vp-response",
"spq" => "application/scvp-vp-request",
"src" => "application/x-wais-source",
"sru" => "application/sru+xml",
"srx" => "application/sparql-results+xml",
"sse" => "application/vnd.kodak-descriptor",
"ssf" => "application/vnd.epson.ssf",
"ssml" => "application/ssml+xml",
"st" => "application/vnd.sailingtracker.track",
"stc" => "application/vnd.sun.xml.calc.template",
"std" => "application/vnd.sun.xml.draw.template",
"stf" => "application/vnd.wt.stf",
"sti" => "application/vnd.sun.xml.impress.template",
"stk" => "application/hyperstudio",
"stl" => "application/vnd.ms-pki.stl",
"str" => "application/vnd.pg.format",
"stw" => "application/vnd.sun.xml.writer.template",
"sub" => "image/vnd.dvb.subtitle",
"sus" => "application/vnd.sus-calendar",
"sv4cpio" => "application/x-sv4cpio",
"sv4crc" => "application/x-sv4crc",
"svc" => "application/vnd.dvb.service",
"svd" => "application/vnd.svd",
"svg" => "image/svg+xml",
"swf" => "application/x-shockwave-flash",
"swi" => "application/vnd.aristanetworks.swi",
"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",
"t" => "text/troff",
"tao" => "application/vnd.tao.intent-module-archive",
"tar" => "application/x-tar",
"tcap" => "application/vnd.3gpp2.tcap",
"tcl" => "application/x-tcl",
"teacher" => "application/vnd.smart.teacher",
"tei" => "application/tei+xml",
"tex" => "application/x-tex",
"texinfo" => "application/x-texinfo",
"tfi" => "application/thraud+xml",
"tfm" => "application/x-tex-tfm",
"thmx" => "application/vnd.ms-officetheme",
"tiff" => "image/tiff",
"tmo" => "application/vnd.tmobile-livetv",
"torrent" => "application/x-bittorrent",
"tpl" => "application/vnd.groove-tool-template",
"tpt" => "application/vnd.trid.tpt",
"tra" => "application/vnd.trueapp",
"trm" => "application/x-msterminal",
"tsd" => "application/timestamped-data",
"tsv" => "text/tab-separated-values",
"ttf" => "application/x-font-ttf",
"ttl" => "text/turtle",
"twd" => "application/vnd.simtech-mindmapper",
"txd" => "application/vnd.genomatix.tuxedo",
"txf" => "application/vnd.mobius.txf",
"txt" => "text/plain",
"ufd" => "application/vnd.ufdl",
"umj" => "application/vnd.umajin",
"unityweb" => "application/vnd.unity",
"uoml" => "application/vnd.uoml+xml",
"uri" => "text/uri-list",
"ustar" => "application/x-ustar",
"utz" => "application/vnd.uiq.theme",
"uu" => "text/x-uuencode",
"uva" => "audio/vnd.dece.audio",
"uvh" => "video/vnd.dece.hd",
"uvi" => "image/vnd.dece.graphic",
"uvm" => "video/vnd.dece.mobile",
"uvp" => "video/vnd.dece.pd",
"uvs" => "video/vnd.dece.sd",
"uvu" => "video/vnd.uvvu.mp4",
"uvv" => "video/vnd.dece.video",
"vcd" => "application/x-cdlink",
"vcf" => "text/x-vcard",
"vcg" => "application/vnd.groove-vcard",
"vcs" => "text/x-vcalendar",
"vcx" => "application/vnd.vcx",
"vis" => "application/vnd.visionary",
"viv" => "video/vnd.vivo",
"vsd" => "application/vnd.visio",
"vsf" => "application/vnd.vsf",
"vtu" => "model/vnd.vtu",
"vxml" => "application/voicexml+xml",
"wad" => "application/x-doom",
"wav" => "audio/x-wav",
"wax" => "audio/x-ms-wax",
"wbmp" => "image/vnd.wap.wbmp",
"wbs" => "application/vnd.criticaltools.wbs+xml",
"wbxml" => "application/vnd.wap.wbxml",
"weba" => "audio/webm",
"webm" => "video/webm",
"webp" => "image/webp",
"wg" => "application/vnd.pmi.widget",
"wgt" => "application/widget",
"wm" => "video/x-ms-wm",
"wma" => "audio/x-ms-wma",
"wmd" => "application/x-ms-wmd",
"wmf" => "application/x-msmetafile",
"wml" => "text/vnd.wap.wml",
"wmlc" => "application/vnd.wap.wmlc",
"wmls" => "text/vnd.wap.wmlscript",
"wmlsc" => "application/vnd.wap.wmlscriptc",
"wmv" => "video/x-ms-wmv",
"wmx" => "video/x-ms-wmx",
"wmz" => "application/x-ms-wmz",
"woff" => "application/x-font-woff",
"woff2" => "application/font-woff2",
"wpd" => "application/vnd.wordperfect",
"wpl" => "application/vnd.ms-wpl",
"wps" => "application/vnd.ms-works",
"wqd" => "application/vnd.wqd",
"wri" => "application/x-mswrite",
"wrl" => "model/vrml",
"wsdl" => "application/wsdl+xml",
"wspolicy" => "application/wspolicy+xml",
"wtb" => "application/vnd.webturbo",
"wvx" => "video/x-ms-wvx",
"x3d" => "application/vnd.hzn-3d-crossword",
"xap" => "application/x-silverlight-app",
"xar" => "application/vnd.xara",
"xbap" => "application/x-ms-xbap",
"xbd" => "application/vnd.fujixerox.docuworks.binder",
"xbm" => "image/x-xbitmap",
"xdf" => "application/xcap-diff+xml",
"xdm" => "application/vnd.syncml.dm+xml",
"xdp" => "application/vnd.adobe.xdp+xml",
"xdssc" => "application/dssc+xml",
"xdw" => "application/vnd.fujixerox.docuworks",
"xenc" => "application/xenc+xml",
"xer" => "application/patch-ops-error+xml",
"xfdf" => "application/vnd.adobe.xfdf",
"xfdl" => "application/vnd.xfdl",
"xhtml" => "application/xhtml+xml",
"xif" => "image/vnd.xiff",
"xlam" => "application/vnd.ms-excel.addin.macroenabled.12",
"xls" => "application/vnd.ms-excel",
"xlsb" => "application/vnd.ms-excel.sheet.binary.macroenabled.12",
"xlsm" => "application/vnd.ms-excel.sheet.macroenabled.12",
"xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"xltm" => "application/vnd.ms-excel.template.macroenabled.12",
"xltx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
"xml" => "application/xml",
"xo" => "application/vnd.olpc-sugar",
"xop" => "application/xop+xml",
"xpi" => "application/x-xpinstall",
"xpm" => "image/x-xpixmap",
"xpr" => "application/vnd.is-xpr",
"xps" => "application/vnd.ms-xpsdocument",
"xpw" => "application/vnd.intercon.formnet",
"xslt" => "application/xslt+xml",
"xsm" => "application/vnd.syncml+xml",
"xspf" => "application/xspf+xml",
"xul" => "application/vnd.mozilla.xul+xml",
"xwd" => "image/x-xwindowdump",
"xyz" => "chemical/x-xyz",
"yaml" => "text/yaml",
"yang" => "application/yang",
"yin" => "application/yin+xml",
"zaz" => "application/vnd.zzazz.deck+xml",
"zip" => "application/zip",
"zir" => "application/vnd.zul",
"zmm" => "application/vnd.handheld-entertainment+xml"
);
/**
* Get the mime type based on file extension
*
* @param string $file The file name or path
*
* @return string the mime type on success
*
*/
protected static function mimeType($file)
{
/**
* **DISCLAIMER**
* This will just match the file extension to the following
* array. It does not guarantee that the file is TRULY that
* of the extension that this function returns.
*/
// get the extension form file
$extension = \strtolower(\pathinfo($file, \PATHINFO_EXTENSION));
// check if we have the extension listed
if (isset(self::$fileExtentionToMimeType[$extension]))
{
return self::$fileExtentionToMimeType[$extension];
}
return false;
}
protected static function getDownloadFileName(&$sermon, $file, $type)
{
// first get file name and file type
$file = str_replace('VDM_pLeK_h0uEr/', '', $file);

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1382,7 +1382,7 @@ class com_sermondistributorInstallerScript
echo '<a target="_blank" href="https://www.vdm.io/" title="Sermon Distributor">
<img src="components/com_sermondistributor/assets/images/vdm-component.jpg"/>
</a>
<h3>Upgrade to Version 2.0.0 Was Successful! Let us know if anything is not working as expected.</h3>';
<h3>Upgrade to Version 2.0.1 Was Successful! Let us know if anything is not working as expected.</h3>';
}
}
}

View File

@ -7,9 +7,9 @@
<authorUrl>https://www.vdm.io/</authorUrl>
<copyright>Copyright (C) 2015. All Rights Reserved</copyright>
<license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license>
<version>2.0.0</version>
<version>2.0.1</version>
<description><![CDATA[
<h1>Sermon Distributor (v.2.0.0)</h1>
<h1>Sermon Distributor (v.2.0.1)</h1>
<div style="clear: both;"></div>
<p>Distributor is a highly advanced sermon distributor that runs on the [Joomla 3.x](http://www.joomla.org) framework. You can link a shared folder from Dropbox to the component and use Dropbox as your file host, not to mention the advanced auto builder that gives you the ability to simply load sermons to your website by only adding them to Dropbox.</p>
<p>Created by <a href="https://www.vdm.io/" target="_blank">Llewellyn van der Merwe</a><br /><small>Development started 22nd October, 2015</small></p>

View File

@ -16,108 +16,6 @@
<maintainerurl>https://www.vdm.io/</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Sermon Distributor</name>
<description>A sermon distributor that links to Dropbox.</description>
<element>com_sermondistributor</element>
<type>component</type>
<version>1.2.9</version>
<infourl title="Sermon Distributor!">https://www.vdm.io/</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/archive/V1.2.9.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://www.vdm.io/</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Sermon Distributor</name>
<description>A sermon distributor that links to Dropbox.</description>
<element>com_sermondistributor</element>
<type>component</type>
<version>1.3.0</version>
<infourl title="Sermon Distributor!">https://www.vdm.io/</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.0.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://www.vdm.io/</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Sermon Distributor</name>
<description>A sermon distributor that links to Dropbox.</description>
<element>com_sermondistributor</element>
<type>component</type>
<version>1.3.1</version>
<infourl title="Sermon Distributor!">https://www.vdm.io/</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.1.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://www.vdm.io/</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Sermon Distributor</name>
<description>A sermon distributor that links to Dropbox.</description>
<element>com_sermondistributor</element>
<type>component</type>
<version>1.3.2</version>
<infourl title="Sermon Distributor!">https://www.vdm.io/</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.2.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://www.vdm.io/</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Sermon Distributor</name>
<description>A sermon distributor that links to Dropbox.</description>
<element>com_sermondistributor</element>
<type>component</type>
<version>1.3.3</version>
<infourl title="Sermon Distributor!">https://www.vdm.io/</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.3.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://www.vdm.io/</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Sermon Distributor</name>
<description>A sermon distributor that links to Dropbox.</description>
<element>com_sermondistributor</element>
<type>component</type>
<version>1.3.4</version>
<infourl title="Sermon Distributor!">https://www.vdm.io/</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.4.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://www.vdm.io/</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Sermon Distributor</name>
<description>A sermon distributor that links to Dropbox.</description>
@ -140,27 +38,10 @@
<description>A sermon distributor that links to Dropbox.</description>
<element>com_sermondistributor</element>
<type>component</type>
<version>1.4.0</version>
<version>2.0.1</version>
<infourl title="Sermon Distributor!">https://www.vdm.io/</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/releases/download/v1.4.0/SD_v1.4.0.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://www.vdm.io/</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Sermon Distributor</name>
<description>A sermon distributor that links to Dropbox.</description>
<element>com_sermondistributor</element>
<type>component</type>
<version>2.0.0</version>
<infourl title="Sermon Distributor!">https://www.vdm.io/</infourl>
<downloads>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/releases/download/v2.0.0/SD_v2.0.0.zip</downloadurl>
<downloadurl type="full" format="zip">https://github.com/SermonDistributor/Joomla-3-Component/releases/download/v2.0.1/SD_v2.0.1.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>

View File

@ -56,6 +56,7 @@ class SermondistributorControllerDownload extends JControllerLegacy
case 'file':
$keys = SermondistributorHelper::base64_urldecode($jinput->get('key', NULL, 'STRING'));
$enUrl = SermondistributorHelper::base64_urldecode($jinput->get('link', NULL, 'STRING'));
$infoKey = SermondistributorHelper::base64_urldecode($jinput->get('info', NULL, 'STRING'));
$filename = $jinput->get('filename', NULL, 'CMD');
if((base64_encode(base64_decode($enUrl, true)) === $enUrl) && (base64_encode(base64_decode($keys, true)) === $keys) && $filename)
{
@ -70,7 +71,11 @@ class SermondistributorControllerDownload extends JControllerLegacy
$localkey = SermondistributorHelper::getLocalKey();
$opener = new FOFEncryptAes($localkey, 128);
$link = rtrim($opener->decryptString($enUrl), "\0");
$info = $this->getContentInfo($link);
// check if we have local listing info
if (!$info = SermondistributorHelper::getFileInfo($infoKey))
{
$info = $this->getContentInfo($link);
}
// set headers
$app = JFactory::getApplication();
$app->setHeader('Accept-ranges', 'bytes', true);
@ -122,7 +127,6 @@ class SermondistributorControllerDownload extends JControllerLegacy
protected function getContentInfo($url)
{
// we first try the curl option
if ($this->_isCurl())
{
$ch = curl_init($url);

View File

@ -187,7 +187,9 @@ abstract class SermondistributorHelper
{
$dropURL = $safe->encryptString($dropURL);
}
$sermon->download_links[$filename] = $downloadURL.'&link='.self::base64_urlencode($dropURL).'&filename='.$filename;
// lock the info key
$infoKey = $safe->encryptString($key);
$sermon->download_links[$filename] = $downloadURL.'&info='.self::base64_urlencode($infoKey).'&link='.self::base64_urlencode($dropURL).'&filename='.$filename;
$sermon->onclick[$filename] = '';
}
elseif (2 == $sermon->link_type && $dropURL)
@ -235,8 +237,9 @@ abstract class SermondistributorHelper
{
$dropURL = $safe->encryptString($dropURL);
}
// get the file name (use the same method as the auto
$sermon->download_links[$filename] = $downloadURL.'&link='.self::base64_urlencode($dropURL).'&filename='.$filename;
// lock the info key
$infoKey = $safe->encryptString($key);
$sermon->download_links[$filename] = $downloadURL.'&info='.self::base64_urlencode($infoKey).'&link='.self::base64_urlencode($dropURL).'&filename='.$filename;
$sermon->onclick[$filename] = '';
}
elseif (2 == $sermon->link_type && $dropURL)
@ -576,7 +579,7 @@ abstract class SermondistributorHelper
return false;
}
public static function countDownload($counter,$filename)
public static function countDownload($counter, $filename)
{
// Get local key
$localkey = self::getLocalKey();
@ -627,7 +630,761 @@ abstract class SermondistributorHelper
return false;
}
protected static function getDownloadFileName(&$sermon,$file,$type)
public static function getFileInfo($key)
{
if (self::checkString($key) && (base64_encode(base64_decode($key, true)) === $key))
{
// Get local key
$localkey = self::getLocalKey();
$opener = new FOFEncryptAes($localkey, 128);
$key = rtrim($opener->decryptString($key), "\0");
// load the links from the database
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query->select('size');
$query->from($db->quoteName('#__sermondistributor_local_listing'));
$query->where($db->quoteName('key') . ' = '. $db->quote($key));
// Reset the query using our newly populated query object.
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
$info = array();
// get the size of the file
$info['filesize'] = $db->loadResult();
// get the mime type
$info['type'] = self::mimeType($key);
// return info
return $info;
}
}
return false;
}
/**
* File Extension to Mimetype
*
**/
protected static $fileExtentionToMimeType = array(
"3dml" => "text/vnd.in3d.3dml",
"3g2" => "video/3gpp2",
"3gp" => "video/3gpp",
"7z" => "application/x-7z-compressed",
"aab" => "application/x-authorware-bin",
"aac" => "audio/x-aac",
"aam" => "application/x-authorware-map",
"aas" => "application/x-authorware-seg",
"abw" => "application/x-abiword",
"ac" => "application/pkix-attr-cert",
"acc" => "application/vnd.americandynamics.acc",
"ace" => "application/x-ace-compressed",
"acu" => "application/vnd.acucobol",
"adp" => "audio/adpcm",
"aep" => "application/vnd.audiograph",
"afp" => "application/vnd.ibm.modcap",
"ahead" => "application/vnd.ahead.space",
"ai" => "application/postscript",
"aif" => "audio/x-aiff",
"air" => "application/vnd.adobe.air-application-installer-package+zip",
"ait" => "application/vnd.dvb.ait",
"ami" => "application/vnd.amiga.ami",
"apk" => "application/vnd.android.package-archive",
"application" => "application/x-ms-application",
"apr" => "application/vnd.lotus-approach",
"asf" => "video/x-ms-asf",
"aso" => "application/vnd.accpac.simply.aso",
"atc" => "application/vnd.acucorp",
"atom" => "application/atom+xml",
"atomcat" => "application/atomcat+xml",
"atomsvc" => "application/atomsvc+xml",
"atx" => "application/vnd.antix.game-component",
"au" => "audio/basic",
"avi" => "video/x-msvideo",
"aw" => "application/applixware",
"azf" => "application/vnd.airzip.filesecure.azf",
"azs" => "application/vnd.airzip.filesecure.azs",
"azw" => "application/vnd.amazon.ebook",
"bcpio" => "application/x-bcpio",
"bdf" => "application/x-font-bdf",
"bdm" => "application/vnd.syncml.dm+wbxml",
"bed" => "application/vnd.realvnc.bed",
"bh2" => "application/vnd.fujitsu.oasysprs",
"bin" => "application/octet-stream",
"bmi" => "application/vnd.bmi",
"bmp" => "image/bmp",
"box" => "application/vnd.previewsystems.box",
"btif" => "image/prs.btif",
"bz" => "application/x-bzip",
"bz2" => "application/x-bzip2",
"c" => "text/x-c",
"c11amc" => "application/vnd.cluetrust.cartomobile-config",
"c11amz" => "application/vnd.cluetrust.cartomobile-config-pkg",
"c4g" => "application/vnd.clonk.c4group",
"cab" => "application/vnd.ms-cab-compressed",
"car" => "application/vnd.curl.car",
"cat" => "application/vnd.ms-pki.seccat",
"ccxml" => "application/ccxml+xml,",
"cdbcmsg" => "application/vnd.contact.cmsg",
"cdkey" => "application/vnd.mediastation.cdkey",
"cdmia" => "application/cdmi-capability",
"cdmic" => "application/cdmi-container",
"cdmid" => "application/cdmi-domain",
"cdmio" => "application/cdmi-object",
"cdmiq" => "application/cdmi-queue",
"cdx" => "chemical/x-cdx",
"cdxml" => "application/vnd.chemdraw+xml",
"cdy" => "application/vnd.cinderella",
"cer" => "application/pkix-cert",
"cgm" => "image/cgm",
"chat" => "application/x-chat",
"chm" => "application/vnd.ms-htmlhelp",
"chrt" => "application/vnd.kde.kchart",
"cif" => "chemical/x-cif",
"cii" => "application/vnd.anser-web-certificate-issue-initiation",
"cil" => "application/vnd.ms-artgalry",
"cla" => "application/vnd.claymore",
"class" => "application/java-vm",
"clkk" => "application/vnd.crick.clicker.keyboard",
"clkp" => "application/vnd.crick.clicker.palette",
"clkt" => "application/vnd.crick.clicker.template",
"clkw" => "application/vnd.crick.clicker.wordbank",
"clkx" => "application/vnd.crick.clicker",
"clp" => "application/x-msclip",
"cmc" => "application/vnd.cosmocaller",
"cmdf" => "chemical/x-cmdf",
"cml" => "chemical/x-cml",
"cmp" => "application/vnd.yellowriver-custom-menu",
"cmx" => "image/x-cmx",
"cod" => "application/vnd.rim.cod",
"cpio" => "application/x-cpio",
"cpt" => "application/mac-compactpro",
"crd" => "application/x-mscardfile",
"crl" => "application/pkix-crl",
"cryptonote" => "application/vnd.rig.cryptonote",
"csh" => "application/x-csh",
"csml" => "chemical/x-csml",
"csp" => "application/vnd.commonspace",
"css" => "text/css",
"csv" => "text/csv",
"cu" => "application/cu-seeme",
"curl" => "text/vnd.curl",
"cww" => "application/prs.cww",
"dae" => "model/vnd.collada+xml",
"daf" => "application/vnd.mobius.daf",
"davmount" => "application/davmount+xml",
"dcurl" => "text/vnd.curl.dcurl",
"dd2" => "application/vnd.oma.dd2+xml",
"ddd" => "application/vnd.fujixerox.ddd",
"deb" => "application/x-debian-package",
"der" => "application/x-x509-ca-cert",
"dfac" => "application/vnd.dreamfactory",
"dir" => "application/x-director",
"dis" => "application/vnd.mobius.dis",
"djvu" => "image/vnd.djvu",
"dna" => "application/vnd.dna",
"doc" => "application/msword",
"docm" => "application/vnd.ms-word.document.macroenabled.12",
"docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"dotm" => "application/vnd.ms-word.template.macroenabled.12",
"dotx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
"dp" => "application/vnd.osgi.dp",
"dpg" => "application/vnd.dpgraph",
"dra" => "audio/vnd.dra",
"dsc" => "text/prs.lines.tag",
"dssc" => "application/dssc+der",
"dtb" => "application/x-dtbook+xml",
"dtd" => "application/xml-dtd",
"dts" => "audio/vnd.dts",
"dtshd" => "audio/vnd.dts.hd",
"dvi" => "application/x-dvi",
"dwf" => "model/vnd.dwf",
"dwg" => "image/vnd.dwg",
"dxf" => "image/vnd.dxf",
"dxp" => "application/vnd.spotfire.dxp",
"ecelp4800" => "audio/vnd.nuera.ecelp4800",
"ecelp7470" => "audio/vnd.nuera.ecelp7470",
"ecelp9600" => "audio/vnd.nuera.ecelp9600",
"edm" => "application/vnd.novadigm.edm",
"edx" => "application/vnd.novadigm.edx",
"efif" => "application/vnd.picsel",
"ei6" => "application/vnd.pg.osasli",
"eml" => "message/rfc822",
"emma" => "application/emma+xml",
"eol" => "audio/vnd.digital-winds",
"eot" => "application/vnd.ms-fontobject",
"epub" => "application/epub+zip",
"es" => "application/ecmascript",
"es3" => "application/vnd.eszigno3+xml",
"esf" => "application/vnd.epson.esf",
"etx" => "text/x-setext",
"exe" => "application/x-msdownload",
"exi" => "application/exi",
"ext" => "application/vnd.novadigm.ext",
"ez2" => "application/vnd.ezpix-album",
"ez3" => "application/vnd.ezpix-package",
"f" => "text/x-fortran",
"f4v" => "video/x-f4v",
"fbs" => "image/vnd.fastbidsheet",
"fcs" => "application/vnd.isac.fcs",
"fdf" => "application/vnd.fdf",
"fe_launch" => "application/vnd.denovo.fcselayout-link",
"fg5" => "application/vnd.fujitsu.oasysgp",
"fh" => "image/x-freehand",
"fig" => "application/x-xfig",
"fli" => "video/x-fli",
"flo" => "application/vnd.micrografx.flo",
"flv" => "video/x-flv",
"flw" => "application/vnd.kde.kivio",
"flx" => "text/vnd.fmi.flexstor",
"fly" => "text/vnd.fly",
"fm" => "application/vnd.framemaker",
"fnc" => "application/vnd.frogans.fnc",
"fpx" => "image/vnd.fpx",
"fsc" => "application/vnd.fsc.weblaunch",
"fst" => "image/vnd.fst",
"ftc" => "application/vnd.fluxtime.clip",
"fti" => "application/vnd.anser-web-funds-transfer-initiation",
"fvt" => "video/vnd.fvt",
"fxp" => "application/vnd.adobe.fxp",
"fzs" => "application/vnd.fuzzysheet",
"g2w" => "application/vnd.geoplan",
"g3" => "image/g3fax",
"g3w" => "application/vnd.geospace",
"gac" => "application/vnd.groove-account",
"gdl" => "model/vnd.gdl",
"geo" => "application/vnd.dynageo",
"gex" => "application/vnd.geometry-explorer",
"ggb" => "application/vnd.geogebra.file",
"ggt" => "application/vnd.geogebra.tool",
"ghf" => "application/vnd.groove-help",
"gif" => "image/gif",
"gim" => "application/vnd.groove-identity-message",
"gmx" => "application/vnd.gmx",
"gnumeric" => "application/x-gnumeric",
"gph" => "application/vnd.flographit",
"gqf" => "application/vnd.grafeq",
"gram" => "application/srgs",
"grv" => "application/vnd.groove-injector",
"grxml" => "application/srgs+xml",
"gsf" => "application/x-font-ghostscript",
"gtar" => "application/x-gtar",
"gtm" => "application/vnd.groove-tool-message",
"gtw" => "model/vnd.gtw",
"gv" => "text/vnd.graphviz",
"gxt" => "application/vnd.geonext",
"h261" => "video/h261",
"h263" => "video/h263",
"h264" => "video/h264",
"hal" => "application/vnd.hal+xml",
"hbci" => "application/vnd.hbci",
"hdf" => "application/x-hdf",
"hlp" => "application/winhlp",
"hpgl" => "application/vnd.hp-hpgl",
"hpid" => "application/vnd.hp-hpid",
"hps" => "application/vnd.hp-hps",
"hqx" => "application/mac-binhex40",
"htke" => "application/vnd.kenameaapp",
"html" => "text/html",
"hvd" => "application/vnd.yamaha.hv-dic",
"hvp" => "application/vnd.yamaha.hv-voice",
"hvs" => "application/vnd.yamaha.hv-script",
"i2g" => "application/vnd.intergeo",
"icc" => "application/vnd.iccprofile",
"ice" => "x-conference/x-cooltalk",
"ico" => "image/x-icon",
"ics" => "text/calendar",
"ief" => "image/ief",
"ifm" => "application/vnd.shana.informed.formdata",
"igl" => "application/vnd.igloader",
"igm" => "application/vnd.insors.igm",
"igs" => "model/iges",
"igx" => "application/vnd.micrografx.igx",
"iif" => "application/vnd.shana.informed.interchange",
"imp" => "application/vnd.accpac.simply.imp",
"ims" => "application/vnd.ms-ims",
"ipfix" => "application/ipfix",
"ipk" => "application/vnd.shana.informed.package",
"irm" => "application/vnd.ibm.rights-management",
"irp" => "application/vnd.irepository.package+xml",
"itp" => "application/vnd.shana.informed.formtemplate",
"ivp" => "application/vnd.immervision-ivp",
"ivu" => "application/vnd.immervision-ivu",
"jad" => "text/vnd.sun.j2me.app-descriptor",
"jam" => "application/vnd.jam",
"jar" => "application/java-archive",
"java" => "text/x-java-source,java",
"jisp" => "application/vnd.jisp",
"jlt" => "application/vnd.hp-jlyt",
"jnlp" => "application/x-java-jnlp-file",
"joda" => "application/vnd.joost.joda-archive",
"jpeg" => "image/jpeg",
"jpg" => "image/jpeg",
"jpgv" => "video/jpeg",
"jpm" => "video/jpm",
"js" => "application/javascript",
"json" => "application/json",
"karbon" => "application/vnd.kde.karbon",
"kfo" => "application/vnd.kde.kformula",
"kia" => "application/vnd.kidspiration",
"kml" => "application/vnd.google-earth.kml+xml",
"kmz" => "application/vnd.google-earth.kmz",
"kne" => "application/vnd.kinar",
"kon" => "application/vnd.kde.kontour",
"kpr" => "application/vnd.kde.kpresenter",
"ksp" => "application/vnd.kde.kspread",
"ktx" => "image/ktx",
"ktz" => "application/vnd.kahootz",
"kwd" => "application/vnd.kde.kword",
"lasxml" => "application/vnd.las.las+xml",
"latex" => "application/x-latex",
"lbd" => "application/vnd.llamagraphics.life-balance.desktop",
"lbe" => "application/vnd.llamagraphics.life-balance.exchange+xml",
"les" => "application/vnd.hhe.lesson-player",
"link66" => "application/vnd.route66.link66+xml",
"lrm" => "application/vnd.ms-lrm",
"ltf" => "application/vnd.frogans.ltf",
"lvp" => "audio/vnd.lucent.voice",
"lwp" => "application/vnd.lotus-wordpro",
"m21" => "application/mp21",
"m3u" => "audio/x-mpegurl",
"m3u8" => "application/vnd.apple.mpegurl",
"m4v" => "video/x-m4v",
"ma" => "application/mathematica",
"mads" => "application/mads+xml",
"mag" => "application/vnd.ecowin.chart",
"map" => "application/json",
"mathml" => "application/mathml+xml",
"mbk" => "application/vnd.mobius.mbk",
"mbox" => "application/mbox",
"mc1" => "application/vnd.medcalcdata",
"mcd" => "application/vnd.mcd",
"mcurl" => "text/vnd.curl.mcurl",
"md" => "text/x-markdown",
"mdb" => "application/x-msaccess",
"mdi" => "image/vnd.ms-modi",
"meta4" => "application/metalink4+xml",
"mets" => "application/mets+xml",
"mfm" => "application/vnd.mfmp",
"mgp" => "application/vnd.osgeo.mapguide.package",
"mgz" => "application/vnd.proteus.magazine",
"mid" => "audio/midi",
"mif" => "application/vnd.mif",
"mj2" => "video/mj2",
"mlp" => "application/vnd.dolby.mlp",
"mmd" => "application/vnd.chipnuts.karaoke-mmd",
"mmf" => "application/vnd.smaf",
"mmr" => "image/vnd.fujixerox.edmics-mmr",
"mny" => "application/x-msmoney",
"mods" => "application/mods+xml",
"movie" => "video/x-sgi-movie",
"mp1" => "audio/mpeg",
"mp2" => "audio/mpeg",
"mp3" => "audio/mpeg",
"mp4" => "video/mp4",
"mp4a" => "audio/mp4",
"mpc" => "application/vnd.mophun.certificate",
"mpeg" => "video/mpeg",
"mpga" => "audio/mpeg",
"mpkg" => "application/vnd.apple.installer+xml",
"mpm" => "application/vnd.blueice.multipass",
"mpn" => "application/vnd.mophun.application",
"mpp" => "application/vnd.ms-project",
"mpy" => "application/vnd.ibm.minipay",
"mqy" => "application/vnd.mobius.mqy",
"mrc" => "application/marc",
"mrcx" => "application/marcxml+xml",
"mscml" => "application/mediaservercontrol+xml",
"mseq" => "application/vnd.mseq",
"msf" => "application/vnd.epson.msf",
"msh" => "model/mesh",
"msl" => "application/vnd.mobius.msl",
"msty" => "application/vnd.muvee.style",
"mts" => "model/vnd.mts",
"mus" => "application/vnd.musician",
"musicxml" => "application/vnd.recordare.musicxml+xml",
"mvb" => "application/x-msmediaview",
"mwf" => "application/vnd.mfer",
"mxf" => "application/mxf",
"mxl" => "application/vnd.recordare.musicxml",
"mxml" => "application/xv+xml",
"mxs" => "application/vnd.triscape.mxs",
"mxu" => "video/vnd.mpegurl",
"n-gage" => "application/vnd.nokia.n-gage.symbian.install",
"n3" => "text/n3",
"nbp" => "application/vnd.wolfram.player",
"nc" => "application/x-netcdf",
"ncx" => "application/x-dtbncx+xml",
"ngdat" => "application/vnd.nokia.n-gage.data",
"nlu" => "application/vnd.neurolanguage.nlu",
"nml" => "application/vnd.enliven",
"nnd" => "application/vnd.noblenet-directory",
"nns" => "application/vnd.noblenet-sealer",
"nnw" => "application/vnd.noblenet-web",
"npx" => "image/vnd.net-fpx",
"nsf" => "application/vnd.lotus-notes",
"oa2" => "application/vnd.fujitsu.oasys2",
"oa3" => "application/vnd.fujitsu.oasys3",
"oas" => "application/vnd.fujitsu.oasys",
"obd" => "application/x-msbinder",
"oda" => "application/oda",
"odb" => "application/vnd.oasis.opendocument.database",
"odc" => "application/vnd.oasis.opendocument.chart",
"odf" => "application/vnd.oasis.opendocument.formula",
"odft" => "application/vnd.oasis.opendocument.formula-template",
"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",
"oga" => "audio/ogg",
"ogv" => "video/ogg",
"ogx" => "application/ogg",
"onetoc" => "application/onenote",
"opf" => "application/oebps-package+xml",
"org" => "application/vnd.lotus-organizer",
"osf" => "application/vnd.yamaha.openscoreformat",
"osfpvg" => "application/vnd.yamaha.openscoreformat.osfpvg+xml",
"otc" => "application/vnd.oasis.opendocument.chart-template",
"otf" => "application/x-font-otf",
"otg" => "application/vnd.oasis.opendocument.graphics-template",
"oth" => "application/vnd.oasis.opendocument.text-web",
"oti" => "application/vnd.oasis.opendocument.image-template",
"otp" => "application/vnd.oasis.opendocument.presentation-template",
"ots" => "application/vnd.oasis.opendocument.spreadsheet-template",
"ott" => "application/vnd.oasis.opendocument.text-template",
"oxt" => "application/vnd.openofficeorg.extension",
"p" => "text/x-pascal",
"p10" => "application/pkcs10",
"p12" => "application/x-pkcs12",
"p7b" => "application/x-pkcs7-certificates",
"p7m" => "application/pkcs7-mime",
"p7r" => "application/x-pkcs7-certreqresp",
"p7s" => "application/pkcs7-signature",
"p8" => "application/pkcs8",
"par" => "text/plain-bas",
"paw" => "application/vnd.pawaafile",
"pbd" => "application/vnd.powerbuilder6",
"pbm" => "image/x-portable-bitmap",
"pcf" => "application/x-font-pcf",
"pcl" => "application/vnd.hp-pcl",
"pclxl" => "application/vnd.hp-pclxl",
"pcurl" => "application/vnd.curl.pcurl",
"pcx" => "image/x-pcx",
"pdb" => "application/vnd.palm",
"pdf" => "application/pdf",
"pfa" => "application/x-font-type1",
"pfr" => "application/font-tdpfr",
"pgm" => "image/x-portable-graymap",
"pgn" => "application/x-chess-pgn",
"pgp" => "application/pgp-signature",
"pic" => "image/x-pict",
"pki" => "application/pkixcmp",
"pkipath" => "application/pkix-pkipath",
"plb" => "application/vnd.3gpp.pic-bw-large",
"plc" => "application/vnd.mobius.plc",
"plf" => "application/vnd.pocketlearn",
"pls" => "application/pls+xml",
"pml" => "application/vnd.ctc-posml",
"png" => "image/png",
"pnm" => "image/x-portable-anymap",
"portpkg" => "application/vnd.macports.portpkg",
"potm" => "application/vnd.ms-powerpoint.template.macroenabled.12",
"potx" => "application/vnd.openxmlformats-officedocument.presentationml.template",
"ppam" => "application/vnd.ms-powerpoint.addin.macroenabled.12",
"ppd" => "application/vnd.cups-ppd",
"ppm" => "image/x-portable-pixmap",
"ppsm" => "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
"ppsx" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
"ppt" => "application/vnd.ms-powerpoint",
"pptm" => "application/vnd.ms-powerpoint.presentation.macroenabled.12",
"pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"prc" => "application/x-mobipocket-ebook",
"pre" => "application/vnd.lotus-freelance",
"prf" => "application/pics-rules",
"psb" => "application/vnd.3gpp.pic-bw-small",
"psd" => "image/vnd.adobe.photoshop",
"psf" => "application/x-font-linux-psf",
"pskcxml" => "application/pskc+xml",
"ptid" => "application/vnd.pvi.ptid1",
"pub" => "application/x-mspublisher",
"pvb" => "application/vnd.3gpp.pic-bw-var",
"pwn" => "application/vnd.3m.post-it-notes",
"pya" => "audio/vnd.ms-playready.media.pya",
"pyv" => "video/vnd.ms-playready.media.pyv",
"qam" => "application/vnd.epson.quickanime",
"qbo" => "application/vnd.intu.qbo",
"qfx" => "application/vnd.intu.qfx",
"qps" => "application/vnd.publishare-delta-tree",
"qt" => "video/quicktime",
"qxd" => "application/vnd.quark.quarkxpress",
"ram" => "audio/x-pn-realaudio",
"rar" => "application/x-rar-compressed",
"ras" => "image/x-cmu-raster",
"rcprofile" => "application/vnd.ipunplugged.rcprofile",
"rdf" => "application/rdf+xml",
"rdz" => "application/vnd.data-vision.rdz",
"rep" => "application/vnd.businessobjects",
"res" => "application/x-dtbresource+xml",
"rgb" => "image/x-rgb",
"rif" => "application/reginfo+xml",
"rip" => "audio/vnd.rip",
"rl" => "application/resource-lists+xml",
"rlc" => "image/vnd.fujixerox.edmics-rlc",
"rld" => "application/resource-lists-diff+xml",
"rm" => "application/vnd.rn-realmedia",
"rmp" => "audio/x-pn-realaudio-plugin",
"rms" => "application/vnd.jcp.javame.midlet-rms",
"rnc" => "application/relax-ng-compact-syntax",
"rp9" => "application/vnd.cloanto.rp9",
"rpss" => "application/vnd.nokia.radio-presets",
"rpst" => "application/vnd.nokia.radio-preset",
"rq" => "application/sparql-query",
"rs" => "application/rls-services+xml",
"rsd" => "application/rsd+xml",
"rss" => "application/rss+xml",
"rtf" => "application/rtf",
"rtx" => "text/richtext",
"s" => "text/x-asm",
"saf" => "application/vnd.yamaha.smaf-audio",
"sbml" => "application/sbml+xml",
"sc" => "application/vnd.ibm.secure-container",
"scd" => "application/x-msschedule",
"scm" => "application/vnd.lotus-screencam",
"scq" => "application/scvp-cv-request",
"scs" => "application/scvp-cv-response",
"scurl" => "text/vnd.curl.scurl",
"sda" => "application/vnd.stardivision.draw",
"sdc" => "application/vnd.stardivision.calc",
"sdd" => "application/vnd.stardivision.impress",
"sdkm" => "application/vnd.solent.sdkm+xml",
"sdp" => "application/sdp",
"sdw" => "application/vnd.stardivision.writer",
"see" => "application/vnd.seemail",
"seed" => "application/vnd.fdsn.seed",
"sema" => "application/vnd.sema",
"semd" => "application/vnd.semd",
"semf" => "application/vnd.semf",
"ser" => "application/java-serialized-object",
"setpay" => "application/set-payment-initiation",
"setreg" => "application/set-registration-initiation",
"sfd-hdstx" => "application/vnd.hydrostatix.sof-data",
"sfs" => "application/vnd.spotfire.sfs",
"sgl" => "application/vnd.stardivision.writer-global",
"sgml" => "text/sgml",
"sh" => "application/x-sh",
"shar" => "application/x-shar",
"shf" => "application/shf+xml",
"sis" => "application/vnd.symbian.install",
"sit" => "application/x-stuffit",
"sitx" => "application/x-stuffitx",
"skp" => "application/vnd.koan",
"sldm" => "application/vnd.ms-powerpoint.slide.macroenabled.12",
"sldx" => "application/vnd.openxmlformats-officedocument.presentationml.slide",
"slt" => "application/vnd.epson.salt",
"sm" => "application/vnd.stepmania.stepchart",
"smf" => "application/vnd.stardivision.math",
"smi" => "application/smil+xml",
"snf" => "application/x-font-snf",
"spf" => "application/vnd.yamaha.smaf-phrase",
"spl" => "application/x-futuresplash",
"spot" => "text/vnd.in3d.spot",
"spp" => "application/scvp-vp-response",
"spq" => "application/scvp-vp-request",
"src" => "application/x-wais-source",
"sru" => "application/sru+xml",
"srx" => "application/sparql-results+xml",
"sse" => "application/vnd.kodak-descriptor",
"ssf" => "application/vnd.epson.ssf",
"ssml" => "application/ssml+xml",
"st" => "application/vnd.sailingtracker.track",
"stc" => "application/vnd.sun.xml.calc.template",
"std" => "application/vnd.sun.xml.draw.template",
"stf" => "application/vnd.wt.stf",
"sti" => "application/vnd.sun.xml.impress.template",
"stk" => "application/hyperstudio",
"stl" => "application/vnd.ms-pki.stl",
"str" => "application/vnd.pg.format",
"stw" => "application/vnd.sun.xml.writer.template",
"sub" => "image/vnd.dvb.subtitle",
"sus" => "application/vnd.sus-calendar",
"sv4cpio" => "application/x-sv4cpio",
"sv4crc" => "application/x-sv4crc",
"svc" => "application/vnd.dvb.service",
"svd" => "application/vnd.svd",
"svg" => "image/svg+xml",
"swf" => "application/x-shockwave-flash",
"swi" => "application/vnd.aristanetworks.swi",
"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",
"t" => "text/troff",
"tao" => "application/vnd.tao.intent-module-archive",
"tar" => "application/x-tar",
"tcap" => "application/vnd.3gpp2.tcap",
"tcl" => "application/x-tcl",
"teacher" => "application/vnd.smart.teacher",
"tei" => "application/tei+xml",
"tex" => "application/x-tex",
"texinfo" => "application/x-texinfo",
"tfi" => "application/thraud+xml",
"tfm" => "application/x-tex-tfm",
"thmx" => "application/vnd.ms-officetheme",
"tiff" => "image/tiff",
"tmo" => "application/vnd.tmobile-livetv",
"torrent" => "application/x-bittorrent",
"tpl" => "application/vnd.groove-tool-template",
"tpt" => "application/vnd.trid.tpt",
"tra" => "application/vnd.trueapp",
"trm" => "application/x-msterminal",
"tsd" => "application/timestamped-data",
"tsv" => "text/tab-separated-values",
"ttf" => "application/x-font-ttf",
"ttl" => "text/turtle",
"twd" => "application/vnd.simtech-mindmapper",
"txd" => "application/vnd.genomatix.tuxedo",
"txf" => "application/vnd.mobius.txf",
"txt" => "text/plain",
"ufd" => "application/vnd.ufdl",
"umj" => "application/vnd.umajin",
"unityweb" => "application/vnd.unity",
"uoml" => "application/vnd.uoml+xml",
"uri" => "text/uri-list",
"ustar" => "application/x-ustar",
"utz" => "application/vnd.uiq.theme",
"uu" => "text/x-uuencode",
"uva" => "audio/vnd.dece.audio",
"uvh" => "video/vnd.dece.hd",
"uvi" => "image/vnd.dece.graphic",
"uvm" => "video/vnd.dece.mobile",
"uvp" => "video/vnd.dece.pd",
"uvs" => "video/vnd.dece.sd",
"uvu" => "video/vnd.uvvu.mp4",
"uvv" => "video/vnd.dece.video",
"vcd" => "application/x-cdlink",
"vcf" => "text/x-vcard",
"vcg" => "application/vnd.groove-vcard",
"vcs" => "text/x-vcalendar",
"vcx" => "application/vnd.vcx",
"vis" => "application/vnd.visionary",
"viv" => "video/vnd.vivo",
"vsd" => "application/vnd.visio",
"vsf" => "application/vnd.vsf",
"vtu" => "model/vnd.vtu",
"vxml" => "application/voicexml+xml",
"wad" => "application/x-doom",
"wav" => "audio/x-wav",
"wax" => "audio/x-ms-wax",
"wbmp" => "image/vnd.wap.wbmp",
"wbs" => "application/vnd.criticaltools.wbs+xml",
"wbxml" => "application/vnd.wap.wbxml",
"weba" => "audio/webm",
"webm" => "video/webm",
"webp" => "image/webp",
"wg" => "application/vnd.pmi.widget",
"wgt" => "application/widget",
"wm" => "video/x-ms-wm",
"wma" => "audio/x-ms-wma",
"wmd" => "application/x-ms-wmd",
"wmf" => "application/x-msmetafile",
"wml" => "text/vnd.wap.wml",
"wmlc" => "application/vnd.wap.wmlc",
"wmls" => "text/vnd.wap.wmlscript",
"wmlsc" => "application/vnd.wap.wmlscriptc",
"wmv" => "video/x-ms-wmv",
"wmx" => "video/x-ms-wmx",
"wmz" => "application/x-ms-wmz",
"woff" => "application/x-font-woff",
"woff2" => "application/font-woff2",
"wpd" => "application/vnd.wordperfect",
"wpl" => "application/vnd.ms-wpl",
"wps" => "application/vnd.ms-works",
"wqd" => "application/vnd.wqd",
"wri" => "application/x-mswrite",
"wrl" => "model/vrml",
"wsdl" => "application/wsdl+xml",
"wspolicy" => "application/wspolicy+xml",
"wtb" => "application/vnd.webturbo",
"wvx" => "video/x-ms-wvx",
"x3d" => "application/vnd.hzn-3d-crossword",
"xap" => "application/x-silverlight-app",
"xar" => "application/vnd.xara",
"xbap" => "application/x-ms-xbap",
"xbd" => "application/vnd.fujixerox.docuworks.binder",
"xbm" => "image/x-xbitmap",
"xdf" => "application/xcap-diff+xml",
"xdm" => "application/vnd.syncml.dm+xml",
"xdp" => "application/vnd.adobe.xdp+xml",
"xdssc" => "application/dssc+xml",
"xdw" => "application/vnd.fujixerox.docuworks",
"xenc" => "application/xenc+xml",
"xer" => "application/patch-ops-error+xml",
"xfdf" => "application/vnd.adobe.xfdf",
"xfdl" => "application/vnd.xfdl",
"xhtml" => "application/xhtml+xml",
"xif" => "image/vnd.xiff",
"xlam" => "application/vnd.ms-excel.addin.macroenabled.12",
"xls" => "application/vnd.ms-excel",
"xlsb" => "application/vnd.ms-excel.sheet.binary.macroenabled.12",
"xlsm" => "application/vnd.ms-excel.sheet.macroenabled.12",
"xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"xltm" => "application/vnd.ms-excel.template.macroenabled.12",
"xltx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
"xml" => "application/xml",
"xo" => "application/vnd.olpc-sugar",
"xop" => "application/xop+xml",
"xpi" => "application/x-xpinstall",
"xpm" => "image/x-xpixmap",
"xpr" => "application/vnd.is-xpr",
"xps" => "application/vnd.ms-xpsdocument",
"xpw" => "application/vnd.intercon.formnet",
"xslt" => "application/xslt+xml",
"xsm" => "application/vnd.syncml+xml",
"xspf" => "application/xspf+xml",
"xul" => "application/vnd.mozilla.xul+xml",
"xwd" => "image/x-xwindowdump",
"xyz" => "chemical/x-xyz",
"yaml" => "text/yaml",
"yang" => "application/yang",
"yin" => "application/yin+xml",
"zaz" => "application/vnd.zzazz.deck+xml",
"zip" => "application/zip",
"zir" => "application/vnd.zul",
"zmm" => "application/vnd.handheld-entertainment+xml"
);
/**
* Get the mime type based on file extension
*
* @param string $file The file name or path
*
* @return string the mime type on success
*
*/
protected static function mimeType($file)
{
/**
* **DISCLAIMER**
* This will just match the file extension to the following
* array. It does not guarantee that the file is TRULY that
* of the extension that this function returns.
*/
// get the extension form file
$extension = \strtolower(\pathinfo($file, \PATHINFO_EXTENSION));
// check if we have the extension listed
if (isset(self::$fileExtentionToMimeType[$extension]))
{
return self::$fileExtentionToMimeType[$extension];
}
return false;
}
protected static function getDownloadFileName(&$sermon, $file, $type)
{
// first get file name and file type
$file = str_replace('VDM_pLeK_h0uEr/', '', $file);

View File

@ -30,7 +30,7 @@ defined('JPATH_BASE') or die('Restricted access');
?>
<?php if ($displayData->params->get('add_to_dropbox') && isset($displayData->dropbox_buttons)): ?>
<?php if ($displayData->params->get('add_to_button') && isset($displayData->dropbox_buttons)): ?>
<?php if (count($displayData->dropbox_buttons) == 1): ?>
<?php foreach ($displayData->dropbox_buttons as $filename => $link): ?>
<a class="uk-button uk-margin-small-bottom uk-width-1-1" target="_blank"<?php echo $displayData->onclick_drobox[$filename]; ?> href="<?php echo $link; ?>" data-uk-tooltip title="<?php echo JText::_('COM_SERMONDISTRIBUTOR_SAVE_TO_YOUR_DROPBOX'); ?>"><i class="uk-icon-dropbox"></i> <?php echo JText::_('COM_SERMONDISTRIBUTOR_DROPBOX'); ?></a>

View File

@ -30,7 +30,7 @@ defined('JPATH_BASE') or die('Restricted access');
?>
<?php if ($displayData->params->get('add_to_dropbox') && isset($displayData->dropbox_buttons)): ?>
<?php if ($displayData->params->get('add_to_button') && isset($displayData->dropbox_buttons)): ?>
<?php if (count($displayData->dropbox_buttons) == 1): ?>
<?php foreach ($displayData->dropbox_buttons as $filename => $link): ?>
<a class="uk-icon-hover uk-icon-dropbox" target="_blank"<?php echo $displayData->onclick_drobox[$filename]; ?> href="<?php echo $link; ?>" data-uk-tooltip title="<?php echo JText::_('COM_SERMONDISTRIBUTOR_SAVE_TO_YOUR_DROPBOX'); ?>"></a>

View File

@ -100,10 +100,12 @@ if (isset($displayData->download_links) && count($displayData->download_links))
}
?>
<?php if (1 == $displayData->playerKey && SermondistributorHelper::checkArray($players)): ?>
<li><?php echo implode('',$players); ?></li>
<?php elseif (2 == $displayData->playerKey && SermondistributorHelper::checkString($players)): ?>
<div class="uk-width-1-1 uk-margin"><div class="uk-panel"><?php echo $players; ?></div></div>
<?php elseif (3 == $displayData->playerKey && SermondistributorHelper::checkArray($players)): ?>
<div class="uk-width-1-1 uk-margin"><div class="uk-panel"><?php echo implode('</div><div class="uk-panel">', $players); ?></div></div>
<?php if (JFactory::getApplication()->client->browser): ?>
<?php if (1 == $displayData->playerKey && SermondistributorHelper::checkArray($players)): ?>
<li><?php echo implode('',$players); ?></li>
<?php elseif (2 == $displayData->playerKey && SermondistributorHelper::checkString($players)): ?>
<div class="uk-width-1-1 uk-margin"><div class="uk-panel"><?php echo $players; ?></div></div>
<?php elseif (3 == $displayData->playerKey && SermondistributorHelper::checkArray($players)): ?>
<div class="uk-width-1-1 uk-margin"><div class="uk-panel"><?php echo implode('</div><div class="uk-panel">', $players); ?></div></div>
<?php endif; ?>
<?php endif; ?>

View File

@ -30,7 +30,7 @@ defined('JPATH_BASE') or die('Restricted access');
?>
<?php if ($displayData->params->get($displayData->viewKey.'_sermons_open') && $displayData->params->get('add_to_dropbox') && isset($displayData->dropbox_buttons)): ?>
<?php if ($displayData->params->get($displayData->viewKey.'_sermons_open') && $displayData->params->get('add_to_button') && isset($displayData->dropbox_buttons)): ?>
<div class="uk-button-group uk-width-1-1">
<a class="uk-button uk-margin-small-bottom uk-width-4-5 uk-button-primary" href="<?php echo $displayData->link; ?>" title="<?php echo $displayData->name; ?>">
<i class="uk-icon-check"></i> <?php echo JText::_('COM_SERMONDISTRIBUTOR_OPEN'); ?>
@ -70,7 +70,7 @@ defined('JPATH_BASE') or die('Restricted access');
<span data-uk-tooltip title="<?php echo JText::_('COM_SERMONDISTRIBUTOR_SERMON_DOWNLOAD_COUNTER_TOTAL'); ?>">(<?php echo $displayData->statisticTotal; ?>)</span>
<?php endif; ?>
</a>
<?php elseif ($displayData->params->get('add_to_dropbox') && isset($displayData->dropbox_buttons)): ?>
<?php elseif ($displayData->params->get('add_to_button') && isset($displayData->dropbox_buttons)): ?>
<?php if (count($displayData->dropbox_buttons) == 1): ?>
<?php foreach ($displayData->dropbox_buttons as $filename => $link): ?>
<a class="uk-button uk-margin-small-bottom uk-width-1-1" target="_blank"<?php echo $displayData->onclick_drobox[$filename]; ?> href="<?php echo $link; ?>" data-uk-tooltip title="<?php echo JText::_('COM_SERMONDISTRIBUTOR_SAVE_TO_YOUR_DROPBOX'); ?>"><i class="uk-icon-dropbox"></i> <?php echo JText::_('COM_SERMONDISTRIBUTOR_DROPBOX'); ?></a>

View File

@ -115,13 +115,13 @@ switch ($style)
<li><?php echo JText::_('COM_SERMONDISTRIBUTOR_SERIES'); ?>: <a href="<?php echo $displayData->series_link; ?>" data-uk-tooltip title="<?php echo $displayData->series_name; ?>"><?php echo $displayData->series_name; ?></a></li>
<?php endif; ?>
</ul>
<?php elseif (($displayData->params->get($displayData->viewKey.'_sermons_desc') && ($displayData->desc || $displayData->short_description)) && (($displayData->params->get($displayData->viewKey.'_sermons_open') || ($displayData->params->get('add_to_dropbox') && isset($displayData->dropbox_buttons))) || ($displayData->params->get($displayData->viewKey.'_sermons_downloads') && isset($displayData->download_links)))): ?>
<?php elseif (($displayData->params->get($displayData->viewKey.'_sermons_desc') && ($displayData->desc || $displayData->short_description)) && (($displayData->params->get($displayData->viewKey.'_sermons_open') || ($displayData->params->get('add_to_button') && isset($displayData->dropbox_buttons))) || ($displayData->params->get($displayData->viewKey.'_sermons_downloads') && isset($displayData->download_links)))): ?>
<hr />
<?php endif; ?>
<?php if (($displayData->params->get($displayData->viewKey.'_sermons_open') || ($displayData->params->get('add_to_dropbox') && isset($displayData->dropbox_buttons))) && ($displayData->params->get($displayData->viewKey.'_sermons_downloads') && isset($displayData->download_links))): ?>
<?php if (($displayData->params->get($displayData->viewKey.'_sermons_open') || ($displayData->params->get('add_to_button') && isset($displayData->dropbox_buttons))) && ($displayData->params->get($displayData->viewKey.'_sermons_downloads') && isset($displayData->download_links))): ?>
<?php echo JLayoutHelper::render('opensermonbutton', $displayData); ?>
<?php echo JLayoutHelper::render('downloadsermonbutton', $displayData); ?>
<?php elseif ($displayData->params->get($displayData->viewKey.'_sermons_open') || ($displayData->params->get('add_to_dropbox') && isset($displayData->dropbox_buttons))): ?>
<?php elseif ($displayData->params->get($displayData->viewKey.'_sermons_open') || ($displayData->params->get('add_to_button') && isset($displayData->dropbox_buttons))): ?>
<?php echo JLayoutHelper::render('opensermonbutton', $displayData); ?>
<?php endif; ?>
</div>

View File

@ -122,7 +122,7 @@ $this->item->params = $this->params;
<?php if ($this->params->get('sermon_downloads')): ?>
<li><?php echo JLayoutHelper::render('downloadsermonbutton', $this->item); ?></li>
<?php endif; ?>
<?php if ($this->params->get('add_to_dropbox') && isset($this->item->dropbox_buttons)): ?>
<?php if ($this->params->get('add_to_button') && isset($this->item->dropbox_buttons)): ?>
<li><?php echo JLayoutHelper::render('addtodropboxbutton', $this->item); ?></li>
<?php endif; ?>
<?php if (1 == $this->item->playerKey): ?>

View File

@ -122,7 +122,7 @@ $this->item->params = $this->params;
<?php if ($this->params->get('sermon_downloads')): ?>
<li><?php echo JLayoutHelper::render('downloadsermonbutton', $this->item); ?></li>
<?php endif; ?>
<?php if ($this->params->get('add_to_dropbox') && isset($this->item->dropbox_buttons)): ?>
<?php if ($this->params->get('add_to_button') && isset($this->item->dropbox_buttons)): ?>
<li><?php echo JLayoutHelper::render('addtodropboxbutton', $this->item); ?></li>
<?php endif; ?>
<?php if (1 == $this->item->playerKey): ?>

View File

@ -111,7 +111,7 @@ $this->item->params = $this->params;
<?php if ($this->params->get('sermon_downloads')): ?>
<li><?php echo JLayoutHelper::render('downloadsermonbutton', $this->item); ?></li>
<?php endif; ?>
<?php if ($this->params->get('add_to_dropbox') && isset($this->item->dropbox_buttons)): ?>
<?php if ($this->params->get('add_to_button') && isset($this->item->dropbox_buttons)): ?>
<li><?php echo JLayoutHelper::render('addtodropboxbutton', $this->item); ?></li>
<?php endif; ?>
<?php if (1 == $this->item->playerKey): ?>