function fc_matrix_field_cardinality in Field Complete 7
2 string references to 'fc_matrix_field_cardinality'
- matrix_custom.inc in plugins/fields/matrix_custom.inc
- matrix_text.inc in plugins/fields/matrix_text.inc
File
- plugins/fields/matrix.inc, line 22
- Field Complete - Provides field-based completeness for any entity - matrix field plugin.
Code
function fc_matrix_field_cardinality($function, $items, $instance, $field) {
$cols = $rows = 0;
foreach ($items as $item) {
$cols = $item['col'] > $cols ? $item['col'] : $cols;
$rows = $item['row'] > $rows ? $item['row'] : $rows;
}
if ($field['settings']['cols_count'] == -1) {
$field['settings']['cols_count'] = $cols;
}
if ($field['settings']['rows_count'] == -1) {
$field['settings']['rows_count'] = $rows;
}
$row = array_fill(0, $field['settings']['cols_count'], FALSE);
$matrix = array_fill(0, $field['settings']['rows_count'], $row);
$function($items, $instance, $field, $matrix);
$completed = FALSE;
switch ($instance['settings']['fc']['fc_check_cells']) {
case MATRIX_COMPLETE_ANY:
foreach ($matrix as $col => $row) {
if (in_array(TRUE, $row)) {
$completed = TRUE;
break;
}
}
break;
case MATRIX_COMPLETE_ALL:
$completed = TRUE;
foreach ($matrix as $col => $row) {
if (in_array(FALSE, $row)) {
$completed = FALSE;
break;
}
}
break;
case MATRIX_COMPLETE_ROW:
foreach ($matrix as $col => $row) {
if (!in_array(FALSE, $row)) {
$completed = TRUE;
break;
}
}
break;
case MATRIX_COMPLETE_COL:
$xitram = array();
foreach ($matrix as $i => $row) {
foreach ($row as $j => $v) {
$xitram[$j][$i] = $v;
}
}
$matrix = $xitram;
foreach ($matrix as $col => $row) {
if (!in_array(FALSE, $row)) {
$completed = TRUE;
break;
}
}
break;
}
return $completed;
}