htmlcache icon indicating copy to clipboard operation
htmlcache copied to clipboard

HtmlCahe caches only one page and shows this pages to all pages

Open kruglikoves2 opened this issue 4 years ago • 2 comments

We had the next problem: HtmlCahe caches only one page and shows these pages to all pages. We had this problem. The problem was that to get request URL, the plugin uses request->getParam('p'). It's '' an empty string in our system occasionally. So we created "p" query string in our module to fix this problem.

And here is the code that did this:

class HtmlCachePluginBugFixer
{
    private $request;
    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    // HtmlCache Plugin have the issue - it requires query parameter p with page url for work.
    // This method fixes this issue.
    public function fixMissingPParameterInRequest()
    {
        $uri = $this->request->getUrl();
        $requestQueryParams = $this->request->getQueryParams();
        $requestQueryParams['p'] = $uri;
        $this->request->setQueryParams($requestQueryParams);
    }
}

And here is how it executes in our module:

        $htmlCachePluginBugFixer = new HtmlCachePluginBugFixer(\Craft::$app->request);
        $htmlCachePluginBugFixer->fixMissingPParameterInRequest();

kruglikoves2 avatar Sep 09 '20 10:09 kruglikoves2

I also have this problem - the above fix didn't work for me.

Coysh avatar Sep 28 '20 18:09 Coysh

I also have this problem - the above fix didn't work for me.

Strange. Worked for me. We've added the fix in our custom module code. Where did you added the fix code?

kruglikoves2 avatar Sep 28 '20 18:09 kruglikoves2