public static function parse($raw)
 {
     $compiler = new XenForo_Template_Compiler(sprintf('<xen:if is="%s">%s</xen:if>', $raw, md5($raw)));
     $compiler->addFunctionHandler('helper', new WidgetFramework_Helper_Conditional_Function_Helper());
     $parsed = $compiler->lexAndParse();
     $compiler->setFollowExternal(false);
     $parsed = $compiler->compileParsed($parsed, __CLASS__, 0, 0);
     return $parsed;
 }
예제 #2
0
 /**
  * Verification callback to prepare a template. This isn't actually a verifier;
  * it just automatically compiles the template.
  *
  * @param string $string Uncompiled template
  *
  * @return boolean
  */
 protected function _verifyPrepareTemplate($template)
 {
     $standardParse = true;
     $parsed = null;
     if (!$this->get('disable_modifications')) {
         $templateWithModifications = $this->_getModificationModel()->applyModificationsToTemplate($this->get('title'), $template, $modificationStatuses);
     } else {
         $modificationStatuses = null;
         $templateWithModifications = $template;
     }
     if ($modificationStatuses) {
         try {
             $compiler = new XenForo_Template_Compiler($templateWithModifications);
             $parsed = $compiler->lexAndParse();
             if ($this->getOption(self::OPTION_TEST_COMPILE)) {
                 $compiler->setFollowExternal(false);
                 $compiler->compileParsed($parsed, $this->get('title'), 0, 0);
             }
             $standardParse = false;
         } catch (XenForo_Template_Compiler_Exception $e) {
             foreach ($modificationStatuses as &$status) {
                 if (is_int($status)) {
                     $status = 'error_compile';
                 }
             }
         }
     }
     if ($standardParse) {
         try {
             $compiler = new XenForo_Template_Compiler($template);
             $parsed = $compiler->lexAndParse();
             if ($this->getOption(self::OPTION_TEST_COMPILE)) {
                 $compiler->setFollowExternal(false);
                 $compiler->compileParsed($parsed, $this->get('title'), 0, 0);
             }
         } catch (XenForo_Template_Compiler_Exception $e) {
             $this->error($e->getMessage(), 'template');
             return false;
         }
     }
     $this->set('template_parsed', serialize($parsed));
     $this->_modificationStatuses = $modificationStatuses;
     return true;
 }
예제 #3
0
 protected static function VerifyTemplate(array $option, &$value, &$error)
 {
     try {
         $compiler = new XenForo_Template_Compiler($value);
         $parsed = $compiler->lexAndParse();
         $compiler->setFollowExternal(false);
         $compiler->compileParsed($parsed, '', 0, 0);
     } catch (XenForo_Template_Compiler_Exception $e) {
         $error = $e->getMessage();
         return false;
     }
     return true;
 }
예제 #4
0
 /**
  * Verification callback to prepare a template. This isn't actually a verifier;
  * it just automatically compiles the template.
  *
  * @param string Uncompiled template
  *
  * @return true
  */
 protected function _verifyPrepareTemplate($template)
 {
     try {
         $compiler = new XenForo_Template_Compiler($template);
         $parsed = $compiler->lexAndParse();
         if ($this->getOption(self::OPTION_TEST_COMPILE)) {
             $compiler->setFollowExternal(false);
             $compiler->compileParsed($parsed, $this->get('title'), 0, 0);
         }
     } catch (XenForo_Template_Compiler_Exception $e) {
         $this->error($e->getMessage(), 'template');
         return false;
     }
     $this->set('template_parsed', serialize($parsed));
     return true;
 }