Webylon 3.2 API Docs
  • Package
  • Class
  • Tree
  • Deprecated
  • Download
Version: current
  • 3.2
  • 3.1

Packages

  • 1c
    • exchange
      • catalog
  • auth
  • Booking
  • building
    • company
  • cart
    • shipping
    • steppedcheckout
  • Catalog
    • monument
  • cms
    • assets
    • batchaction
    • batchactions
    • bulkloading
    • comments
    • content
    • core
    • export
    • newsletter
    • publishers
    • reports
    • security
    • tasks
  • Dashboard
  • DataObjectManager
  • event
  • faq
  • forms
    • actions
    • core
    • fields-basic
    • fields-dataless
    • fields-datetime
    • fields-files
    • fields-formatted
    • fields-formattedinput
    • fields-relational
    • fields-structural
    • transformations
    • validators
  • googlesitemaps
  • guestbook
  • installer
  • newsletter
  • None
  • photo
    • gallery
  • PHP
  • polls
  • recaptcha
  • sapphire
    • api
    • bulkloading
    • control
    • core
    • cron
    • dev
    • email
    • fields-formattedinput
    • filesystem
    • formatters
    • forms
    • i18n
    • integration
    • misc
    • model
    • parsers
    • search
    • security
    • tasks
    • testing
    • tools
    • validation
    • view
    • widgets
  • seo
    • open
      • graph
  • sfDateTimePlugin
  • spamprotection
  • stealth
    • captha
  • subsites
  • userform
    • pagetypes
  • userforms
  • webylon
  • widgets

Classes

  • Cart
  • CartOrderButton
  • CartPage
  • CartSiteConfig
  • CartTableListField
  • CheckoutPage
  • ExtendGroupDiscount
  • ExtendMemberCart
  • ExtendPageCart
  • ExtendPageSpecialCatalog
  • ExtendProductSpecialCatalog
  • ExtendProfilePageOrder
  • Order
  • OrderAdmin
  • OrderExporter
  • OrderItem
  • OrderItemField
  • SpecialCatalog
  • TextLiteralField
 1 <?php
 2 /**
 3  * Контроллер для экспорта заказов 
 4  * возможно: 
 5  * - получение списка заказов с указанием последнего полученного: /OrderExporter/listorders/$ID
 6  * - получение конкретного заказа по его id: /OrderExporter/getorder/$ID
 7  *
 8  * @package cart
 9  * @author menedem
10  */
11 class OrderExporter extends Controller implements PermissionProvider {
12 
13     static $URLSegment = '';
14     static $allowed_actions = array('');
15     static $return_as_file = false;
16     private static $enabled = false;
17     
18     /**
19      * Включение и настройка экспорта
20      * 
21      * @param array $params - параметры настройки, сейчас это:
22      * string 'url' если нужно указать альтернативную url 
23      * bool 'as_file' если нужно возвращать xml в виде прицепленного файла
24      */
25     static function setup($params = array()) {
26         if (isset($params['url'])) self::$URLSegment = $params['url'];
27         if (isset($params['as_file'])) self::$return_as_file = $params['as_file'];
28         
29         if (self::$URLSegment) {
30             Director::addRules(50, array(self::$URLSegment . '/$Action!/$ID' => 'OrderExporter'));
31         }
32         
33         self::$allowed_actions = array('listorders', 'getorder');
34     }
35 
36     function providePermissions() {
37         return array(
38             'EXPORT_ORDERS' => array(
39                 'name' => 'Экспортировать данные заказов',
40                 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'),
41                 'help' => 'Позволяет получать данные заказов по специальной url',
42                 'sort' => 0,
43             ),
44         );
45     }
46 
47     function URLSegment() {
48         return (self::$URLSegment) ? self::$URLSegment : 'OrderExporter';
49     }
50 
51     function init() {
52         parent::init();
53         BasicAuth::requireLogin('Order Export', 'EXPORT_ORDERS');
54     }
55 
56     /**
57      * Возвращает список заказов
58      * 
59      * принимает url параметр - id последнего загруженного заказа /OrderExporter/listorders/$ID
60      * возвращает более свежие заказы, xml формируется шаблоном OrderExporter
61      * TODO принимать в качестве отправной точки дату последнего экспорта
62      * 
63      * @param SS_HTTPRequest $req 
64      */
65     function listorders($req) {
66         $rs = new DataobjectSet();
67         $id = intval($req->param('ID'));
68 
69         $xml =  $this->renderWith('OrderExporter', array('Orders' => DataObject::get('Order', "ID > {$id}", "ID ASC")));
70 
71         return (self::$return_as_file) ? SS_HTTPRequest::send_file($xml, 'orders.xml') : $xml;
72     }
73     
74     /**
75      * Возвращает один заказ по id
76      * 
77      * принимает url параметр - id заказа /OrderExporter/getorder/$ID
78      * xml формируется шаблоном OrderExport 
79      * 
80      * @param SS_HTTPRequest $req 
81      */
82     function getorder($req) {
83         $rs = new DataobjectSet();
84         $id = intval($req->param('ID'));
85 
86         $xml =  $this->renderWith('OrderExport', DataObject::get_by_id('Order', $id));
87 
88         return (self::$return_as_file) ? SS_HTTPRequest::send_file($xml, "order_{$id}.xml") : $xml;
89     }
90 }
91 
[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. -
Webylon 3.2 API Docs API documentation generated by ApiGen 2.8.0