Exemplo n.º 1
0
/**
 * Make inspection values into a table structure
 *
 * @param mixed $key           the key to present
 * @param array $merged_values the base array to show from
 * @param array $elgg_values   the Elgg values
 * @param array $elgg_values   the Elasticsearch values
 * @param int   $depth         internal usage only
 *
 * @return false|array
 */
function elasticsearch_inspect_show_values($key, $merged_values, $elgg_values, $elasticsearch_values, $depth = 0)
{
    if (empty($merged_values) || !is_array($merged_values)) {
        return false;
    }
    $rows = [];
    if (empty($depth)) {
        $rows[] = elgg_format_element('th', ['colspan' => 3], $key);
    } else {
        $rows[] = elgg_format_element('td', ['colspan' => 3], "<b>{$key}</b>");
    }
    foreach ($merged_values as $key => $values) {
        if (!is_array($values)) {
            $rows[] = implode('', [elgg_format_element('td', [], $key), elgg_format_element('td', [], elgg_extract($key, $elgg_values)), elgg_format_element('td', [], elgg_extract($key, $elasticsearch_values))]);
        } else {
            $subvalues = elasticsearch_inspect_show_values($key, $values, elgg_extract($key, $elgg_values), elgg_extract($key, $elasticsearch_values), $depth + 1);
            if (!empty($subvalues)) {
                $rows = array_merge($rows, $subvalues);
            }
        }
    }
    return $rows;
}
Exemplo n.º 2
0
        }
        $client = elasticsearch_get_client();
        $elasticsearch_content = $client->inspect($guid);
        if (empty($elasticsearch_content)) {
            $result = elgg_echo('elasticsearch:inspect:result:error:not_indexed');
        } else {
            // needed for listing all possible values
            $merged = array_replace_recursive($current_content, $elasticsearch_content);
            $rows = [];
            $extras = [];
            $rows[] = implode('', [elgg_format_element('th', [], '&nbsp'), elgg_format_element('th', [], elgg_echo('elasticsearch:inspect:result:elgg')), elgg_format_element('th', [], elgg_echo('elasticsearch:inspect:result:elasticsearch'))]);
            foreach ($merged as $key => $values) {
                if (!is_array($values)) {
                    // main content
                    $rows[] = implode('', [elgg_format_element('td', [], $key), elgg_format_element('td', [], elgg_extract($key, $current_content)), elgg_format_element('td', [], elgg_extract($key, $elasticsearch_content))]);
                } else {
                    // has subvalues
                    $subvalues = elasticsearch_inspect_show_values($key, $values, elgg_extract($key, $current_content), elgg_extract($key, $elasticsearch_content));
                    if (!empty($subvalues)) {
                        $extras = array_merge($extras, $subvalues);
                    }
                }
            }
            $rows = array_merge($rows, $extras);
            $result .= elgg_format_element('table', ['class' => 'elgg-table'], '<tr>' . implode('</tr><tr>', $rows) . '</tr>');
        }
    }
}
if (!empty($result)) {
    echo elgg_view_module('inline', elgg_echo('elasticsearch:inspect:result:title'), $result);
}