function export_csv($window)
{
    global $statusbar;
    $filename = "todo_items.csv";
    $filename = wb_sys_dlg_save($window, "Export CSV", "CSV files (*.csv, *.txt)*.csv;*.txtAll files (*.*)*.*" . "", null, $filename);
    if (!$filename) {
        return;
    }
    $data = db_get_data("item", null, "");
    $csv = "";
    foreach ($data as $entry) {
        $nelem = count($entry);
        for ($i = 1; $i < $nelem; $i++) {
            $value = $entry[$i];
            $comma = $i < $nelem - 1 ? "," : "";
            $csv .= is_numeric(trim($value)) ? trim($value) . $comma : "\"" . addcslashes($value, "..'`\"\r\n\t") . "\"{$comma}";
        }
        $csv .= "\r\n";
    }
    file_put_contents($filename, $csv);
    wb_set_text($statusbar, basename($filename) . " exported successfully.");
}
 function show_save_dialog($title)
 {
     // get file extension
     $ext = trim($this->get_ext());
     // set filter
     $file_filter = array();
     if ($ext != '') {
         $file_filter[] = array("{$ext} file", "*.{$ext}");
     }
     $file_filter[] = array('All files', '*.*');
     // get filename
     $filename = $this->get_filename();
     // show save dialog
     $filepath = wb_sys_dlg_save($this->wb_parent_window, $title, $file_filter, '', $filename);
     if (!empty($filepath) and $filepath != '') {
         // set the path of the new file
         $this->set_target_file($filepath);
         return true;
     } else {
         return false;
     }
 }