mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 04:23:19 +00:00
Fix #128 ; highlight on multivalued fields fails
This commit is contained in:
@@ -346,9 +346,9 @@ class caption_field implements cache_cacheableInterface
|
||||
if ($this->databox_field->is_multi() === true)
|
||||
{
|
||||
if ($as_string === true && $custom_separator === false)
|
||||
|
||||
{
|
||||
return $this->value;
|
||||
|
||||
}
|
||||
$separator = $this->databox_field->get_separator();
|
||||
$array_values = self::get_multi_values($this->value, $separator);
|
||||
|
||||
|
@@ -60,7 +60,6 @@ class caption_record implements caption_interface, cache_cacheableInterface
|
||||
protected function retrieve_fields()
|
||||
{
|
||||
if (is_array($this->fields))
|
||||
|
||||
return $this->fields;
|
||||
|
||||
$fields = array();
|
||||
@@ -134,7 +133,6 @@ class caption_record implements caption_interface, cache_cacheableInterface
|
||||
{
|
||||
$fields = $this->retrieve_fields();
|
||||
if (isset($this->dces_elements[$label]))
|
||||
|
||||
return $fields[$this->dces_elements[$label]];
|
||||
return null;
|
||||
}
|
||||
@@ -172,7 +170,10 @@ class caption_record implements caption_interface, cache_cacheableInterface
|
||||
, $field->highlight_thesaurus()
|
||||
);
|
||||
|
||||
$fields[$field->get_name()] = $value;
|
||||
$fields[$field->get_name()] = array(
|
||||
'value' => $value
|
||||
, 'separator' => $field->get_databox_field()->get_separator()
|
||||
);
|
||||
}
|
||||
|
||||
if ($searchEngine instanceof searchEngine_adapter)
|
||||
@@ -185,7 +186,7 @@ class caption_record implements caption_interface, cache_cacheableInterface
|
||||
|
||||
foreach ($fields as $key => $value)
|
||||
{
|
||||
$fields[$key] = $ret[$n];
|
||||
$fields[$key]['value'] = $ret[$n];
|
||||
$n++;
|
||||
}
|
||||
}
|
||||
|
@@ -870,9 +870,9 @@ class record_adapter implements record_Interface, cache_cacheableInterface
|
||||
$titles = array();
|
||||
foreach ($retrieved_fields as $key => $value)
|
||||
{
|
||||
if (trim($value === ''))
|
||||
if (trim($value['value'] === ''))
|
||||
continue;
|
||||
$titles[] = $value;
|
||||
$titles[] = $value['value'];
|
||||
}
|
||||
$title = trim(implode(' - ', $titles));
|
||||
}
|
||||
|
@@ -639,9 +639,20 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract
|
||||
foreach ($fields as $name => $field)
|
||||
{
|
||||
if ($sxe->description->$name)
|
||||
$ret[] = str_replace(array('[[em]]', '[[/em]]'), array('<em>', '</em>'), (string) $sxe->description->$name);
|
||||
{
|
||||
$val = array();
|
||||
foreach($sxe->description->$name as $value)
|
||||
{
|
||||
$val[] = str_replace(array('[[em]]', '[[/em]]'), array('<em>', '</em>'), (string) $value);
|
||||
}
|
||||
$val = implode(' '.$field['separator'].' ', $val);
|
||||
}
|
||||
else
|
||||
$ret[] = $field;
|
||||
{
|
||||
$val = $field['value'];
|
||||
}
|
||||
|
||||
$ret[] = $val;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
@@ -753,7 +753,14 @@ class searchEngine_adapter_sphinx_engine extends searchEngine_adapter_abstract i
|
||||
'after_match' => "</em>"
|
||||
);
|
||||
|
||||
return $this->sphinx->BuildExcerpts($fields, $index, $query, $opts);
|
||||
$fields_to_send = array();
|
||||
|
||||
foreach($fields as $k=>$f)
|
||||
{
|
||||
$fields_to_send[$k] = $f['value'];
|
||||
}
|
||||
|
||||
return $this->sphinx->BuildExcerpts($fields_to_send, $index, $query, $opts);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{% macro format_caption(record, highlight, searchEngine) %}
|
||||
{% for name, value in record.get_caption().get_highlight_fields(highlight, null, searchEngine) %}
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value|raw}}</div>
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value.value|raw}}</div>
|
||||
{% endfor %}
|
||||
{% endmacro %}
|
@@ -1,5 +1,5 @@
|
||||
{% macro format_caption(record) %}
|
||||
{% for name, value in record.get_caption().get_highlight_fields() %}
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value|raw}}</div>
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value.value|raw}}</div>
|
||||
{% endfor %}
|
||||
{% endmacro %}
|
@@ -1,5 +1,5 @@
|
||||
{% macro format_caption(record) %}
|
||||
{% for name, value in record.get_caption().get_highlight_fields() %}
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value|raw}}</div>
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value.value|raw}}</div>
|
||||
{% endfor %}
|
||||
{% endmacro %}
|
@@ -1,5 +1,5 @@
|
||||
{% macro format_caption(record) %}
|
||||
{% for name, value in record.get_caption().get_highlight_fields() %}
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value|raw}}</div>
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value.value|raw}}</div>
|
||||
{% endfor %}
|
||||
{% endmacro %}
|
@@ -1,5 +1,5 @@
|
||||
{% macro format_caption(record) %}
|
||||
{% for name, value in record.get_caption().get_highlight_fields() %}
|
||||
<div><b>{{name}}</b> : {{value|raw}}</div>
|
||||
<div><b>{{name}}</b> : {{value.value|raw}}</div>
|
||||
{% endfor %}
|
||||
{% endmacro %}
|
@@ -1,5 +1,5 @@
|
||||
{% macro format_caption(record, highlight, searchEngine) %}
|
||||
{% for name, value in record.get_caption().get_highlight_fields(highlight, null, searchEngine) %}
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value|raw}}</div>
|
||||
<div class="desc{% if loop.index is odd %}im{% endif %}pair"><b>{{name}}</b> : {{value.value|raw}}</div>
|
||||
{% endfor %}
|
||||
{% endmacro %}
|
Reference in New Issue
Block a user