예제 #1
0
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;
}
예제 #2
0
파일: index.php 프로젝트: Telemedellin/tm
{
    $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)
{
 public static function &DefaultCacheProvider()
 {
     return ClickTale_CacheFactory::CacheProvider(ClickTale_Settings::Instance()->CacheProvider);
 }
예제 #4
0
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;
}