mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
Merge pull request #2411 from kinglozzer/virtualpage-definemethods
FIX: VirtualPage missing methods from target page (fixes #2408)
This commit is contained in:
commit
59b9a0d664
@ -489,6 +489,19 @@ class VirtualPage extends Page
|
|||||||
return $copy && $copy->exists() && $copy->hasField($field);
|
return $copy && $copy->exists() && $copy->hasField($field);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $method
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function hasMethod($method)
|
||||||
|
{
|
||||||
|
if (parent::hasMethod($method)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
$copy = $this->CopyContentFrom();
|
||||||
|
return $copy && $copy->exists() && $copy->hasMethod($method);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the "casting helper" (a piece of PHP code that when evaluated creates a casted value object) for a field
|
* Return the "casting helper" (a piece of PHP code that when evaluated creates a casted value object) for a field
|
||||||
* on this object.
|
* on this object.
|
||||||
|
@ -669,6 +669,9 @@ class VirtualPageTest extends FunctionalTest
|
|||||||
{
|
{
|
||||||
/** @var VirtualPage $virtualPage */
|
/** @var VirtualPage $virtualPage */
|
||||||
$virtualPage = $this->objFromFixture(VirtualPage::class, 'vp4');
|
$virtualPage = $this->objFromFixture(VirtualPage::class, 'vp4');
|
||||||
|
$this->assertTrue($virtualPage->hasMethod('modelMethod'));
|
||||||
|
$this->assertEquals('hi there', $virtualPage->modelMethod());
|
||||||
|
|
||||||
/** @var VirtualPageTest_ClassAController $controller */
|
/** @var VirtualPageTest_ClassAController $controller */
|
||||||
$controller = ModelAsController::controller_for($virtualPage);
|
$controller = ModelAsController::controller_for($virtualPage);
|
||||||
$this->assertInstanceOf(VirtualPageTest_ClassAController::class, $controller);
|
$this->assertInstanceOf(VirtualPageTest_ClassAController::class, $controller);
|
||||||
|
Loading…
Reference in New Issue
Block a user