protected function entries_matrix($entry_id, $field, $field_data)
{
if (is_null($this->entries_matrix_rows))
{
$query = ee()->db->where_in('entry_id', $this->entries_entry_ids)
->order_by('row_order')
->get('matrix_data');
foreach ($query->result_array() as $row)
{
if ( ! isset($this->entries_matrix_rows[$row['entry_id']]))
{
$this->entries_matrix_rows[$row['entry_id']] = array();
}
if ( ! isset($this->entries_matrix_rows[$row['entry_id']][$row['field_id']]))
{
$this->entries_matrix_rows[$row['entry_id']][$row['field_id']] = array();
}
$this->entries_matrix_rows[$row['entry_id']][$row['field_id']][] = $row;
}
$query->free_result();
}
if (is_null($this->entries_matrix_cols))
{
$query = ee()->db->get('matrix_cols');
foreach ($query->result_array() as $row)
{
$this->entries_matrix_cols[$row['col_id']] = $row;
}
$query->free_result();
}
$data = array();
if (isset($this->entries_matrix_rows[$entry_id][$field['field_id']]))
{
$field_settings = unserialize(base64_decode($field['field_settings']));
foreach ($this->entries_matrix_rows[$entry_id][$field['field_id']] as $matrix_row)
{
$row = array('row_id' => (int) $matrix_row['row_id']);
foreach ($field_settings['col_ids'] as $col_id)
{
if (isset($this->entries_matrix_cols[$col_id]))
{
$row[$this->entries_matrix_cols[$col_id]['col_name']] = $matrix_row['col_id_'.$col_id];
}
}
$data[] = $row;
}
}
return $data;
}