/**
  * Loads the test buckets and sets the bucket seed
  */
 public static function initialize($seed = null)
 {
     if (!self::$_initialized) {
         self::$_tests = Cache::fetch(function () {
             return json_decode(@file_get_contents('buckets.json'));
         }, TEST_BUCKET_CACHE_KEY);
         self::$_initialized = true;
         // Add template helpers
         Display::addHelper('inTestBucket', function ($template, $context, $args, $source) {
             if (preg_match_all('/([\\w]+)=\\"([^\\"]+)\\"/i', $args, $matches)) {
                 $args = new stdClass();
                 for ($i = 0, $count = count($matches[0]); $i < $count; $i++) {
                     $key = $matches[1][$i];
                     $args->{$key} = str_replace('"', '', $matches[2][$i]);
                 }
                 if (isset($args->key) && isset($args->value)) {
                     if (self::get($args->key) == $args->value) {
                         return $template->render($context);
                     }
                 } else {
                     throw new Exception('inTestBucket requires "key" and "test" parameters');
                 }
             }
         });
     }
     if ($seed || !self::$_seed) {
         self::$_seed = $seed ?: (int) str_replace('.', '', $_SERVER['REMOTE_ADDR']);
     }
 }
Example #2
0
 /**
  * Registers some generic bracket related template helpers
  */
 public static function _initTemplateHelpers()
 {
     Lib\Display::addHelper('isBracketNotHidden', function ($template, $context, $args, $source) {
         $bracket = $context->get($args);
         $retVal = '';
         if ($bracket instanceof Api\Bracket && $bracket->state != BS_HIDDEN) {
             $retVal = $template->render($context);
         }
         return $retVal;
     });
     Lib\Display::addHelper('hasNotStarted', function ($template, $context, $args, $source) {
         return self::_bracketStateIs($template, $context, $args, BS_NOT_STARTED);
     });
     Lib\Display::addHelper('isBracketNominations', function ($template, $context, $args, $source) {
         return self::_bracketStateIs($template, $context, $args, BS_NOMINATIONS);
     });
     Lib\Display::addHelper('isBracketEliminations', function ($template, $context, $args, $source) {
         return self::_bracketStateIs($template, $context, $args, BS_ELIMINATIONS);
     });
     Lib\Display::addHelper('isBracketVoting', function ($template, $context, $args, $source) {
         return self::_bracketStateIs($template, $context, $args, BS_VOTING);
     });
     Lib\Display::addHelper('isBracketFinal', function ($template, $context, $args, $source) {
         return self::_bracketStateIs($template, $context, $args, BS_FINAL);
     });
     Lib\Display::addHelper('hasResults', function ($template, $context, $args, $source) {
         $retVal = '';
         $bracket = $context->get($args);
         if ($bracket instanceof Api\Bracket && ($bracket->state == BS_VOTING || $bracket->state == BS_FINAL)) {
             $retVal = $template->render($context);
         } else {
             $template->setStopToken('else');
             $template->discard($context);
             $template->setStopToken(false);
             $retVal = $template->render($context);
         }
         return $retVal;
     });
 }