{ $val = 'http'; if ($_SERVER["HTTPS"] == "on") { $val .= "s"; } $val .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $val .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"]; } else { $val .= $_SERVER["SERVER_NAME"]; } return $val; } $config = ClickTale_Settings::Instance(); $cacheConfig = $config->getCacheProviderConfig(); $cacheProvider = ClickTale_CacheFactory::DefaultCacheProvider(); $validatorsValues = array(); // get the actual dir $actualDir = str_replace(array("%CacheToken%", "%ClickTaleCacheUrl%"), array("", ClickTale_PathToUrl(ClickTale_Root)), $config->CacheFetchingUrl); $actualDir = dirname($actualDir); // remove the http(s) at the begining $actualDir = preg_replace("=^[^\\:]+://[^/]+=", "", $actualDir); // get the expected dir $expectedDir = dirname(dirname($_SERVER["REQUEST_URI"] . '?')); $curDomain = curProtocolAndDomain(); $validatorsValues['logsdir'] = array('validate' => $validator->UsingLogging(), 'isvalid' => $validator->IsLogsDirectoryWriteable(), 'title' => 'Logging Directory', 'p_off' => "Logging is turned off", 'p_on_valid' => "Logging is turned on and logs directory is writable. Logs will be written to: " . dirname($config->LogPathMask), 'p_on_invalid' => "Logging is turned on but your logs directory at: " . dirname($config->LogPathMask) . " is NOT writable"); $validatorsValues['fetchfromurl'] = array('validate' => true, 'isvalid' => $actualDir == $expectedDir, 'title' => 'Fetch From Directory', 'p_off' => "--", 'p_on_valid' => "The \"fetch from\" directory seems to be correct. '{$expectedDir}' match the actual '{$actualDir}'", 'p_on_invalid' => "There is a problem with the \"fetch from\" path. Expected: '{$expectedDir}' does not match the actual '{$actualDir}'<br />" . "Try to set CacheFetchingUrl config to \"{$curDomain}{$expectedDir}/ClickTaleCache.php?t=%CacheToken%\"" . "<br />This might not be an error at all. Please make sure the caching test below working as well"); global $xmlErros; $xmlErrors = array(); function handle_xml_errors($errno, $errstr, $errfile, $errline, $errcontext) {
function ClickTale_ProcessOutput_inject($buffer) { if (ClickTale_CheckCookieFlagForRecording()) { return $buffer; } try { // Data contains data from the scripts file. $data = ClickTale_LoadScripts(ClickTale_Settings::Instance()->ScriptsFile); // Filtering rules from XML file $rules = ClickTale_LoadRules(ClickTale_Settings::Instance()->FilterRulesFile); } catch (Exception $ex) { ClickTale_Logger::Write($ex->getMessage()); return $buffer; } $settings = ClickTale_Settings::Instance(); // Cache try { ClickTale_Logger::WriteDebug("Starting Caching: DisableCache (bool={$settings->DisableCache})"); if (empty($settings->DisableCache)) { $hash = $settings->UseStaticHash ? $settings->StaticHash : ClickTale_RandHash(20); $cacheProvider = ClickTale_CacheFactory::DefaultCacheProvider(); $config = ClickTale_Settings::Instance()->getCacheProviderConfig(); $hashlen = strlen($hash); if ($hashlen <= 4) { $tok = "hash"; } else { $tok = substr($hash, $hashlen - 4); } if (!empty($settings->LogCaching)) { ClickTale_Logger::Write("BeginCache '{$tok}' for " . $_SERVER["REQUEST_URI"]); } $savedbuffer = $buffer; // Filter rules applied before cache pages foreach ($rules as $rule) { $regnorm = $rule["Pattern"]; $regrep = $rule["ReplaceWith"]; $savedbuffer = preg_replace($regnorm, $regrep, $savedbuffer, 1); } $cacheProvider->store($hash, $savedbuffer, $config); if (!empty($settings->LogCaching)) { ClickTale_Logger::Write("EndCache '{$tok}' for " . $_SERVER["REQUEST_URI"]); } } } catch (Exception $ex) { ClickTale_Logger::Write($ex->getMessage()); return $buffer; } // Filter ClickTale_Logger::WriteDebug("Filtering: disabled (bool={$settings->DisableFilter})"); if (empty($settings->DisableFilter)) { $buffer = ClickTale_Filter($buffer, $data, $hash); } return $buffer; }
function ClickTale_ProcessOutput_inject($buffer) { if (ClickTale_CheckCookieFlagForRecording()) { return $buffer; } try { // Data contains data from the scripts file. $data = ClickTale_LoadScripts(ClickTale_Settings::Instance()->ScriptsFile); } catch (Exception $ex) { ClickTale_Logger::Write($ex->getMessage()); return $buffer; } $settings = ClickTale_Settings::Instance(); // Cache try { if (empty($settings->DisableCache)) { $hash = $settings->UseStaticHash ? $settings->StaticHash : ClickTale_RandHash(20); $cacheProvider = ClickTale_CacheFactory::DefaultCacheProvider(); $config = ClickTale_Settings::Instance()->getCacheProviderConfig(); $hashlen = strlen($hash); if ($hashlen <= 4) { $tok = "hash"; } else { $tok = substr($hash, $hashlen - 4); } if (!empty($settings->LogCaching)) { ClickTale_Logger::Write("BeginCache '{$tok}' for " . $_SERVER["REQUEST_URI"]); } $cacheProvider->store($hash, $buffer, $config); if (!empty($settings->LogCaching)) { ClickTale_Logger::Write("EndCache '{$tok}' for " . $_SERVER["REQUEST_URI"]); } } } catch (Exception $ex) { ClickTale_Logger::Write($ex->getMessage()); return $buffer; } // Filter if (empty(ClickTale_Settings::Instance()->DisableFilter)) { $buffer = ClickTale_Filter($buffer, $data, $hash); } return $buffer; }