/**
  * Returns all clients accessible with the current api key
  * 
  * @return ArrayList[CMClient]
  * @throws CMError 
  */
 function Clients()
 {
     $interface = new CS_REST_General($this->apiKey);
     $result = $interface->get_clients();
     $response = $this->parseResult($result);
     // Save each client
     $clients = new ArrayList();
     foreach ($response as $clientData) {
         $clients->push(new CMClient($this->apiKey, $clientData));
     }
     return $clients;
 }
/**
 *  Get List from Campaign Monitor
 */
function cspv4_get_campaignmonitor_clients($apikey = null)
{
    global $seed_cspv4;
    extract($seed_cspv4);
    $o = $seed_cspv4;
    $clients = array();
    if ($o['emaillist'] == 'campaignmonitor' || defined('DOING_AJAX') && DOING_AJAX && isset($_GET['action']) && $_GET['action'] == 'seed_cspv4_campaingmonitor_client') {
        $clients = maybe_unserialize(get_transient('seed_cspv4_campaignmonitor_clients'));
        if (empty($clients)) {
            //var_dump('miss');
            if (class_exists('CS_REST_General')) {
                //trigger_error("Duplicate: Another Campaign Moniter client library is already in scope.", E_USER_WARNING);
            } else {
                require_once SEED_CSPV4_PLUGIN_PATH . 'extentions/campaignmonitor/campaign_monitor/csrest_general.php';
            }
            if (!isset($apikey) && isset($campaignmonitor_api_key)) {
                $apikey = $campaignmonitor_api_key;
            }
            if (empty($apikey)) {
                return array();
            }
            $api = new CS_REST_General($apikey);
            $response = $api->get_clients();
            if ($response->was_successful()) {
                foreach ($response->response as $k => $v) {
                    $clients[$v->ClientID] = $v->Name;
                }
                if (!empty($clients)) {
                    set_transient('seed_cspv4_campaignmonitor_clients', serialize($clients), 86400);
                }
            } else {
                $clients['false'] = __("Unable to load Campaign Monitor clients", 'seedprod');
            }
        }
    }
    return $clients;
}
Пример #3
0
 /**
  * Processes campaignmonitor client field. Called by AJAX script.
  */
 public static function field_campaignmonitor_client_ajax()
 {
     if (!class_exists(CS_REST_General)) {
         require CH_Manager::$plugin_dir . 'lib/campaign_monitor/csrest_general.php';
     }
     $api_key = $_POST['apikey'];
     $cmapi = new CS_REST_General($api_key);
     $clients = $cmapi->get_clients();
     if (!$clients->was_successful()) {
         die;
     }
     $value = '';
     if (!empty($_POST['value'])) {
         $value = $_POST['value'];
     }
     $output = '';
     $clients = $clients->response;
     if (is_array($clients)) {
         foreach ($clients as $client) {
             $selected = '';
             if ($client->ClientID == $value) {
                 $selected = ' selected="selected"';
             }
             $output .= '<option value="' . esc_attr($client->ClientID) . '"' . $selected . '>' . esc_html(trim($client->Name)) . ' </option>';
         }
     }
     echo $output;
     die;
 }
Пример #4
0
    public static function edit_page()
    {
        ?>
        <style>
            .campaignmonitor_col_heading{padding-bottom:2px; border-bottom: 1px solid #ccc; font-weight: bold;}
            .campaignmonitor_field_cell {padding: 6px 17px 0 0; margin-right:15px;}
            .left_header{float:left; width:200px;}
            .margin_vertical_10{margin: 10px 0;}
            #campaignmonitor_resubscribe_warning{padding-left: 5px; padding-bottom:4px; font-size: 10px;}
            .gfield_required{color:red;}
            .feeds_validation_error{ background-color:#FFDFDF;}
            .feeds_validation_error td{ margin-top:4px; margin-bottom:6px; padding-top:6px; padding-bottom:6px; border-top:1px dotted #C89797; border-bottom:1px dotted #C89797}
        </style>
        <script type="text/javascript">
            var form = Array();
        </script>
        <div class="wrap">
            <img alt="<?php 
        _e("Campaign Monitor", "gravityformsmailchimp");
        ?>
" style="margin: 15px 7px 0pt 0pt; float: left;" src="<?php 
        echo self::get_base_url();
        ?>
/images/campaignmonitor_wordpress_icon_32.png"/>
            <h2><?php 
        _e("Campaign Monitor Feed", "gravityformsmailchimp");
        ?>
</h2>

        <?php 
        //ensures valid credentials were entered in the settings page
        if (!self::is_valid_key()) {
            ?>
            <tr><td colspan="2"><?php 
            echo sprintf(__("We are unable to login to Campaign Monitor with the provided API key. Please make sure you have entered a valid API key in the %sSettings Page%s", "gravityformscampaignmonitor"), "<a href='?page=gf_settings&addon=Email+Marketing'>", "</a>");
            ?>
</td></tr>
            <?php 
            return;
        }
        //getting setting id (0 when creating a new one)
        $id = !empty($_POST["campaignmonitor_setting_id"]) ? $_POST["campaignmonitor_setting_id"] : absint($_GET["id"]);
        $config = empty($id) ? array("is_active" => true) : GFCampaignMonitorData::get_feed($id);
        if (!isset($config["meta"])) {
            $config["meta"] = array();
        }
        //updating meta information
        if (rgpost("gf_campaignmonitor_submit")) {
            list($client_id, $client_name) = explode("|:|", stripslashes($_POST["gf_campaignmonitor_client"]));
            $config["meta"]["client_id"] = $client_id;
            $config["meta"]["client_name"] = $client_name;
            list($list_id, $list_name) = explode("|:|", stripslashes($_POST["gf_campaignmonitor_list"]));
            $config["meta"]["contact_list_id"] = $list_id;
            $config["meta"]["contact_list_name"] = $list_name;
            $config["form_id"] = absint($_POST["gf_campaignmonitor_form"]);
            $merge_vars = self::get_custom_fields($list_id);
            $field_map = array();
            foreach ($merge_vars as $var) {
                $field_name = "campaignmonitor_map_field_" . self::get_field_key($var);
                $mapped_field = stripslashes($_POST[$field_name]);
                if (!empty($mapped_field)) {
                    $field_map[self::get_field_key($var)] = $mapped_field;
                }
            }
            $config["meta"]["field_map"] = $field_map;
            $config["meta"]["resubscribe"] = rgpost("campaignmonitor_resubscribe") ? true : false;
            $config["meta"]["optin_enabled"] = rgpost("campaignmonitor_optin_enable") ? true : false;
            if ($config["meta"]["optin_enabled"]) {
                $config["meta"]["optin_field_id"] = rgpost("campaignmonitor_optin_field_id");
                $config["meta"]["optin_operator"] = rgpost("campaignmonitor_optin_operator");
                $config["meta"]["optin_value"] = rgpost("campaignmonitor_optin_value");
            }
            $is_valid = !empty($field_map["email"]);
            if ($is_valid) {
                $id = GFCampaignMonitorData::update_feed($id, $config["form_id"], $config["is_active"], $config["meta"]);
                ?>
                <div class="updated fade" style="padding:6px"><?php 
                echo sprintf(__("Feed Updated. %sback to list%s", "gravityformscampaignmonitor"), "<a href='?page=gf_campaignmonitor'>", "</a>");
                ?>
</div>
                <input type="hidden" name="campaignmonitor_setting_id" value="<?php 
                echo $id;
                ?>
"/>
                <?php 
            } else {
                ?>
                <div class="error" style="padding:6px"><?php 
                echo __("Feed could not be updated. Please enter all required information below.", "gravityformscampaignmonitor");
                ?>
</div>
                <?php 
            }
        }
        if (empty($merge_vars)) {
            //getting merge vars from selected list (if one was selected)
            $merge_vars = empty($config["meta"]["contact_list_id"]) ? array() : self::get_custom_fields($config["meta"]["contact_list_id"]);
        }
        ?>
        <form method="post" action="">
            <input type="hidden" name="campaignmonitor_setting_id" value="<?php 
        echo $id;
        ?>
"/>
            <div class="margin_vertical_10">

                <?php 
        self::include_api();
        $api = new CS_REST_General(self::get_api_key());
        //getting all clients
        $response = $api->get_clients();
        if (!$response->was_successful()) {
            _e("Could not get client list from Campaign Monitor.", "gravityformscampaignmonitor");
        } else {
            $clients = $response->response;
            $client_id = self::get_client_id();
            if (empty($client_id)) {
                $client_id = $config["meta"]["client_id"];
                ?>
                        <label for="gf_campaignmonitor_client" class="left_header"><?php 
                _e("Client", "gravityformscampaignmonitor");
                ?>
 <?php 
                gform_tooltip("campaignmonitor_client");
                ?>
</label>
                        <select id="gf_campaignmonitor_client" name="gf_campaignmonitor_client" onchange="SelectClient(jQuery(this).val());">
                            <option value=""><?php 
                _e("Select a Client", "gravityformscampaignmonitor");
                ?>
</option>
                        <?php 
                foreach ($clients as $client) {
                    $selected = $client->ClientID == $client_id ? "selected='selected'" : "";
                    ?>
                            <option value="<?php 
                    echo esc_attr($client->ClientID) . "|:|" . esc_attr($client->Name);
                    ?>
" <?php 
                    echo $selected;
                    ?>
><?php 
                    echo esc_html($client->Name);
                    ?>
</option>
                            <?php 
                }
                ?>
                        </select>
                        &nbsp;&nbsp;
                        <img src="<?php 
                echo self::get_base_url();
                ?>
/images/loading.gif" id="campaignmonitor_wait_client" style="display: none;"/>
                    <?php 
            } else {
                $client_name = "";
                foreach ($clients as $client) {
                    if ($client->ClientID == $client_id) {
                        $client_name = $client->Name;
                    }
                }
                if (empty($client_name)) {
                    echo sprintf(__("Your API Client ID is invalid. You can change it in the %ssettings page%s", "gravityformscampaignmonitor"), "<a href='?page=gf_settings&addon=Campaign+Monitor'>", "</a>");
                    $client_id = 0;
                } else {
                    ?>
                            <input type="hidden" id="gf_campaignmonitor_client" name="gf_campaignmonitor_client" value="<?php 
                    echo $client_id . "|:|" . $client_name;
                    ?>
" />
                            <?php 
                }
            }
        }
        ?>
            </div>

            <div id="gf_campaignmonitor_list_container" class="margin_vertical_10" <?php 
        echo empty($client_id) ? "style='display:none;'" : "";
        ?>
>
                <label for="gf_campaignmonitor_list" class="left_header"><?php 
        _e("Contact list", "gravityformscampaignmonitor");
        ?>
 <?php 
        gform_tooltip("campaignmonitor_contact_list");
        ?>
</label>

                <select id="gf_campaignmonitor_list" name="gf_campaignmonitor_list" onchange="SelectList(jQuery(this).val());">
                    <?php 
        if (!empty($client_id)) {
            $lists = self::get_lists($client_id, $config["meta"]["contact_list_id"]);
            echo $lists;
        }
        ?>
                </select>
            </div>

            <div id="campaignmonitor_form_container" valign="top" class="margin_vertical_10" <?php 
        echo empty($client_id) || empty($config["meta"]["contact_list_id"]) ? "style='display:none;'" : "";
        ?>
>
                <label for="gf_campaignmonitor_form" class="left_header"><?php 
        _e("Gravity Form", "gravityformscampaignmonitor");
        ?>
 <?php 
        gform_tooltip("campaignmonitor_gravity_form");
        ?>
</label>

                <select id="gf_campaignmonitor_form" name="gf_campaignmonitor_form" onchange="SelectForm(jQuery('#gf_campaignmonitor_list').val(), jQuery(this).val());">
                <option value=""><?php 
        _e("Select a Form", "gravityformscampaignmonitor");
        ?>
</option>
                <?php 
        $forms = RGFormsModel::get_forms();
        foreach ($forms as $form) {
            $selected = absint($form->id) == $config["form_id"] ? "selected='selected'" : "";
            ?>
                    <option value="<?php 
            echo absint($form->id);
            ?>
"  <?php 
            echo $selected;
            ?>
><?php 
            echo esc_html($form->title);
            ?>
</option>
                    <?php 
        }
        ?>
                </select>
                &nbsp;&nbsp;
                <img src="<?php 
        echo self::get_base_url();
        ?>
/images/loading.gif" id="campaignmonitor_wait_form" style="display: none;"/>
            </div>

            <div id="campaignmonitor_field_group" valign="top" <?php 
        echo empty($client_id) || empty($config["meta"]["contact_list_id"]) || empty($config["form_id"]) ? "style='display:none;'" : "";
        ?>
>

                <div id="campaignmonitor_field_container" valign="top" class="margin_vertical_10" >
                    <label for="campaignmonitor_fields" class="left_header"><?php 
        _e("Map Fields", "gravityformscampaignmonitor");
        ?>
 <?php 
        gform_tooltip("campaignmonitor_map_fields");
        ?>
</label>

                    <div id="campaignmonitor_field_list">
                    <?php 
        if (!empty($config["form_id"])) {
            //getting list of all Campaign Monitor merge variables for the selected contact list
            if (empty($merge_vars)) {
                $merge_vars = $api->listMergeVars($list_id);
            }
            //getting field map UI
            echo self::get_field_mapping($config, $config["form_id"], $merge_vars);
            //getting list of selection fields to be used by the optin
            $form_meta = RGFormsModel::get_form_meta($config["form_id"]);
            $selection_fields = GFCommon::get_selection_fields($form_meta, rgar($config["meta"], "optin_field_id"));
        }
        ?>
                    </div>
                </div>

                <div id="campaignmonitor_optin_container" valign="top" class="margin_vertical_10">
                    <label for="campaignmonitor_optin" class="left_header"><?php 
        _e("Opt-In Condition", "gravityformscampaignmonitor");
        ?>
 <?php 
        gform_tooltip("campaignmonitor_optin_condition");
        ?>
</label>
                    <div id="campaignmonitor_optin">
                        <table>
                            <tr>
                                <td>
                                    <input type="checkbox" id="campaignmonitor_optin_enable" name="campaignmonitor_optin_enable" value="1" onclick="if(this.checked){jQuery('#campaignmonitor_optin_condition_field_container').show('slow');} else{jQuery('#campaignmonitor_optin_condition_field_container').hide('slow');}" <?php 
        echo rgar($config["meta"], "optin_enabled") ? "checked='checked'" : "";
        ?>
/>
                                    <label for="campaignmonitor_optin_enable"><?php 
        _e("Enable", "gravityformscampaignmonitor");
        ?>
</label>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <div id="campaignmonitor_optin_condition_field_container" <?php 
        echo !rgar($config["meta"], "optin_enabled") ? "style='display:none'" : "";
        ?>
>
                                        <div id="campaignmonitor_optin_condition_fields" <?php 
        echo empty($selection_fields) ? "style='display:none'" : "";
        ?>
>
                                            <?php 
        _e("Export to Campaign Monitor if ", "gravityformscampaignmonitor");
        ?>

                                            <select id="campaignmonitor_optin_field_id" name="campaignmonitor_optin_field_id" class='optin_select' onchange='jQuery("#campaignmonitor_optin_value").html(GetFieldValues(jQuery(this).val(), "", 20));'><?php 
        echo $selection_fields;
        ?>
</select>
                                            <select id="campaignmonitor_optin_operator" name="campaignmonitor_optin_operator" />
                                                <option value="is" <?php 
        echo rgar($config["meta"], "optin_operator") == "is" ? "selected='selected'" : "";
        ?>
><?php 
        _e("is", "gravityformscampaignmonitor");
        ?>
</option>
                                                <option value="isnot" <?php 
        echo rgar($config["meta"], "optin_operator") == "isnot" ? "selected='selected'" : "";
        ?>
><?php 
        _e("is not", "gravityformscampaignmonitor");
        ?>
</option>
                                            </select>
                                            <select id="campaignmonitor_optin_value" name="campaignmonitor_optin_value" class='optin_select'>
                                            </select>

                                        </div>
                                        <div id="campaignmonitor_optin_condition_message" <?php 
        echo !empty($selection_fields) ? "style='display:none'" : "";
        ?>
>
                                            <?php 
        _e("To create an Opt-In condition, your form must have a drop down, checkbox or multiple choice field.", "gravityform");
        ?>
                                        </div>
                                    </div>
                                </td>
                            </tr>
                        </table>
                    </div>

                    <script type="text/javascript">
                        <?php 
        if (!empty($config["form_id"])) {
            ?>
                            //creating Javascript form object
                            form = <?php 
            echo GFCommon::json_encode($form_meta);
            ?>
;

                            //initializing drop downs
                            jQuery(document).ready(function(){
                                var selectedField = "<?php 
            echo str_replace('"', '\\"', rgar($config["meta"], "optin_field_id"));
            ?>
";
                                var selectedValue = "<?php 
            echo str_replace('"', '\\"', rgar($config["meta"], "optin_value"));
            ?>
";
                                SetOptin(selectedField, selectedValue);
                            });
                        <?php 
        }
        ?>
                    </script>
                </div>

                <div id="campaignmonitor_options_container" valign="top" class="margin_vertical_10">
                    <label for="campaignmonitor_options" class="left_header"><?php 
        _e("Options", "gravityformscampaignmonitor");
        ?>
</label>
                    <div id="campaignmonitor_options">
                        <table>
                            <tr><td><input type="checkbox" name="campaignmonitor_resubscribe" id="campaignmonitor_resubscribe" value="1" <?php 
        echo rgar($config["meta"], "resubscribe") ? "checked='checked'" : "";
        ?>
 onclick="var element = jQuery('#campaignmonitor_resubscribe_warning'); if(this.checked){element.show('slow');} else{element.hide('slow');}"/> <?php 
        _e("Resubscribe", "gravityformscampaignmonitor");
        ?>
  <?php 
        gform_tooltip("campaignmonitor_resubscribe");
        ?>
 <br/><span id='campaignmonitor_resubscribe_warning' <?php 
        echo !rgar($config["meta"], "resubscribe") ? "style='display:none'" : "";
        ?>
>(<?php 
        _e("This option will re-subscribe users that have been unsubscribed. Use with caution and only when appropriate.", "gravityformscampaignmonitor");
        ?>
)</span></td></tr>
                        </table>
                    </div>
                </div>

                <div id="campaignmonitor_submit_container" class="margin_vertical_10">
                    <input type="submit" name="gf_campaignmonitor_submit" value="<?php 
        echo empty($id) ? __("Save", "gravityformscampaignmonitor") : __("Update", "gravityformscampaignmonitor");
        ?>
" class="button-primary"/>
                    <input type="button" value="<?php 
        _e("Cancel", "gravityformscampaignmonitor");
        ?>
" class="button" onclick="javascript:document.location='admin.php?page=gf_campaignmonitor'" />
                </div>
            </div>
        </form>
        </div>
        <script type="text/javascript">

            function SelectClient(clientId){
                jQuery("#gf_campaignmonitor_list_container").slideUp();
                SelectList();

                if(!clientId)
                    return;

                jQuery("#campaignmonitor_wait_client").show();

                var mysack = new sack("<?php 
        bloginfo('wpurl');
        ?>
/wp-admin/admin-ajax.php" );
                mysack.execute = 1;
                mysack.method = 'POST';
                mysack.setVar( "action", "gf_select_campaignmonitor_client" );
                mysack.setVar( "gf_select_campaignmonitor_client", "<?php 
        echo wp_create_nonce("gf_select_campaignmonitor_client");
        ?>
" );
                mysack.setVar( "client_id", clientId);
                mysack.encVar( "cookie", document.cookie, false );
                mysack.onError = function() {jQuery("#campaignmonitor_wait_client").hide(); alert('<?php 
        _e("Ajax error while selecting a client", "gravityformscampaignmonitor");
        ?>
' )};
                mysack.runAJAX();

                return true;
            }

            function EndSelectClient(lists){
                if(lists){

                    jQuery("#gf_campaignmonitor_list").html(lists);
                    jQuery("#gf_campaignmonitor_list_container").slideDown();

                }
                else{
                    jQuery("#gf_campaignmonitor_list_container").slideUp();
                    jQuery("#campaignmonitor_list").html("");
                }
                jQuery("#campaignmonitor_wait_client").hide();
            }


            function SelectList(listId){

                EndSelectForm("");

                if(listId){
                    jQuery("#campaignmonitor_form_container").slideDown();
                    jQuery("#gf_campaignmonitor_form").val("");
                }
                else{
                    jQuery("#campaignmonitor_form_container").slideUp();
                }

            }

            function SelectForm(listId, formId){
                if(!formId){
                    jQuery("#campaignmonitor_field_group").slideUp();
                    return;
                }

                jQuery("#campaignmonitor_wait_form").show();
                jQuery("#campaignmonitor_field_group").slideUp();

                var mysack = new sack("<?php 
        bloginfo('wpurl');
        ?>
/wp-admin/admin-ajax.php" );
                mysack.execute = 1;
                mysack.method = 'POST';
                mysack.setVar( "action", "gf_select_campaignmonitor_form" );
                mysack.setVar( "gf_select_campaignmonitor_form", "<?php 
        echo wp_create_nonce("gf_select_campaignmonitor_form");
        ?>
" );
                mysack.setVar( "list_id", listId);
                mysack.setVar( "form_id", formId);
                mysack.encVar( "cookie", document.cookie, false );
                mysack.onError = function() {jQuery("#campaignmonitor_wait_form").hide(); alert('<?php 
        _e("Ajax error while selecting a form", "gravityformscampaignmonitor");
        ?>
' )};
                mysack.runAJAX();

                return true;
            }

            function SetOptin(selectedField, selectedValue){

                //load form fields
                jQuery("#campaignmonitor_optin_field_id").html(GetSelectableFields(selectedField, 20));

                var optinConditionField = jQuery("#campaignmonitor_optin_field_id").val();

                if(optinConditionField){
                    jQuery("#campaignmonitor_optin_condition_message").hide();
                    jQuery("#campaignmonitor_optin_condition_fields").show();

                    jQuery("#campaignmonitor_optin_value").html(GetFieldValues(optinConditionField, selectedValue, 20));

                }
                else{
                    jQuery("#campaignmonitor_optin_condition_message").show();
                    jQuery("#campaignmonitor_optin_condition_fields").hide();
                }

            }

            function EndSelectForm(fieldList, form_meta){

                //setting global form object
                form = form_meta;

                if(fieldList){

                    SetOptin("","");

                    jQuery("#campaignmonitor_field_list").html(fieldList);
                    jQuery("#campaignmonitor_field_group").slideDown();

                }
                else{
                    jQuery("#campaignmonitor_field_group").slideUp();
                    jQuery("#campaignmonitor_field_list").html("");
                }
                jQuery("#campaignmonitor_wait_form").hide();
            }

            function GetFieldValues(fieldId, selectedValue, labelMaxCharacters){
                if(!fieldId)
                    return "";

                var str = "";
                var field = GetFieldById(fieldId);
                if(!field || !field.choices)
                    return "";

                var isAnySelected = false;

                for(var i=0; i<field.choices.length; i++){
                    var fieldValue = field.choices[i].value ? field.choices[i].value : field.choices[i].text;
                    var isSelected = fieldValue == selectedValue;
                    var selected = isSelected ? "selected='selected'" : "";
                    if(isSelected)
                        isAnySelected = true;

                    str += "<option value='" + fieldValue.replace(/'/g, "&#039;") + "' " + selected + ">" + TruncateMiddle(field.choices[i].text, labelMaxCharacters) + "</option>";
                }

                if(!isAnySelected && selectedValue){
                    str += "<option value='" + selectedValue.replace("'", "&#039;") + "' selected='selected'>" + TruncateMiddle(selectedValue, labelMaxCharacters) + "</option>";
                }

                return str;
            }

            function GetFieldById(fieldId){
                for(var i=0; i<form.fields.length; i++){
                    if(form.fields[i].id == fieldId)
                        return form.fields[i];
                }
                return null;
            }

            function TruncateMiddle(text, maxCharacters){
                if(text.length <= maxCharacters)
                    return text;
                var middle = parseInt(maxCharacters / 2);
                return text.substr(0, middle) + "..." + text.substr(text.length - middle, middle);
            }

            function GetSelectableFields(selectedFieldId, labelMaxCharacters){
                var str = "";
                var inputType;
                for(var i=0; i<form.fields.length; i++){
                    fieldLabel = form.fields[i].adminLabel ? form.fields[i].adminLabel : form.fields[i].label;
                    inputType = form.fields[i].inputType ? form.fields[i].inputType : form.fields[i].type;
                    if(inputType == "checkbox" || inputType == "radio" || inputType == "select"){
                        var selected = form.fields[i].id == selectedFieldId ? "selected='selected'" : "";
                        str += "<option value='" + form.fields[i].id + "' " + selected + ">" + TruncateMiddle(fieldLabel, labelMaxCharacters) + "</option>";
                    }
                }
                return str;
            }

        </script>

        <?php 
    }
Пример #5
0
<?php

require_once '../csrest_general.php';
$wrap = new CS_REST_General('Your API Key');
$result = $wrap->get_clients();
echo "Result of /api/v3/clients\n<br />";
if ($result->was_successful()) {
    echo "Got clients\n<br /><pre>";
    var_dump($result->response);
} else {
    echo 'Failed with code ' . $result->http_status_code . "\n<br /><pre>";
    var_dump($result->response);
}
echo '</pre>';
Пример #6
0
 /**
  * Retrieval method for getting clients.
  *
  * @since 2.0.0
  *
  * @param array  $args      Args to be passed for list retrieval.
  * @param string $client_id The client ID to check for selection.
  * @param string $list_id   The list ID to target.
  * @param string $uniqid    The account ID to target.
  * @param string $optin_id  The optin ID to target.
  *
  * @return  string|WP_Error Output of the clients or WP_Error.
  */
 public function get_clients($args = array(), $client_id = '', $list_id = '', $uniqid = '', $optin_id = '')
 {
     if (!$this->api) {
         if (isset($args['access']) && isset($args['refresh']) && isset($args['expires'])) {
             $this->api['access'] = $args['access'];
             $this->api['refresh'] = $args['refresh'];
             $this->api['expires'] = $args['expires'];
         }
     }
     // If needed, get a new access token.
     if (isset($this->api['expires']) && isset($this->api['refresh']) && time() > $this->api['expires']) {
         $this->api['access'] = $this->refresh_access_token($uniqid, $this->api['refresh']);
     }
     // Possibly get data via OAuth or API key for backwards compat.
     if (isset($this->api['access']) && isset($this->api['refresh'])) {
         $auth = array('access_token' => $this->api['access'], 'refresh_token' => $this->api['refresh']);
     } else {
         if (isset($args['api'])) {
             $auth = array('api_key' => $args['api']);
         } else {
             $auth = array();
         }
     }
     $api = new CS_REST_General($auth);
     $clients = $api->get_clients();
     $output = '';
     $output .= '<div class="optin-monster-field-box optin-monster-provider-clients optin-monster-clear">';
     $output .= '<p class="optin-monster-field-wrap"><label for="optin-monster-client-list">' . __('Campaign Monitor Client', 'optin-monster') . '</label><br />';
     $output .= '<select id="optin-monster-client-list" name="optin_monster[provider_client]">';
     foreach ($clients->response as $client) {
         $output .= '<option value="' . $client->ClientID . '"' . selected($client_id, $client->ClientID, false) . '>' . $client->Name . '</option>';
     }
     $output .= '</select>';
     $output .= '</p>';
     $output .= '</div>';
     // Get the lists for the first client.
     $this->api['client'] = !empty($client_id) ? $client_id : $clients->response[0]->ClientID;
     $output .= $this->get_lists($args, $list_id, $uniqid, $optin_id);
     return $output;
 }
Пример #7
0
 function tfuse_ajax_newsletter_save_campaignmonitor_api_key()
 {
     #CampaignMonitor
     tf_can_ajax();
     require_once dirname(__FILE__) . '/library/csrest_general.php';
     $api_key = $this->request->POST('api_key');
     $api = new CS_REST_General($api_key);
     $result = $api->get_clients();
     if ($result->http_status_code == 401) {
         tfjecho(array('status' => -1, 'message' => __('API key is invalid.', 'tfuse')));
     } else {
         $this->model->set_cm_key($api_key);
         tfjecho(array('status' => 1));
     }
     die;
 }
Пример #8
0
	/**
	 * Get all Campaign Monitor Lists and display in settings
	 *
	 */
	public function get_campaignmonitor_lists() {

		$lists = '';
		$clients = '';

		if (isset($_POST['api_key']) && $_POST['api_key'] != '') {

			require_once( 'includes/campaignmonitor/csrest_general.php');
			require_once( 'includes/campaignmonitor/csrest_clients.php');
			$auth = array('api_key' => sanitize_text_field( $_POST['api_key'] ));
			$wrap = new CS_REST_General($auth);
			$result = $wrap->get_clients();


			if ($result->was_successful()) {

				foreach ($result->response as $client) {
					$clients .= '<option value="' . $client->ClientID . '">' .  $client->Name . '</option>';
				}

				if (isset($_POST['client']) && $_POST['client'] != '') {
					$clients = '';
					foreach ($result->response as $client) {
						if ($_POST['client'] == $client->ClientID) {
							$clients .= '<option value="' . $client->ClientID . '" selected="selected">' .  $client->Name . '</option>';
						} else {
							$clients .= '<option value="' . $client->ClientID . '">' .  $client->Name . '</option>';
						}
					}
				}

				if (isset($_POST['client']) && $_POST['client'] != '') {
					$client_id = sanitize_text_field( $_POST['client'] );
				} else {
					$client_id = $result->response[0]->ClientID;
				}

				$wrap = new CS_REST_Clients($client_id, sanitize_text_field( $_POST['api_key']) );
				$result = $wrap->get_lists();

				if ($result->was_successful()) {
					foreach ($result->response as $list) {
						$lists .= '<option value="' . $list->ListID . '">' .  $list->Name . '</option>';
					}

					if (isset($_POST['list']) && $_POST['list'] != '') {
						$lists = '';
						foreach ($result->response as $list) {
							if ($_POST['list'] == $list->ListID) {
								$lists .= '<option value="' . $list->ListID . '" selected="selected">' .  $list->Name . '</option>';
							} else {
								$lists .= '<option value="' . $list->ListID . '">' .  $list->Name . '</option>';
							}
						}
					}
				}
			}
		}

		echo json_encode(array('clients' => $clients, 'lists' => $lists));

		die(); // this is required to terminate immediately and return a proper response
	}
 /**
  * Render the markup for service specific fields. 
  *
  * @since 1.5.4
  * @param string $account The name of the saved account.
  * @param object $settings Saved module settings.
  * @return array {
  *      @type bool|string $error The error message or false if no error.
  *      @type string $html The field markup.
  * }
  */
 public function render_fields($account, $settings)
 {
     $post_data = FLBuilderModel::get_post_data();
     $account_data = $this->get_account_data($account);
     $api = new CS_REST_General($account_data);
     $result = $api->get_clients();
     $response = array('error' => false, 'html' => '');
     if ($result->was_successful()) {
         if (!isset($post_data['client'])) {
             $response['html'] .= $this->render_client_field($result, $settings);
         }
         $response['html'] .= $this->render_list_field($account_data, $settings);
     } else {
         $response['error'] = __('Error: Please check your API key.', 'fl-builder');
     }
     return $response;
 }
//define api_key and cliend_id that I get by my subscription to the API
define("API_KEY", "f955097a9e86fcab60f3bbbdcf97e6b9");
define("CLIENT_ID", "df0a4e647a3d6d224f4a1cb95ed406be");
//Check if there are parameters in the server url
//If the parameter req(request) isset, we have a request from the client
//Mainly Ajax requests
$req = isset($_GET["req"]) ? $_GET["req"] : "";
$auth = array('api_key' => API_KEY);
//An if statement checks which action has server to perform
//according to the parameters of the url
if ($req == "viewLists") {
    //View available client's Lists
    //Get the appropriate wrapper to check
    //if there is the given CLIENT_ID
    $wrap_general = new CS_REST_General($auth);
    $clients = $wrap_general->get_clients();
    foreach ($clients->response as $client) {
        if (CLIENT_ID == $client->ClientID) {
            $client_id = CLIENT_ID;
            break;
        } else {
            echo "There is not such a client id!";
        }
    }
    //If client found
    if (isset($client_id)) {
        //Get the appropriate wrapper to get the available client's Lists
        $wrap_client = new CS_REST_Clients($client_id, $auth);
        $lists = $wrap_client->get_lists();
        //JSON manipiulation of the response
        $output = "[";
 /**
  * Return the clients.
  *
  * @return mixed
  */
 private function get_clients()
 {
     $clients = GFCache::get('campaignmonitor_clients');
     if (!$clients) {
         $this->include_api();
         $api = new CS_REST_General($this->get_key());
         //getting all clients
         $response = $api->get_clients();
         if ($response->http_status_code == 200) {
             $clients = $response->response;
             GFCache::set('campaignmonitor_clients', $clients);
         }
     }
     return $clients;
 }
Пример #12
0
 protected function getClientApiId()
 {
     require_once 'lib/csrest_general.php';
     $wrap = new CS_REST_General(array('api_key' => $this->getConfig('api_key')));
     $result = $wrap->get_clients();
     if ($result->was_successful()) {
         $res = array();
         foreach ($result->response as $r) {
             $res[$r->ClientID] = $r->Name;
         }
         return $res;
     }
     $this->getDi()->errorLogTable->log('Campaignmonitor ERROR: Bad API Key');
 }
Пример #13
0
 /**
  * Get all Campaign Monitor Lists and display in settings
  *
  * @access public
  * @return void
  */
 function nnr_new_int_get_campaignmonitor_lists_v1()
 {
     do_action('nnr_news_int_before_get_campaignmonitor_lists_v1');
     $lists = '';
     $clients = '';
     if (isset($_POST['api_key']) && $_POST['api_key'] != '') {
         require_once dirname(dirname(__FILE__)) . '/services/campaignmonitor/csrest_general.php';
         require_once dirname(dirname(__FILE__)) . '/services/campaignmonitor/csrest_clients.php';
         $auth = array('api_key' => $_POST['api_key']);
         $wrap = new CS_REST_General($auth);
         $result = $wrap->get_clients();
         if ($result->was_successful()) {
             foreach ($result->response as $client) {
                 $clients .= '<option value="' . $client->ClientID . '">' . $client->Name . '</option>';
             }
             if (isset($_POST['client']) && $_POST['client'] != '') {
                 $clients = '';
                 foreach ($result->response as $client) {
                     if ($_POST['client'] == $client->ClientID) {
                         $clients .= '<option value="' . $client->ClientID . '" selected="selected">' . $client->Name . '</option>';
                     } else {
                         $clients .= '<option value="' . $client->ClientID . '">' . $client->Name . '</option>';
                     }
                 }
             }
             if (isset($_POST['client']) && $_POST['client'] != '') {
                 $client_id = $_POST['client'];
             } else {
                 $client_id = $result->response[0]->ClientID;
             }
             $wrap = new CS_REST_Clients($client_id, $_POST['api_key']);
             $result = $wrap->get_lists();
             if ($result->was_successful()) {
                 foreach ($result->response as $list) {
                     $lists .= '<option value="' . $list->ListID . '">' . $list->Name . '</option>';
                 }
                 if (isset($_POST['list']) && $_POST['list'] != '') {
                     $lists = '';
                     foreach ($result->response as $list) {
                         if ($_POST['list'] == $list->ListID) {
                             $lists .= '<option value="' . $list->ListID . '" selected="selected">' . $list->Name . '</option>';
                         } else {
                             $lists .= '<option value="' . $list->ListID . '">' . $list->Name . '</option>';
                         }
                     }
                 }
             }
         }
     }
     do_action('nnr_news_int_after_get_campaignmonitor_lists_v1');
     echo json_encode(apply_filters('nnr_news_int_get_campaignmonitor_lists_v1', array('clients' => $clients, 'lists' => $lists)));
     die;
     // this is required to terminate immediately and return a proper response
 }