-
-
Save cwynd/af5bb38d2b2c27f43de160cb227f62c5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/awk -f | |
BEGIN { | |
FS=","; | |
ORS=""; | |
} | |
{ | |
for(i=1; i <= NF; i++) | |
{ | |
if ( index($i, "id") != 0 || index($i,"code") != 0 ) | |
print $i","; | |
else if ( index($i,"title") != 0 ) | |
print "\"title\":\"My Registry Title\","; | |
else if ( index($i,"{") != 0 ) | |
print "},{\"field"i"\":\"""value"i"\","; | |
else if (i < NF) | |
print "\"field"i"\":\"""value"i"\","; | |
else | |
print "\"field"i"\":\"""value"i"\"}"; | |
} | |
} | |
END { | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if ($_SERVER['REQUEST_METHOD'] == "POST"){ | |
$post_id = wp_insert_post(array ( | |
'post_type' => 'gwc_registry', | |
'post_title' => 'post number one', | |
'post_status' => 'publish', | |
'comment_status' => 'closed', | |
'ping_status' => 'closed', | |
)); | |
exit(); | |
} | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//------------------------DEBUG AND OTHER UTILITIES------------------------// | |
function var_dump_ret($mixed = null) { | |
ob_start(); | |
var_dump($mixed); | |
$content = ob_get_contents(); | |
ob_end_clean(); | |
return $content; | |
} | |
function my_dump($thing){ | |
$file = '/tmp/my_dump.txt'; | |
file_put_contents($file, var_dump_ret($thing),FILE_APPEND); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @package Gist Info | |
* | |
* Manage create read update (not really delete) registry CPTs | |
*/ | |
class My_Registry { | |
private $id; | |
private $registryno; | |
private $title;//CPT post title | |
/** | |
plus 25 domain-specific attributes | |
*/ | |
private $registry_cpt_id; | |
function __construct( $data ){ | |
$this->id = $this->_sanitize( $data["id"] ); | |
$this->registryno = $this->_sanitize( $data["registryno"] ); | |
$this->title = $this->_sanitize( $data["title"] ); | |
/** | |
plus 25 domain-specific attributes processing | |
*/ | |
$this->registry_cpt_id = false; // POST_ID, not registryno or id OR false | |
} | |
function create_or_update(){ | |
$post_id = $this->_exists(); | |
if ( empty($post_id) ){ | |
$post_id = wp_insert_post(array ( | |
'post_type' => 'gwc_registry', | |
'post_title' => $this->title, | |
'post_status' => 'publish', | |
'comment_status' => 'closed', | |
'ping_status' => 'closed' | |
)); | |
} else { | |
// TODO update existing post title here if necessary | |
} | |
// do we now have a post to work with? | |
if ( ! empty($post_id) ){ | |
$this->registry_cpt_id = $post_id; | |
$this->_update_meta(); | |
} | |
} | |
private function _exists(){ | |
$params = array( | |
'posts_per_page' => 1,//only looking for one hit | |
'post_type' => 'gwc_registry', | |
'meta_key' => 'registry_id', | |
'meta_value' => $this->id | |
); | |
$reg_query = new WP_Query($params); | |
if ($reg_query->have_posts()) { | |
$reg_query->the_post(); | |
$post_id = get_the_id(); | |
wp_reset_postdata(); | |
return $post_id; | |
} | |
return false; | |
} | |
private function _sanitize($value){ | |
return filter_var($value, FILTER_SANITIZE_STRING); | |
} | |
private function _sanitize_number($value){ | |
return filter_var($value, FILTER_SANITIZE_NUMBER_INT); | |
} | |
private function _update_meta(){ | |
if ( empty($this->registry_cpt_id) ) | |
return false; | |
// my_dump(">>>" . $this->registry_cpt_id); | |
$cpt_meta_fields = (array)$this; | |
foreach ($cpt_meta_fields as $key => $value){ | |
// my_dump((explode("\0", $key))[2] . ' ' . $value); | |
/** | |
$key here flanges up to the wordpress meta field keys | |
when exploded & 'registry_' is prepended | |
**/ | |
$clean_key = (explode("\0", $key))[2]; | |
$registry_meta_key = 'registry_' . $clean_key; | |
// my_dump($registry_meta_key . " > " . $value); | |
/** | |
remove processing of some domain-specific fields | |
**/ | |
if ( gettype($value) == "boolean" ){ | |
//checkboxes | |
$bool_value = $value ? 'yes' : 'no'; | |
$result = $this->_write_meta_value( $this->registry_cpt_id, $registry_meta_key, $bool_value ); | |
} else { | |
//remaining text fields | |
//we dont parse dates unless something in the future requires us to | |
$result = $this->_write_meta_value( $this->registry_cpt_id, $registry_meta_key, $value ); | |
} | |
// my_dump($result); | |
} | |
} | |
private function _write_meta_value( $post_id, $meta_key, $meta_value){ | |
if ( ! isset($post_id, $meta_key, $meta_value) ) | |
return null; //the only value update_post_metas will NOT return | |
// my_dump($post_id . "| " . $meta_key . "| " . $meta_value); | |
return update_post_meta( $post_id, $meta_key, $meta_value ); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @package Gist Info | |
*/ | |
include_once( get_stylesheet_directory() . '/include/My_Registry.php' ); | |
//we might be getting POSTed json data from the back end sync | |
if ($_SERVER['REQUEST_METHOD'] == "POST"){ | |
$json = file_get_contents('php://input'); | |
if ($json){ | |
$data = json_decode($json, true); | |
$registry = new My_Registry($data); | |
$registry->create_or_update(); | |
unset($registry); | |
exit(); | |
} | |
} | |
do_action( 'get_header'); | |
get_template_part('partials/header', ''); | |
?> | |
<!-- HTML ARCHIVE GET rendering --> | |
<?php | |
do_action( 'get_footer'); | |
get_template_part('partials/footer', ''); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"id":"378","field2":"value2","code":"KJ","title":"My Registry Title","field5":"value5","field6":"value6","field7":"value7","field8":"value8","field9":"value9","field10":"value10","field11":"value11","field12":"value12","field13":"value13","field14":"value14","field15":"value15","field16":"value16","field17":"value17","field18":"value18","field19":"value19","field20":"value20","field21":"value21","field22":"value22","field23":"value23","field24":"value24","field25":"value25","field26":"value26","field27":"value27","field28":"value28"},{"field29":"value29","field30":"value30","field31":"value31","field32":"value32","field33":"value33","field34":"value34","field35":"value35","field36":"value36"},{"field37":"value37","field38":"value38","field39":"value39","field40":"value40","field41":"value41","field42":"value42","field43":"value43","field44":"value44"},{"field45":"value45","field46":"value46","field47":"value47","field48":"value48","field49":"value49","field50":"value50","field51":"value51","field52":"value52"},{"field53":"value53","field54":"value54","field55":"value55","field56":"value56","field57":"value57","field58":"value58","field59":"value59","field60":"value60"},{"field61":"value61","field62":"value62","field63":"value63","field64":"value64","field65":"value65","field66":"value66","field67":"value67","field68":"value68"},{"field69":"value69","field70":"value70","field71":"value71","field72":"value72","field73":"value73","field74":"value74","field75":"value75","field76":"value76"},{"field77":"value77","field78":"value78","field79":"value79","field80":"value80","field81":"value81","field82":"value82","field83":"value83","field84":"value84"},{"field85":"value85","field86":"value86","field87":"value87","field88":"value88","field89":"value89","field90":"value90","field91":"value91","field92":"value92"},{"field93":"value93","field94":"value94","field95":"value95","field96":"value96","field97":"value97","field98":"value98","field99":"value99","field100":"value100"},{"field101":"value101","field102":"value102","field103":"value103","field104":"value104","field105":"value105","field106":"value106","field107":"value107","field108":"value108"},{"field109":"value109","field110":"value110","field111":"value111","field112":"value112","field113":"value113","field114":"value114","field115":"value115","field116":"value116"},{"field117":"value117","field118":"value118","field119":"value119","field120":"value120","field121":"value121","field122":"value122","field123":"value123","field124":"value124"},{"field125":"value125","field126":"value126","field127":"value127","field128":"value128","field129":"value129","field130":"value130","field131":"value131","field132":"value132"},{"field133":"value133","field134":"value134","field135":"value135","field136":"value136","field137":"value137","field138":"value138","field139":"value139","field140":"value140"},{"field141":"value141","field142":"value142","field143":"value143","field144":"value144","field145":"value145","field146":"value146","field147":"value147","field148":"value148"},{"field149":"value149","field150":"value150","field151":"value151","field152":"value152","field153":"value153","field154":"value154","field155":"value155","field156":"value156"},{"field157":"value157","field158":"value158","field159":"value159","field160":"value160","field161":"value161","field162":"value162","field163":"value163","field164":"value164"},{"field165":"value165","field166":"value166","field167":"value167","field168":"value168","field169":"value169","field170":"value170","field171":"value171","field172":"value172"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"id":"409","field2":"value2","code":"EG","title":"My Registry Title","field5":"value5","field6":"value6","field7":"value7","field8":"value8","field9":"value9","field10":"value10","field11":"value11","field12":"value12","field13":"value13","field14":"value14","field15":"value15","field16":"value16","field17":"value17","field18":"value18","field19":"value19","field20":"value20","field21":"value21","field22":"value22","field23":"value23","field24":"value24","field25":"value25","field26":"value26","field27":"value27","field28":"value28"},{"field29":"value29","field30":"value30","field31":"value31","field32":"value32","field33":"value33","field34":"value34","field35":"value35","field36":"value36"},{"field37":"value37","field38":"value38","field39":"value39","field40":"value40","field41":"value41","field42":"value42","field43":"value43","field44":"value44"},{"field45":"value45","field46":"value46","field47":"value47","field48":"value48","field49":"value49","field50":"value50","field51":"value51","field52":"value52"},{"field53":"value53","field54":"value54","field55":"value55","field56":"value56","field57":"value57","field58":"value58","field59":"value59","field60":"value60"},{"field61":"value61","field62":"value62","field63":"value63","field64":"value64","field65":"value65","field66":"value66","field67":"value67","field68":"value68"},{"field69":"value69","field70":"value70","field71":"value71","field72":"value72","field73":"value73","field74":"value74","field75":"value75","field76":"value76"},{"field77":"value77","field78":"value78","field79":"value79","field80":"value80","field81":"value81","field82":"value82","field83":"value83","field84":"value84"},{"field85":"value85","field86":"value86","field87":"value87","field88":"value88","field89":"value89","field90":"value90","field91":"value91","field92":"value92"},{"field93":"value93","field94":"value94","field95":"value95","field96":"value96","field97":"value97","field98":"value98","field99":"value99","field100":"value100"},{"field101":"value101","field102":"value102","field103":"value103","field104":"value104","field105":"value105","field106":"value106","field107":"value107","field108":"value108"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* | |
* @package | |
*/ | |
//we might be getting POSTed json data from the back end sync | |
if ($_SERVER['REQUEST_METHOD'] == "POST"){ | |
$json = file_get_contents('php://input'); | |
if ($json){ | |
$data = json_decode($json, true); | |
/** | |
test to see if a straight linear POST works, | |
substantially the same code that works in the CPT admin update meta | |
**/ | |
$post_id = wp_insert_post(array ( | |
'post_type' => 'gwc_registry', | |
'post_title' => $data['title'], | |
'post_status' => 'publish', | |
'comment_status' => 'closed', | |
'ping_status' => 'closed' | |
)); | |
/** | |
get_registry_fields() returns a keyed array of all fields | |
**/ | |
$registry_meta_fields = get_registry_fields(); | |
foreach ($registry_meta_fields as $key => $value){ | |
$field_meta_key = "registry_" . $key; | |
update_post_meta( $post_id, $field_meta_key, $data[ $key ] ); | |
} | |
exit(); | |
} | |
} | |
do_action( 'get_header'); | |
get_template_part('partials/header', ''); | |
?> | |
<!-- archive page rendering --> | |
<?php | |
do_action( 'get_footer'); | |
get_template_part('partials/footer', ''); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment