Revision: 46136
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 13, 2011 11:46 by stewartduffy
Initial Code
<?php
/*
Template Name: Export Pods Data
*/
?>
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
<form action="<?php echo curPageURL(); ?>" method="post">
<label for="out_file">Output File</label><br />
<input type="text" name="out_file" id="out_file" /><br />
<label for="use_pod">Pod to Export</label><br />
<input type="text" name="use_pod" id="use_pod" /><br />
<input type="submit" name="export_submit" />
</form>
<?php
if (isset($_POST['export_submit'])) {
$out_file = $_POST['out_file'];
$use_pod = $_POST['use_pod'];
export($out_file, $use_pod);
}
?>
<?php
function export($out_file, $use_pod){
$export = "csv"; // Can be "php" or "csv" (default: php)
$Record = new PodAPI($use_pod, $export);
$data = $Record->export();
global $user_ID , $user_level;
get_currentuserinfo(); //Get the information about the current user.
if ($user_ID && 10 == $user_level) { //Check to see if the user is logged in and is an administrator
if (($fp = fopen($out_file, 'w')) === FALSE) { //Attempt to open $out_file for writing and check for success.
die ("Could not open $out_file. Export aborted."); //Fail if unable to.
}
if ('csv' == strtolower($export)) { //If a CSV file is desired
$data_keys = array_keys($data[0]); //Get the pod column labels
fputcsv($fp, $data_keys); //Write the column labels as the first line of the CSV file.
foreach ($data as $line) { //Loop through the data line by line
foreach ($line as &$field) { //Loop through each line of data by field
if (is_array($field)) { //If the field is a PICK column
array_walk($field, 'comma_trans'); //Translate any commas in the field to HTML ","
$field = 'array(' . implode(', ', $field) . ')'; //Implode the items into a comma separated list wrapped in array().
}
}
fputcsv($fp, $line); //Write the line to the file.
}
} else { //Otherwise, output the data as PHP
fwrite($fp, var_export($data, TRUE));
}
fclose($fp); //Close the file
echo "Export complete. <a href='$out_file'>Open $out_file</a><br /><br />\n";
} else { //User doesn't have permission
include(get_404_template()); //Nothing to see here, move along...
exit(); //Exit.
}
}
function comma_trans(&$item)
{
$item = strtr($item, ',', ','); //Translates any commas into their HTML entity.
}
?>
Initial URL
Initial Description
1) name the file something like "template-pods-export.php" 2) create a new Pods Page & choose the newly created template 3) goto your worpress URL/export 4) enter filename.csv & pod name you want to export. 5) Submit. 6) Away Laughing
Initial Title
Wordpress, PODS CMS data export template
Initial Tags
php
Initial Language
PHP