- Fixes issue with ucwords() function on older PHP versions

- Updates Supervisor/Daemon to strip port from site_url() when it's
  running on localhost inside a virtual machine :)
This commit is contained in:
MrCasual
2015-11-23 12:56:23 -05:00
parent 149d031b52
commit 3124d6a61b
4 changed files with 33 additions and 9 deletions

View File

@ -2,6 +2,7 @@
namespace MailPoet\Config;
use MailPoet\Queue\Daemon;
use MailPoet\Util\Helpers;
if(!defined('ABSPATH')) exit;
@ -11,7 +12,7 @@ class PublicAPI {
$this->api = isset($_GET['mailpoet-api']) ? true : false;
$this->section = isset($_GET['section']) ? $_GET['section'] : false;
$this->action = isset($_GET['action']) ?
str_replace('_', '', lcfirst(ucwords($_GET['action'], '_'))) :
Helpers::underscoreToCamelCase($_GET['action']) :
false;
$this->payload = isset($_GET['payload']) ?
json_decode(urldecode($_GET['payload']), true) :

View File

@ -85,7 +85,7 @@ class Daemon {
'user-agent' => 'MailPoet (www.mailpoet.com)'
);
wp_remote_get(
site_url() .
Supervisor::getSiteUrl() .
'/?mailpoet-api&section=queue&action=run&payload=' . urlencode($payload),
$args
);

View File

@ -52,7 +52,7 @@ class Supervisor {
)
);
wp_remote_get(
site_url() .
self::getSiteUrl() .
'/?mailpoet-api&section=queue&action=start&payload=' .
urlencode($payload),
$args
@ -87,4 +87,13 @@ class Supervisor {
throw new \Exception('Database has not been configured.');
}
}
static function getSiteUrl() {
if(!preg_match('!:/!', site_url())) return site_url();
preg_match('!http://(?P<host>.*?):(?P<port>\d+)!', site_url(), $server);
$fp = fsockopen($server['host'], $server['port'], $errno, $errstr, 1);
return ($fp) ?
site_url() :
preg_replace('/(?=:\d+):\d+/', '$1', site_url());
}
}

View File

@ -76,12 +76,18 @@ class Helpers {
static function getMaxPostSize($bytes = false) {
$maxPostSize = ini_get('post_max_size');
if(!$bytes) return $maxPostSize;
switch (substr ($maxPostSize, -1))
{
case 'M': case 'm': return (int)$maxPostSize * 1048576;
case 'K': case 'k': return (int)$maxPostSize * 1024;
case 'G': case 'g': return (int)$maxPostSize * 1073741824;
default: return $maxPostSize;
switch (substr($maxPostSize, -1)) {
case 'M':
case 'm':
return (int) $maxPostSize * 1048576;
case 'K':
case 'k':
return (int) $maxPostSize * 1024;
case 'G':
case 'g':
return (int) $maxPostSize * 1073741824;
default:
return $maxPostSize;
}
}
@ -164,4 +170,12 @@ class Helpers {
}
return $resultArray;
}
static function underscoreToCamelCase($str, $capitalise_first_char = false) {
if($capitalise_first_char) {
$str[0] = strtoupper($str[0]);
}
$func = create_function('$c', 'return strtoupper($c[1]);');
return preg_replace_callback('/_([a-z])/', $func, $str);
}
}