Revision: 46137
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 13, 2011 11:47 by stewartduffy
Initial Code
<?php
/*
Template Name: Import 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="in_file">In File</label><br />
<input type="text" name="in_file" id="in_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="in_submit" />
</form>
<?php
if (isset($_POST['in_submit'])) {
$in_file = $_POST['in_file'];
$use_pod = $_POST['use_pod'];
import($in_file, $use_pod);
}
?>
<?php
function import($in_file, $use_pod){
//$in_file = 'file.csv'; //This would open file.csv in the blog root.
//$use_pod = 'newsletters'; //The name of the pod to use.
$import = "csv"; // Can be "php" or "csv" (default: php)
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
$php_data = pods_csv_import($in_file, ',', 5000);
$Record = new PodAPI($use_pod, 'php');
$Record->import($php_data);
echo "<pre>\n";
var_dump($php_data);
echo "</pre>\n";
else: //User isn't logged in or an administrator
include(get_404_template()); //Nothing to see here, move along...
exit(); //Exit.
endif;
}
function pods_csv_import($filename, $delimiter = ',', $max_line_len = 1000) {
$first_row = true;
if (false == ($handle = fopen($filename, "r"))) die("<p>Could not open $filename</p>");
while (($data = fgetcsv($handle, $max_line_len, $delimiter)) !== FALSE) {
if ($first_row) {
$field_names = $data;
$first_row = false;
} else {
foreach ($field_names as $key => $field) {
if ($data[$key] <> ($new_data = preg_replace('/^array\((.*)\)$/is', '$1', $data[$key]))) {
$new_data = explode(",",trim($new_data));
array_walk($new_data, 'comma_trans');
$data[$key] = $new_data;
}
$tmp[$field] = $data[$key];
}
$out[] = $tmp;
}
}
fclose($handle);
return $out;
}
function comma_trans(&$item)
{
$item = strtr($item, ',', ','); //Translates HTML , to commas
}
?>
Initial URL
Initial Description
Initial Title
Wordpress, PODS CMS data import template
Initial Tags
php, wordpress
Initial Language
PHP