#!/usr/local/bin/php
"NUMBER",
1 => "TEXT",
2 => "TIMESTAMP",
3 => "DATETIME",
4 => "HISTORIC DATETIME",
5 => "DATERANGE",
6 => "HISTORIC DATERANGE",
7 => "BIT",
8 => "FILE",
9 => "MEDIA",
10 => "PASSWORD",
11 => "SERIALIZED VARIABLES",
12 => "TIMECODE",
13 => "DATE",
14 => "HISTORIC DATE",
15 => "TIME",
16 => "TIME RANGE"
);
$va_displaytypes = array(
0 => "DROP-DOWN MENU",
1 => "LIST",
2 => "LIST WITH MULTIPLE SELECTION",
3 => "CHECKBOXES",
4 => "RADIO BUTTONS",
5 => "TEXT INPUT FIELD",
6 => "HIDDEN",
7 => "OMIT - NOT SHOWN",
8 => "TEXT DISPLAY",
9 => "PASSWORD",
10 => "COLORPICKER",
12 => "TIMECODE"
);
$o_dm = Datamodel::load();
$va_tables = $o_dm->getTableNames();
?>
CollectiveAccess schema version ; revision
getInstanceByTableName($vs_table);
print "Table ".$t_table->tableName().": ".$t_table->getProperty('NAME_PLURAL')."
\n";
print "Fields
\n";
print "\n";
print "| Field | Name | Description | Datatype | Null? | Default | Validation constraints | Display settings | Relationships | \n";
$va_fields = $t_table->getFields();
foreach($va_fields as $vs_field) {
print "";
$va_field_info = $t_table->getFieldInfo($vs_field);
print "| {$vs_field} | ".$va_field_info['LABEL']." | ".$va_field_info['DESCRIPTION']." | ";
print "".$va_datatypes[$va_field_info['FIELD_TYPE']]." | ";
print "".($va_field_info['IS_NULL'] ? "NULL" : "-")." | ";
print "".($va_field_info['DEFAULT'] ? $va_field_info['DEFAULT'] : '-')." | ";
$va_validation_constraints = array();
if (isset($va_field_info['BOUNDS_CHOICE_LIST']) && (is_array($va_field_info['BOUNDS_CHOICE_LIST']))) {
if (isset($va_field_info['LIST']) && $va_field_info['LIST']) {
$va_validation_constraints[] = "Choice list using ca_list with list_code = ".$va_field_info['LIST']. " and a hardcoded default list with ".sizeof($va_field_info['BOUNDS_CHOICE_LIST'])." options";
} else {
$va_validation_constraints[] = "Choice list (".sizeof($va_field_info['BOUNDS_CHOICE_LIST'])." options)";
}
}
if (isset($va_field_info['BOUNDS_VALUE']) && (is_array($va_field_info['BOUNDS_VALUE']))) {
$va_validation_constraints[] = "Minimum value is ".$va_field_info['BOUNDS_VALUE'][0]."";
$va_validation_constraints[] = "Maximum value is ".$va_field_info['BOUNDS_VALUE'][1]."";
}
if (isset($va_field_info['BOUNDS_LENGTH']) && (is_array($va_field_info['BOUNDS_LENGTH']))) {
$va_validation_constraints[] = "Minimum length is ".$va_field_info['BOUNDS_LENGTH'][0]."";
$va_validation_constraints[] = "Maximum length is ".$va_field_info['BOUNDS_LENGTH'][1]."";
}
print "".join("\n", $va_validation_constraints)." | ";
$va_display_settings = array();
$va_display_settings[] = "Display as ".$va_displaytypes[$va_field_info['DISPLAY_TYPE']]."";
$va_display_settings[] = "Display width ".$va_field_info['DISPLAY_WIDTH']." characters";
$va_display_settings[] = "Display height ".$va_field_info['DISPLAY_HEIGHT']." lines";
print "".join("\n", $va_display_settings)." | ";
$va_rel = $o_dm->getManyToOneRelations($vs_table, $vs_field);
$va_relationships = array();
if ($va_rel['one_table'] == $vs_table) {
$va_relationships[] = "1:many relationship with ".$va_rel['many_table'].'.'.$va_rel['many_table_field']."";
}
if ($va_rel['many_table'] == $vs_table) {
$va_relationships[] = "many:1 relationship with ".$va_rel['one_table'].'.'.$va_rel['one_table_field']."";
}
print "".join("\n", $va_relationships)." | ";
print "
\n";
}
print "
\n";
print "
\n";
}
?>