示例#1
0
 /**
  * Returns script code for detecting whether WCPP is installed at the client machine.
  *
  * The WCPP-detection script code ends with a 'success' or 'failure' status.
  * You can handle both situation by creating two javascript functions which names 
  * must be wcppDetectOnSuccess() and wcppDetectOnFailure(). 
  * These two functions will be automatically invoked by the WCPP-detection script code.
  * 
  * The WCPP-detection script uses a delay time variable which by default is 10000 ms (10 sec). 
  * You can change it by creating a javascript global variable which name must be wcppPingDelay_ms. 
  * For example, to use 5 sec instead of 10, you should add this to your script: 
  *   
  * var wcppPingDelay_ms = 5000;
  *    
  * @return string A [script] tag linking to the WCPP-detection script code.
  * @throws Exception
  */
 public static function createWcppDetectionScript()
 {
     if (Utils::isNullOrEmptyString(self::$webClientPrintAbsoluteUrl)) {
         throw new Exception('WebClientPrint absolute URL is missing, please specify it.');
     }
     $buffer = '<script type="text/javascript">';
     if (Utils::isIE6to9() || Utils::isIE10orGreater()) {
         $buffer .= 'var wcppPingNow=false;';
     } else {
         $buffer .= 'var wcppPingNow=true;';
     }
     $buffer .= '</script>';
     $wcpHandler = self::$webClientPrintAbsoluteUrl . '?' . self::WCP . '&d=' . session_id();
     $buffer .= '<script src="' . $wcpHandler . '" type="text/javascript"></script>';
     if (Utils::isIE6to9() || Utils::isIE10orGreater()) {
         $crlf = chr(13) . chr(10);
         $buffer .= $crlf . $crlf;
         $buffer .= '<!--[if WCPP]>' . $crlf;
         $buffer .= '<script type="text/javascript">' . $crlf;
         $buffer .= '$(document).ready(function(){jsWCPP.ping();});' . $crlf;
         $buffer .= '</script>' . $crlf;
         $buffer .= '<![endif]-->' . $crlf;
         $buffer .= '<!--[if !WCPP]>' . $crlf;
         $buffer .= '<script type="text/javascript">' . $crlf;
         $buffer .= '$(document).ready(function(){wcppDetectOnFailure();});' . $crlf;
         $buffer .= '</script>' . $crlf;
         $buffer .= '<![endif]-->' . $crlf;
     }
     return $buffer;
 }