Changeset 679
- Timestamp:
- May 14, 2019 2:17:07 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/docs/examples/_config.inc.php
r665 r679 62 62 'images_path' => '/i', 63 63 64 'php_timezone' => null, 64 65 'date_format' => 'd M Y', 66 'time_format' => 'H:i', 65 67 'sql_date_format' => '%e %b %Y', 66 68 'sql_time_format' => '%k:%i', -
trunk/js/Msg.js
r636 r679 83 83 var msghash = Strangecode.Msg.hash(message); 84 84 if (!$(options.container).find('[data-msghash="' + msghash + '"]').length) { 85 $(options.container).append($('<div data-alert class="alert-box sc-js-msg ' + msg_class + '" data-msghash="' + msghash + '"></div>').hide().html(message).append('<a href="#" class="close">Ã</a>')) ;85 $(options.container).append($('<div data-alert class="alert-box sc-js-msg ' + msg_class + '" data-msghash="' + msghash + '"></div>').hide().html(message).append('<a href="#" class="close">Ã</a>')).show(); 86 86 $('.sc-js-msg').slideDown('fast'); 87 87 if ($.fn.foundation) { … … 107 107 } 108 108 109 if (options.gotohash ) {110 $( document.body).animate({109 if (options.gotohash && $('html, body').scrollTop() > $(options.container).offset().top) { 110 $('html, body').animate({ 111 111 'scrollTop': $(options.container).offset().top 112 112 }, 'fast'); -
trunk/js/Utilities.js
r672 r679 39 39 */ 40 40 if (!String.prototype.format) { 41 String.prototype.format = function () {41 String.prototype.format = function () { 42 42 var args = arguments; 43 return this.replace(/{(\d+)}/g, function (match, number) {43 return this.replace(/{(\d+)}/g, function (match, number) { 44 44 return typeof args[number-1] != 'undefined' ? args[number-1] : match; 45 45 }); … … 61 61 * @since 30 Jun 2008 12:32:19 62 62 */ 63 jQuery.fn.nospam = function () {64 return this.each(function (){63 jQuery.fn.nospam = function () { 64 return this.each(function (){ 65 65 $(this).text($(this).text().replace(' at ', '@').replace(' dot ', '.')); 66 66 if (this.href) { … … 131 131 * @since 30 Jun 2013 132 132 */ 133 $.fn.slug = function () {133 $.fn.slug = function () { 134 134 str = this.text().trim().toLowerCase(); 135 135 var from = 'áéÃóúà ÚìòùÀëïöÌÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃâêîÎûÃÃÃÃÃñçÃ@·/_,:;'; … … 173 173 */ 174 174 if (!String.prototype.ucfirst) { 175 String.prototype.ucfirst = function () {175 String.prototype.ucfirst = function () { 176 176 return this.charAt(0).toUpperCase() + this.slice(1); 177 177 }; … … 193 193 * @since 06 Mar 2019 194 194 */ 195 Strangecode.humanTime = function (seconds, max_unit) {195 Strangecode.humanTime = function (seconds, max_unit) { 196 196 // Units: array of seconds in the unit, singular and plural unit names. 197 197 var units = { … … 227 227 // https://github.com/benjamingr/RegExp.escape 228 228 if(!RegExp.escape){ 229 RegExp.escape = function (s){229 RegExp.escape = function (s){ 230 230 return String(s).replace(/[\\^$*+?.()|[\]{}]/g, '\\$&'); 231 231 }; 232 232 } 233 234 // Throttle will ensure that a function is called at most once 235 // in a specified time period (for instance, once per 10 seconds). This means 236 // throttling will prevent a function from running if it has run ârecentlyâ. 237 // Throttling also ensures a function is run regularly at a fixed rate. 238 // https://blog.bitsrc.io/understanding-throttling-and-debouncing-973131c1ba07 239 Strangecode.throttle = function (f, t) { 240 return function (args) { 241 let previousCall = this.lastCall; 242 this.lastCall = Date.now(); 243 if (typeof previousCall === 'undefined' || (this.lastCall - previousCall) > t) { 244 // Throttle time has elapsed. 245 f(args); 246 } 247 } 248 } 249 250 // Debounce will ignore all calls to it until the calls have stopped for a 251 // specified time period. Only then will it call the original function. For 252 // instance, if we specify the time as two seconds, and the debounced function is 253 // called 10 times with an interval of one second between each call, the function 254 // will not call the original function until two seconds after the last (tenth) 255 // call. 256 // https://blog.bitsrc.io/understanding-throttling-and-debouncing-973131c1ba07 257 Strangecode.debounce = function (f, t) { 258 return function (args) { 259 let previousCall = this.lastCall; 260 this.lastCall = Date.now(); 261 if (previousCall && ((this.lastCallâ-âpreviousCall) <= t)) { 262 clearTimeout(this.lastCallTimer); 263 } 264 this.lastCallTimer = setTimeout(() => f(args), t); 265 } 266 } -
trunk/lib/App.inc.php
r676 r679 78 78 'site_name' => null, 79 79 'site_email' => '', // Set to no-reply@HTTP_HOST if not set here. 80 'site_hostname' => '', // The hostname of this application (if not set, use a cleaned HTTP_HOST environment variable). 80 'site_hostname' => '', // The hostname of this application (if not set, derived from HTTP_HOST). 81 'site_port' => '', // The hostname of this application (if not set, derived from HTTP_HOST). 81 82 'site_url' => '', // URL to the root of the site (created during App->start()). 82 83 'page_url' => '', // URL to the current page (created during App->start()). … … 146 147 'db_pass' => null, 147 148 148 // And for CLI scripts, which should include a JSON file at this specified locationin the include path.149 // CLI scripts will need this JSON file in the include path. 149 150 'db_auth_file' => 'db_auth.json', 150 151 … … 479 480 */ 480 481 481 // To get a safe hostname, remove hostport and invalid hostname characters.482 // To get a safe hostname, remove port and invalid hostname characters. 482 483 $safe_http_host = preg_replace('/[^a-z\d.:-]/', '', strtok(getenv('HTTP_HOST'), ':')); 484 // If strtok() matched a ':' in the previous line, the rest of the string contains the port number (or FALSE) 485 $safe_http_port = preg_replace('/[^0-9]/', '', strtok('')); 483 486 if ('' != $safe_http_host && '' == $this->getParam('site_hostname')) { 484 487 $this->setParam(array('site_hostname' => $safe_http_host)); 488 } 489 if ('' != $safe_http_port && '' == $this->getParam('site_port')) { 490 $this->setParam(array('site_port' => $safe_http_port)); 485 491 } 486 492 … … 489 495 // Not available on CLI scripts obviously. 490 496 if ('' != $safe_http_host && '' == $this->getParam('site_url')) { 491 $this->setParam(array('site_url' => sprintf('%s://%s ', (getenv('HTTPS') ? 'https' : 'http'), $safe_http_host)));497 $this->setParam(array('site_url' => sprintf('%s://%s%s', (getenv('HTTPS') ? 'https' : 'http'), $safe_http_host, (preg_match('/^(|80|443)$/', $safe_http_port) ? '' : ':' . $safe_http_port)))); 492 498 } 493 499 … … 495 501 // Also not available on CLI scripts obviously. 496 502 if ('' != $safe_http_host) { 497 $this->setParam(array('page_url' => sprintf('%s ://%s%s', (getenv('HTTPS') ? 'https' : 'http'), $safe_http_host, getenv('REQUEST_URI'))));503 $this->setParam(array('page_url' => sprintf('%s%s', $this->getParam('site_url'), getenv('REQUEST_URI')))); 498 504 } 499 505 … … 1396 1402 1397 1403 if (preg_match('!^/!', $url)) { 1398 // If relative URL is given, prepend correct local hostname. 1399 $scheme = getenv('HTTPS') ? 'https' : 'http'; 1400 $host = $this->getParam('site_hostname'); 1401 $url = sprintf('%s://%s%s', $scheme, $host, $url); 1404 // If relative URL is given, prepend site_url, which contains: scheme://hostname[:port] 1405 $url = sprintf('%s%s', $this->getParam('site_url'), $url); 1402 1406 } 1403 1407 … … 1705 1709 1706 1710 /* 1707 * Set timezone used internally by PHP. 1711 * Set timezone used internally by PHP. See full list at https://www.php.net/manual/en/timezones.php 1708 1712 * 1709 1713 * @access public -
trunk/lib/DB.inc.php
r665 r679 339 339 $debugqry = preg_replace("/\n[\t ]+/", "\n", $query); 340 340 if ($this->getParam('db_always_debug') || $debug) { 341 echo "<!-- ----------------- Query $this->_query_count ---------------------\n$debugqry\n-->\n"; 341 if ($debug > 1) { 342 dump($debugqry, true, SC_DUMP_PRINT_R, __FILE__, __LINE__); 343 } else { 344 echo "<!-- ----------------- Query $this->_query_count ---------------------\n$debugqry\n-->\n"; 345 } 342 346 } 343 347 -
trunk/lib/Utilities.inc.php
r672 r679 1452 1452 $ch = curl_init($url); 1453 1453 curl_setopt($ch, CURLOPT_TIMEOUT, 5); 1454 curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); 1454 1455 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 1455 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);1456 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 1456 1457 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"); 1457 1458 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Don't pass through data to the browser.
Note: See TracChangeset
for help on using the changeset viewer.