Version: current

# Class NewsletterAdmin

Newsletter administration section

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  Controller
  LeftAndMain
  NewsletterAdmin

Package: newsletter
Located at newsletter/code/NewsletterAdmin.php

## Methods summary

`public static` | # `setSendNewslettersReadonly( mixed $val = true )`
`public` | # `init( )` #### Uses ``LeftAndMainDecorator::init()`` ``LeftAndMainDecorator::accessedCMS()`` ``CMSMenu`` #### Overrides `LeftAndMain::init`
`public` | # `remove( )`
`public` | # `currentPageID( )` #### Overrides `LeftAndMain::currentPageID`
`public` | # `getformcontent( )`
`public` | # `showrecipients( mixed $params )` Top level call from ajax Called when a mailing list is clicked on the left menu Top level call from ajax Called when a mailing list is clicked on the left menu
`public` | # `shownewsletter( mixed $params )` Top level call from ajax when click on the left manu Second level call when create a draft Called when a draft or sent newsletter is clicked on the left menu and when a new one is added Top level call from ajax when click on the left manu Second level call when create a draft Called when a draft or sent newsletter is clicked on the left menu and when a new one is added
`public` | # `preview( HTTPRequest $request )` Preview a `Newsletter` draft. Preview a `Newsletter` draft. #### Parameters $request HTTPRequest $request Request parameters
`public` | # `showmailtype( mixed $params )` Top level call from ajax Called when a newsletter type is clicked on the left menu Top level call from ajax Called when a newsletter type is clicked on the left menu
`public` | # `showdrafts( mixed $params )` Top level call from ajax Called when a 'Drafts' folder is clicked on the left menu Top level call from ajax Called when a 'Drafts' folder is clicked on the left menu
`public` | # `showsent( mixed $params )` Top level call from ajax Called when a 'Sent Items' folder is clicked on the left menu Top level call from ajax Called when a 'Sent Items' folder is clicked on the left menu
`public` | # `ShowNewsletterFolder( mixed $params, mixed $type )` Shows either the 'Sent' or 'Drafts' folder using the NewsletterList template Didn't see anywhere it is called from top level ajax call or from templete, it is only called internally from showdrafts and showsent. Shows either the 'Sent' or 'Drafts' folder using the NewsletterList template Didn't see anywhere it is called from top level ajax call or from templete, it is only called internally from showdrafts and showsent.
`public` | # `getEditForm( mixed $id )`
`public` | # `EditForm( )` Get the EditForm Get the EditForm #### Overrides `LeftAndMain::EditForm`
`public` | # `NewsletterEditForm( )`
`public` | # `TypeEditForm( )`
`public` | # `MailingListEditForm( )`
`public` | # `getNewsletterTypeEditForm( mixed $id )`
`public` | # `getMailingListEditForm( mixed $id )`
`public String` | # `removebouncedmember( mixed $params )` Removes a bounced member from the mailing list top level call from front-ajax Removes a bounced member from the mailing list top level call from front-ajax #### Returns `String` String
`public` | # `getsentstatusreport( mixed $params )` Reloads the "Sent Status Report" tab via ajax top level call from ajax Reloads the "Sent Status Report" tab via ajax top level call from ajax
`public static` | # `template_path( )` this function is only used once and only works for the class TemplateteList DropdownField, due to the TemplateList is also used only once and not necessarily be there, we will make this function deprecated, meanwhile TemplateList.php will be removed. this function is only used once and only works for the class TemplateteList DropdownField, due to the TemplateList is also used only once and not necessarily be there, we will make this function deprecated, meanwhile TemplateList.php will be removed. #### Deprecated 2.4 Please use NewsletterAdmin::template_paths() and NewsletterAdmin::templateSource(). @see NewsletterType::getCMSFields();
`public static array` | # `template_paths( )` looked-up the email template_paths. if not set, will look up both theme folder and project folder in both cases, email folder exsits or Email folder exists return an array containing all folders pointing to the bunch of email templates looked-up the email template_paths. if not set, will look up both theme folder and project folder in both cases, email folder exsits or Email folder exists return an array containing all folders pointing to the bunch of email templates #### Returns `array` array
`public array` | # `templateSource( )` return array containing all possible email templates file name under the folders of both theme and project specific folder. return array containing all possible email templates file name under the folders of both theme and project specific folder. #### Returns `array` array
`public` | # `getNewsletterEditForm( mixed $myId )`
`public` | # `SendProgressBar( )`
`public` | # `sendnewsletter( )`
`public static` | # `sendToAddress( mixed $email, mixed $address, mixed $messageID = null )`
`public static` | # `sendToList( mixed $subject, mixed $body, mixed $from, mixed $newsletter, mixed $nlType, mixed $messageID = null, mixed $recipients )`
`public` | # `save( mixed $params, mixed $form )` Top level call, $param is a HTTPRequest Object Top level call, $param is a HTTPRequest Object #### Overrides `LeftAndMain::save`
`public` | # `savenewsletter( mixed $urlParams, mixed $form )`
`public` | # `memberblacklisttoggle( mixed $urlParams )`
`public` | # `NewsletterAdminSiteTree( )`
`public` | # `getsitetree( )`
`public` | # `SiteTreeAsUL( )` This method is called when a user changes subsite in the dropdownfield. It is added temporarily to prevent error when changing subsite in newsletter admin TODO: fully implement it to display the newsletter tree This method is called when a user changes subsite in the dropdownfield. It is added temporarily to prevent error when changing subsite in newsletter admin TODO: fully implement it to display the newsletter tree
`public` | # `AddRecordForm( )`
`public` | # `autocomplete( )` Ajax autocompletion Ajax autocompletion
`public` | # `savemember( )`
`public` | # `NewsletterTypes( )`
`public` | # `addtype( mixed $params )` Called by AJAX to create a new newsletter type Top level call Called by AJAX to create a new newsletter type Top level call
`public` | # `adddraft( mixed $params )` Called by AJAX to create a new newsletter draft Top level call Called by AJAX to create a new newsletter draft Top level call
`public` | # `newmember( )`
`public` | # `EditedMember( )`
`public string` | # `Link( mixed $action = null )` You should implement a Link() function in your subclass of LeftAndMain, to point to the URL of that particular controller. You should implement a Link() function in your subclass of LeftAndMain, to point to the URL of that particular controller. #### Returns `string` string #### Overrides `LeftAndMain::Link`
`public` | # `displayfilefield( )`
`public` | # `exportrecipients( )`
`public` | # `UploadForm( mixed $id = null )`
`public` | # `getMenuTitle( )`

### Methods inherited from LeftAndMain

`ApplicationLink()`, `CMSTopMenu()`, `CMSVersion()`, `CanOrganiseSitetree()`, `EditorToolbar()`, `EmptyForm()`, `ForceReload()`, `Left()`, `LoadingImage()`, `LogoStyle()`, `MainMenu()`, `MceRoot()`, `Member_ProfileForm()`, `Right()`, `SectionTitle()`, `ShowSwitchView()`, `SwitchView()`, `addTreeNodeJS()`, `ajaxupdateparent()`, `ajaxupdatesort()`, `callPageMethod()`, `canView()`, `currentPage()`, `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()`, `setApplicationName()`, `setCurrentPageID()`, `setLogo()`, `set_loading_image()`, `show()`, `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` | $subitem_class | #
`public static integer` | $most_recent_seperator | #
`public static mixed` | $template_path | #
`public static mixed` | $template_paths | #
`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
    );
`public static string` | $url_segment | #
`public static string` | $url_rule | #
`public static string` | $menu_title | #
`protected static boolean` | $makeSendNewslettersReadonly | #

### Properties inherited from LeftAndMain

`$ForceReload`, `$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. -