cnt != 1) {
continue;
}
$twtid = $tblrow->twtid;
$tablename = $tblrow->tablename;
$view_name = $tblrow->view_name;
$dbconnection = $tblrow->dbconnection;
if ($dbconnection == 'default') {
$rawtablename = schema_unprefix_table($tablename);
$cleantablename = $rawtablename;
}
else {
$truedbname = tw_get_dbinfo($dbconnection, 'name');
$rawtablename = tw_qualified_tablename($dbconnection, $tablename);
$cleantablename = $truedbname . '_' . $tablename;
}
// Create a basic table view, with exclusion flags, for each import table
$view = new view;
$view->name = $view_name;
$view->description = $tablename;
$view->tag = 'tw';
$view->view_php = '';
$view->base_table = $rawtablename;
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', $view_name, 'default');
// Grab the available columns for this table (skip any marked ignore)
$pk = NULL;
$colnames = array();
$sql = "SELECT colname, primarykey
FROM {tw_columns}
WHERE ignorecol=0 AND twtid=%d
ORDER BY weight";
$colresult = db_query($sql, $twtid);
while ($colrow = db_fetch_object($colresult)) {
$colnames[] = $colrow->colname;
if ($colrow->primarykey) {
$pk = $colrow->colname;
}
}
// Add our columns to the fields
$fields = array();
foreach ($colnames as $colname) {
$fields[$colname] = array(
'id' => $colname,
'table' => $rawtablename,
'field' => $colname,
'label' => $colname,
'exclude' => 0,
'relationship' => 'none',
);
}
// Add columns for joined tables
$sql = "SELECT twc2.colname, twt2.tablename
FROM {tw_tables} twt1
INNER JOIN {tw_columns} twc1 ON twt1.twtid=twc1.twtid
INNER JOIN {tw_relationships} twr ON twc1.twcid=twr.leftcol AND twr.automatic=1
INNER JOIN {tw_columns} twc2 ON twr.rightcol=twc2.twcid
INNER JOIN {tw_tables} twt2 ON twc2.twtid=twt2.twtid
WHERE twt1.twtid=%d";
$result = db_query($sql, $twtid);
while ($row = db_fetch_object($result)) {
$colname = $row->colname;
$colnames[] = $colname;
$fields[$colname] = array(
'id' => $colname,
'table' => $row->tablename,
'field' => $colname,
'label' => $colname,
'exclude' => 0,
'relationship' => 'none',
'override' => array(
'button' => 'Override',
),
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'strip_tags' => 0,
'html' => 0,
),
);
}
$handler->override_option('fields', $fields);
$handler->override_option('access', array(
'type' => 'perm',
'perm' => TW_ACCESS,
));
$handler->override_option('title', t('Contents of !tablename', array('!tablename' => $rawtablename)));
$handler->override_option('header', t('This is a view of a raw database table. It may be ' .
'sorted in various ways by clicking the column headers.
If you identify a particular field that does not need to be used in views of this table, ' .
'go to the analysis page ' .
'and check the Ignore box for that field. It will then no longer appear here.',
array('!analyze_url' => url("admin/content/tw/analyze/$twtid"))));
$handler->override_option('header_format', '1');
$handler->override_option('header_empty', 0);
$handler->override_option('empty', 'There are no rows in this table.');
$handler->override_option('empty_format', '1');
$handler->override_option('items_per_page', 25);
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'table');
// Add our columns into the style options
$columns = array();
foreach ($colnames as $colname) {
$columns[$colname] = $colname;
}
$info = array();
foreach ($colnames as $colname) {
$info[$colname] = array(
'sortable' => 1,
'separator' => '',
);
}
$handler->override_option('style_options', array(
'grouping' => '',
'override' => 1,
'sticky' => 1,
'order' => 'asc',
'columns' => $columns,
'info' => $info,
'default' => -1,
));
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->override_option('path', "admin/content/tw/view/$view_name");
$handler->override_option('menu', array(
'type' => 'none',
'title' => '',
'weight' => 0,
));
$handler->override_option('tab_options', array(
'type' => 'none',
'title' => '',
'weight' => 0,
));
$views[$view->name] = $view;
}
return $views;
}