mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-15 14:03:27 +00:00
PHRAS-2805 #comment Port41 of Facet-case-sensibility
This commit is contained in:
@@ -382,7 +382,6 @@ class QueryController extends Controller
|
|||||||
'labels' => $field->get_labels(),
|
'labels' => $field->get_labels(),
|
||||||
'type' => $field->get_type(),
|
'type' => $field->get_type(),
|
||||||
'field' => $field->get_name(),
|
'field' => $field->get_name(),
|
||||||
'query' => "field." . $field->get_name() . ":%s",
|
|
||||||
'trans_label' => $field->get_label($this->app['locale']),
|
'trans_label' => $field->get_label($this->app['locale']),
|
||||||
];
|
];
|
||||||
$field->get_label($this->app['locale']);
|
$field->get_label($this->app['locale']);
|
||||||
|
@@ -323,7 +323,7 @@ class ElasticsearchOptions
|
|||||||
"aggregated (2 values: fired = 0 or 1)" => -1,
|
"aggregated (2 values: fired = 0 or 1)" => -1,
|
||||||
],
|
],
|
||||||
'output_formatter' => function($value) {
|
'output_formatter' => function($value) {
|
||||||
static $map = ['0'=>"No flash", '1'=>"Flash"];
|
static $map = ["false"=>"No flash", "true"=>"Flash", '0'=>"No flash", '1'=>"Flash"];
|
||||||
return array_key_exists($value, $map) ? $map[$value] : $value;
|
return array_key_exists($value, $map) ? $map[$value] : $value;
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@@ -4,6 +4,11 @@ namespace Alchemy\Phrasea\SearchEngine\Elastic\Search;
|
|||||||
|
|
||||||
class Escaper
|
class Escaper
|
||||||
{
|
{
|
||||||
|
public function quoteWord($value)
|
||||||
|
{
|
||||||
|
return '"' . $this->escapeRaw($value) . '"';
|
||||||
|
}
|
||||||
|
|
||||||
public function escapeWord($value)
|
public function escapeWord($value)
|
||||||
{
|
{
|
||||||
// Strip double quotes from values to prevent broken queries
|
// Strip double quotes from values to prevent broken queries
|
||||||
|
@@ -62,7 +62,7 @@ class FacetsResponse
|
|||||||
'value' => $key,
|
'value' => $key,
|
||||||
'raw_value' => $key,
|
'raw_value' => $key,
|
||||||
'count' => $bucket['doc_count'],
|
'count' => $bucket['doc_count'],
|
||||||
'query' => sprintf('field.%s:%s', $this->escaper->escapeWord($name), $this->escaper->escapeWord($key))
|
'query' => sprintf('field.%s=%s', $this->escaper->escapeWord($name), $this->escaper->quoteWord($key))
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -14,14 +14,14 @@ use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Typed;
|
|||||||
class ValueCheckerTest extends \PHPUnit_Framework_TestCase
|
class ValueCheckerTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @dataProvider escapeRawProvider
|
* @dataProvider valueCheckerProvider
|
||||||
*/
|
*/
|
||||||
public function testValueCompatibility($subject, $value, $compatible)
|
public function testValueCompatibility($subject, $value, $compatible)
|
||||||
{
|
{
|
||||||
$this->assertEquals($compatible, ValueChecker::isValueCompatible($subject, $value));
|
$this->assertEquals($compatible, ValueChecker::isValueCompatible($subject, $value));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function escapeRawProvider()
|
public function valueCheckerProvider()
|
||||||
{
|
{
|
||||||
$values = [
|
$values = [
|
||||||
[FieldMapping::TYPE_FLOAT , 42 , true ],
|
[FieldMapping::TYPE_FLOAT , 42 , true ],
|
||||||
|
Reference in New Issue
Block a user