Version: current

# Class Cart_Controller

Base controller class. Controllers are the cornerstone of all site functionality in Sapphire. The `Director` selects a controller to pass control to, and then calls run(). This method will execute the appropriate action - either by calling the action method, or displaying the action's template.

See getTemplate() for information on how the template is chosen.

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  Controller
  Cart_Controller

Package: sapphire\control
Located at cart/code/Cart.php

## Methods summary

`public static` | # `set_cart_template( mixed $v )`
`public` | # `Link( mixed $action = null )`
`public static` | # `clear_link( )`
`public static` | # `add_item_link( mixed $id )`
`public static` | # `remove_item_link( mixed $id )`
`public static` | # `remove_all_item_link( mixed $id )`
`public static` | # `set_quantity_item_link( mixed $id )`
`public` | # `init( )` Initialisation function that is run before any action on the controller is called. Initialisation function that is run before any action on the controller is called. #### Uses ``BasicAuth::requireLogin()`` #### Overrides `Controller::init`
`public mixed` | # `add( array $data )` Добавление в корзину по кнопке /cartaction/add?itemId=<ID>&Num=<Num> Добавление в корзину по кнопке /cartaction/add?itemId=<ID>&Num=<Num> #### Parameters $data array $data - данные POST или GET запроса #### Returns `mixed` - редирект или данные для ajax
`public` | # `clear( )` Удалить все из корзины /cartaction/clear Удалить все из корзины /cartaction/clear
`public <type>` | # `additem( )` +1 товар /cartaction/additem/<ID> +1 товар /cartaction/additem/<ID> #### Returns `<type>` <type>
`public <type>` | # `removeitem( )` 1 товар /cartaction/removeitem/<ID> 1 товар /cartaction/removeitem/<ID> #### Returns `<type>` <type>
`public <type>` | # `removeallitem( )` Удаляет товар из корзины /cartaction/removeallitem/<ID> Удаляет товар из корзины /cartaction/removeallitem/<ID> #### Returns `<type>` <type>
`public <type>` | # `setquantityitem( )` Устанавливает ко-во товара в корзине /cartaction/setquantityitem/<ID>?quantity=<Num> Устанавливает ко-во товара в корзине /cartaction/setquantityitem/<ID>?quantity=<Num> #### Returns `<type>` <type>
`public <type>` | # `jsoncart( )` JSON представление корзины /cartaction/jsoncart JSON представление корзины /cartaction/jsoncart #### Returns `<type>` <type>
`public <type>` | # `in_cart( )` JSON представление товара в корзине /cartaction/in_cart/<ID> JSON представление товара в корзине /cartaction/in_cart/<ID> #### Returns `<type>` <type>
`protected string` | # `renderCart( )` Генерирует html код корзины для ajax запросов ее модификации Генерирует html код корзины для ajax запросов ее модификации #### Returns `string` string
`protected static String` | # `json_code( )` Информация о корзине в формате json Информация о корзине в формате json #### Returns `String` String
`public` | # `index( )`

### 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 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` | $URLSegment | #
`public static string` | $cart_template | #

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