public function __construct($wpdb)
 {
     parent::__construct($wpdb);
     $db = new \WordPress\Tabulate\DB\Database($this->wpdb);
     $this->table_names = $db->get_table_names();
     $this->template = new \WordPress\Tabulate\Template('grants.html');
 }
Beispiel #2
0
 public function index()
 {
     $template = new \WordPress\Tabulate\Template('home.html');
     $db = new \WordPress\Tabulate\DB\Database($this->wpdb);
     $template->tables = $db->get_tables();
     $template->views = $db->get_views();
     return $template->render();
 }
 /**
  * @testdox Point colums are exported as WKT.
  * @test
  */
 public function point_wkt()
 {
     $this->wpdb->query('DROP TABLE IF EXISTS `point_export_test`');
     $this->wpdb->query('CREATE TABLE `point_export_test` (' . ' id INT(10) AUTO_INCREMENT PRIMARY KEY,' . ' title VARCHAR(100) NOT NULL,' . ' geo_loc POINT NULL DEFAULT NULL' . ');');
     $db = new WordPress\Tabulate\DB\Database($this->wpdb);
     $test_table = $db->get_table('point_export_test');
     $test_table->save_record(array('title' => 'Test', 'geo_loc' => 'POINT(10.1 20.2)'));
     $filename = $test_table->export();
     $this->assertFileExists($filename);
     $csv = '"ID","Title","Geo Loc"' . "\r\n" . '"1","Test","POINT(10.1 20.2)"' . "\r\n";
     $this->assertEquals($csv, file_get_contents($filename));
     // Check nullable.
     $test_table->save_record(array('title' => 'Test 2', 'geo_loc' => null));
     $filename2 = $test_table->export();
     $this->assertFileExists($filename2);
     $csv2 = '"ID","Title","Geo Loc"' . "\r\n" . '"1","Test","POINT(10.1 20.2)"' . "\r\n" . '"2","Test 2",""' . "\r\n";
     $this->assertEquals($csv2, file_get_contents($filename2));
 }
 public function __construct($wpdb)
 {
     parent::__construct($wpdb);
     $db = new \WordPress\Tabulate\DB\Database($this->wpdb);
     $this->selected_tables = array();
     foreach ($db->get_tables() as $table) {
         $this->tables[] = $table;
         // If any tables are requested, only show them
         if (isset($_GET['tables']) && count($_GET['tables']) > 0) {
             if (isset($_GET['tables'][$table->get_name()])) {
                 $this->selected_tables[$table->get_name()] = $table;
             }
         } else {
             // Otherwise, default to all linked tables
             $referenced = count($table->get_referencing_tables()) > 0;
             $referencing = count($table->get_referenced_tables()) > 0;
             if ($referenced || $referencing) {
                 $this->selected_tables[$table->get_name()] = $table;
             }
         }
     }
 }
 public function index()
 {
     $template = new \WordPress\Tabulate\Template('home.html');
     $template->title = 'Tabulate';
     $db = new \WordPress\Tabulate\DB\Database($this->wpdb);
     // Tables.
     $transient_name = TABULATE_SLUG . 'home_table_list';
     $table_info = get_transient($transient_name);
     if (!$table_info) {
         $table_info = array();
         foreach ($db->get_tables() as $table) {
             $table_info[] = array('title' => $table->get_title(), 'count' => $table->count_records(), 'url' => $table->get_url());
         }
         set_transient($transient_name, $table_info, MINUTE_IN_SECONDS * 5);
     }
     $template->tables = $table_info;
     // Views.
     $template->views = $db->get_views();
     // Reports.
     $reports_table = $db->get_table(\WordPress\Tabulate\DB\Reports::reports_table_name());
     $template->reports = $reports_table ? $reports_table->get_records(false) : array();
     return $template->render();
 }
 /**
  * @testdox It should be possible to provide a value for a (non-autoincrementing) PK.
  * @test
  */
 public function timestamp_pk()
 {
     $this->wpdb->query('DROP TABLE IF EXISTS `provided_pk`');
     $sql = "CREATE TABLE `provided_pk` ( " . "  `code` VARCHAR(10) NOT NULL PRIMARY KEY, " . "  `title` VARCHAR(100) " . ");";
     $this->wpdb->query($sql);
     $db = new WordPress\Tabulate\DB\Database($this->wpdb);
     $tbl = $db->get_table('provided_pk');
     $rec = $tbl->save_record(array('code' => 'TEST'));
     $this->assertEquals('TEST', $rec->get_primary_key());
 }
Beispiel #7
0
 public function delete($args)
 {
     $db = new \WordPress\Tabulate\DB\Database($this->wpdb);
     $table = $db->get_table($args['table']);
     $record_ident = isset($args['ident']) ? $args['ident'] : false;
     if (!$record_ident) {
         wp_redirect($table->get_url());
         exit;
     }
     // Ask for confirmation.
     if (!isset($_POST['confirm_deletion'])) {
         $template = new \WordPress\Tabulate\Template('record/delete.html');
         $template->table = $table;
         $template->record = $table->get_record($record_ident);
         return $template->render();
     }
     // Delete the record.
     try {
         $this->wpdb->query('BEGIN');
         $table->delete_record($record_ident);
         $this->wpdb->query('COMMIT');
     } catch (\Exception $e) {
         $template = $this->get_template($table);
         $template->record = $table->get_record($record_ident);
         $template->add_notice('error', $e->getMessage());
         return $template->render();
     }
     wp_redirect($table->get_url());
     exit;
 }