ACC SHELL
<?php
/* SVN FILE: $Id: bootstrap.php 2951 2006-05-25 22:12:33Z phpnut $ */
/**
* Short description for file.
*
* Long description for file
*
* PHP versions 4 and 5
*
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
* Copyright (c) 2006, Cake Software Foundation, Inc.
* 1785 E. Sahara Avenue, Suite 490-204
* Las Vegas, Nevada 89104
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @filesource
* @copyright Copyright (c) 2006, Cake Software Foundation, Inc.
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
* @package cake
* @subpackage cake.app.config
* @since CakePHP v 0.10.8.2117
* @version $Revision: 2951 $
* @modifiedby $LastChangedBy: phpnut $
* @lastmodified $Date: 2006-05-25 17:12:33 -0500 (Thu, 25 May 2006) $
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
/**
*
* This file is loaded automatically by the app/webroot/index.php file after the core bootstrap.php is loaded
* This is an application wide file to load any function that is not used within a class define.
* You can also use this to include or require any files in your application.
*
*/
/**
* The settings below can be used to set additional paths to models, views and controllers.
* This is related to Ticket #470 (https://trac.cakephp.org/ticket/470)
*
* $modelPaths = array('full path to models', 'second full path to models', 'etc...');
* $viewPaths = array('this path to views', 'second full path to views', 'etc...');
* $controllerPaths = array('this path to controllers', 'second full path to controllers', 'etc...');
*
*/
define('VALID_DATETIME', '/(\d+)[,.\s]+(\d+)[,.\s]+(\d+)? (\d+)[.:](\d+)([.:](\d+))?/');
define('VALID_DB_DATETIME', '/^\d+\-\d+\-\d+ \d+:\d+(:\d+)?$/');
/**
*
*/
function fromDate($what)
{
$what = trim($what);
if (preg_match('/^\d+\-\d+\-\d+$/', $what)) {
return $what;
}
if (! preg_match('/(\d+)[,.\s]+(\d+)([,.\s]+(\d+))?/', $what, $m)) {
return NULL;
}
$year = $m[4] ? $m[4] : date('y');
if ($year < 75) {
$year = 20 . $year;
}
else if ($year < 1000) {
$year = 19 . $year;
}
return sprintf('%d-%02d-%02d', $year, $m[2], $m[1]);
}
/**
*
*/
function toDate($what, $long_year = false)
{
if (! preg_match('/\d+\-\d+\-\d+/', $what)) {
return NULL;
}
$date = explode('-', $what);
$year = $long_year ? $date[0] : substr($date[0], 2);
return sprintf('%02d.%02d.%s', $date[2], $date[1], $year);
}
/**
*
*/
function fromDateTime($what)
{
$what = trim($what);
if (preg_match('/^\d+\-\d+\-\d+ \d+:\d+(:\d+)?$/', $what)) {
return $what;
}
if (! preg_match('/(\d+)[,.\s]+(\d+)[,.\s]+(\d+)? (\d+)[.:](\d+)([.:](\d+))?/', $what, $m)) {
return NULL;
}
$year = $m[3] ? $m[3] : date('y');
$sec = empty($m[7]) ? 0 : $m[7];
if ($year < 75) {
$year = 20 . $year;
}
else if ($year < 1000) {
$year = 19 . $year;
}
return sprintf('%d-%02d-%02d %02d:%02d:%02d',
$year,
$m[2],
$m[1],
$m[4],
$m[5],
$sec
);
}
/**
*
*/
function toDateTime($what, $long_year = false, $seconds = false)
{
if (! preg_match(VALID_DB_DATETIME, $what)) {
return NULL;
}
list($date, $time) = explode(' ', $what);
$date = explode('-', $date);
$time = explode(':', $time);
$year = $long_year ? $date[0] : substr($date[0], 2);
if ($seconds) {
return sprintf('%02d.%02d.%s %02d:%02d:%02d',
$date[2],
$date[1],
$year,
$time[0],
$time[1],
$time[2]
);
}
return sprintf('%02d.%02d.%s %02d:%02d',
$date[2],
$date[1],
$year,
$time[0],
$time[1]
);
}
/**
*
*/
function setDefault(&$v, $d = NULL, $strict = 1)
{
if ($strict) {
if ($v === NULL) {
$v = $d;
}
}
else {
if (empty($v)) {
$v = $d;
}
}
}
/**
*
*/
function en2czMonth($str)
{
static $en2czMonth = array(
'January' => 'ledna',
'February' => 'února',
'March' => 'března',
'April' => 'dubna',
'May' => 'května',
'June' => 'června',
'July' => 'července',
'August' => 'srpna',
'September' => 'září',
'October' => 'října',
'November' => 'listopadu',
'December' => 'prosince'
);
return str_replace(array_keys($en2czMonth), $en2czMonth, $str);
}
function __latin2ascii($str)
{
$from = "\xA1\xA3\xA5\xA6\xA9\xAA\xAB\xAC\xAE\xAF\xB1\xB3\xB5\xB6\xB9\xBA" .
"\xBB\xBC\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB" .
"\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC" .
"\xDD\xDE\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED" .
"\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE";
$to = "\x41\x4C\x4C\x53\x53\x53\x54\x5A\x5A\x5A\x61\x6C\x6C\x73\x73\x73" .
"\x74\x7A\x7A\x7A\x52\x41\x41\x41\x41\x4C\x43\x43\x43\x45\x45\x45" .
"\x45\x49\x49\x44\x44\x4E\x4E\x4F\x4F\x4F\x4F\x52\x55\x55\x55\x55" .
"\x59\x54\x72\x61\x61\x61\x61\x6C\x63\x63\x63\x65\x65\x65\x65\x69" .
"\x69\x64\x64\x6E\x6E\x6F\x6F\x6F\x6F\x72\x75\x75\x75\x75\x79\x74";
return strtr($str, $from, $to);
}
function __win2latin($str)
{
return strtr($str,
"\x9A\x8A\x9E\x8E\x9D\x8D",
"\xB9\xA9\xBE\xAE\xBB\xAB"
);
}
/**
*
*/
function indexFromName($name)
{
$idx = strtolower(__latin2ascii($name));
$idx = preg_replace('/[ _]+/', '-', $idx);
return preg_replace('/[^a-z0-9-]/', '', $idx);
}
/**
* Smart substr /currently not so smart../ :D
*/
function ssubstr($str, $from, $to)
{
if (! strlen($str)) {
return $str;
}
$nstr = preg_replace('/&#\d+;/', '*', $str);
$nstr = preg_replace('/&[a-z]+;/i', '*', $nstr);
// echo "STR: ", h($str), " NSTR: ", h($nstr);
// echo "DIFF: ", strlen($str) - strlen($nstr);
// echo "<br>";
$to = $to * (1+((strlen($str) - strlen($nstr)) / strlen($nstr)));
// $to += strlen($str) - strlen($nstr);
$nstr = substr($str, $from, $to);
// if (strlen($nstr) == ($to - $from)) {
// echo "GHE?";
// }
$len = strlen($nstr);
$nstr = strrev($nstr);
$strip = strcspn($nstr, " \t\r\n");
if ($strip) {
return substr(strrev($nstr), 0, -$strip - 1);
}
return strrev($nstr);
}
/**
*
*/
function _html2tmce($data)
{
if (! empty($_SESSION['tinymce_disabled'])) {
return $data;
}
$data = preg_replace('/<(div|p)([^>]*?)style="text-align: ([^>]*?)"([^>]*?)>/i',
'<\\1\\2align="\\3"\\4>', $data);
$data = preg_replace('/<div/i', '<p', $data);
$data = preg_replace(',</div,i', '</p', $data);
$data = preg_replace('/<img([^>]*)class="st-([^>]*?)"([^>]*)>/i',
'<img\\1align="\\2"\\3>', $data);
return $data;
}
function html_address($x)
{
if (strpos($x, "\n")) {
return preg_replace('/\\r?\\n/', ',<br />', $x);
}
$back = $x;
$psc = '';
$city = '';
$street = '';
if (preg_match('/(\d{3}\s+\d{2})/', $x, $m)) {
$psc = $m[1];
$x = str_replace($psc, '', $x);
}
if (preg_match(',(.*?\s+[0-9/]+[a-z]?),i', $x, $m)) {
$street = trim($m[1]);
$x = str_replace($street, '', $x);
}
if (! $psc && preg_match('/(\d{5})/', $x, $m)) {
$psc = $m[1];
$x = str_replace($psc, '', $x);
}
if ($psc && $street) {
$city = preg_replace('/[\\r\\n\\t,]/', '', $x);
return "$street,<br />$city,<br />$psc";
}
return $back;
}
function text_address($x)
{
$back = $x;
$psc = '';
$city = '';
$street = '';
if (preg_match('/(\d{3}\s+\d{2})/', $x, $m)) {
$psc = trim($m[1]);
$x = str_replace($psc, '', $x);
}
if (preg_match(',(.*?\s+[0-9/]+[a-z]?),i', $x, $m)) {
$street = trim($m[1]);
$x = str_replace($street, '', $x);
}
if (! $psc && preg_match('/(\d{5})/', $x, $m)) {
$psc = trim($m[1]);
$x = str_replace($psc, '', $x);
}
if ($psc && $street) {
$city = trim(preg_replace('/[\\r\\n\\t,]/', '', $x));
return "$street\n$city\n$psc";
}
return $back;
}
/**
*
*/
function fix_local_links($buf, $base)
{
// link to product page
$buf = preg_replace('/href="[^"]*produkty\\/([^"]+)"/',
'href="' . $base . '/produkty/\\1"', $buf);
// handle custom uploaded files and images
$buf = preg_replace('/src="[^"]*image\\/(\\d+)"/',
'src="' . $base . '/image/\\1"', $buf);
$buf = preg_replace('/src="[^"]*files\\/view\\/(\d+)"/',
'src="' . $base . '/image/\\1"', $buf);
$buf = preg_replace('/href="[^"]*files\\/view\\/(\d+)"/',
'href="' . $base . '/file/\\1"', $buf);
return $buf;
}
global $DOMAINS;
$DOMAINS = array(
' vybrat ...' => 0,
'Ultrazvukové NDT přístroje' => 'lkeller@tsisystem.cz',
'Ultrazvukové diagnostické přístroje' => 'lkeller@tsisystem.cz',
'Povlakoměry, tloušťkoměry a porozimetry' => 'lkeller@tsisystem.cz',
'Ruční bezkontaktní teploměry' => 'vhubik@tsisystem.cz',
'Termokamery' => 'vhubik@tsisystem.cz',
'Systémové bezkontakntí teploměry' => 'vhubik@tsisystem.cz',
'Metalografické stroje a materiály' => 'pcvanda@tsisystem.cz',
'Přenosné a stacionární tvrdoměry' => 'pcvanda@tsisystem.cz',
'Mikrotvrdoměry' => 'pcvanda@tsisystem.cz',
'Kalibrace' => 'hhermanova@tsisystem.cz',
'Opravy' => 'hhermanova@tsisystem.cz',
'Měření a zkoušení' => 'hhermanova@tsisystem.cz',
);
ACC SHELL 2018