mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge branch '3.5' into pulls/3.5/versioned-base-class
This commit is contained in:
commit
77b46672e2
@ -23,10 +23,13 @@ class CMSBatchActionHandler extends RequestHandler {
|
||||
'handleConfirmation',
|
||||
);
|
||||
|
||||
/**
|
||||
* @var Controller
|
||||
*/
|
||||
protected $parentController;
|
||||
|
||||
/**
|
||||
* @var String
|
||||
* @var string
|
||||
*/
|
||||
protected $urlSegment;
|
||||
|
||||
@ -38,7 +41,7 @@ class CMSBatchActionHandler extends RequestHandler {
|
||||
protected $recordClass = 'SiteTree';
|
||||
|
||||
/**
|
||||
* @param string $parentController
|
||||
* @param Controller $parentController
|
||||
* @param string $urlSegment
|
||||
* @param string $recordClass
|
||||
*/
|
||||
|
@ -41,7 +41,7 @@ class CMSMenuItem extends Object {
|
||||
* Attributes for the link. For instance, custom data attributes or standard
|
||||
* HTML anchor properties.
|
||||
*
|
||||
* @var string
|
||||
* @var array
|
||||
*/
|
||||
protected $attributes = array();
|
||||
|
||||
|
@ -398,7 +398,7 @@ class LeftAndMain extends Controller implements PermissionProvider {
|
||||
Requirements::css(FRAMEWORK_DIR . '/css/GridField.css');
|
||||
|
||||
// Browser-specific requirements
|
||||
$ie = isset($_SERVER['HTTP_USER_AGENT']) ? strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') : false;
|
||||
$ie = isset($_SERVER['HTTP_USER_AGENT']) ? strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false : false;
|
||||
if($ie) {
|
||||
$version = substr($_SERVER['HTTP_USER_AGENT'], $ie + 5, 3);
|
||||
|
||||
@ -1838,6 +1838,16 @@ class LeftAndMainMarkingFilter {
|
||||
*/
|
||||
protected $params = array();
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public $ids = array();
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public $expanded = array();
|
||||
|
||||
/**
|
||||
* @param array $params Request params (unsanitized)
|
||||
*/
|
||||
|
@ -171,7 +171,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
|
||||
$groupsTab->addExtraClass('ui-state-active');
|
||||
} elseif($actionParam == 'users') {
|
||||
$usersTab->addExtraClass('ui-state-active');
|
||||
} elseif($actionParam == 'roles') {
|
||||
} elseif($actionParam == 'roles' && isset($rolesTab)) {
|
||||
$rolesTab->addExtraClass('ui-state-active');
|
||||
}
|
||||
|
||||
|
@ -173,7 +173,9 @@ class LeftAndMainTest extends FunctionalTest {
|
||||
$adminuser = $this->objFromFixture('Member', 'admin');
|
||||
$securityonlyuser = $this->objFromFixture('Member', 'securityonlyuser');
|
||||
$allcmssectionsuser = $this->objFromFixture('Member', 'allcmssectionsuser');
|
||||
$allValsFn = create_function('$obj', 'return $obj->getValue();');
|
||||
$allValsFn = function($obj) {
|
||||
return $obj->getValue();
|
||||
};
|
||||
|
||||
// anonymous user
|
||||
$this->session()->inst_set('loggedInAs', null);
|
||||
|
@ -373,7 +373,9 @@ class RestfulService extends ViewableData implements Flushable {
|
||||
if( preg_match('/([^:]+): (.+)/m', $field, $match) ) {
|
||||
$match[1] = preg_replace_callback(
|
||||
'/(?<=^|[\x09\x20\x2D])./',
|
||||
create_function('$matches', 'return strtoupper($matches[0]);'),
|
||||
function($matches) {
|
||||
return strtoupper($matches[0]);
|
||||
},
|
||||
trim($match[1])
|
||||
);
|
||||
if( isset($headers[$match[1]]) ) {
|
||||
@ -418,7 +420,7 @@ class RestfulService extends ViewableData implements Flushable {
|
||||
if($element)
|
||||
$childElements = $xml->{$collection}->{$element};
|
||||
|
||||
if($childElements){
|
||||
if(isset($childElements) && $childElements){
|
||||
foreach($childElements as $child){
|
||||
$data = array();
|
||||
foreach($child->attributes() as $key => $value){
|
||||
@ -448,7 +450,7 @@ class RestfulService extends ViewableData implements Flushable {
|
||||
if($element)
|
||||
$childElements = $xml->{$collection}->{$element};
|
||||
|
||||
if($childElements)
|
||||
if(isset($childElements[$attr]))
|
||||
$attr_value = (string) $childElements[$attr];
|
||||
|
||||
return Convert::raw2xml($attr_value);
|
||||
@ -474,7 +476,7 @@ class RestfulService extends ViewableData implements Flushable {
|
||||
if($element)
|
||||
$childElements = $xml->{$collection}->{$element};
|
||||
|
||||
if($childElements){
|
||||
if(isset($childElements) && $childElements){
|
||||
foreach($childElements as $child){
|
||||
$data = array();
|
||||
$this->getRecurseValues($child,$data);
|
||||
@ -523,7 +525,7 @@ class RestfulService extends ViewableData implements Flushable {
|
||||
if($element)
|
||||
$childElements = $xml->{$collection}->{$element};
|
||||
|
||||
if($childElements)
|
||||
if(isset($childElements) && $childElements)
|
||||
return Convert::raw2xml($childElements);
|
||||
}
|
||||
|
||||
@ -573,7 +575,7 @@ class RestfulService_Response extends SS_HTTPResponse {
|
||||
protected $simpleXML;
|
||||
|
||||
/**
|
||||
* @var boolean It should be populated with cached request
|
||||
* @var RestfulService_Response|false It should be populated with cached request
|
||||
* when a request referring to this response was unsuccessful
|
||||
*/
|
||||
protected $cachedResponse = false;
|
||||
@ -600,14 +602,14 @@ class RestfulService_Response extends SS_HTTPResponse {
|
||||
* get the cached response object. This allows you to access the cached
|
||||
* eaders, not just the cached body.
|
||||
*
|
||||
* @return RestfulSerivice_Response The cached response object
|
||||
* @return RestfulService_Response|false The cached response object
|
||||
*/
|
||||
public function getCachedResponse() {
|
||||
return $this->cachedResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @return string|false
|
||||
*/
|
||||
public function getCachedBody() {
|
||||
if ($this->cachedResponse) {
|
||||
|
@ -41,7 +41,7 @@ if(isset($_SERVER['argv'][2])) {
|
||||
if(!isset($_GET)) $_GET = array();
|
||||
if(!isset($_REQUEST)) $_REQUEST = array();
|
||||
foreach($args as $arg) {
|
||||
if(strpos($arg,'=') == false) {
|
||||
if(strpos($arg,'=') === false) {
|
||||
$_GET['args'][] = $arg;
|
||||
} else {
|
||||
$newItems = array();
|
||||
|
@ -144,7 +144,7 @@ class CookieJar implements Cookie_Backend {
|
||||
* @see http://uk3.php.net/manual/en/function.setcookie.php
|
||||
*
|
||||
* @param string $name The name of the cookie
|
||||
* @param string|array $value The value for the cookie to hold
|
||||
* @param string|array|false $value The value for the cookie to hold
|
||||
* @param int $expiry The number of days until expiry
|
||||
* @param string $path The path to save the cookie on (falls back to site base)
|
||||
* @param string $domain The domain to make the cookie available on
|
||||
|
@ -948,7 +948,9 @@ abstract class Object {
|
||||
*/
|
||||
protected function createMethod($method, $code) {
|
||||
self::$extra_methods[get_class($this)][strtolower($method)] = array (
|
||||
'function' => create_function('$obj, $args', $code)
|
||||
'function' => function($obj, $args) use ($code) {
|
||||
eval($code);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -1307,7 +1307,9 @@ class Installer extends InstallRequirements {
|
||||
$locale = isset($_POST['locale']) ? addcslashes($_POST['locale'], "\'") : 'en_US';
|
||||
$type = addcslashes($config['db']['type'], "\'");
|
||||
$dbConfig = $config['db'][$type];
|
||||
$dbConfig = array_map(create_function('$v', 'return addcslashes($v, "\\\'");'), $dbConfig);
|
||||
$dbConfig = array_map(function($v) {
|
||||
return addcslashes($v, "\\'");
|
||||
}, $dbConfig);
|
||||
if(!isset($dbConfig['path'])) $dbConfig['path'] = '';
|
||||
if(!$dbConfig) {
|
||||
echo "<p style=\"color: red\">Bad config submitted</p><pre>";
|
||||
|
@ -859,7 +859,9 @@ class Form extends RequestHandler {
|
||||
$attrs = $this->getAttributes();
|
||||
|
||||
// Remove empty
|
||||
$attrs = array_filter((array)$attrs, create_function('$v', 'return ($v || $v === 0);'));
|
||||
$attrs = array_filter((array)$attrs, function($v) {
|
||||
return ($v || $v === 0);
|
||||
});
|
||||
|
||||
// Remove excluded
|
||||
if($exclude) $attrs = array_diff_key($attrs, array_flip($exclude));
|
||||
|
@ -136,8 +136,10 @@ class ListboxField extends DropdownField {
|
||||
public function setSource($source) {
|
||||
if($source) {
|
||||
$hasCommas = array_filter(array_keys($source),
|
||||
create_function('$key', 'return strpos($key, ",") !== FALSE;'));
|
||||
if($hasCommas) {
|
||||
function($key) {
|
||||
return strpos($key, ",") !== FALSE;
|
||||
});
|
||||
if(!empty($hasCommas)) {
|
||||
throw new InvalidArgumentException('No commas allowed in $source keys');
|
||||
}
|
||||
}
|
||||
|
@ -118,7 +118,9 @@ class HTMLText extends Text {
|
||||
$doc = new DOMDocument();
|
||||
|
||||
// Catch warnings thrown by loadHTML and turn them into a failure boolean rather than a SilverStripe error
|
||||
set_error_handler(create_function('$no, $str', 'throw new Exception("HTML Parse Error: ".$str);'), E_ALL);
|
||||
set_error_handler(function($no, $str) {
|
||||
throw new Exception("HTML Parse Error: " . $str);
|
||||
}, E_ALL);
|
||||
// Nonbreaking spaces get converted into weird characters, so strip them
|
||||
$value = str_replace(' ', ' ', $this->RAW());
|
||||
try {
|
||||
|
@ -728,7 +728,9 @@ class UploadFieldTest extends FunctionalTest {
|
||||
// A bit too much coupling with GridField, but a full template overload would make things too complex
|
||||
$parser = new CSSContentParser($response->getBody());
|
||||
$items = $parser->getBySelector('.ss-gridfield-item');
|
||||
$itemIDs = array_map(create_function('$el', 'return (int)$el["data-id"];'), $items);
|
||||
$itemIDs = array_map(function($el) {
|
||||
return (int)$el["data-id"];
|
||||
}, $items);
|
||||
$this->assertContains($file4->ID, $itemIDs, 'Contains file in assigned folder');
|
||||
$this->assertContains($fileSubfolder->ID, $itemIDs, 'Contains file in subfolder');
|
||||
}
|
||||
@ -746,7 +748,9 @@ class UploadFieldTest extends FunctionalTest {
|
||||
// A bit too much coupling with GridField, but a full template overload would make things too complex
|
||||
$parser = new CSSContentParser($response->getBody());
|
||||
$items = $parser->getBySelector('.ss-gridfield-item');
|
||||
$itemIDs = array_map(create_function('$el', 'return (int)$el["data-id"];'), $items);
|
||||
$itemIDs = array_map(function($el) {
|
||||
return (int)$el["data-id"];
|
||||
}, $items);
|
||||
$this->assertContains($file4->ID, $itemIDs, 'Contains file in assigned folder');
|
||||
$this->assertNotContains($fileSubfolder->ID, $itemIDs, 'Does not contain file in subfolder');
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ class sfYamlInline
|
||||
if (
|
||||
(1 == count($keys) && '0' == $keys[0])
|
||||
||
|
||||
(count($keys) > 1 && array_reduce($keys, create_function('$v,$w', 'return (integer) $v + $w;'), 0) == count($keys) * (count($keys) - 1) / 2))
|
||||
(count($keys) > 1 && array_reduce($keys, function($v,$w) { return (integer) $v + $w;}, 0) == count($keys) * (count($keys) - 1) / 2))
|
||||
{
|
||||
$output = array();
|
||||
foreach ($value as $val)
|
||||
|
Loading…
Reference in New Issue
Block a user