?

User tests: Successful: Unsuccessful:

avatar itbra
itbra
9 Mar 2014

This error is caused by the com_finder's master controller's display method, which does not respect the type of the URL parameter 't' while it computes the 'cachable' variable. Basically it expects to find the URL parameters
q // the keyword,
f // a pre-defined filter,
t // one or more selected taxonomies.

The latter most likely contains more than one value and is therefore be passed in as an array like index.php?option=com_finder&view=search&q=Diner&f=&t[]=italian&t[]=pizza&t[]=distance&t[]=25

Then in the controller's display method the query string is processed the following way:

if ($input->get('q') || $input->get('f') || $input->get('t')) { ... }

A check to JInput::get() reveals this method to sanitize the passed input by calling

$this->filter->clean()

falling back to the default filter cmd if no specific filter was passed in. Since the URL parameter t is an array the condition in com_finder's master controller must be more specific taking data types into account. The following proper condition fixes the issue:

if ($input->get('q', null, 'string') || $input->get('f', null, 'int') || $input->get('t', null, 'array'))
{ ... }

Associated tracker item: #31538

avatar itbra itbra - open - 9 Mar 2014
avatar brianteeman
brianteeman - comment - 8 Aug 2014

Closed as per the comment on the tracker as this appears to hve been merged elsewhere

avatar brianteeman brianteeman - change - 8 Aug 2014
Status New Closed
Closed_Date 0000-00-00 00:00:00 2014-08-08 14:33:12
avatar brianteeman brianteeman - close - 8 Aug 2014

Add a Comment

Login with GitHub to post a comment