Version: current

# Class VirtualPage_Controller

Controller for the virtual page.

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  Controller
  ContentController
  Page_Controller
  VirtualPage_Controller

### Direct known subclasses

`SubsitesVirtualPage_Controller`, `VirtualProduct_Controller`

Package: cms
Located at sapphire/core/model/VirtualPage.php

## Methods summary

`public` | # `reloadContent( )` Reloads the content if the version is different ;-) Reloads the content if the version is different ;-)
`public `SSViewer`` | # `getViewer( mixed $action )` Return an SSViewer object to process the data Return an SSViewer object to process the data #### Returns ``SSViewer`` The viewer identified being the default handler for this Controller/Action combination #### Overrides `Controller::getViewer`
`public` | # `init( )` When the virtualpage is loaded, check to see if the versions are the same if not, reload the content. NOTE: Virtual page must have a container object of subclass of sitetree. We can't load the content without an ID or record to copy it from. When the virtualpage is loaded, check to see if the versions are the same if not, reload the content. NOTE: Virtual page must have a container object of subclass of sitetree. We can't load the content without an ID or record to copy it from. #### Overrides `Page_Controller::init`
`public` | # `loadcontentall( )`
`public boolean` | # `hasMethod( string $method )` Also check the original object's original controller for the method Also check the original object's original controller for the method #### Parameters $method string $method #### Returns `boolean` bool #### Overrides `Object::hasMethod`
`public mixed` | # `__call( string $method, string $args )` Pass unrecognized method calls on to the original controller Pass unrecognized method calls on to the original controller #### Parameters $method string $method $args string $args #### Returns `mixed` mixed #### Overrides `Object::__call`

### Methods inherited from Page_Controller

`BaseURL()`, `DocPath()`, `FavIcon()`, `HomePage()`, `ImageGalleryRandomImage()`, `PageByClass()`, `PageByID()`, `Random()`, `RedirectToFirstChild()`, `ShowWidget()`, `Siblings()`, `SitePoll()`, `combine_files()`, `isEmptyContent()`, `setSEOVars()`

### Methods inherited from ContentController

`ChildrenOf()`, `ContentLocale()`, `LangAttributes()`, `Link()`, `LoginForm()`, `Menu()`, `Page()`, `PageComments()`, `SilverStripeNavigator()`, `SiteConfig()`, `__construct()`, `data()`, `deleteinstallfiles()`, `getMenu()`, `handleRequest()`, `handleWidget()`, `httpError()`, `project()`, `successfullyinstalled()`

### Methods inherited from Controller

`CurrentMember()`, `Now()`, `PastMember()`, `PastVisitor()`, `can()`, `curr()`, `defaultAction()`, `disableBasicAuth()`, `getAction()`, `getFormOwner()`, `getRequest()`, `getResponse()`, `getSession()`, `getURLParams()`, `handleAction()`, `hasAction()`, `hasActionTemplate()`, `has_curr()`, `isAjax()`, `join_links()`, `popCurrent()`, `pushCurrent()`, `redirect()`, `redirectBack()`, `redirectedTo()`, `render()`, `setSession()`, `setURLParams()`

### Methods inherited from RequestHandler

`allowedActions()`, `checkAccessAction()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`public static array` | $allowed_actions | # Define a list of action handling methods that are allowed to be called directly by URLs. The variable should be an array of action names. This sample shows the different values that it can contain: Define a list of action handling methods that are allowed to be called directly by URLs. The variable should be an array of action names. This sample shows the different values that it can contain:
    array(
            'someaction', // someaction can be accessed by anyone, any time
            'otheraction' => true, // So can otheraction
            'restrictedaction' => 'ADMIN', // restrictedaction can only be people with ADMIN privilege
            'complexaction' '->canComplexAction' // complexaction can only be accessed if $this->canComplexAction() returns true
    );

### Properties inherited from ContentController

`$dataRecord`, `$url_handlers`

### Properties inherited from Controller

`$action`, `$baseInitCalled`, `$basicAuthEnabled`, `$controller_stack`, `$request`, `$requestParams`, `$response`, `$session`, `$urlParams`

### Properties inherited from RequestHandler

`$brokenOnConstruct`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -