aboutsummaryrefslogtreecommitdiff
path: root/apps/subfield.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/subfield.php')
-rw-r--r--apps/subfield.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/apps/subfield.php b/apps/subfield.php
new file mode 100644
index 0000000..117b8ce
--- /dev/null
+++ b/apps/subfield.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Cinisis - Isis db reading tool.
+ */
+
+// Import requisites.
+require_once '../index.php';
+
+// Get input data.
+$entry = CinisisHttpHelper::get_numeric_arg('entry');
+$field = CinisisHttpHelper::get_numeric_arg('field');
+$subfield = CinisisHttpHelper::get_textual_arg('subfield');
+
+// Draw the document.
+$display = new CinisisDisplayHelper('Subfield finder');
+$form = $display->form_input_text('entry', $entry);
+$form .= $display->form_input_text('field', $field);
+$form .= $display->form_input_text('subfield', $subfield);
+$display->form($form, 'subfield.php');
+
+// Get a db instance.
+$isis = new CinisisDb();
+
+// Setup database and entry number.
+if ($isis->db) {
+ // Get the number of entries.
+ $field_name = $isis->db->format['fields'][$field]['name'];
+ $subfield_name = $isis->db->format['fields'][$field]['subfields'][$subfield];
+ $entries = $isis->db->entries();
+ $entry--;
+
+ // Query database.
+ do {
+ $result = $isis->db->read(++$entry);
+ if ($entry == $entries) {
+ break;
+ }
+ } while (!isset($result[$field_name][0][$subfield_name]));
+
+ // Navigation bar.
+ $display->navbar($entry, $entries, $repetition, '&field='. $field . '&subfield='. $subfield);
+
+ // Format output.
+ $link = $display->entry_link($entry);
+ echo "<pre>\n";
+ echo "Selected field: $field: $field_name.\n";
+ echo "Selected subfield: $subfield: $subfield_name.\n";
+ echo "Showing entry ". $display->entry_link($entry) ." from $entries total entries.\n";
+ echo "Repetitions found: ". count($result[$field]) .".\n";
+ echo "\n";
+ print_r($result[$field_name]);
+ echo '</pre>';
+}
+
+$display->footer();
+?>