Version: current

# Class ReportAdmin

Reports section of the CMS.

All reports that should show in the ReportAdmin section of the CMS need to subclass `SS_Report`, and implement the appropriate methods and variables that are required.

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  Controller
  LeftAndMain
  ReportAdmin

Package: cms\reports
See: ``SS_Report``
Located at cms/code/ReportAdmin.php

## Methods summary

`public` | # `init( )` #### Uses ``LeftAndMainDecorator::init()`` ``LeftAndMainDecorator::accessedCMS()`` ``CMSMenu`` #### Overrides `LeftAndMain::init`
`public boolean` | # `canView( `Member` $member = null )` Does the parent permission checks, but also makes sure that instantiatable subclasses of Report exist. By default, the CMS doesn't include any Reports, so there's no point in showing Does the parent permission checks, but also makes sure that instantiatable subclasses of Report exist. By default, the CMS doesn't include any Reports, so there's no point in showing #### Parameters $member Member $member #### Returns `boolean` boolean #### Overrides `LeftAndMain::canView`
`public `DataObjectSet`` | # `Reports( )` Return a DataObjectSet of SS_Report subclasses that are available for use. Return a DataObjectSet of SS_Report subclasses that are available for use. #### Returns ``DataObjectSet`` DataObjectSet
`public` | # `show( `SS_HTTPRequest` $request )` Show a report based on the URL query string. Show a report based on the URL query string. #### Parameters $request SS_HTTPRequest $request The HTTP request object #### Overrides `LeftAndMain::show`
`protected unknown` | # `showWithEditForm( unknown_type $params, unknown_type $editForm )` #### Parameters $params unknown_type $params $editForm unknown_type $editForm #### Returns `unknown` unknown #### TODO What does this do?
`public `Form`` | # `EditForm( )` For the current report that the user is viewing, return a Form instance with the fields for that report. For the current report that the user is viewing, return a Form instance with the fields for that report. #### Returns ``Form`` Form #### Overrides `LeftAndMain::EditForm`
`public `SS_Report`` | # `CurrentReport( )` Get the current report Get the current report #### Returns ``SS_Report`` SS_Report
`public `Form`` | # `reportEditFormFor( id|string $id )` Return a Form instance with fields for the particular report currently viewed. Return a Form instance with fields for the particular report currently viewed. #### Parameters $id id|string $id The ID of the report, or class name #### Returns ``Form`` Form #### TODO Dealing with multiple data types for the $id parameter is confusing. Ideally, it should deal with only one.
`public static boolean` | # `has_reports( )` Determine if we have reports and need to display the "Reports" main menu item in the CMS. Determine if we have reports and need to display the "Reports" main menu item in the CMS. The test for an existance of a report is done by checking for a subclass of "SS_Report" that exists. #### Returns `boolean` boolean
`public` | # `updatereport( )`

### Methods inherited from LeftAndMain

`ApplicationLink()`, `CMSTopMenu()`, `CMSVersion()`, `CanOrganiseSitetree()`, `EditorToolbar()`, `EmptyForm()`, `ForceReload()`, `Left()`, `Link()`, `LoadingImage()`, `LogoStyle()`, `MainMenu()`, `MceRoot()`, `Member_ProfileForm()`, `Right()`, `SectionTitle()`, `ShowSwitchView()`, `SwitchView()`, `addTreeNodeJS()`, `ajaxupdateparent()`, `ajaxupdatesort()`, `callPageMethod()`, `currentPage()`, `currentPageID()`, `deleteTreeNodeJS()`, `deleteitems()`, `getActionUpdateJS()`, `getApplicationLogoText()`, `getApplicationName()`, `getLastFormIn()`, `getRecord()`, `getSiteTreeFor()`, `getTemplatesWithSuffix()`, `getitem()`, `getsubtree()`, `isCurrentPage()`, `menu_title_for_class()`, `myprofile()`, `printable()`, `require_css()`, `require_javascript()`, `require_themed_css()`, `returnItemToUser()`, `save()`, `setApplicationName()`, `setCurrentPageID()`, `setLogo()`, `set_loading_image()`, `versionFromVersionFile()`

### Methods inherited from Controller

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

### Methods inherited from RequestHandler

`__construct()`, `allowedActions()`, `checkAccessAction()`, `httpError()`

### 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

`__call()`, `__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()`, `hasMethod()`, `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 string` | $url_segment | #
`public static string` | $url_rule | #
`public static string` | $menu_title | #
`public static mixed` | $template_path | #

### Properties inherited from LeftAndMain

`$ForceReload`, `$allowed_actions`, `$application_link`, `$application_logo`, `$application_logo_style`, `$application_logo_text`, `$application_name`, `$extra_requirements`, `$loading_image`, `$menu_priority`, `$tree_class`, `$url_base`, `$url_priority`

### Properties inherited from Controller

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

### 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. -