/** * 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()); } } }