public static function get_controller($type) { // Determine the proper controller and give it the control... switch ($type) { case NelioABExperiment::HEADLINE_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/alternatives/headline-alt-exp-creation-page-controller.php'; return 'NelioABHeadlineAltExpCreationPageController'; case NelioABExperiment::POST_ALT_EXP: case NelioABExperiment::PAGE_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/alternatives/post-alt-exp-creation-page-controller.php'; return 'NelioABPostAltExpCreationPageController'; case NelioABExperiment::THEME_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/alternatives/theme-alt-exp-creation-page-controller.php'; return 'NelioABThemeAltExpCreationPageController'; case NelioABExperiment::CSS_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/alternatives/css-alt-exp-creation-page-controller.php'; return 'NelioABCssAltExpCreationPageController'; case NelioABExperiment::WIDGET_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/alternatives/widget-alt-exp-creation-page-controller.php'; return 'NelioABWidgetAltExpCreationPageController'; case NelioABExperiment::MENU_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/alternatives/menu-alt-exp-creation-page-controller.php'; return 'NelioABMenuAltExpCreationPageController'; case NelioABExperiment::HEATMAP_EXP: require_once NELIOAB_ADMIN_DIR . '/others/heatmap-exp-creation-page-controller.php'; return 'NelioABHeatmapExpCreationPageController'; case NelioABExperiment::CPT_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/alternatives/cpt-alt-exp-creation-page-controller.php'; return 'NelioABCptAltExpCreationPageController'; case NelioABExperiment::WC_PRODUCT_SUMMARY_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/woocommerce/product-summary-alt-exp-creation-page-controller.php'; return 'NelioABProductSummaryAltExpCreationPageController'; default: require_once NELIOAB_UTILS_DIR . '/backend.php'; require_once NELIOAB_ADMIN_DIR . '/error-controller.php'; $err = NelioABErrCodes::UNKNOWN_ERROR; $e = new Exception(NelioABErrCodes::to_string($err), $err); NelioABErrorController::build($e); } }
public static function get_controller($type) { // Determine the proper controller and give it the control... switch ($type) { case NelioABExperiment::HEADLINE_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/progress/headline-alt-exp-progress-page-controller.php'; return 'NelioABHeadlineAltExpProgressPageController'; case NelioABExperiment::POST_ALT_EXP: case NelioABExperiment::PAGE_ALT_EXP: case NelioABExperiment::CPT_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/progress/post-alt-exp-progress-page-controller.php'; return 'NelioABPostAltExpProgressPageController'; case NelioABExperiment::THEME_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/progress/theme-alt-exp-progress-page-controller.php'; return 'NelioABThemeAltExpProgressPageController'; case NelioABExperiment::CSS_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/progress/css-alt-exp-progress-page-controller.php'; return 'NelioABCssAltExpProgressPageController'; case NelioABExperiment::WIDGET_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/progress/widget-alt-exp-progress-page-controller.php'; return 'NelioABWidgetAltExpProgressPageController'; case NelioABExperiment::MENU_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/progress/menu-alt-exp-progress-page-controller.php'; return 'NelioABMenuAltExpProgressPageController'; case NelioABExperiment::WC_PRODUCT_SUMMARY_ALT_EXP: require_once NELIOAB_ADMIN_DIR . '/progress/headline-alt-exp-progress-page-controller.php'; return 'NelioABHeadlineAltExpProgressPageController'; case NelioABExperiment::HEATMAP_EXP: // Nothing to be done in here... // Nothing to be done in here... default: require_once NELIOAB_UTILS_DIR . '/backend.php'; require_once NELIOAB_ADMIN_DIR . '/error-controller.php'; $err = NelioABErrCodes::UNKNOWN_ERROR; $e = new Exception(NelioABErrCodes::to_string($err), $err); NelioABErrorController::build($e); } }
public static function duplicate_experiment($new_name, $exp_id, $exp_type) { $exp = NULL; try { $action = 'duplicate-' . $exp_id; if (!isset($_REQUEST['_nonce']) || !nelioab_verify_onetime_nonce($_REQUEST['_nonce'], $action)) { require_once NELIOAB_UTILS_DIR . '/backend.php'; $err = NelioABErrCodes::INVALID_NONCE; throw new Exception(NelioABErrCodes::to_string($err), $err); } $exp = NelioABExperimentsManager::get_experiment_by_id($exp_id, $exp_type); } catch (Exception $e) { require_once NELIOAB_ADMIN_DIR . '/error-controller.php'; NelioABErrorController::build($e); } try { if ($exp == NULL) { $err = NelioABErrCodes::INVALID_EXPERIMENT; throw new Exception(NelioABErrCodes::to_string($err), $err); } $exp->duplicate($new_name); } catch (Exception $e) { global $nelioab_admin_controller; switch ($e->getCode()) { case NelioABErrCodes::EXPERIMENT_CANNOT_BE_DUPLICATED: $nelioab_admin_controller->error_message = $e->getMessage(); return; default: require_once NELIOAB_ADMIN_DIR . '/error-controller.php'; NelioABErrorController::build($e); } } }
$counter = 0; if (isset($result->data)) { foreach ($result->data as $heatmap) { if (isset($heatmap->value)) { $value = json_decode($heatmap->value); $counter += $value->max; } } } if ($counter == 0) { if ($exp->get_status() == NelioABExperiment::STATUS_RUNNING) { $err = NelioABErrCodes::NO_HEATMAPS_AVAILABLE; throw new Exception(NelioABErrCodes::to_string($err), $err); } else { $err = NelioABErrCodes::NO_HEATMAPS_AVAILABLE_FOR_NON_RUNNING_EXPERIMENT; throw new Exception(NelioABErrCodes::to_string($err), $err); } } } catch (Exception $e) { echo sprintf('<img src="%s" alt="%s" style="margin-top:50px;"/>', nelioab_asset_link('/admin/images/white-error-icon.png'), __('Funny image to graphically notify of an error.', 'nelioab')); ?> <p id="ajax-loader-label1" style="margin-top:10px;color:white;font-size:20px;"><?php echo $e->getMessage(); ?> </p><?php die; } // Prepare the content $page_on_front = nelioab_get_page_on_front(); if (!$page_on_front && !$post_id) {
/** * Loads the experiment from AppEngine. * * @param int $id the ID of the experiment we want to retrieve. * @param int $type the type of the experiment we want to retrieve. * * @return NelioABExperiment the experiment whose ID is `$id` and whose type is `$type`. * Note that the result will be an instance of * a concrete subclass of `NelioABExperiment`. * * @throws Exception `EXPERIMENT_ID_NOT_FOUND` * This exception is thrown if the experiment was not * found in AppEngine. * * @see NelioABExperiment::load * * @since 3.4.0 */ private static function load_experiment_by_id($id, $type) { require_once NELIOAB_MODELS_DIR . '/goals/goals-manager.php'; /** @var NelioABExperiment $exp */ switch ($type) { case NelioABExperiment::POST_ALT_EXP: case NelioABExperiment::PAGE_ALT_EXP: case NelioABExperiment::PAGE_OR_POST_ALT_EXP: case NelioABExperiment::CPT_ALT_EXP: $exp = NelioABPostAlternativeExperiment::load($id); break; case NelioABExperiment::HEADLINE_ALT_EXP: $exp = NelioABHeadlineAlternativeExperiment::load($id); break; case NelioABExperiment::WC_PRODUCT_SUMMARY_ALT_EXP: $exp = NelioABProductSummaryAlternativeExperiment::load($id); break; case NelioABExperiment::THEME_ALT_EXP: $exp = NelioABThemeAlternativeExperiment::load($id); break; case NelioABExperiment::CSS_ALT_EXP: $exp = NelioABCssAlternativeExperiment::load($id); break; case NelioABExperiment::WIDGET_ALT_EXP: $exp = NelioABWidgetAlternativeExperiment::load($id); break; case NelioABExperiment::MENU_ALT_EXP: $exp = NelioABMenuAlternativeExperiment::load($id); break; case NelioABExperiment::HEATMAP_EXP: $exp = NelioABHeatmapExperiment::load($id); break; default: $err = NelioABErrCodes::EXPERIMENT_ID_NOT_FOUND; throw new Exception(NelioABErrCodes::to_string($err), $err); } $exp->mark_as_fully_loaded(); return $exp; }
/** * Returns true if everything is OK. If it isn't, an exception is thrown. * * @return boolean true if everything is OK. Otherwise, an exception is thrown. * * @throws Exception `INVALID_MAIL` * @throws Exception `INVALID_PRODUCT_REG_NUM` * @throws Exception `NON_ACCEPTED_TAC` * @throws Exception `BACKEND_NO_SITE_CONFIGURED` * @throws Exception `DEACTIVATED_USER` * * @since 2.1.0 */ public static function check_user_settings() { if (!NelioABAccountSettings::is_email_valid()) { $err = NelioABErrCodes::INVALID_MAIL; throw new Exception(NelioABErrCodes::to_string($err), $err); } if (!NelioABAccountSettings::is_reg_num_valid()) { $err = NelioABErrCodes::INVALID_PRODUCT_REG_NUM; throw new Exception(NelioABErrCodes::to_string($err), $err); } if (!NelioABAccountSettings::are_terms_and_conditions_accepted()) { $err = NelioABErrCodes::NON_ACCEPTED_TAC; throw new Exception(NelioABErrCodes::to_string($err), $err); } if (!NelioABAccountSettings::has_a_configured_site()) { $err = NelioABErrCodes::BACKEND_NO_SITE_CONFIGURED; throw new Exception(NelioABErrCodes::to_string($err), $err); } NelioABAccountSettings::check_account_status(); if (!NelioABAccountSettings::is_account_active()) { $err = NelioABErrCodes::DEACTIVATED_USER; throw new Exception(NelioABErrCodes::to_string($err), $err); } return true; }
/** * PHPDOC * * @param WP_Error|array $result The response to a call to Nelio's servers. * * @return void * * @throws Exception with the appropriate error code. * * @see NelioABErrCodes * * @since PHPDOC */ private static function throw_exceptions_if_any($result) { if (is_wp_error($result)) { $err = NelioABErrCodes::BACKEND_NOT_AVAILABLE; throw new Exception(NelioABErrCodes::to_string($err), $err); } if ($result['response']['code'] == 404) { $err = NelioABErrCodes::ERROR_404; throw new Exception(NelioABErrCodes::to_string($err), $err); } if ($result['response']['code'] == 204) { $err = NelioABErrCodes::STATUS_204; throw new Exception(NelioABErrCodes::to_string($err), $err); } $aux = json_decode($result['body']); if (isset($aux->beErrCode) && $aux->beErrCode) { $err = intval($aux->beErrCode); throw new Exception(NelioABErrCodes::to_string($err), $err); } }