lay`, `Stroke`) `DistCode` FROM `competition_result` INNER JOIN `competition_distance` ON `ResDistance` = `DistId` WHERE `ResDate` >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 YEAR) AND `ResUser` = ? GROUP BY `Relay`, `Stroke`, `Distance` ORDER BY `ResUser`, `Relay`, `Stroke`, `Distance`, `ResTime` "; $pst = $dbh->prepare($query); $pst->execute(array($UserId)); $pst = null; return $TempName; } /* -- -----------------*/ function DownloadAsZip($Path = "", $Filename = "", $Ext = "csv"){ $zip = new ZipArchive(); $zipPath = $Path.$Filename.".zip"; if ($zip->open($zipPath,ZipArchive::CREATE)) { $zip->addFile($Path.$Filename.".{$Ext}", $Filename.".{$Ext}"); $zip->close(); //Make sure the zip file created and output it. if(is_file($zipPath)){ if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression',ta = array("KommunKod" => $Kod); $Result = cURLRequest($Url, $Data, false); // if(DEBUG === true) return $Kod; if( !is_object($Result) || $Result->HasError !== false || ($Result->HasError === false && sizeof($Result->Kommun->Namn) === 0) ) return false; return $Result->Kommun->Namn; } /* anläggningar -- -----------------*/ function KommunAnlaggningar($Kommunkod){ $Url = sprintf("%s/Anlaggningar/Sok/", KO_API_URI); $Data = array("Kommunkod" => $Kommunkod); $Result = cURLRequest($Url, $Data, false); if( !is_object($Result) || $Result->HasError !== false || ($Result->HasError === false && sizeof($Result->Anlaggningar) === 0) ) return false; return $Result->Anlaggningar; } /* ApN anläggningar -- -----------------*/ function Anlaggningar($LevelId = 0){ global $dbh; $LevelId = (int)$LevelId; $query = " SELECT `section_props` FROM `school_section` INNER JOIN `school_type` ON `section_id` = `type_parent` INNER JOIN `school_level` ON `type_id` = `level_parent` WHERE `level_id` = :LevelId "; $pst = $dbh->prepare($query); $pst->bindParam(":LevelId", $LevelId, PDO::PARAM_INT); $pst->execute(); if($pst->rowCount() !== 0){ $res = $pst->fetch(PDO::FETCH_ASSOC); if(is_null($res['section_props'])) return false; $Props = unserialize($res['section_props']); if(isset($Props['Anlaggningar'])) return $Props['Anlaggningar']; } $pst = null; return false; } /* strip key 'x' from querystring -- -----------------*/ function stripQuerystring($key, $url) { $url = preg_replace('/(.*)(\?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&'); $url = substr($url, 0, -1); return ($url); } /* font awesome -- -----------------*/ function setFA($filetype){ $filetype = strtolower($filetype); switch($filetype){ case "pdf" : $fileext = "file-pdf-o"; break; case "docx" : case "doc" : $fileext = "file-word-o"; break; case "xlsx" : case "xls" : $fileext = "file-excel-o"; break; case "pptx" : case "ppt" : $fileext = "file-power-point-o"; break; case "jpeg" : case "jpg" : case "png" : case "gif" : case "bmp" : case "tif" : $fileext = "file-image-o"; break; case "txt" : $fileext = "file-text-o"; break; case "zip" : case "tar" : case "rar" : $fileext = "file-archive-o"; break; // case "mp3" : $fileext = "file_mp3.png"; break; default : $fileext = "file-o"; break; } return $fileext; } /* filuppladdning -- -----------------*/ function UploadError($Code){ switch ($Code) { case UPLOAD_ERR_INI_SIZE: $message = sprintf(_("Filstorleken är större än max tillåtna (%s)."), ini_get('upload_max_filesize')); break; case UPLOAD_ERR_FORM_SIZE: $message = sprintf(_("Filstorleken är större än max tillåtna (%s)."), ini_get('upload_max_filesize')); break; case UPLOAD_ERR_PARTIAL: $message = _('Filen kunde inte laddas upp fullständigt.'); break; case UPLOAD_ERR_NO_FILE: $message = _('Ingen fil valdes.'); break; case UPLOAD_ERR_NO_TMP_DIR: $message = _('Ett fel uppstod med den temporära mappen.'); break; case UPLOAD_ERR_CANT_WRITE: $message = _('Kunde inte skriva till disk.'); break; case UPLOAD_ERR_EXTENSION: $message = _('Felaktig/ogiltig filändelse.'); break; default: $message = _('Ett okänt fel inträffade.'); break; } return $message; } /* average -- -----------------*/ function avg($sum=0,$count=0){ return ($count)? $sum / $count: 0; } /* insert white-space --------------------------------------------------------------------*/ function WhiteSpace($value = "", $num = 0){ // $num = ($num - mb_strlen($value, 'utf8')); $num = ($num - strlen($value)); if($num <= 0) return ""; return str_repeat(chr(32), $num); } /* RGB2HTML -- -----------------*/ /* convert RGB color to HEX --------------------------------------------------------------------*/ function rgb2html($r, $g=-1, $b=-1){ if (is_array($r) && sizeof($r) == 3) list($r, $g, $b) = $r; $r = intval($r); $g = intval($g); $b = intval($b); $r = dechex($r<0?0:($r>255?255:!defined("REGEX_DATETIME")) define("REGEX_DATETIME", "((?:(?:19|20)[0-9]{2}))[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01]) (([01]?\d|2[0-3]):[0-5]{1}\d{1}:[0-5]{1}\d{1})"); if(!defined("REGEX_DATETIME_HHMM")) define("REGEX_DATETIME_HHMM", "/^((?:(?:19|20)[0-9]{2}))[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01]) (([01]?\d|2[0-3]):[0-5]{1}\d{1})$/"); if(!defined("REGEX_TIME_HHMM")) define("REGEX_TIME_HHMM", "(([01]?\d|2[0-3]):?([0-5]{1}\d{1}))"); if(!defined("REGEX_YEARMONTH")) define("REGEX_YEARMONTH", "/^((?:19|20)[0-9]{2})-?(\d{2})$/"); //define("REGEX_EMAIL", "/^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i"); //define("REGEX_EMAIL", "/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i"); if(!defined("REGEX_USERNAME")) define("REGEX_USERNAME", "/^([\s\w\d\-\.]{1,35})$/"); if(!defined("REGEX_EMAIL")) define("REGEX_EMAIL", "/[a-z0-9!#%&'*+=?^_`{|}~-]+(?:\.[a-z0-9!#%&'*+=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i"); if(!defined("REGEX_4DIGITS")) define("REGEX_4DIGITS", "/^(\d{4})$/"); if(!defined("REGEX_CELLPHONE")) define("REGEX_CELLPHONE", "/^((?:46)?)(?:0)?(7[023469]{1})([\d]{7}+)$/"); /* nummer -- -----------------------------*/ if(!isset($_NUM_SETTINGS)) $_NUM_SETTINGS = [ 'Decimal' => ',', 'Thousand' => ' ', ]; /* bank/plusgiro och swish -- -----------------------------*/ if(!isset($_REGEX_ACCOUNT)) $_REGEX_ACCOUNT = array( 1 => array('P' => '/^([\d]{3,4})([\d]{3,4})$/', 'R' => '$1$2'), // $1-$2 2 => array('P' => '/^([\d]{1,7})([\d]{1})$/', 'R' => '$1$2'), // $1-$2 3 => array('P' => '/^(123)([\d]{3})([\d]{2})([\d]{2})$/', 'R' => '$1-$2-$3-$4') ); /* definitions - datetime functions -- -----------------------------*/ if(!defined("DATE_LONG")) define("DATE_LONG", "%A %e %b %Y"); if(!defined("DATE_LONG_TIME")) define("DATE_LONG_TIME", "%A %e %b %Y, %H:%M"); if(!defined("DATE_LONG_ABBR")) define("DATE_LONG_ABBR", "%a %e %b"); if(!defined("DATE_DAY_MONTH")) define("DATE_DAY_MONTH", "%e %b"); if(!defined("DATE_DAY_MONTH_YEAR")) define("DATE_DAY_MONTH_YEAR", "%A %e %b %Y"); if(!defined("DATE_DAY_MONTH_HOUR_MINUTE")) define("DATE_DAY_MONTH_HOUR_MINUTE", "%e %b %H:%M"); if(!defined("DATE_DAYSHORT_MONTH_HOUR_MINUTE")) define("DATE_DAYSHORT_MONTH_HOUR_MINUTE", "%a %e %b %H:%M"); if(!defined("DATE_DAYNAME")) define("DATE_DAYNAME", "%A"); if(!defined("DATE_DAY_MONTH_YEAR_HOUR_MINUTE")) define("DATE_DAY_MONTH_YEAR_HOUR_MINUTE", "%e %b %Y %H:%M"); if(!defined("DATE_DAY_MONTH_YEAR_HOUR_MINUTE_SECOND")) define("DATE_DAY_MONTH_YEAR_HOUR_MINUTE_SECOND", "%e %b %Y %H:%M:%S"); if(!defined("DATE_DAY_MONTH_HOUR_MINUTE_SECOND")) define("DATE_DAY_MONTH_HOUR_MINUTE_SECOND", "%e %b %H:%M:%S"); if(!defined("DATE_HOUR_MINUTE")) define("DATE_HOUR_MINUTE", "%H:%M"); if(!defined("DATE_SHORT")) define("DATE_SHORT", "%Y-%m-%d"); if(!defined("DATE_DAY")) define("DATE_DAY", "%e"); if(!defined("DATE_MONTH")) define("DATE_MONTH", "%b"); if(!defined("DATE_YEAR")) define("DATE_YEAR", "%Y"); if(!defined("DATE_MONTH_YY")) define("DATE_MONTH_YY", "%b %Y"); if(!defined("DATE_DAY_MONTH_YY")) define("DATE_DAY_MONTH_YY", "%e %b %Y"); if(!defined("DATETIME_SHORT")) define("DATETIME_SHORT", "%Y-%m-%d %H:%M:%S"); /* image sizes -- -----------------------------*/ if(!isset($_KO_IMAGES)) $_KO_IMAGES = array( "forumthumb" => array("W" => 100, "H" => 100, "C" => true), "opengraph" => array("W" => 1200, "H" => 630, "C" => true), "thumbnail" => array("W" => 240, "H" => 240, "C" => true), "medium" => array("W" => 800, "H" => 600, "C" => false), "large" => array("W" => 1280, "H" => 1024, "C" => false), "max" => array("W" => 2400, "H" => 2400, "C" => false), ); /* default template/contents -- -----------------------------*/ if(!defined("DEFAULT_TEMPLATE")) // 1,3 define("DEFAULT_TEMPLATE", 3); // 2017-11-09 - bort med 1an. $__Page['Terms'] = 40; $__Page['Startpack'] = 41; /* medlemskort -- ------------*/ if(!isset($__MEMCARD_WIDTH)) $lay`, `Stroke`) `DistCode` FROM `competition_result` INNER JOIN `competition_distance` ON `ResDistance` = `DistId` WHERE `ResDate` >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 YEAR) AND `ResUser` = ? GROUP BY `Relay`, `Stroke`, `Distance` ORDER BY `ResUser`, `Relay`, `Stroke`, `Distance`, `ResTime` "; $pst = $dbh->prepare($query); $pst->execute(array($UserId)); $pst = null; return $TempName; } /* -- -----------------*/ function DownloadAsZip($Path = "", $Filename = "", $Ext = "csv"){ $zip = new ZipArchive(); $zipPath = $Path.$Filename.".zip"; if ($zip->open($zipPath,ZipArchive::CREATE)) { $zip->addFile($Path.$Filename.".{$Ext}", $Filename.".{$Ext}"); $zip->close(); //Make sure the zip file created and output it. if(is_file($zipPath)){ if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off'); header('Content-Description: File Transfer'); header("Pragma: public"); // required header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); // required for certain browsers header('Content-Type: application/force-download'); header('Content-Disposition: attachment; filename="'.$Filename.'.zip"'); header('Content-Length: ' . filesize($zipPath)); readfile($zipPath); @unlay`, `Stroke`) `DistCode` FROM `competition_result` INNER JOIN `competition_distance` ON `ResDistance` = `DistId` WHERE `ResDate` >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 YEAR) AND `ResUser` = ? GROUP BY `Relay`, `Stroke`, `Distance` ORDER BY `ResUser`, `Relay`, `Stroke`, `Distance`, `ResTime` "; $pst = $dbh->prepare($query); $pst->execute(array($UserId)); $pst = null; return $TempName; } /* -- -----------------*/ function DownloadAsZip($Path = "", $Filename = "", $Ext = "csv"){ $zip = new ZipArchive(); $zipPath = $Path.$Filename.".zip"; if ($zip->open($zipPath,ZipArchive::CREATE)) { $zip->addFile($Path.$Filename.".{$Ext}", $Filenamelay`, `Stroke`) `DistCode` FROM `competition_result` INNER JOIN `competition_distance` ON `ResDistance` = `DistId` WHERE `ResDate` >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 YEAR) AND `ResUser` = ? GROUP BY `Relay`, `Stroke`, `Distance` ORDER BY `ResUser`, `Relay`, `Stroke`, `Distance`, `ResTime` "; $pst = $dbh->prepare($query); $pst->execute(array($UserId)); $pst = null; return $TempName; } /* -- -----------------*/ function DownloadAsZip($Path = "", $Filename = "", $Ext = "csv"){ $zip = new ZipArchive(); $zipPath = $Path.$Filename.".zip"; if ($zip->open($zipPath,ZipArchive::CREATE)) { $zip->addFile($Path.$Filename.".{$Ext}", $Filename.".{$Ext}"); $zlay`, `Stroke`) `DistCode` FROM `competition_result` INNER JOIN `competition_distance` ON `ResDistance` = `DistId` WHERE `ResDate` >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 YEAR) AND `ResUser` = ? GROUP BY `Relay`, `Stroke`, `Distance` ORDER BY `ResUser`, `Relay`, `Stroke`, `Distance`, `ResTime` "; $pst = $dbh->prepare($query); $pst->execute(array($UserId)); $pst = null; return $TempName; } /* -- -----------------*/ function DownloadAsZi!defined("REGEX_DATETIME")) define("REGEX_DATETIME", "((?:(?:19|20)[0-9]{2}))[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01]) (([01]?\d|2[0-3]):[0-5]{1}\d{1}:[0-5]{1}\d{1})"); if(!defined("REGEX_DATETIME_HHMM")) define("REGEX_DATETIME_HHMM", "/^((?:(?:19|20)[0-9]{2}))[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01]) (([01]?\d|2[0-3]):[0-5]{1}\d{1})$/"); if(!defined("REGEX_TIME_HHMM")) define("REGEX_TIME_HHMM", "(([01]?\d|2[0-3]):?([0-5]{1}\d{1}))"); if(!defined("REGEX_YEARMONTH")) define("REGEX_YEARMONTH", "/^((?:19|20)[0-9]{2})-?(\d{2})$/"); //define("REGEX_EMAIL", "/^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i"); //define("REGEX_EMAIL", "/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i"); if(!defined("REGEX_USERNAME")) define("REGEX_USERNAME", "/^([\s\w\d\-\.]{1,35})$/"); if(!defined("REGEX_EMAIL")) define("REGEX_EMAIL", "/[a-z0-9!#%&'*+=?^_`{|}~-]+(?:\.[a-z0-9!#%&'*+=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i"); if(!defined("REGEX_4DIGITS")) define("REGEX_4DIGITS", "/^(\d{4})$/"); if(!defined("REGEX_CELLPHONE")) define("REGEX_CELLPHONE", "/^((?:46)?)(?:0)?(7[023469]{1})([\d]{7}+)$/"); /* nummer -- -----------------------------*/ if(!isset($_NUM_SETTINGS)) $_NUM_SETTINGS = [ 'Decimal' => ',', 'Thousand' => ' ', ]; /* bank/plusgiro och swish -- -----------------------------*/ if(!isset($_REGEX_ACCOUNT)) $_REGEX_ACCOUNT = array( 1 => array('P' => '/^([\d]{3,4})([\d]{3,4})$/', 'R' => '$1$2'), // $1-$2 2 => array('P' => '/^([\d]{1,7})([\d]{1})$/', 'R' => '$1$2'), // $1-$2 3 => array('P' => '/^(123)([\d]{3})([\d]{2})([\d]{2})$/', 'R' => '$1-$2-$3-$4') ); /* definitions - datetime functions -- -----------------------------*/ if(!defined("DATE_LONG")) define("DATE_LONG", "%A %e %b %Y"); if(!defined("DATE_LONG_TIME")) define("DATE_LONG_TIME", "%A %e %b %Y, %H:%M"); if(!defined("DATE_LONG_ABBR")) define("DATE_LONG_ABBR", "%a %e %b"); if(!defined("DATE_DAY_MONTH")) define("DATE_DAY_MONTH", "%e %b"); if(!defined("DATE_DAY_MONTH_YEAR")) define("DATE_DAY_MONTH_YEAR", "%A %e %b %Y"); if(!defined("DATE_DAY_MONTH_HOUR_MINUTE")) define("DATE_DAY_MONTH_HOUR_MINUTE", "%e %b %H:%M"); if(!defined("DATE_DAYSHORT_MONTH_HOUR_MINUTE")) define("DATE_DAYSHORT_MONTH_HOUR_MINUTE", "%a %e %b %H:%M"); if(!defined("DATE_DAYNAME")) define("DATE_DAYNAME", "%A"); if(!defined("DATE_DAY_MONTH_YEAR_HOUR_MINUTE")) define("DATE_DAY_MONTH_YEAR_HOUR_MINUTE", "%e %b %Y %H:%M"); if(!defined("DATE_DAY_MONTH_YEAR_HOUR_MINUTE_SECOND")) define("DATE_DAY_MONTH_YEAR_HOUR_MINUTE_SECOND", "%e %b %Y %H:%M:%S"); if(!defined("DATE_DAY_MONTH_HOUR_MINUTE_SECOND")) define("DATE_DAY_MONTH_HOUR_MINUTE_SECOND", "%e %b %H:%M:%S"); if(!defined("DATE_HOUR_MINUTE")) define("DATE_HOUR_MINUTE", "%H:%M"); if(!defined("DATE_SHORT")) define("DATE_SHORT", "%Y-%m-%d"); if(!defined("DATE_DAY")) define("DATE_DAY", "%e"); if(!defined("DATE_MONTH")) define("DATE_MONTH", "%b"); if(!defined("DATE_YEAR")) define("DATE_YEAR", "%Y"); if(!defined("DATE_MONTH_YY")) define("DATE_MONTH_YY", "%b %Y"); if(!defined("DATE_DAY_MONTH_YY")) define("DATE_DAY_MONTH_YY", "%e %b %Y"); if(!defined("DATETIME_SHORT")) define("DATETIME_SHORT", "%Y-%m-%d %H:%M:%S"); /* image sizes -- -----------------------------*/ if(!isset($_KO_IMAGES)) $_KO_IMAGES = array( "forumthumb" => array("W" => 100, "H" => 100, "C" => true), "opengraph" => array("W" => 1200, "H" => 630, "C" => true), "thumbnail" => array("W" => 240, "H" => 240, "C" => true), "medium" => array("W" => 800, "H" => 600, "C" => false), "large" => array("W" => 1280, "H" => 1024, "C" => false), "max" => array("W" => 2400, "H" => 2400, "C" => false), ); /* default template/contents -- -----------------------------*/ if(!defined("DEFAULT_TEMPLATE")) // 1,3 define("DEFAULT_TEMPLATE", 3); // 2017-11-09 - bort med 1an. $__Page['Terms'] = 40; $__Page['Startpack'] = 41; /* medlemskort -- ------------*/ if(!isset($__MEMCARD_WIDTH)) $lay`, `Stroke`) `DistCode` FROM `competition_result` INNER JOIN `competition_distance` ON `ResDistance` = `DistId` WHERE `ResDate` >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 YEAR) AND `ResUser` = ? GROUP BY `Relay`, `Stroke`, `Distance` ORDER BY `ResUser`, `Relay`, `Stroke`, `Distance`, `ResTime` "; $pst = $dbh->prepare($query); $pst->execute(array($UserId)); $pst = null; return $TempName; } /* -- -----------------*/ function DownloadAsZip($Path = "", $Filename = "", $Ext = "csv"){ $zip = new ZipArchive(); $zipPath = $Path.$Filename.".zip"; if ($zip->open($zipPath,ZipArchive::CREATE)) { $zip->addFile($Path.$Filename.".{$Ext}", $Filename.".{$Ext}"); $zip->close(); //Make sure the zip file created and output it. if(is_file($zipPath)){ if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off'); header('Content-Description: File Transfer'); header("Pragma: public"); // required header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); // required for certain browsers header('Content-Type: application/force-download'); header('Content-Disposition: attachment; filename="'.$Filename.'.zip"'); header('Content-Length: ' . filesize($zipPath)); readfile($zipPath); @unlink($Path.$Filename.".{$Ext}"); @unlink($Path.$Filename.".zip"); exit; } } $zip = null; } /* restrict to zip -- -----------------*/ function ZipRestriction(){ return file_exists(sprintf("%s%szipcodes.xml