Counts accepted, translated and pending items.
Parse all data items recursively and sums up the counters for accepted, translated and pending items.
array $item: The current data item.
protected function count(array &$item) {
if (!empty($item['#text'])) {
if (\Drupal::service('tmgmt.data')
->filterData($item)) {
// Count words of the data item.
$text = is_array($item['#text']) ? $item['#text']['value'] : $item['#text'];
$this
->set('word_count', $this
->get('word_count')->value + \Drupal::service('tmgmt.data')
->wordCount($text));
// Set default states if no state is set.
if (!isset($item['#status'])) {
$item['#status'] = TMGMT_DATA_ITEM_STATE_UNTRANSLATED;
}
switch ($item['#status']) {
case TMGMT_DATA_ITEM_STATE_TRANSLATED:
$this
->set('count_untranslated', $this
->get('count_untranslated')->value - 1);
$this
->set('count_translated', $this
->get('count_translated')->value + 1);
break;
}
}
}
else {
foreach (Element::children($item) as $key) {
$this
->count($item[$key]);
}
}
}