示例#1
0
function list_data()
{
    $mainframe =& JFactory::getApplication();
    $database =& JFactory::getDBO();
    if (isset($_POST['cb']) && !empty($_POST['cb'])) {
        $index = $_POST['cb'][0];
        $_POST['table_name'] = $_POST['table_name'][$index];
        $_POST['form_id'] = $index;
    }
    if (isset($_POST['table_name']) && !empty($_POST['table_name']) || isset($_GET['table_name']) && !empty($_GET['table_name'])) {
        $table_name = isset($_POST['table_name']) ? $_POST['table_name'] : $_GET['table_name'];
        //load some table data
        $result = $database->getTableFields(array($table_name), false);
        $table_fields = $result[$table_name];
        $primary = '';
        foreach ($table_fields as $table_field => $field_data) {
            if ($field_data->Key == 'PRI') {
                $primary = $table_field;
            }
        }
        //prepare the pagination
        $option = 'com_chronoforms';
        $limit = $mainframe->getUserStateFromRequest($option . '.limit', 'limit', $mainframe->getCfg('list_limit'), 'int');
        $limitstart = $mainframe->getUserStateFromRequest($option . '.limitstart', 'limitstart', 0, 'int');
        // count entries
        $database->setQuery("SELECT count(*) FROM `" . $table_name . "`");
        $total = $database->loadResult();
        jimport('joomla.html.pagination');
        $pageNav = new JPagination($total, $limitstart, $limit);
        //load the data
        $query = "SELECT * FROM `" . $table_name . "`";
        if (!empty($primary)) {
            $query .= " ORDER BY " . $primary;
        }
        $query .= " LIMIT {$pageNav->limitstart},{$pageNav->limit}";
        $database->setQuery($query);
        $table_data = $database->loadObjectList();
        HTML_Admin_ChronoForms::list_data($table_name, $table_fields, $table_data, $pageNav);
    } else {
        JError::raiseWarning(100, "No tables were selected.");
        $mainframe->redirect("index.php?option=com_chronoforms");
    }
}