public function addLanguage() { ipRequest()->mustBePost(); $data = ipRequest()->getPost(); if (empty($data['code'])) { throw new \Ip\Exception('Missing required parameter'); } $code = $data['code']; $abbreviation = strtoupper($code); $url = $code; $languages = ipContent()->getLanguages(); foreach ($languages as $language) { if ($language->getCode() == $code) { return new \Ip\Response\Json(array('error' => 1, 'errorMessage' => __('This language already exist.', 'Ip-admin', false))); } } $languages = Fixture::languageList(); $directionality = Service::TEXT_DIRECTION_LTR; if (!empty($languages[$code])) { $language = $languages[$code]; $title = $language['nativeName']; if (!empty($language['directionality']) && $language['directionality'] == 'rtl') { $directionality = Service::TEXT_DIRECTION_RTL; } } else { $title = $code; } Service::addLanguage($title, $abbreviation, $code, $url, 1, $directionality); return new \Ip\Response\Json(array()); }
public function setWidgetWidth() { $id = ipRequest()->getRequest('widgetId', false); $width = ipRequest()->getRequest('width', 50); ipStorage()->set('FloatImageWidth', 'widget_' . $id, $width); return new \Ip\Response\Json(array('status' => 'success')); }
public function save() { //$form = Helper::createForm($wget=''); $form = Helper::createForm(); $postData = ipRequest()->getPost(); $errors = $form->validate($postData); if ($errors) { // Validation error $status = array('status' => 'error', 'errors' => $errors); return new \Ip\Response\Json($status); } else { // Success Model::save(ipRequest()->getPost('language_id'), ipRequest()->getPost('zone_name'), ipRequest()->getPost('user_id'), ipRequest()->getPost('name'), ipRequest()->getPost('email'), ipRequest()->getPost('link'), ipRequest()->getPost('text'), ipRequest()->getPost('ip'), ipRequest()->getPost('approved'), ipRequest()->getPost('session_id'), ipRequest()->getPost('verification_code'), ipRequest()->getPost('active')); //get page where this widget sits :) $postData = ipRequest()->getPost(); $vcode = $postData['verification_code']; $fullWidgetRecord = \Ip\Internal\Content\Model::getWidgetRecord($postData['wgetId']); $pageTitle = ''; if (isset($fullWidgetRecord['revisionId'])) { $revision = \Ip\Internal\Revision::getRevision($fullWidgetRecord['revisionId']); if (!empty($revision['pageId'])) { $pageTitle = ipPage($revision['pageId'])->getTitle(); } } $stamp = date(__('m/d/Y', 'Comments')) . __(', at ', 'Comments') . date('H:i:s'); //sending email notification Helper::sendMailNotification(trim(ipRequest()->getPost('zone_name')), trim(ipRequest()->getPost('name')), $stamp, trim(ipRequest()->getPost('text')), trim(ipRequest()->getPost('email')), trim($pageTitle), trim($vcode)); //$actionUrl = ipActionUrl(array('sa' => 'FormExample.showSuccessMessage')); //$status = array('redirectUrl' => $actionUrl); $status = array('status' => 'ok'); //success return new \Ip\Response\Json($status); } }
/** * @param $info * @return array|null * @throws \Ip\Exception */ public static function ipRouteAction_150($info) { $requestFile = ipFile('') . $info['relativeUri']; $fileDir = ipFile('file/'); if (ipRequest()->getRelativePath() != $info['relativeUri']) { return null; //language specific url. } if (mb_strpos($requestFile, $fileDir) !== 0) { return null; } $reflection = mb_substr($requestFile, mb_strlen($fileDir)); $reflection = urldecode($reflection); $reflectionModel = ReflectionModel::instance(); $reflectionRecord = $reflectionModel->getReflectionByReflection($reflection); if ($reflectionRecord) { $reflectionModel->createReflection($reflectionRecord['original'], $reflectionRecord['reflection'], json_decode($reflectionRecord['options'], true)); if (is_file(ipFile('file/' . $reflection))) { //supply file route $result['page'] = null; $result['plugin'] = 'Repository'; $result['controller'] = 'PublicController'; $result['action'] = 'download'; return $result; } } }
public static function ipBlockContent($content, $data) { if ($data['blockName'] == "main") { $pagePassword = Service::pagePassword(); $pageId = Model::getPageId(); if ($pagePassword && !ipAdminId()) { if (isset($_SESSION['pagePassword']) && is_array($_SESSION['pagePassword']) && in_array($pageId, $_SESSION['pagePassword'])) { return $content; } $data['form'] = Helper::createForm(); $postPassword = ipRequest()->getPost('pagePassword'); if ($postPassword && $postPassword == $pagePassword) { if (isset($_SESSION['pagePassword']) && is_array($_SESSION['pagePassword'])) { $_SESSION['pagePassword'][] = $pageId; } else { $_SESSION['pagePassword'] = array(); $_SESSION['pagePassword'][] = $pageId; } return $content; } elseif ($postPassword) { $data['error'] = __('Incorrect password', 'PagePassword', false); } return ipView('view/password.php', $data)->render(); } } return $content; }
/** * GRID config */ public static function grid() { $gridConfig = array('title' => 'Masonry Grid Items', 'table' => Config::TABLE_NAME, 'sortField' => 'itemOrder', 'createPosition' => 'top', 'createFilter' => function ($data) { $data['widgetId'] = ipRequest()->getQuery('widgetId'); return $data; }, 'fields' => array(array('label' => 'Title', 'field' => 'title', 'validators' => array('Required')), array('label' => 'Image', 'field' => 'image', 'type' => 'RepositoryFile', 'preview' => __CLASS__ . '::imageView', 'fileLimit' => 1, 'validators' => array('Required')), array('label' => 'Description', 'field' => 'description', 'type' => 'RichText', 'preview' => false), array('label' => 'Url', 'field' => 'url', 'type' => 'Url', 'preview' => false), array('label' => 'Visible', 'field' => 'isVisible', 'type' => 'Checkbox', 'defaultValue' => 1))); return $gridConfig; }
/** * GRID config */ public static function grid() { $gridConfig = array('title' => 'Slide Show', 'table' => Config::TABLE_NAME, 'deleteWarning' => 'Are you sure?', 'sortField' => 'slideshowOrder', 'createPosition' => 'top', 'createFilter' => function ($data) { $data['widgetId'] = ipRequest()->getQuery('widgetId'); return $data; }, 'pageSize' => 20, 'fields' => array(array('label' => 'Title', 'field' => 'title', 'validators' => array('Required')), array('label' => 'Text', 'field' => 'text'), array('label' => 'Url', 'field' => 'url'), array('type' => 'RepositoryFile', 'label' => 'Image', 'showInList' => true, 'field' => 'image', 'preview' => 'Plugin\\SlideShow\\Model::showImage'), array('type' => 'Checkbox', 'label' => 'Visible', 'field' => 'isVisible', 'checked' => 1, 'defaultValue' => 1))); return $gridConfig; }
/** * @param \Ip\Response $response * @return mixed */ public static function ipSendResponse($response) { if (ipGetOption('MaintenanceMode.enabled') == 1 && ipAdminId() === false) { if (substr(ipRequest()->getRelativePath(), 0, 5) != 'admin') { return new \Ip\Response(ipGetOption('MaintenanceMode.content')); } } return $response; }
public function __construct($config, $request) { $this->request = $request; $this->config = new Config($config); $hash = ipRequest()->getRequest('gridHash', ''); $this->statusVariables = Status::parse($hash); $this->subgridConfig = $this->config->subgridConfig($this->statusVariables); $this->actions = $this->getActions(); }
public function grid() { $worker = new \Ip\Internal\Grid\Worker($this->config()); $result = $worker->handleMethod(ipRequest()); if (is_array($result) && !empty($result['error']) && !empty($result['errors'])) { return new \Ip\Response\Json($result); } return new \Ip\Response\JsonRpc($result); }
/** * Check widget's posted data and return data to be stored or errors to be displayed */ public function grid() { $widgetId = ipRequest()->getQuery('widgetId'); ipAddCss('assets/masonryManagement.css'); $config = Config::grid(); if (!empty($widgetId)) { $config['filter'] = ' `widgetId` = ' . (int) $widgetId; $config['gatewayData'] = array('widgetId' => $widgetId); } return ipGridController($config); }
public static function ipBeforeController() { if (ipIsManagementState()) { $plugin = explode('.', ipRequest()->getQuery('aa')); if ($plugin[0] == 'Pages') { ipAddCss('assets/php.css'); ipAddCss('assets/codeEditorField.css'); ipAddJs('assets/src-noconflict/ace.js'); ipAddJs('assets/initCodeEditorField.js'); } } }
public function preview() { $id = ipRequest()->getQuery('id'); if (!$id) { throw new \Ip\Exception('Email not found'); } $email = Db::getEmail($id); $viewData = array('email' => $email); $content = ipView('view/preview.php', $viewData); $response = new \Ip\Response($content); return $response; }
public static function ipAdminLoginPrevent($data) { if (empty($data['username'])) { return 'Missing login data'; //in theory should never happen } $ip = ipRequest()->getServer('REMOTE_ADDR'); $antiBruteForce = SecurityModel::instance(); $failedLogins = $antiBruteForce->failedLoginCount($data['username'], $ip); if ($failedLogins > ipGetOption('Admin.allowFailedLogins', 20)) { return __('You have exceeded failed login attempts.', 'Ip-admin', false); } return null; }
public function match($path, $request = null) { if (!$request) { $request = ipRequest(); } $result = $this->auraRouter->match($path, $request->getServer()); if (!$result) { return array(); } $result = $result->params; if (is_callable($result['action'])) { return $result; } return $result; }
public function removeAdminIsAutogeneratedAjax() { ipRequest()->mustBePost(); // Removing temporary data ipStorage()->remove('Ip', 'adminIsAutogenerated'); // If user wants to change credentials, redirecting to Administrators list if (ipRequest()->getPost('action') == 'change') { // todo: redirect and automatically select user and open popup $redirect = ipActionUrl(array('aa' => 'Administrators.index')) . "#/hash=&administrator=" . \Ip\Internal\Admin\Backend::userId(); \Ip\Internal\System\Model::sendUsageStatistics(array('action' => 'Install.adminChange')); return \Ip\Response\JsonRpc::result(array('redirect' => $redirect)); } \Ip\Internal\System\Model::sendUsageStatistics(array('action' => 'Install.adminKeep')); return \Ip\Response\JsonRpc::result(array('close' => 1)); }
public static function download() { $requestFile = ipFile('') . ipRequest()->getRelativePath(); $fileDir = ipFile('file/'); if (mb_strpos($requestFile, $fileDir) !== 0) { return null; } $file = mb_substr($requestFile, mb_strlen($fileDir)); $file = urldecode($file); if (empty($file)) { throw new \Ip\Exception('Required parameter is missing'); } $absoluteSource = realpath(ipFile('file/' . $file)); if (!$absoluteSource || !is_file($absoluteSource)) { throw new \Ip\Exception\Repository\Transform("File doesn't exist", array('filename' => $absoluteSource)); } if (strpos($absoluteSource, realpath(ipFile('file/'))) !== 0 || strpos($absoluteSource, realpath(ipFile('file/secure'))) === 0) { throw new \Exception("Requested file (" . $file . ") is outside of public dir"); } $mime = \Ip\Internal\File\Functions::getMimeType($absoluteSource); $fsize = filesize($absoluteSource); // set headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header('Content-type: ' . $mime); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . $fsize); // download // @readfile($file_path); $file = @fopen($absoluteSource, "rb"); if ($file) { while (!feof($file)) { print fread($file, 1024 * 8); flush(); if (connection_status() != 0) { @fclose($file); die; } } @fclose($file); } //TODO provide method to stop any output by ImpressPages ipDb()->disconnect(); exit; }
/** * Upload file to temporary folder */ public function upload() { ipRequest()->mustBePost(); $post = ipRequest()->getPost(); if (isset($post['secureFolder']) && $post['secureFolder']) { //upload to secure publicly not accessible folder. if (!ipGetOption('Config.allowAnonymousUploads', 1)) { throw new \Exception('Anonymous uploads are not enabled. You can enable them by turning on "anonymous uploads" configuration value in admin.'); } else { //do nothing. Anonymous uploads are allowed to secure folder } $secureFolder = true; } else { $secureFolder = false; $this->backendOnly(); if (!ipAdminPermission('Repository upload')) { throw new \Ip\Exception('Permission denied'); } } $uploadModel = UploadModel::instance(); try { $uploadModel->handlePlupload($secureFolder); } catch (\Ip\Exception\Repository\Upload\ForbiddenFileExtension $e) { // Return JSON-RPC response $message = __('Forbidden file type.', 'Ip-admin'); ipLog()->info('Repository.invalidUploadedFileExtension: ' . $e->getMessage(), array('plugin' => 'Repository')); // TODO JSONRPC $answer = array('jsonrpc' => '2.0', 'error' => array('code' => $e->getCode(), 'message' => $message, 'id' => 'id')); return new \Ip\Response\Json($answer); } catch (\Ip\Exception\Repository\Upload $e) { ipLog()->error('Repository.fileUploadError', array('plugin' => 'Repository', 'exception' => $e)); $message = __('Can\'t store uploaded file. Please check server configuration.', 'Ip-admin'); // TODO JSONRPC $answer = array('jsonrpc' => '2.0', 'error' => array('code' => $e->getCode(), 'message' => $message, 'id' => 'id')); return new \Ip\Response\Json($answer); } $fileName = $uploadModel->getUploadedFileName(); $file = $uploadModel->getUploadedFile(); $targetDir = $uploadModel->getTargetDir(); // Return JSON-RPC response $answerArray = array("jsonrpc" => "2.0", "result" => null, "id" => "id", "fileName" => $fileName); if (!$secureFolder) { $answerArray['dir'] = $targetDir; $answerArray['file'] = $file; } return new \Ip\Response\Json($answerArray); }
public function post($widgetId, $data) { $postData = ipRequest()->getPost(); $form = $this->createForm($widgetId, $data); $errors = $form->validate($postData); if (empty($data['success'])) { $data['success'] = __('Thank You', 'Ip'); } $successHtml = ipView('helperView/success.php', array('success' => $data['success']))->render(); if ($errors) { $data = array('status' => 'error', 'errors' => $errors); } else { $this->sendEmail($form, $postData, $data); $data = array('status' => 'success', 'replaceHtml' => $successHtml); } return new \Ip\Response\Json($data); }
public static function ipBeforeController() { if (ipIsManagementState() || ipRoute()->isAdmin() || ipRequest()->getQuery('ipDesignPreview')) { ipAddJs('Ip/Internal/Core/assets/js/jquery-ui/jquery-ui.js'); ipAddJs('Ip/Internal/Repository/assets/ipRepository.js'); ipAddJs('Ip/Internal/Repository/assets/ipRepositoryUploader.js'); ipAddJs('Ip/Internal/Repository/assets/ipRepositoryAll.js'); ipAddJs('Ip/Internal/Repository/assets/ipRepositoryBuy.js'); ipAddJs('Ip/Internal/System/assets/market.js'); ipAddJs('Ip/Internal/Core/assets/js/easyXDM/easyXDM.min.js'); $marketUrl = ipConfig()->get('imageMarketUrl', 'http://market.impresspages.org/images-v1/'); $popupData = array('marketUrl' => $marketUrl, 'allowUpload' => ipAdminPermission('Repository upload'), 'allowRepository' => ipAdminPermission('Repository')); ipAddJsVariable('ipRepositoryHtml', ipView('view/popup.php', $popupData)->render()); ipAddJsVariable('ipRepositoryTranslate_confirm_delete', __('Are you sure you want to delete selected files?', 'Ip-admin')); ipAddJsVariable('ipRepositoryTranslate_delete_warning', __('Some of the selected files are still used somewhere on your website. Do you still want to remove them? ', 'Ip-admin')); } }
public function checkSourceFile() { ipRequest()->mustBePost(); $post = ipRequest()->getPost(); if (!isset($post['sourceFile'])) { $data = array('status' => 'error', 'errors' => __('Could not check file.', 'DataTableWidget-admin')); return new \Ip\Response\Json($data); } $dataSource = new DataSource($post['sourceFile']); $errors = $dataSource->validate(); if (empty($errors)) { $data = array('status' => 'success'); } else { $data = array('status' => 'error', 'errors' => $errors); } return new \Ip\Response\Json($data); }
public function generateHtml($revisionId, $widgetId, $data, $skin) { if (empty($data['serialized'])) { $data['serialized'] = ''; } else { parse_str($data['serialized'], $data); $data['currentLink'] = $revisionId; } if (empty($data['data']['blog']['place'])) { if (!empty($revisionId)) { $revision = \Ip\Internal\Revision::getRevision($revisionId); $pageId = $revision['pageId']; } else { $pageId = $data['data']['blog']['pageId']; } } else { $pageId = $data['data']['blog']['place']; } $data['sourcePageId'] = $pageId; //pagination if (!empty($data['data']['blog']['pagination']['limit'])) { $limit = $data['data']['blog']['pagination']['limit']; } else { $limit = 10; } if (!($page = ipRequest()->getQuery('page'))) { $page = 1; } if (!empty($data['data']['blog']['parent'])) { $parentCat = true; } else { $parentCat = false; } if (!empty($data['data']['blog']['image']['enable'])) { $data['imageOptions'] = array('type' => 'center', 'width' => $data['data']['blog']['image']['width'], 'height' => $data['data']['blog']['image']['height'], 'quality' => 80, 'forced' => false); } if (!empty($data['data']['blog']['options'])) { $options = $data['data']['blog']['options']; } else { $options = array('introlimit' => ipGetOption('AsdBlog.introLimit'), 'allowedtags' => ipGetOption('AsdBlog.allowedTags'), 'blockname' => ipGetOption('AsdBlog.blockName')); } $data['data']['pages'] = Model::getPages($pageId, $parentCat, array('limit' => $limit, 'page' => $page), $options); return parent::generateHtml($revisionId, $widgetId, $data, $skin); }
public static function ipBeforeController() { //show admin submenu if needed if (ipRoute()->isAdmin()) { ipAddJs('Ip/Internal/Core/assets/js/jquery-ui/jquery-ui.js'); ipAddCss('Ip/Internal/Core/assets/js/jquery-ui/jquery-ui.css'); $submenu = Submenu::getSubmenuItems(); $submenu = ipFilter('ipAdminSubmenu', $submenu); if ($submenu) { ipResponse()->setLayoutVariable('submenu', $submenu); } } // Show admin toolbar if admin is logged in: if (ipAdminId() && !ipRequest()->getRequest('pa') || ipRequest()->getRequest('aa') && ipAdminId()) { if (!ipRequest()->getQuery('ipDesignPreview') && !ipRequest()->getQuery('disableAdminNavbar')) { ipAddJs('Ip/Internal/Admin/assets/admin.js'); ipAddJsVariable('ipAdminNavbar', static::getAdminNavbarHtml()); } } // Show popup with autogenerated user information if needed $adminIsAutogenerated = ipStorage()->get('Ip', 'adminIsAutogenerated'); if ($adminIsAutogenerated) { $adminId = \Ip\Internal\Admin\Backend::userId(); $admin = \Ip\Internal\Administrators\Model::getById($adminId); ipAddJs('Ip/Internal/Admin/assets/adminIsAutogenerated.js'); $data = array('adminUsername' => $admin['username'], 'adminPassword' => ipStorage()->get('Ip', 'adminIsAutogenerated'), 'adminEmail' => $admin['email']); ipAddJsVariable('ipAdminIsAutogenerated', ipView('view/adminIsAutoGenerated.php', $data)->render()); } if (ipContent()->getCurrentPage()) { // initialize management if (ipIsManagementState()) { if (!ipRequest()->getQuery('ipDesignPreview') && !ipRequest()->getQuery('disableManagement')) { \Ip\Internal\Content\Helper::initManagement(); } } //show page content $response = ipResponse(); $response->setDescription(\Ip\ServiceLocator::content()->getDescription()); $response->setKeywords(ipContent()->getKeywords()); $response->setTitle(ipContent()->getTitle()); } }
/** * Check widget's posted data and return data to be stored or errors to be displayed */ public function checkForm() { $data = ipRequest()->getPost(); $form = $this->managementForm(); $data = $form->filterValues($data); //filter post data to remove any non form specific items $errors = $form->validate($data); //http://www.impresspages.org/docs/form-validation-in-php-3 if ($errors) { //error $data = array('status' => 'error', 'errors' => $errors); } else { //success unset($data['aa']); unset($data['securityToken']); unset($data['antispam']); $data = array('status' => 'ok', 'data' => $data); } return new \Ip\Response\Json($data); }
public function prepareForUpdate() { new \Ip\Internal\Update\UpdateException(''); //autoload Update exception; As all core files will be deleted soon. new \Ip\Response\Json(array()); //autoload Json; As all core files will be deleted soon. $downloadUrl = ipRequest()->getPost('downloadUrl'); $md5 = ipRequest()->getPost('md5'); $fs = new Helper\FileSystem(); $fs->rm(ipFile('file/tmp/update/extracted/')); $this->downloadArchive($downloadUrl, $md5, ipFile('file/tmp/' . 'update/ImpressPages.zip')); $this->extractArchive(ipFile('file/tmp/update/ImpressPages.zip'), ipFile('file/tmp/update/extracted/')); $backupDir = ipFile('file/tmp/' . date('Y-m-d H.i.s')); $fs->rm($backupDir); $fs->createWritableDir($backupDir); $fs->cpContent(ipFile('Ip/'), $backupDir); $fs->makeWritable(ipFile('Ip/')); $fs->clean(ipFile('Ip/')); $fs->cpContent(ipFile('file/tmp/update/extracted/Ip/'), ipFile('Ip/')); }
public function createWidget() { ipRequest()->mustBePost(); if (!isset($_POST['widgetName']) || !isset($_POST['position']) || !isset($_POST['block']) || !isset($_POST['revisionId']) || !isset($_POST['languageId'])) { return $this->_errorAnswer('Missing POST variable'); } $widgetName = $_POST['widgetName']; $position = $_POST['position']; $blockName = $_POST['block']; $revisionId = isset($_POST['revisionId']) ? $_POST['revisionId'] : 0; $languageId = isset($_POST['languageId']) ? $_POST['languageId'] : 0; if ($revisionId) { //check revision consistency $revisionRecord = \Ip\Internal\Revision::getRevision($revisionId); if (!$revisionRecord) { throw new \Ip\Exception\Content("Can't find required revision " . esc($revisionId)); } $pageId = $revisionRecord['pageId']; $page = new \Ip\Page($pageId); if ($page === false) { return $this->_errorAnswer('Page not found #' . $pageId); } } $widgetObject = Model::getWidgetObject($widgetName, true); if ($widgetObject === false) { return $this->_errorAnswer('Unknown widget "' . $widgetName . '"'); } try { $widgetId = Service::createWidget($widgetName, null, null, $revisionId, $languageId, $blockName, $position, true); if ($widgetName == 'Columns' && $revisionId == 0) { $widgetRecord = Model::getWidgetRecord($widgetId); $data = array_merge($widgetRecord['data'], array('static' => true)); Model::updateWidget($widgetId, array('data' => $data)); } $widgetHtml = Model::generateWidgetPreview($widgetId, 1); } catch (\Ip\Exception\Content $e) { return $this->_errorAnswer($e); } $data = array('status' => 'success', 'action' => '_createWidgetResponse', 'widgetHtml' => $widgetHtml, 'position' => $position, 'widgetId' => $widgetId, 'block' => $blockName); return new \Ip\Response\Json($data); }
public function widgetPost() { $widgetId = ipRequest()->getPost('widgetId'); if (!$widgetId) { return \Ip\Response\JsonRpc::error('Missing widgetId POST variable'); } $widgetId = $_POST['widgetId']; $widgetRecord = Model::getWidgetRecord($widgetId); try { if (!$widgetRecord) { return \Ip\Response\JsonRpc::error("Can't find requested Widget: " . $widgetId, 10); } $widgetObject = Model::getWidgetObject($widgetRecord['name']); if (!$widgetObject) { return \Ip\Response\JsonRpc::error("Can't find requested Widget: " . $widgetRecord['name'], 20); } return $widgetObject->post($widgetId, $widgetRecord['data']); } catch (\Ip\Exception\Content $e) { return \Ip\Response\JsonRpc::error($e->getMessage()); } }
public function subscriptionPaymentSelection($key) { $data = Model::getPaymentData($key); $paymentMethods = Model::collectSubscriptionPaymentMethods($data); $paymentMethodName = ipRequest()->getPost('paymentMethod'); if ($paymentMethodName) { //redirect to selected payment page foreach ($paymentMethods as $paymentMethod) { if ($paymentMethod->name() == $paymentMethodName) { $paymentUrl = $paymentMethod->paymentUrl($data['data']); return new \Ip\Response\Json(array('redirect' => $paymentUrl)); } } } //display all available payment methods ipAddJs('assets/paymentSelection.js'); ipAddCss('assets/payments.css'); $response = ipView('view/selectPayment.php', array('paymentMethods' => $paymentMethods)); $response = ipFilter('ipSubscriptionPaymentSelectPageResponse', $response, array('paymentKey' => $key)); return $response; }
public function subscribeEmail() { $postData = ipRequest()->getPost(); $listId = !empty($postData['data']['listId']) ? $postData['data']['listId'] : ''; $form = Helper::createForm(null, $listId); foreach ($postData['data'] as $field => $value) { $postData["data[{$field}]"] = $value; } $errors = $form->validate($postData); if ($errors) { $status = array('status' => 'error', 'errors' => $errors); return new \Ip\Response\Json($status); } else { $result = Model::call('lists/subscribe', array('id' => $listId, 'email' => array('email' => $postData['data']['email']), 'update_existing' => true, 'replace_interests' => false, 'send_welcome' => false)); if ($result) { $msg = !empty($postData['data']['successMessage']) ? $postData['data']['successMessage'] : __('Email successfully added to mailing list.', 'AsdMailChimp'); $response = array('replaceHtml' => '<div class="msg-success">' . $msg . '</div>'); } else { $response = array('alert' => __('Error! Please try again.', 'AsdMailChimp')); } return new \Ip\Response\Json($response); } }
/** * @param $info * @return array|null * @throws \Ip\Exception */ public static function ipRouteAction_70($info) { $result = \Ip\ServiceLocator::router()->match(rtrim($info['relativeUri'], '/'), ipRequest()); if (!$result) { return null; } if (is_callable($result['action'])) { unset($result['plugin'], $result['controller']); } if (empty($result['page'])) { if ($info['relativeUri'] == '') { $pageId = ipContent()->getDefaultPageId(); $page = \Ip\Internal\Pages\Service::getPage($pageId); } else { $languageCode = ipContent()->getCurrentLanguage()->getCode(); $page = \Ip\Internal\Pages\Service::getPageByUrl($languageCode, $info['relativeUri']); } if ($page && (!$page['isSecured'] || !ipAdminId())) { $result['page'] = new \Ip\Page($page); } } return $result; }