protected function retrieve_fields() { if (is_array($this->fields)) { return $this->fields; } $fields = []; try { $fields = $this->get_data_from_cache(); } catch (\Exception $e) { $sql = "SELECT m.id as meta_id, s.id as structure_id\n FROM metadatas m, metadatas_structure s\n WHERE m.record_id = :record_id AND s.id = m.meta_struct_id\n ORDER BY s.sorter ASC"; $stmt = $this->databox->get_connection()->prepare($sql); $stmt->execute([':record_id' => $this->record->get_record_id()]); $fields = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt->closeCursor(); $this->set_data_to_cache($fields); } $rec_fields = []; foreach ($fields as $row) { $databox_meta_struct = databox_field::get_instance($this->app, $this->databox, $row['structure_id']); $metadata = new caption_field($this->app, $databox_meta_struct, $this->record); $rec_fields[$databox_meta_struct->get_id()] = $metadata; } $this->fields = $rec_fields; return $this->fields; }
protected function get_metadatas_ids() { try { return $this->get_data_from_cache(); } catch (\Exception $e) { } $connbas = $this->databox_field->get_connection(); $sql = 'SELECT id FROM metadatas WHERE record_id = :record_id AND meta_struct_id = :meta_struct_id'; $params = [':record_id' => $this->record->get_record_id(), ':meta_struct_id' => $this->databox_field->get_id()]; $stmt = $connbas->prepare($sql); $stmt->execute($params); $ids = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt->closeCursor(); $this->set_data_to_cache($ids); return $ids; }