diff --git a/README.md b/README.md
index ce8b7ac4..0b6c0d00 100644
--- a/README.md
+++ b/README.md
@@ -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)
diff --git a/admin/README.txt b/admin/README.txt
index ce8b7ac4..0b6c0d00 100644
--- a/admin/README.txt
+++ b/admin/README.txt
@@ -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)
diff --git a/admin/helpers/sermondistributor.php b/admin/helpers/sermondistributor.php
index c86691ff..b13d2840 100644
--- a/admin/helpers/sermondistributor.php
+++ b/admin/helpers/sermondistributor.php
@@ -187,7 +187,9 @@ public static function getDownloadLinks(&$sermon)
{
$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 @@ public static function getDownloadLinks(&$sermon)
{
$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 @@ public static function getExternalSourceLink($type, $return = 7, $get = false, $
return false;
}
- public static function countDownload($counter,$filename)
+ public static function countDownload($counter, $filename)
{
// Get local key
$localkey = self::getLocalKey();
@@ -626,8 +629,762 @@ public static function countDownload($counter,$filename)
}
return false;
}
+
+ 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)
+ protected static function getDownloadFileName(&$sermon, $file, $type)
{
// first get file name and file type
$file = str_replace('VDM_pLeK_h0uEr/', '', $file);
diff --git a/admin/sql/updates/mysql/1.2.9.sql b/admin/sql/updates/mysql/1.2.9.sql
deleted file mode 100644
index d3f5a12f..00000000
--- a/admin/sql/updates/mysql/1.2.9.sql
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/admin/sql/updates/mysql/1.3.0.sql b/admin/sql/updates/mysql/1.3.0.sql
deleted file mode 100644
index d3f5a12f..00000000
--- a/admin/sql/updates/mysql/1.3.0.sql
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/admin/sql/updates/mysql/1.3.1.sql b/admin/sql/updates/mysql/1.3.1.sql
deleted file mode 100644
index d3f5a12f..00000000
--- a/admin/sql/updates/mysql/1.3.1.sql
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/admin/sql/updates/mysql/1.3.2.sql b/admin/sql/updates/mysql/1.3.2.sql
deleted file mode 100644
index d3f5a12f..00000000
--- a/admin/sql/updates/mysql/1.3.2.sql
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/admin/sql/updates/mysql/1.3.3.sql b/admin/sql/updates/mysql/1.3.3.sql
deleted file mode 100644
index d3f5a12f..00000000
--- a/admin/sql/updates/mysql/1.3.3.sql
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/admin/sql/updates/mysql/1.3.4.sql b/admin/sql/updates/mysql/1.3.4.sql
deleted file mode 100644
index d3f5a12f..00000000
--- a/admin/sql/updates/mysql/1.3.4.sql
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/admin/sql/updates/mysql/1.4.0.sql b/admin/sql/updates/mysql/1.4.0.sql
deleted file mode 100644
index d3f5a12f..00000000
--- a/admin/sql/updates/mysql/1.4.0.sql
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/script.php b/script.php
index fd714a35..e7464bfe 100644
--- a/script.php
+++ b/script.php
@@ -1382,7 +1382,7 @@ function postflight($type, $parent)
echo '
-
Upgrade to Version 2.0.0 Was Successful! Let us know if anything is not working as expected.
';
+ Upgrade to Version 2.0.1 Was Successful! Let us know if anything is not working as expected.
';
}
}
}
diff --git a/sermondistributor.xml b/sermondistributor.xml
index f6d61e6c..f3c88772 100644
--- a/sermondistributor.xml
+++ b/sermondistributor.xml
@@ -7,9 +7,9 @@
https://www.vdm.io/
Copyright (C) 2015. All Rights Reserved
GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
- 2.0.0
+ 2.0.1
Sermon Distributor (v.2.0.0)
+ Sermon Distributor (v.2.0.1)
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.
Created by Llewellyn van der Merwe
Development started 22nd October, 2015
diff --git a/sermondistributor_update_server.xml b/sermondistributor_update_server.xml
index fc1efc8f..a358a0ba 100644
--- a/sermondistributor_update_server.xml
+++ b/sermondistributor_update_server.xml
@@ -16,108 +16,6 @@
https://www.vdm.io/
-
- Sermon Distributor
- A sermon distributor that links to Dropbox.
- com_sermondistributor
- component
- 1.2.9
- https://www.vdm.io/
-
- https://github.com/SermonDistributor/Joomla-3-Component/archive/V1.2.9.zip
-
-
- stable
-
- Llewellyn van der Merwe
- https://www.vdm.io/
-
-
-
- Sermon Distributor
- A sermon distributor that links to Dropbox.
- com_sermondistributor
- component
- 1.3.0
- https://www.vdm.io/
-
- https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.0.zip
-
-
- stable
-
- Llewellyn van der Merwe
- https://www.vdm.io/
-
-
-
- Sermon Distributor
- A sermon distributor that links to Dropbox.
- com_sermondistributor
- component
- 1.3.1
- https://www.vdm.io/
-
- https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.1.zip
-
-
- stable
-
- Llewellyn van der Merwe
- https://www.vdm.io/
-
-
-
- Sermon Distributor
- A sermon distributor that links to Dropbox.
- com_sermondistributor
- component
- 1.3.2
- https://www.vdm.io/
-
- https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.2.zip
-
-
- stable
-
- Llewellyn van der Merwe
- https://www.vdm.io/
-
-
-
- Sermon Distributor
- A sermon distributor that links to Dropbox.
- com_sermondistributor
- component
- 1.3.3
- https://www.vdm.io/
-
- https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.3.zip
-
-
- stable
-
- Llewellyn van der Merwe
- https://www.vdm.io/
-
-
-
- Sermon Distributor
- A sermon distributor that links to Dropbox.
- com_sermondistributor
- component
- 1.3.4
- https://www.vdm.io/
-
- https://github.com/SermonDistributor/Joomla-3-Component/archive/v1.3.4.zip
-
-
- stable
-
- Llewellyn van der Merwe
- https://www.vdm.io/
-
-
Sermon Distributor
A sermon distributor that links to Dropbox.
@@ -140,27 +38,10 @@
A sermon distributor that links to Dropbox.
com_sermondistributor
component
- 1.4.0
- https://www.vdm.io/
-
- https://github.com/SermonDistributor/Joomla-3-Component/releases/download/v1.4.0/SD_v1.4.0.zip
-
-
- stable
-
- Llewellyn van der Merwe
- https://www.vdm.io/
-
-
-
- Sermon Distributor
- A sermon distributor that links to Dropbox.
- com_sermondistributor
- component
- 2.0.0
+ 2.0.1
https://www.vdm.io/
- https://github.com/SermonDistributor/Joomla-3-Component/releases/download/v2.0.0/SD_v2.0.0.zip
+ https://github.com/SermonDistributor/Joomla-3-Component/releases/download/v2.0.1/SD_v2.0.1.zip
stable
diff --git a/site/controllers/download.php b/site/controllers/download.php
index bfcdd907..271ddcde 100644
--- a/site/controllers/download.php
+++ b/site/controllers/download.php
@@ -56,6 +56,7 @@ public function download()
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 @@ public function download()
$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 @@ public function download()
protected function getContentInfo($url)
{
- // we first try the curl option
if ($this->_isCurl())
{
$ch = curl_init($url);
diff --git a/site/helpers/sermondistributor.php b/site/helpers/sermondistributor.php
index 9b11cb53..dc868815 100644
--- a/site/helpers/sermondistributor.php
+++ b/site/helpers/sermondistributor.php
@@ -187,7 +187,9 @@ public static function getDownloadLinks(&$sermon)
{
$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 @@ public static function getDownloadLinks(&$sermon)
{
$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 @@ public static function getExternalSourceLink($type, $return = 7, $get = false, $
return false;
}
- public static function countDownload($counter,$filename)
+ public static function countDownload($counter, $filename)
{
// Get local key
$localkey = self::getLocalKey();
@@ -626,8 +629,762 @@ public static function countDownload($counter,$filename)
}
return false;
}
+
+ 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)
+ protected static function getDownloadFileName(&$sermon, $file, $type)
{
// first get file name and file type
$file = str_replace('VDM_pLeK_h0uEr/', '', $file);
diff --git a/site/layouts/addtodropboxbutton.php b/site/layouts/addtodropboxbutton.php
index d5f7072f..ccd84be5 100644
--- a/site/layouts/addtodropboxbutton.php
+++ b/site/layouts/addtodropboxbutton.php
@@ -30,7 +30,7 @@
?>
-params->get('add_to_dropbox') && isset($displayData->dropbox_buttons)): ?>
+params->get('add_to_button') && isset($displayData->dropbox_buttons)): ?>
dropbox_buttons) == 1): ?>
dropbox_buttons as $filename => $link): ?>
onclick_drobox[$filename]; ?> href="" data-uk-tooltip title="">
diff --git a/site/layouts/addtodropboxicon.php b/site/layouts/addtodropboxicon.php
index 113297ba..91cd7865 100644
--- a/site/layouts/addtodropboxicon.php
+++ b/site/layouts/addtodropboxicon.php
@@ -30,7 +30,7 @@
?>
-params->get('add_to_dropbox') && isset($displayData->dropbox_buttons)): ?>
+params->get('add_to_button') && isset($displayData->dropbox_buttons)): ?>
dropbox_buttons) == 1): ?>
dropbox_buttons as $filename => $link): ?>
onclick_drobox[$filename]; ?> href="" data-uk-tooltip title="">
diff --git a/site/layouts/mediaplayer.php b/site/layouts/mediaplayer.php
index e3b330f8..d4d31420 100644
--- a/site/layouts/mediaplayer.php
+++ b/site/layouts/mediaplayer.php
@@ -100,10 +100,12 @@
}
?>
-playerKey && SermondistributorHelper::checkArray($players)): ?>
-
-playerKey && SermondistributorHelper::checkString($players)): ?>
-
-playerKey && SermondistributorHelper::checkArray($players)): ?>
-
+client->browser): ?>
+ playerKey && SermondistributorHelper::checkArray($players)): ?>
+
+ playerKey && SermondistributorHelper::checkString($players)): ?>
+
+ playerKey && SermondistributorHelper::checkArray($players)): ?>
+
+
diff --git a/site/layouts/opensermonbutton.php b/site/layouts/opensermonbutton.php
index daada3f0..078cbb22 100644
--- a/site/layouts/opensermonbutton.php
+++ b/site/layouts/opensermonbutton.php
@@ -30,7 +30,7 @@
?>
-params->get($displayData->viewKey.'_sermons_open') && $displayData->params->get('add_to_dropbox') && isset($displayData->dropbox_buttons)): ?>
+params->get($displayData->viewKey.'_sermons_open') && $displayData->params->get('add_to_button') && isset($displayData->dropbox_buttons)): ?>
diff --git a/site/views/sermon/tmpl/default_sermonbig.php b/site/views/sermon/tmpl/default_sermonbig.php
index 5ea01c90..a4b803c7 100644
--- a/site/views/sermon/tmpl/default_sermonbig.php
+++ b/site/views/sermon/tmpl/default_sermonbig.php
@@ -122,7 +122,7 @@
params->get('sermon_downloads')): ?>
item); ?>
- params->get('add_to_dropbox') && isset($this->item->dropbox_buttons)): ?>
+ params->get('add_to_button') && isset($this->item->dropbox_buttons)): ?>
item); ?>
item->playerKey): ?>
diff --git a/site/views/sermon/tmpl/default_sermonbox.php b/site/views/sermon/tmpl/default_sermonbox.php
index 7199ea6e..4fc4ac65 100644
--- a/site/views/sermon/tmpl/default_sermonbox.php
+++ b/site/views/sermon/tmpl/default_sermonbox.php
@@ -122,7 +122,7 @@
params->get('sermon_downloads')): ?>
item); ?>
- params->get('add_to_dropbox') && isset($this->item->dropbox_buttons)): ?>
+ params->get('add_to_button') && isset($this->item->dropbox_buttons)): ?>
item); ?>
item->playerKey): ?>
diff --git a/site/views/sermon/tmpl/default_sermonpanel.php b/site/views/sermon/tmpl/default_sermonpanel.php
index 0cd23ab5..a7ba6f66 100644
--- a/site/views/sermon/tmpl/default_sermonpanel.php
+++ b/site/views/sermon/tmpl/default_sermonpanel.php
@@ -111,7 +111,7 @@
params->get('sermon_downloads')): ?>
item); ?>
- params->get('add_to_dropbox') && isset($this->item->dropbox_buttons)): ?>
+ params->get('add_to_button') && isset($this->item->dropbox_buttons)): ?>
item); ?>
item->playerKey): ?>