public static function print_quota_limit_per_experiment_field() { $limit = NelioABSettings::get_quota_limit_per_exp(); $field_name = 'quota_limit_per_exp'; printf('<select id="%1$s" name="nelioab_settings[%1$s]" %2$s>', $field_name, self::get_pro_details()); ?> <option value='-1'><?php _e('Unlimited', 'nelioab'); ?> </option> <?php $options = array(500, 1000, 1500, 2500, 3000); if (NelioABAccountSettings::is_plan_at_least(NelioABAccountSettings::PROFESSIONAL_SUBSCRIPTION_PLAN)) { array_push($options, 4000, 5000, 7500, 10000); } foreach ($options as $v) { printf('<option value="%2$s" %3$s>%1$s</option>', sprintf(__('%s page views', 'nelioab'), number_format_i18n($v)), strval($v), $limit == $v ? 'selected="selected"' : ''); } ?> </select> <br><div class="the-descr" style="display:none;"><span <?php echo self::get_pro_details('description'); ?> ><?php _e('This setting will automatically stop the experiment as soon as the results of an experiment are updated and the number of page views is equal to (or a little bit greater than) the limit you set. Don\'t waste your quota anymore!', 'nelioab'); ?> </span></div> <?php }
/** * PHPDOC * * @param int $mode PHPDOC * @param mixed $value PHPDOC * @param array $valid_modes PHPDOC * * @return void * * @see NelioABExperiment::FINALIZATION_MANUAL, * @see NelioABExperiment::FINALIZATION_AFTER_DATE, * @see NelioABExperiment::FINALIZATION_AFTER_VIEWS, * @see NelioABExperiment::FINALIZATION_AFTER_CONFIDENCE, * * @since PHPDOC */ public static function print_finalization_mode_field($mode, $value, $valid_modes = array()) { require_once NELIOAB_MODELS_DIR . '/experiment.php'; if (count($valid_modes) == 0) { $valid_modes = array(NelioABExperiment::FINALIZATION_MANUAL, NelioABExperiment::FINALIZATION_AFTER_DATE, NelioABExperiment::FINALIZATION_AFTER_VIEWS, NelioABExperiment::FINALIZATION_AFTER_CONFIDENCE); } ?> <select id="exp_finalization_mode" name="exp_finalization_mode" style="width:100%;max-width:350px;margin-bottom:1.5em;"> <?php $current_mode = NelioABExperiment::FINALIZATION_MANUAL; if (in_array($current_mode, $valid_modes)) { ?> <option <?php if ($current_mode == $mode) { echo 'selected="selected"'; } ?> value="<?php echo $current_mode; ?> " ><?php _e('Manual', 'nelioab'); ?> </option><?php } ?> <?php $current_mode = NelioABExperiment::FINALIZATION_AFTER_DATE; if (in_array($current_mode, $valid_modes)) { ?> <option <?php if ($current_mode == $mode) { echo 'selected="selected"'; } ?> value="<?php echo $current_mode; ?> " ><?php _e('Duration', 'nelioab'); ?> </option><?php } ?> <?php $current_mode = NelioABExperiment::FINALIZATION_AFTER_VIEWS; if (in_array($current_mode, $valid_modes)) { ?> <option <?php if ($current_mode == $mode) { echo 'selected="selected"'; } ?> value="<?php echo $current_mode; ?> " ><?php _e('Number of Page Views', 'nelioab'); ?> </option><?php } ?> <?php $current_mode = NelioABExperiment::FINALIZATION_AFTER_CONFIDENCE; if (in_array($current_mode, $valid_modes)) { ?> <option <?php if ($current_mode == $mode) { echo 'selected="selected"'; } ?> value="<?php echo $current_mode; ?> " ><?php _e('Winning Alternative Reaches a Minimum Confidence', 'nelioab'); ?> </option><?php } ?> </select> <input id="exp_finalization_value" name="exp_finalization_value" type="hidden" value="<?php echo $value; ?> " /> <div class="fin-mode manual" style="display:block;"><?php _e('The experiment will be running until you manually stop it.', 'nelioab'); ?> </div> <div class="fin-mode date" style="display:none;"> <p style="margin-bottom:0.2em;"><strong><?php _e('Mode Configuration', 'nelioab'); ?> </strong></p><?php printf(__('The experiment will be runnning for %s and will then be automatically stopped.', 'nelioab'), '<select class="fin-mode-value">' . '<option value="1">' . __('24 hours', 'nelioab') . '</option>' . '<option value="2">' . __('48 hours', 'nelioab') . '</option>' . '<option value="5">' . __('5 days', 'nelioab') . '</option>' . '<option value="7">' . __('1 week', 'nelioab') . '</option>' . '<option value="14">' . __('2 weeks', 'nelioab') . '</option>' . '<option value="30">' . __('1 month', 'nelioab') . '</option>' . '<option value="60">' . __('2 months', 'nelioab') . '</option>' . '</select>'); ?> </div> <div class="fin-mode views" style="display:none;"> <p style="margin-bottom:0.2em;"><strong><?php _e('Mode Configuration', 'nelioab'); ?> </strong></p><?php printf(__('If the tested page (and its alternatives) have been seen over %s times, the experiment will be automatically stopped.', 'nelioab'), '<select class="fin-mode-value">' . '<option value="100">100</option>' . '<option value="200">200</option>' . '<option value="500">500</option>' . '<option value="1000">1,000</option>' . '<option value="2000">2,000</option>' . '<option value="5000">5,000</option>' . '<option value="10000">10,000</option>' . '<option value="15000">15,000</option>' . '<option value="20000">20,000</option>' . '<option value="50000">50,000</option>' . '<option value="100000">100,000</option>' . '</select>'); $value = NelioABSettings::get_quota_limit_per_exp(); if (-1 != $value) { ?> <div id="quota-warning" style="display:none;"> <div style="width:100%;max-width:100px;padding-top:0.9em;border-bottom:1px solid #ccc;"> </div> <p style="font-size:90%;"><?php printf(__('According to your global settings, there\'s a Quota Limit of %s page views per experiment. For this experiment, however, the global setting will be overriden.', 'nelioab'), number_format_i18n($value)); ?> </p> </div> <script> (function($) { var warning = $('#quota-warning'); $('.fin-mode-value').on('change', function() { if ( $(this).attr('value') <= <?php echo $value; ?> ) warning.hide(); else warning.show(); }); })(jQuery); </script> <?php } ?> </div> <div class="fin-mode confidence" style="display:none;"> <p style="margin-bottom:0.2em;"><strong><?php _e('Mode Configuration', 'nelioab'); ?> </strong></p><?php printf(__('%s the experiment will be automatically stopped.', 'nelioab'), '<select class="fin-mode-value">' . '<option' . self::select_confidence(99) . 'value="99">' . __('99% - If we are absolutely confident there\'s a clear winner', 'nelioab') . '</option>' . '<option' . self::select_confidence(98) . 'value="98">' . __('98% - If we are extremely confident there\'s a clear winner', 'nelioab') . '</option>' . '<option' . self::select_confidence(97) . 'value="97">' . __('97% - If we are quite confident there\'s a winner', 'nelioab') . '</option>' . '<option' . self::select_confidence(96) . 'value="96">' . __('96% - If we are confident there\'s a winner', 'nelioab') . '</option>' . '<option' . self::select_confidence(95) . 'value="95">' . __('95% - If we are slightly confident there\'s a winner', 'nelioab') . '</option>' . '<option' . self::select_confidence(90, 0) . 'value="90">' . __('90% - If it is possible that there\'s a winner', 'nelioab') . '</option>' . '</select>'); ?> </div> <script type="text/javascript"> (function($) { // Functions function switch_finalization_mode( mode, value ) { $('div.fin-mode').hide(); var block; switch ( mode ) { case <?php echo NelioABExperiment::FINALIZATION_MANUAL; ?> : block = 'div.fin-mode.manual'; break; case <?php echo NelioABExperiment::FINALIZATION_AFTER_DATE; ?> : block = 'div.fin-mode.date'; break; case <?php echo NelioABExperiment::FINALIZATION_AFTER_VIEWS; ?> : block = 'div.fin-mode.views'; break; case <?php echo NelioABExperiment::FINALIZATION_AFTER_CONFIDENCE; ?> : block = 'div.fin-mode.confidence'; break; default: return; } if ( undefined != value ) $(block + ' .fin-mode-value').attr('value', value); $('#exp_finalization_value').attr('value', $(block + ' .fin-mode-value').attr('value') ); $(block).show(); } // Events $('#exp_finalization_mode').on('change', function() { switch_finalization_mode( parseInt( $('#exp_finalization_mode').attr('value') ) ); }); $('.fin-mode .fin-mode-value').on('change', function() { $('#exp_finalization_value').attr('value', $(this).attr('value') ); }); // Initialization switch_finalization_mode( parseInt( $('#exp_finalization_mode').attr('value') ), parseInt( $('#exp_finalization_value').attr('value') ) ); })(jQuery); </script><?php }