[freeside-commits] branch master updated. e223601ee73eee830729052d221b2af3d0d2233b

Ivan ivan at 420.am
Mon Apr 3 21:11:03 PDT 2017


The branch, master has been updated
       via  e223601ee73eee830729052d221b2af3d0d2233b (commit)
      from  180ffda0e895cafc60d1fee899196cdd6c898d5e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e223601ee73eee830729052d221b2af3d0d2233b
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Apr 3 21:11:00 2017 -0700

    start of wordpress plugin, RT#75279

diff --git a/fs_selfservice/wordpress/freeside_selfservice.php b/fs_selfservice/wordpress/freeside_selfservice.php
new file mode 100644
index 0000000..2041eed
--- /dev/null
+++ b/fs_selfservice/wordpress/freeside_selfservice.php
@@ -0,0 +1,71 @@
+<?php
+/*
+Plugin Name: Freeside signup and self-service plugin
+Plugin URI:  http://freeside.biz/freeside
+Description: Call the Freeside signup and self-service APIs from within Wordpress
+Version:     0.20170403
+Author:      Freeside Internet Services, Inc.
+Author URI:  https://freeside.biz/freeside/
+License:     GPL3
+License URI: https://www.gnu.org/licenses/gpl-3.0.html
+Text Domain: freeside_selfserivce
+Domain Path: /languages
+*/
+
+add_action('admin_init', 'freeside_admin_init' );
+
+function freeside_admin_init {
+  register_setting( 'misc', 'freeside_selfservice_url', 'https://freeside.server:8080' );
+}
+
+function flatten($hash) {
+  if ( !is_array($hash) ) return $hash;
+  $flat = array();
+
+  array_walk($hash, function($value, $key, &$to) { 
+    array_push($to, $key, $value);
+  }, $flat);
+
+  foreach ($hash as $key => $value) {
+    $flat[] = $key;
+    $flat[] = $value;
+  }
+
+  return($flat);
+}
+
+class FreesideSelfService  {
+
+    //Change this to match the location of your selfservice xmlrpc.cgi or daemon
+    #var $URL = 'https://localhost/selfservice/xmlrpc.cgi';
+    # XXX freeide_selfservice_url config value
+    #var $URL = 'http://localhost/selfservice/xmlrpc.cgi';
+    var $URL = get_opgion('freeside_selfservice_url');
+
+    function FreesideSelfService() {
+      $this;
+    }
+
+    public function __call($name, $arguments) {
+
+        error_log("[FreesideSelfService] $name called, sending to ". $this->URL);
+
+        $request = xmlrpc_encode_request("FS.ClientAPI_XMLRPC.$name", flatten($arguments[0]));
+        $context = stream_context_create( array( 'http' => array(
+            'method' => "POST",
+            'header' => "Content-Type: text/xml",
+            'content' => $request
+        )));
+        $file = file_get_contents($this->URL, false, $context);
+        $response = xmlrpc_decode($file);
+        if (xmlrpc_is_fault($response)) {
+            trigger_error("[FreesideSelfService] XML-RPC communication error: $response[faultString] ($response[faultCode])");
+        } else {
+            //error_log("[FreesideSelfService] $response");
+            return $response;
+        }
+    }
+
+}
+
+?>

-----------------------------------------------------------------------

Summary of changes:
 .../wordpress/freeside_selfservice.php             |   49 +++++++++-----------
 1 file changed, 23 insertions(+), 26 deletions(-)
 copy ng_selfservice/freeside.class.php => fs_selfservice/wordpress/freeside_selfservice.php (63%)




More information about the freeside-commits mailing list