public function exportAction() { $this->_helper->viewRenderer->setNoRender(true); $this->_helper->layout->disableLayout(); $pageformProxy = new SxModule_Pageform_Proxy(); $pageform = $pageformProxy->getById((int) $this->_getParam('id')); $subscriptionProxy = new SxModule_Pageform_Subscription_Proxy(); $results = $subscriptionProxy->getAllAndPageformByPageformId($this->_getParam('id'), false); if (count($results) != 0) { $arrkeys = array_keys($results); $title = $results[$arrkeys[0]]->getPageformname(); $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("SxModule"); $objPHPExcel->createSheet(0); $objPHPExcel->setActiveSheetIndex(0); $objPHPSheet = $objPHPExcel->getActiveSheet(); $objPHPSheet->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); $objPHPSheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); $objPHPSheet->getHeaderFooter()->setOddFooter('&R' . $this->admin_tmx->_('page') . ' &P ' . $this->admin_tmx->_('from') . ' &N'); $objPHPSheet->setShowGridlines(false); $objPHPSheet->getDefaultStyle()->getFont()->setSize(12.0); $objPHPSheet->getDefaultRowDimension()->setRowHeight(20); $objPHPSheet->setTitle($title); $margins = new PHPExcel_Worksheet_PageMargins(); $margins->setLeft(0.2); $margins->setRight(0.2); $margins->setTop(0.2); $margins->setBottom(0.3); $objPHPSheet->setPageMargins($margins); $startrow = 5; $startcol = "E"; $objPHPSheet->mergeCells('B2:G2'); $objPHPSheet->mergeCells('B3:G3'); $objPHPSheet->mergeCells('B4:G4'); $objPHPSheet->duplicateStyleArray(array('font' => array('size' => 21, 'bold' => TRUE), 'alignment' => array('vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER)), "B2:F2"); $objPHPSheet->setCellValue("B" . $startrow, "Id"); $objPHPSheet->setCellValue("C" . $startrow, "Datum/tijd"); $objPHPSheet->setCellValue("D" . $startrow, "Taal"); $objPHPSheet->setCellValue("E" . $startrow, "URL"); foreach ($pageform->getField() as $field) { $startcol++; $objPHPSheet->setCellValue($startcol . $startrow, $field->getTsl()->getName()); } $objPHPSheet->duplicateStyleArray(array('font' => array('bold' => TRUE), 'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)), "B{$startrow}:" . $startcol . $startrow); foreach ($results as $input) { $startrow++; $startcol = "E"; $objPHPSheet->setCellValue("B" . $startrow, $input->getId()); $objPHPSheet->setCellValue("C" . $startrow, $input->getDateCreated()); $objPHPSheet->setCellValue("D" . $startrow, $input->getLng()); $objPHPSheet->setCellValue("E" . $startrow, $input->getUrl()); foreach ($pageform->getField() as $field) { $startcol++; $val = ""; foreach ($input->getMeta() as $meta) { if ($field->getId() == $meta->getFieldId()) { $pos = strpos($meta->getValue(), 'pageform_file'); if ($pos === false) { $val = $meta->getValue(); } else { $val = $this->view->baseUrl('form_files/' . $pageform->getId() . '/' . $meta->getValue()); } } } $objPHPSheet->setCellValue($startcol . $startrow, $val); } $objPHPSheet->duplicateStyleArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)), 'alignment' => array('vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT)), "B" . $startrow . ":" . --$startcol . $startrow); } $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()->setWrapText(true); $objPHPSheet->setCellValue('B2', $title); $objPHPSheet->setCellValue('B3', 'Export datum: ' . date('Y-m-d H:i:s')); $user = Zend_Auth::getInstance()->getIdentity(); $objPHPSheet->setCellValue('B4', 'Export door: ' . $user->getFirstName() . ' ' . $user->getLastName()); $objPHPSheet->getColumnDimension("B")->setAutoSize(true); $objPHPSheet->getColumnDimension("C")->setAutoSize(true); foreach ($results as $input) { $startrow++; $col = "D"; foreach ($input->getMeta() as $meta) { $objPHPSheet->getColumnDimension($col)->setAutoSize(true); $col++; } } $date = date('d-m-Y-h-i-s'); $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment; filename=export-" . $this->admin_tmx->_('pageform') . "-" . $title . "-{$date}.xls"); header("Content-Transfer-Encoding: binary"); $objWriter->save("php://output"); die; } else { $flashMessenger = $this->_helper->getHelper('FlashMessenger'); $flashMessenger->addMessage("Geen Ingaves"); $this->_helper->redirector->gotoSimple('index', 'pageform'); } }
public function overviewAction() { $proxy = new SxCms_Page_Proxy(); $page_id = $this->_getParam('page_id'); $page_has_form = $proxy->getPageById($page_id, $this->_getParam('lng', 'nl')); if ($page_has_form->getPageform()) { $this->view->captchaId = $this->generateCaptcha(); $pageformproxy = new SxModule_Pageform_Proxy(); $subscription = new SxModule_Pageform_Subscription(); $pageform = $pageformproxy->getActiveById($page_has_form->getPageform(), $_SESSION['System']['lng']); $this->view->pageform = $pageform; if ($this->getRequest()->isPost() && $this->_getParam('form_' . $page_id)) { $data = $this->_getParam('pageform'); $subscription->setPageformId($pageform->getId())->setPageformname($pageform->getName())->setIp($this->getRequest()->getServer('REMOTE_ADDR'))->setAgent($this->getRequest()->getServer('HTTP_USER_AGENT'))->setLng($this->_getParam('lng'))->setUrl('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); foreach ($pageform->getField() as $field) { if (isset($data[$field->getKey()])) { # Tijd instellen if ($field->getFieldType() == 'text' && $field->getValidation() == 'time' && is_array($data[$field->getKey()])) { $data[$field->getKey()] = $data[$field->getKey()]['hh'] . ':' . $data[$field->getKey()]['mm']; } # Tijd & datum instellen if ($field->getFieldType() == 'text' && $field->getValidation() == 'datetime' && is_array($data[$field->getKey()])) { $data[$field->getKey()] = $data[$field->getKey()]['date'] . ' ' . $data[$field->getKey()]['hh'] . ':' . $data[$field->getKey()]['mm']; } } $metaObject = new SxModule_Pageform_Subscription_Meta(); $metaObject->setFieldId($field->getId())->setLabel($field->getTsl()->getName())->setName($field->getKey())->setValue(isset($data[$field->getKey()]) ? $data[$field->getKey()] : null); $subscription->addMeta($metaObject); } $fielderrors = APPLICATION_ROOT . '/application/var/locale/fielderrors.tmx'; $validator = new SxModule_Pageform_Subscription_Validator(); $validator->setTmx(new Zend_Translate('tmx', $fielderrors, $_SESSION['System']['lng'])); //$validator->setTmx( new Zend_Translate('tmx', APPLICATION_ROOT . '/application/var/locale/pageform.tmx', $_SESSION['System']['lng']) ); $captchaOk = true; if ($pageform->getCaptcha()) { $captchaOk = false; $captcha = $this->_getParam('captcha'); if ($this->validateCaptcha($captcha)) { $captchaOk = true; } } $valid = false; if ($validator->validate($subscription, $pageform)) { if ($pageform->getCaptcha()) { if ($captchaOk) { $valid = true; } } else { $valid = true; } } if (!$captchaOk) { $this->view->capt_err = "Neem de captcha code correct over"; } if ($valid) { $subscription->save(); $config = Zend_Registry::get('config'); if ($pageform->getMailoption() == 1) { $mail = new Zend_Mail('utf-8'); $mail->setSubject('Formulier verzonden op website: ' . $pageform->getName())->setFrom(Zend_Registry::get('config')->company->email, "formulier: " . $pageform->getName()); $view = new Zend_View(); $view->assign('subscription', $subscription); $view->assign('config', $config); $view->addScriptPath(APPLICATION_PATH . '/modules/default/views/scripts'); $body = $view->render('/__mail/_mailMessage.phtml'); $mail->setBodyHtml($body); // $body = '<h1>Message information</h1>'; // $body .= 'Datum : ' . date('Y-m-d H:i:s') . "<br>"; // foreach ($subscription->getMeta() as $meta) { // $body .= " " . $meta->getLabel() . ": " . $meta->getValue() . "<br>"; // } //$view = new Zend_View(); //$view->assign('domain', $config->system->web->url); //$view->assign('message', $body); //$view->addScriptPath(APPLICATION_PATH . '/modules/default/views/scripts/__mail/'); //$mail_content = $view->render('template.phtml'); $mail->setBodyHtml($body); $mail->addTo($pageform->getMailto()); $mail->send(); } if ($pageform->getTsl()->getConfirm() == 1) { foreach ($subscription->getMeta() as $meta) { if ($meta->getLabel() == $pageform->getTsl()->getConfirmto()) { $sendto = $meta->getValue(); } } //$view = new Zend_View(); //$view->assign('domain', $config->system->web->url); //$view->assign('message', $pageform->getTsl()->getConfirmcontent()); //$view->addScriptPath(APPLICATION_PATH . '/modules/default/views/scripts/__mail/'); //$mail_content = $view->render('template.phtml'); $mail = new Zend_Mail('utf-8'); $mail->setSubject($pageform->getTsl()->getConfirmsubject())->setFrom(Zend_Registry::get('config')->company->email, Zend_Registry::get('config')->company->name); $mail->setBodyHtml($body); $mail->addTo($sendto); $mail->send(); } $subscription = new SxModule_Pageform_Subscription(); $this->view->message = "Bedankt, we hebben je bericht goed ontvangen. We zullen je zo spoedig mogelijk contacteren."; } } $this->view->form_slug = $this->_getParam('form_' . $page_id); $this->view->subscription = $subscription; $this->view->page = $page_has_form; $this->view->form_class = $this->_getParam('form_class'); $this->view->page_id = $page_id; $this->view->messages = Sanmax_MessageStack::getInstance('SxModule_Pageform_Subscription'); } }
public function contentAction() { $this->view->messages = $this->_helper->flashMessenger->getMessages(); $url = $this->_getParam('url'); $proxy = new SxCms_Page_Proxy(); $page = $proxy->getPageByUrl($url, null, $this->_getParam('lng', 'nl')); if ($page->getId() === false) { throw new Zend_Controller_Action_Exception('Page not found', 404); } $identity = Zend_Auth::getInstance()->getIdentity(); if (!$page->isAllowed($identity)) { $this->_forward('unauthorized', 'index', null, array('url' => $this->view->url())); return; } if ($page->isExpired()) { throw new Zend_Controller_Action_Exception('Page expired', 404); } if ($page->getInvisible()) { throw new Zend_Controller_Action_Exception('Page expired', 404); } /** Gebruik Nederlandse vertaling indien nodig * */ if ($page->hasContentFallback()) { $pageFallback = $proxy->getPageById($page->getId(), 'nl'); $page->setContent($pageFallback->getContent()); } $this->view->page = $page; $this->_helper->layout->setLayout($page->getLayout()); if ($page->getType() == SxCms_Page::SUMMARY) { $children = $proxy->getPagesByParentId($page->getId(), null, $this->_getParam('lng', 'nl'), true, true); $childrenArr = array(); foreach ($children as $child) { $pageFallback = false; if ($child->hasSummaryFallback()) { $pageFallback = $proxy->getPageById($child->getId(), 'nl'); $child->setSummary($pageFallback->getSummary()); } array_push($childrenArr, $child); } $this->view->children = $childrenArr; $this->renderScript('index/summary.phtml'); return; } if ($page->getType() == SxCms_Page::ARTICLE) { $this->view->comment = new SxCms_Comment(); $captchaSession = new Zend_Session_Namespace('captcha'); $captchaSession->setExpirationHops(3); if ($captchaSession->token) { $captcha = $captchaSession->token; } else { $captcha = new Zend_Captcha_Image(); $captcha->setName('captcha')->setWordLen(6)->setDotNoiseLevel(20)->setLineNoiseLevel(0)->setFont(APPLICATION_PATH . '/var/fonts/BRLNSR.TTF')->setImgDir(APPLICATION_ROOT . '/public_html/images/captcha'); $captcha->generate(); $captchaSession->token = $captcha; } $this->view->captcha = $captcha; } if ($page->getPageform()) { if ($this->getRequest()->isGet()) { $this->view->captchaId = $this->generateCaptcha(); } $pageformproxy = new SxModule_Pageform_Proxy(); $subscription = new SxModule_Pageform_Subscription(); $pageform = $pageformproxy->getActiveById($page->getPageform(), $_SESSION['System']['lng']); $this->view->pageform = $pageform; if ($this->getRequest()->isPost() && $this->_getParam('comment-submit')) { $this->view->errors = array(); $validator = new SxCms_Comment_BaseValidator(); $validator->setCaptcha($captcha)->setUserCaptcha($this->_getParam('captcha')); $comment = new SxCms_Comment(); $comment->setMessage($this->_getParam('message')); $author = new SxCms_Comment_Author(); $author->setName($this->_getParam('name'))->setEmail($this->_getParam('email'))->setWebsite($this->_getParam('website')); $comment->setPage($page); $comment->setCommenter($author); if (!$validator->validate($comment)) { $this->view->errors = $validator->getErrors(); $this->view->comment = $comment; $this->view->userCaptcha = $this->_getParam('captcha'); } else { $mapper = new SxCms_Comment_DataMapper(); $mapper->save($comment); $captchaSession->unsetAll(); $this->_helper->flashMessenger->addMessage('Uw bericht werd succcesvol verwerk. Na goedkeuring door een administrator zal dit op de website verschijnen.'); $this->_helper->redirector->gotoRoute(array('url' => $page->getLink()), 'content'); } } if ($this->getRequest()->isPost() && $this->_getParam('pageform-submit')) { $data = $this->_getParam('pageform'); $subscription->setPageformId($pageform->getId())->setPageformname($pageform->getName())->setIp($this->getRequest()->getServer('REMOTE_ADDR'))->setAgent($this->getRequest()->getServer('HTTP_USER_AGENT'))->setLng($this->_getParam('lng'))->setUrl('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); foreach ($pageform->getField() as $field) { if (isset($data[$field->getKey()])) { # Tijd instellen if ($field->getFieldType() == 'text' && $field->getValidation() == 'time' && is_array($data[$field->getKey()])) { $data[$field->getKey()] = $data[$field->getKey()]['hh'] . ':' . $data[$field->getKey()]['mm']; } # Tijd & datum instellen if ($field->getFieldType() == 'text' && $field->getValidation() == 'datetime' && is_array($data[$field->getKey()])) { $data[$field->getKey()] = $data[$field->getKey()]['date'] . ' ' . $data[$field->getKey()]['hh'] . ':' . $data[$field->getKey()]['mm']; } } $metaObject = new SxModule_Pageform_Subscription_Meta(); $metaObject->setFieldId($field->getId())->setLabel($field->getTsl()->getName())->setName($field->getKey())->setValue(isset($data[$field->getKey()]) ? $data[$field->getKey()] : null); $subscription->addMeta($metaObject); } $fielderrors = APPLICATION_ROOT . '/application/var/locale/fielderrors.tmx'; $validator = new SxModule_Pageform_Subscription_Validator(); $validator->setTmx(new Zend_Translate('tmx', $fielderrors, $_SESSION['System']['lng'])); //$validator->setTmx( new Zend_Translate('tmx', APPLICATION_ROOT . '/application/var/locale/pageform.tmx', $_SESSION['System']['lng']) ); $captchaOk = true; if ($pageform->getCaptcha()) { $captchaOk = false; $captcha = $this->_getParam('captcha'); if ($this->validateCaptcha($captcha)) { $captchaOk = true; } } $this->view->captchaId = $this->generateCaptcha(); if ($captchaOk) { if ($validator->validate($subscription, $pageform)) { $subscription->save(); if ($pageform->getMailoption() == 1) { $mail = new Zend_Mail('utf-8'); $mail->setSubject('Formulier verzonden op website: ' . $pageform->getName())->setFrom(Zend_Registry::get('config')->company->email, "formulier: " . $pageform->getName()); $body = 'Datum : ' . date('Y-m-d H:i:s') . "\n"; foreach ($subscription->getMeta() as $meta) { $body .= " " . $meta->getLabel() . ": " . $meta->getValue() . "\n"; } $mail->setBodyText($body); $mail->addTo($pageform->getMailto()); $mail->send(); } if ($pageform->getTsl()->getConfirm() == 1) { foreach ($subscription->getMeta() as $meta) { if ($meta->getLabel() == $pageform->getTsl()->getConfirmto()) { $sendto = $meta->getValue(); } } $mail = new Zend_Mail('utf-8'); $mail->setSubject($pageform->getTsl()->getConfirmsubject())->setFrom(Zend_Registry::get('config')->company->email, Zend_Registry::get('config')->company->name); $mail->setBodyHtml($pageform->getTsl()->getConfirmcontent()); $mail->addTo($sendto); $mail->send(); } $subscription = new SxModule_Pageform_Subscription(); $this->view->message = "Formulier verzonden!"; } else { $this->view->error = "Er ging iets mis..."; //var_dump($subscription->getMeta()); //exit; } } else { $this->view->error = "Neem de captcha code correct over..."; } } $this->view->subscription = $subscription; } $this->view->mode = $this->_getParam('mode') ? $this->_getParam('mode') : ''; $this->view->messages = Sanmax_MessageStack::getInstance('SxModule_Pageform_Subscription'); }