root/form/export.php

Revision 277, 1.9 kB (checked in by kevin, 9 months ago)

First commit of form builder plugin

Line 
1 <?php
2
3 /*
4  * Elgg Forms
5  * Kevin Jardine
6  * Radagast Solutions
7  * http://radagast.biz
8  *
9  * The main function for exporting form data.
10  *
11  */
12  
13 // Load Elgg framework
14 @require_once("../../includes.php");
15     
16 // Define context
17 define("context","form");
18  
19 if (isloggedin() && run("users:flags:get", array("admin", $_SESSION['userid']))) {
20     $form_id = optional_param('id',0,PARAM_INT);
21     $out = fopen('php://output', 'w');
22     header('Content-type: text/plain');
23     $data = get_records('form_data','form_id',$form_id,"ident ASC");
24     if ($data) {
25         foreach ($data AS $item) {
26             fputcsv($out,(array) $item);
27         }
28     }
29 } else {
30     print(__gettext("You need to be logged in as a site administrator to access this page."));
31 }
32
33 // Deal with PHPs (eg. 4.x that don't have fputcsv
34
35 if (!function_exists('fputcsv')) {
36  
37   function fputcsv(&$handle, $fields = array(), $delimiter = ',', $enclosure = '"') {
38     $str = '';
39     $escape_char = '\\';
40     foreach ($fields as $value) {
41       if (strpos($value, $delimiter) !== false ||
42           strpos($value, $enclosure) !== false ||
43           strpos($value, "\n") !== false ||
44           strpos($value, "\r") !== false ||
45           strpos($value, "\t") !== false ||
46           strpos($value, ' ') !== false) {
47         $str2 = $enclosure;
48         $escaped = 0;
49         $len = strlen($value);
50         for ($i=0;$i<$len;$i++) {
51           if ($value[$i] == $escape_char) {
52             $escaped = 1;
53           } else if (!$escaped && $value[$i] == $enclosure) {
54             $str2 .= $enclosure;
55           } else {
56             $escaped = 0;
57           }
58           $str2 .= $value[$i];
59         }
60         $str2 .= $enclosure;
61         $str .= $str2.$delimiter;
62       } else {
63         $str .= $value.$delimiter;
64       }
65     }
66     $str = substr($str,0,-1);
67     $str .= "\n";
68     return fwrite($handle, $str);
69   }
70  
71
72  
73   
74 }
75
76 ?>
Note: See TracBrowser for help on using the browser.