コード例 #1
0
 /**
  * @return form_CaptchaGenerator
  */
 public static function getInstance()
 {
     if (self::$instance === null) {
         self::$instance = self::getServiceClassInstance(get_class());
     }
     return self::$instance;
 }
コード例 #2
0
 /**
  * @param Context $context
  * @param Request $request
  */
 public function _execute($context, $request)
 {
     controller_ChangeController::setNoCache();
     $generator = form_CaptchaGenerator::getInstance();
     $renew = $request->hasParameter('renew');
     // Set optionnal parameters.
     if ($request->hasParameter('ml')) {
         $generator->setCodeMaxLength(intval($request->getParameter('ml')));
         if ($renew) {
             $generator->setCodeMinLength(intval($request->getParameter('ml')));
         }
     }
     if ($request->hasParameter('iw')) {
         $generator->setWidth(intval($request->getParameter('iw')));
     }
     if ($request->hasParameter('ih')) {
         $generator->setHeight(intval($request->getParameter('ih')));
     }
     if ($request->hasParameter('fs')) {
         $generator->setFontSize(intval($request->getParameter('fs')));
     }
     if ($request->hasParameter('fd')) {
         $generator->setFontDepth(intval($request->getParameter('fd')));
     }
     // Renders the image.
     if ($renew) {
         $generator->generateCode();
     }
     $generator->render($context->getUser()->getAttribute(CAPTCHA_SESSION_KEY));
     return View::NONE;
 }
コード例 #3
0
 private static function generateCaptchaCode($parameters)
 {
     $generator = form_CaptchaGenerator::getInstance();
     foreach ($parameters as $name => $value) {
         switch ($name) {
             case 'ml':
                 $generator->setCodeMaxLength(intval($value));
                 break;
             case 'iw':
                 $generator->setWidth(intval($value));
                 break;
             case 'ih':
                 $generator->setHeight(intval($value));
                 break;
             case 'fs':
                 $generator->setFontSize(intval($value));
                 break;
             case 'fd':
                 $generator->setFontDepth(intval($value));
                 break;
         }
     }
     $generator->generateCode();
 }