Coroico / AdvSearch

Dynamic content search add-on for MODx Revolution that supports results highlighting, faceted search and search in custom packages
21 stars 14 forks source link

After upgrade from 1.0. #84

Open funkyduke opened 8 years ago

funkyduke commented 8 years ago

After upgrading tot 2.0 beta2 version AdvSearch is no longer working. No resultpage is given. Does I have to change something to the code? I can't find any documentation on this.

goldsky commented 8 years ago

&placeholderPrefix=advsearch` [All chunks](https://github.com/Coroico/AdvSearch/tree/Development/core/components/advsearch/elements/chunks) now have this prefix. Try to use&placeholderPrefix=``` to ignore it.

funkyduke commented 8 years ago

Thx, works perfect now. Maybe in the future also possible met method POST instead of GET?

Treniota commented 8 years ago

Snippet AdvSearch 2 doesn't have Properties any more (Revolution 2.5.0). Is this a bug? How can be set properties like extractLength, fieldPotency, fields, etc., etc.?

SnowCreative commented 8 years ago

Not very elegant, but this works to enable POST.

search form tag, add method:

[[!AdvSearchForm?
. . .
&method=`POST`
]]

edit snippet AdSearch line 24:

$asId = filter_input(INPUT_GET, 'asId', FILTER_SANITIZE_SPECIAL_CHARS);
$sub = filter_input(INPUT_GET, 'sub', FILTER_SANITIZE_SPECIAL_CHARS);
if(empty($asId)) {
    $asId = filter_input(INPUT_POST, 'asId', FILTER_SANITIZE_SPECIAL_CHARS);
    $sub = filter_input(INPUT_POST, 'sub', FILTER_SANITIZE_SPECIAL_CHARS);
}

edit components/advsearch/model/advsearch/advsearchrequest.class.php. Add the lines in the "if(empty" condition.

line 44:

        $asId = filter_input(INPUT_GET, 'asId', FILTER_SANITIZE_SPECIAL_CHARS);
        $sub = filter_input(INPUT_GET, 'sub', FILTER_SANITIZE_SPECIAL_CHARS);
        if(empty($asId)) {
             $asId = filter_input(INPUT_POST, 'asId', FILTER_SANITIZE_SPECIAL_CHARS);
             $sub = filter_input(INPUT_POST, 'sub', FILTER_SANITIZE_SPECIAL_CHARS);
       }

line 112:

        $page = filter_input(INPUT_GET, $this->config['pageIndex'], FILTER_SANITIZE_NUMBER_INT);
        if(empty($page)) {
             $page = filter_input(INPUT_POST, $this->config['pageIndex'], FILTER_SANITIZE_NUMBER_INT);
       }

line 247:

        $filteredString = filter_input(INPUT_GET, $this->config['searchIndex'], FILTER_SANITIZE_SPECIAL_CHARS);
        if(empty($filteredString)) {
             $filteredString = filter_input(INPUT_POST, $this->config['searchIndex'], FILTER_SANITIZE_SPECIAL_CHARS);
       }