Пример #1
0
 /**
  * Executes the print controllers logic
  * 
  * @return void
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 19.04.2012
  */
 public function init()
 {
     parent::init();
     $request = $this->getRequest();
     $params = $request->allParams();
     $dataObjectName = $params['DataObjectName'];
     $dataObjectID = $params['DataObjectID'];
     if (strpos($request->getVar('url'), 'silvercart-print-many') !== false) {
         $dataObjectIDs = explode('-', $dataObjectID);
         $output = SilvercartPrint::getPrintManyOutput($dataObjectName, $dataObjectIDs);
         if (!empty($output)) {
             print $output;
             exit;
         }
         $this->redirect(Director::baseURL());
     } else {
         $dataObject = DataObject::get_by_id($dataObjectName, $dataObjectID);
         if ($dataObject && $dataObject->canView()) {
             if ($dataObject->hasMethod('printDataObject')) {
                 print $dataObject->printDataObject();
             } else {
                 if (strpos($request->getVar('url'), 'silvercart-print-inline') === false) {
                     $output = SilvercartPrint::getPrintOutput($dataObject);
                 } else {
                     $output = SilvercartPrint::getPrintInlineOutput($dataObject);
                 }
                 print $output;
             }
             exit;
         } else {
             $this->redirect(Director::baseURL());
         }
     }
 }