Overview

Packages

  • ACF
  • Automation
    • Actions
    • Activation
    • LeadProfile
    • Menus
    • Queries
    • Rules
    • Triggers
  • CTA
    • Activation
    • AJAXListeners
    • Cloning
    • Core
    • Display
    • EditPage
    • Enqueues
    • GPLSettings
    • LeadsProfile
    • Loading
    • Menus
    • Notices
    • PlacementMetabox
    • PostType
    • Templates
    • Tracking
    • Variations
    • YOAST
  • InboundPro
    • Activation
    • AdminAJAX
    • AutoLoading
    • Cron
    • DataInterface
    • FieldMapping
    • Funnels
    • InboundNowAPI
    • Installer
    • LeadStatuses
    • Menus
    • Notifications
    • Ouath
    • Reports
    • Settings
    • Tracking
    • Translations
    • Updates
  • LandingPages
    • Activation
    • DataInterfaces
    • Management
    • Menus
    • NeedsAttention
    • Notices
    • Sidebars
    • Templates
    • Tracking
    • Variations
    • WelcomeScreen
    • Widgets
  • Leads
    • Activation
    • Akismet
    • BranchControl
    • BulkActions
    • Dashboard
    • Management
    • Notifications
    • Settings
    • Tracking
    • UserProfile
    • WPLogin
  • Mailer
    • Activation
    • Admin
    • ClickTracking
    • DataInterface
    • InboundForms
    • Leads
    • Management
    • Notifications
    • Scheduling
    • Sending
    • Settings
    • ShortcodesAndTokens
    • SparkPost
    • Templates
    • Unsubscribes
    • Variations
    • YoastSEO
  • None
  • Shared
    • APIs
    • CPT
    • DatabaseRoutines
    • DebugTricks
    • DoubleOptin
    • EventManagement
    • FieldMapping
    • InboundForms
    • LeadSorage
    • MarketingButton
    • Menus
    • Notifications
    • Shortcodes
    • ShortcodesAndTokens
    • StandAloneLicensing
    • Tracking
    • VisualEditor
  • xDepreciated

Classes

  • CTA_Activation
  • CTA_Activation_Update_Routines
  • CTA_Admin_Notices
  • CTA_Ajax_Listeners
  • CTA_Clone_Post
  • CTA_Conversion_Tracking
  • CTA_Dynamic_Widget
  • CTA_Enqueues
  • CTA_Load_Extensions
  • CTA_Menus
  • CTA_Metaboxes
  • CTA_Metaboxes_Global
  • CTA_Post_Type
  • CTA_Render
  • CTA_Settings
  • CTA_Static_Widget
  • CTA_Template_Manager
  • CTA_Template_Manager_List
  • CTA_Variations
  • CTA_WordPress_Leads
  • CTA_WordPress_SEO
  • Inbound_Ajax
  • Inbound_Akismet
  • Inbound_Analytics
  • Inbound_API
  • Inbound_API_Keys_Generation
  • Inbound_API_Keys_Table
  • Inbound_API_Wrapper
  • Inbound_Asset_Loader
  • Inbound_Automation_Action_Add_Remove_List
  • Inbound_Automation_Action_Add_Remove_Tag
  • Inbound_Automation_Action_Create_Lead
  • Inbound_Automation_Action_Create_User
  • Inbound_Automation_Action_Kill_Tasks
  • Inbound_Automation_Action_Relay_Data
  • Inbound_Automation_Action_Send_Email
  • Inbound_Automation_Action_Wait
  • Inbound_Automation_Activation
  • Inbound_Automation_Activation_Update_Routines
  • Inbound_Automation_Adminbar
  • Inbound_Automation_Lead_Profile
  • Inbound_Automation_Loader
  • Inbound_Automation_Plugin
  • Inbound_Automation_Post_Type
  • Inbound_Automation_Processing
  • Inbound_Automation_Query_Lead
  • Inbound_Automation_Query_User
  • Inbound_Automation_Trigger_inbound_double_optin_confirm
  • Inbound_Automation_Trigger_inbound_store_lead_post
  • Inbound_Automation_Trigger_inbound_track_link
  • Inbound_Automation_Trigger_Publish_Post
  • Inbound_Automation_Trigger_Save_Post_Deactivated
  • Inbound_Automation_Trigger_Set_Object_Terms
  • Inbound_Automation_Trigger_Update_Lead
  • Inbound_Automation_Trigger_User_Register
  • Inbound_Calls_To_Action_Plugin
  • Inbound_Confirm_Double_Optin
  • Inbound_Cron
  • Inbound_CTA_Quick_View
  • Inbound_Customizer
  • Inbound_Debug_Scripts
  • Inbound_Email_Meta
  • Inbound_Email_Preview
  • Inbound_Email_Template_Shortcodes
  • Inbound_Event_Report
  • Inbound_Events
  • Inbound_Events_Report
  • Inbound_Extension_Loads
  • Inbound_Forms
  • Inbound_Funnel_Reporting
  • Inbound_Impressions_Report
  • Inbound_Landing_Pages_Plugin
  • Inbound_Lead_Statuses
  • Inbound_Leads
  • Inbound_Leads_Custom_fields
  • Inbound_Leads_Plugin
  • Inbound_License
  • Inbound_List_Double_Optin
  • Inbound_Load_Shared
  • Inbound_Logging_Automation
  • Inbound_Login
  • Inbound_Mail_Daemon
  • Inbound_Mailer_ACF
  • Inbound_Mailer_Activation
  • Inbound_Mailer_Activation_Update_Routines
  • Inbound_Mailer_Ajax_Listeners
  • Inbound_Mailer_Clone_Post
  • Inbound_Mailer_Common_Settings
  • Inbound_Mailer_Customizer
  • Inbound_Mailer_Direct_Email_Leads
  • Inbound_Mailer_Enqueues
  • Inbound_Mailer_Forms_Integration
  • Inbound_Mailer_Load_Templates
  • Inbound_Mailer_Menus
  • Inbound_Mailer_Metaboxes
  • Inbound_Mailer_Notifications
  • Inbound_Mailer_Plugin
  • Inbound_Mailer_Post_Type
  • Inbound_Mailer_Scheduling
  • Inbound_Mailer_Settings
  • Inbound_Mailer_SparkPost
  • Inbound_Mailer_Stats_Report
  • Inbound_Mailer_Template_Manager
  • Inbound_Mailer_Template_Manager_List
  • Inbound_Mailer_Tokens
  • Inbound_Mailer_Tracking
  • Inbound_Mailer_Unsubscribe
  • Inbound_Mailer_Variations
  • Inbound_Mailer_WordPress_SEO
  • Inbound_Maintenance_Lists
  • Inbound_Marketing_Button
  • Inbound_Menus_Admin
  • Inbound_Menus_Adminbar
  • Inbound_Metaboxes_Automation
  • Inbound_Metaboxes_Leads
  • Inbound_Notifications
  • Inbound_Now_Store
  • Inbound_Options_API
  • Inbound_Pro_Activation
  • Inbound_Pro_Admin_Ajax_Listeners
  • Inbound_Pro_Automatic_Updates
  • Inbound_Pro_Downloads
  • Inbound_Pro_Notifications
  • Inbound_Pro_Oauth_Engine
  • Inbound_Pro_Plugin
  • Inbound_Pro_Settings
  • Inbound_Quick_View
  • Inbound_Reporting_Templates
  • Inbound_Search_And_Comment_Report
  • Inbound_Shared_ACF_BootStrap
  • Inbound_Shortcodes
  • Inbound_Shortcodes_Cookies
  • Inbound_Shortcodes_Fields
  • Inbound_SparkPost
  • Inbound_SparkPost_Stats
  • Inbound_Template_Utils
  • Inbound_Templating_Engine
  • Inbound_Tracking
  • Inbound_Translation_Updater
  • Inbound_Updater
  • Inbound_Upgrade_For_More_Reports
  • Inbound_Upgrade_Routines
  • Inbound_Visitor_Event_Report
  • Inbound_Visitor_Impressions_Report
  • Inbound_Visitors_Report
  • INBOUNDNOW_EXTEND
  • Landing_Pages_ACF
  • Landing_Pages_Activation
  • Landing_Pages_Activation_Update_Routines
  • Landing_Pages_Admin_Menus
  • Landing_Pages_Admin_Notices
  • Landing_Pages_Install
  • Landing_Pages_Load_Extensions
  • Landing_Pages_Meta
  • Landing_Pages_Metaboxes
  • Landing_Pages_Post_Type
  • Landing_Pages_Row_Actions
  • Landing_Pages_Settings
  • Landing_Pages_Sidebars
  • Landing_Pages_Split_Testing_Stats
  • Landing_Pages_Template_Management
  • Landing_Pages_Template_Switcher
  • Landing_Pages_Templates_List_Table
  • Landing_Pages_Variations
  • LandingPages_Welcome
  • Leads_Activation
  • Leads_Activation_Update_Routines
  • Leads_Admin_Notices
  • Leads_Batch_Processor
  • Leads_Branching
  • Leads_Dashboard
  • Leads_Field_Map
  • Leads_Manager
  • Leads_Post_Type
  • Leads_Settings
  • Leads_Tracking
  • Leads_User_Profile
  • LeadStorage
  • LP_EXTENSION_LICENSENING
  • LP_EXTENSION_UPDATER
  • LP_Variation_Rotation
  • LP_Widget_Conversion_Area

Functions

  • cta_check_active
  • cta_example_template_function
  • cta_load_dynamic_widget
  • CTA_Load_Extensions
  • cta_load_static_widget
  • CTA_Render
  • inbound_add_conversion_to_lead
  • inbound_automation_check_active
  • inbound_automation_load_definitions
  • inbound_automation_metaboxes
  • inbound_automation_processing
  • inbound_color
  • inbound_color_scheme
  • inbound_confirm_email_service_provider
  • inbound_email_kill_ie8
  • inbound_email_load_templates
  • inbound_form_add_lead_list
  • inbound_form_auto_publish
  • inbound_form_delete_transient
  • inbound_form_get_data
  • inbound_form_save
  • inbound_forms_change_columns
  • inbound_forms_cpt
  • inbound_forms_custom_columns
  • inbound_forms_default_content
  • inbound_get_form_names
  • inbound_get_parent_directory
  • inbound_Hex_2_RGB
  • inbound_inbound_email_example_template_function
  • inbound_load_lead_manager
  • inbound_load_token_engine
  • inbound_mailer_acf_integration
  • Inbound_Mailer_Common_Settings
  • Inbound_Mailer_Load_Templates
  • inbound_qtrans_disable
  • inbound_record_log
  • inbound_register_form_role_capabilities
  • inbound_shortcode_alert
  • inbound_shortcode_callout
  • inbound_shortcode_columns
  • inbound_shortcode_content_box
  • inbound_shortcode_divider
  • inbound_shortcode_empty_paragraph_fix
  • inbound_shortcode_four_fifth_columns
  • inbound_shortcode_full_columns
  • inbound_shortcode_gmap
  • inbound_shortcode_icon
  • inbound_shortcode_intro
  • inbound_shortcode_landing_pages
  • inbound_shortcode_leadp
  • inbound_shortcode_list_icons
  • inbound_shortcode_one_fifth_columns
  • inbound_shortcode_one_fourth_columns
  • inbound_shortcode_one_half_columns
  • inbound_shortcode_one_third_columns
  • inbound_shortcode_portfolio
  • inbound_shortcode_pricing
  • inbound_shortcode_profile
  • inbound_shortcode_social_links
  • inbound_shortcode_tabs
  • inbound_shortcode_teaser
  • inbound_shortcode_testimonial
  • inbound_shortcode_three_fifth_columns
  • inbound_shortcode_three_fourth_columns
  • inbound_shortcode_two_fifth_columns
  • inbound_shortcode_two_third_columns
  • inbound_shortcode_video
  • inbound_store_lead
  • inbound_template_brightness
  • inbound_template_color
  • Inbound_Templating_Engine
  • inbound_travis_check
  • inboundnow_add_master_license
  • json_encode_fallback
  • landingpage_fix_known_wp_title_isses
  • landingpages_is_active
  • load_CTA_Settings
  • load_CTA_Template_Manager
  • load_Inbound_API_Keys_Generation
  • load_Inbound_Lead_Statuses
  • load_Inbound_Leads_Custom_fields
  • load_inbound_mail_daemon
  • load_Inbound_Mailer_Settings
  • load_Inbound_Mailer_Template_Manager
  • load_Inbound_Pro_Downloads
  • lp_ab_testing_get_current_variation_id
  • lp_add_option
  • lp_body_class
  • lp_check_active
  • lp_content_area
  • lp_conversion_area
  • lp_discover_important_wrappers
  • lp_footer
  • lp_generate_drowndown
  • lp_get_parent_directory
  • lp_get_value
  • lp_global_config
  • lp_head
  • lp_in_admin_header
  • lp_init
  • lp_list_feature
  • lp_load_widgets
  • lp_main_headline
  • lp_manage_templates
  • lp_move_template_files
  • lp_rebuild_attributes
  • lp_templates_upload
  • mailer_check_active
  • wp_cta_check_active
  • wp_cta_kill_ie8
  • wp_cta_load_calls_to_action
  • wp_leads_get_page_final_id
  • wpl_url_to_postid
  • wpleads_add_lead_to_list
  • wpleads_check_active
  • wpleads_get_lead_lists_as_array
  • Overview
  • Package
  • Class
  1:   2:   3:   4:   5:   6:   7:   8:   9:  10:  11:  12:  13:  14:  15:  16:  17:  18:  19:  20:  21:  22:  23:  24:  25:  26:  27:  28:  29:  30:  31:  32:  33:  34:  35:  36:  37:  38:  39:  40:  41:  42:  43:  44:  45:  46:  47:  48:  49:  50:  51:  52:  53:  54:  55:  56:  57:  58:  59:  60:  61:  62:  63:  64:  65:  66:  67:  68:  69:  70:  71:  72:  73:  74:  75:  76:  77:  78:  79:  80:  81:  82:  83:  84:  85:  86:  87:  88:  89:  90:  91:  92:  93:  94:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 
<?php

/**
 * Class for loading data sets from templates and extensions
 *
 * @package CTA
 * @subpackage Loading
 */
if (!class_exists('CTA_Load_Extensions')) {

    class CTA_Load_Extensions {
        private static $instance;
        public $definitions;
        public $template_categories;


        /**
         * @return CTA_Load_Extensions
         */
        public static function instance() {
            if (!isset(self::$instance) && !(self::$instance instanceof CTA_Load_Extensions)) {
                self::$instance = new CTA_Load_Extensions;

                /* if frontend load transient data - this data will update on every wp-admin call so you can use an admin call as a cache clear */
                if (!is_admin() || (defined('DOING_AJAX') && DOING_AJAX && isset($_POST['action']) && $_POST['action'] != 'wp_cta_get_template_meta')) {
                    self::$instance->template_definitions = get_transient('wp_cta_template_definitions');

                    if (self::$instance->template_definitions) {
                        return self::$instance;
                    }
                }

                self::$instance->include_template_files();
                self::$instance->add_core_definitions();
                self::$instance->load_definitions();
                self::$instance->read_template_categories();
            }

            return self::$instance;
        }

        /**
         *
         */
        function include_template_files() {
            /* load templates from wp-content/plugins/calls-to-action/templates/ */

            $core_templates = self::$instance->get_core_templates();

            foreach ($core_templates as $name) {
                if ($name != ".svn" ) {
                    include_once(WP_CTA_PATH . "templates/$name/config.php");
                }
            }

            /* load templates from uploads folder */
            $uploaded_templates = self::$instance->get_uploaded_templates();

            foreach ($uploaded_templates as $name) {
                if (file_exists(WP_CTA_UPLOADS_PATH . "$name/config.php")) {
                    include_once(WP_CTA_UPLOADS_PATH . "$name/config.php");
                }
            }

            /* load included templates from activated theme */
            $included_templtes = self::$instance->get_theme_included_templates();

            foreach ($included_templtes as $name) {
                include_once(WP_CTA_THEME_TEMPLATES_PATH . "$name/config.php");
            }

            /* parse template markup */
            foreach ($wp_cta_data as $key => $data) {
                if (isset($data['markup'])) {
                    $parsed = self::$instance->parse_markup($data['markup']);
                    $wp_cta_data[$key]['css-template'] = $parsed['css-template'];
                    $wp_cta_data[$key]['html-template'] = $parsed['html-template'];
                }
            }

            self::$instance->template_definitions = $wp_cta_data;


        }

        /**
         * @param $markup
         * @return mixed
         */
        function parse_markup($markup) {
            if (strstr($markup, '</style>')) {
                $pieces = explode('</style>', $markup);
                $parsed['css-template'] = strip_tags($pieces[0]);
                $parsed['html-template'] = $pieces[1];
            } else {
                $parsed['css-template'] = "";
                $parsed['html-template'] = $markup;
            }

            return $parsed;
        }

        /**
         * @return array
         */
        function get_core_templates() {
            $core_templates = array();
            $template_path = WP_CTA_PATH . "templates/";
            $results = scandir($template_path);

            //scan through templates directory and pull in name paths
            foreach ($results as $name) {
                if ($name === '.' or $name === '..' or $name === '__MACOSX') continue;

                if (is_dir($template_path . '/' . $name)) {
                    $core_templates[] = $name;
                }
            }

            return $core_templates;
        }

        /**
         * @return array
         */
        function get_uploaded_templates() {
            //scan through templates directory and pull in name paths
            $uploaded_templates = array();

            if (!is_dir(WP_CTA_UPLOADS_PATH)) {
                wp_mkdir_p(WP_CTA_UPLOADS_PATH);
            }

            $templates = scandir(WP_CTA_UPLOADS_PATH);


            //scan through templates directory and pull in name paths
            foreach ($templates as $name) {
                if ($name === '.' or $name === '..' or $name === '__MACOSX') continue;

                if (is_dir(WP_CTA_UPLOADS_PATH . '/' . $name)) {
                    $uploaded_templates[] = $name;
                }
            }

            return $uploaded_templates;
        }


        /**
         * @return array
         */
        function get_theme_included_templates() {
            //scan through templates directory and pull in name paths
            $included_templates = array();

            if (!is_dir(WP_CTA_THEME_TEMPLATES_PATH)) {
                return $included_templates;
            }

            $templates = scandir(WP_CTA_THEME_TEMPLATES_PATH);

            //scan through templates directory and pull in name paths
            foreach ($templates as $name) {
                if ($name === '.' or $name === '..' or $name === '__MACOSX') continue;

                if (is_dir(WP_CTA_THEME_TEMPLATES_PATH . '/' . $name)) {
                    $included_templates[] = $name;
                }
            }

            return $included_templates;
        }

        /**
         * collects & loads extension array data
         */
        function load_definitions() {
            $wp_cta_data = self::$instance->template_definitions;
            self::$instance->definitions = apply_filters('wp_cta_extension_data', $wp_cta_data);
            set_transient('wp_cta_extension_definitions', $wp_cta_data, 60 * 60 * 24);
        }

        /**
         * filters to add in core definitions to the calls to action extension definitions array
         */
        function add_core_definitions() {
            add_filter('save_post', array($this, 'store_template_data_as_transient'), 1);
            add_filter('wp_cta_extension_data', array($this, 'add_default_metaboxes'), 1);
            add_filter('wp_cta_extension_data', array($this, 'add_width_and_height_to_templates'), 1);
            add_filter('wp_cta_extension_data', array($this, 'add_default_advanced_settings'), 1);
            add_filter('wp_cta_extension_data', array($this, 'add_default_page_settings'), 1);

        }

        /**
         * @param $post_id
         */
        function store_template_data_as_transient($post_id) {
            global $post;

            if (!isset($post)) {
                return;
            }

            if ($post->post_type == 'revision' || 'trash' == get_post_status($post_id)) {
                return;
            }

            if ((defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) || (isset($_POST['post_type']) && $_POST['post_type'] == 'revision')) {
                return;
            }

            if ($post->post_type == 'wp-call-to-action') {
                set_transient('wp_cta_template_definitions', self::$instance->template_definitions, 60 * 60 * 24);
            }
        }

        /**
         * adds default metabox to all calls to action
         */
        function add_default_metaboxes($wp_cta_data) {
            /* this is a special key that targets CTA metaboxes */
            $parent_key = 'wp-cta';

            $wp_cta_data[$parent_key]['settings'][] = array('data_type' => 'metabox', 'id' => 'selected-template', 'label' => __('Select Template', 'cta'), 'description' => __('This option provides a placeholder for the selected template data.', 'cta'), 'type' => 'radio', // this is not honored. Template selection setting is handled uniquely by core.
                'default' => 'blank-template', 'options' => null // this is not honored. Template selection setting is handled uniquely by core.
            );

            //IMPORT ALL EXTERNAL DATA

            return $wp_cta_data;

        }

        /**
         * adds default settings to Advanced Settings metabox
         */
        function add_default_advanced_settings($wp_cta_data) {
            /* this is a special key that targets CTA metaboxes */
            $parent_key = 'wp-cta';

            $wp_cta_data[$parent_key]['settings']['advanced-core-options-header'] = array('datatype' => 'setting', 'region' => 'advanced', 'description' => __('<h3>CTA Settings</h3>', 'cta'), 'id' => 'advanced-core-options-header', 'type' => 'html-block');

            $wp_cta_data[$parent_key]['settings']['link-open-option'] = array('data_type' => 'metabox', 'region' => 'advanced', 'label' => __('Open Links', 'cta'), 'description' => __('How do you want links on the call to action to work?', 'cta'), 'id' => 'link-open-option', // called in template's index.php file with lp_get_value($post, $key, 'checkbox-id-here');
                'type' => 'dropdown', 'default' => 'this_window', 'options' => array('this_window' => __('Open Links in Same Window (default)', 'cta'), 'new_tab' => __('Open Links in New Tab', 'cta')), 'context' => 'normal');

            //IMPORT ALL EXTERNAL DATA
            return $wp_cta_data;
        }


        /**
         * adds_width and height settings to templates
         */
        function add_width_and_height_to_templates($wp_cta_data) {
            foreach ($wp_cta_data as $key => $data) {
                if (!isset($data['info']['data_type']) || $data['info']['data_type'] != 'template') {
                    continue;
                }

                $width = array('label' => __('CTA Width', 'cta'), 'description' => __('Enter the Width of the CTA in pixels. Example: 100% or 300px', 'cta'), 'id' => 'wp_cta_width', 'type' => 'width-height', 'default' => '100%', 'class' => 'cta-width', 'context' => 'priority', 'global' => true);

                $height = array('label' => __('CTA Height', 'cta'), 'description' => __('Enter the Height of the CTA in pixels. Example: auto or 300px', 'cta'), 'id' => 'wp_cta_height', 'type' => 'width-height', 'default' => 'auto', 'class' => 'cta-height', 'context' => 'priority', 'global' => true);

                array_unshift($wp_cta_data[$key]['settings'], $width, $height);

            }

            return $wp_cta_data;
        }

        /**
         * adds default settings to Advanced Settings metabox
         */
        function add_default_page_settings($wp_cta_data) {
            /* this is a special key that targets CTA metaboxes */
            $parent_key = 'wp-cta-controller';

            $wp_cta_data[$parent_key]['settings'] = array(array('data_type' => 'setting', 'region' => 'cta-placement-controls', 'label' => __('Placement on Page', 'cta'), 'description' => __('Where would you like to insert the CTA on this page?', 'cta'), 'id' => 'cta_content_placement', 'type' => 'dropdown', 'default' => 'off', 'options' => array('below' => __('Below Content', 'cta'), 'middle' => __('Middle of Content', 'cta'), 'above' => __('Above Content', 'cta'), 'widget_1' => __('Use Dynamic Sidebar Widget', 'cta'), 'popup' => __('Popup', 'cta')), 'context' => 'normal', 'class' => 'cta-per-page-option'), array('data_type' => 'setting', 'region' => 'cta-placement-controls', 'label' => __('Sidebar Message', 'cta'), 'description' => "<div style='margin-top:10px; margin-left:10px;'><p>" . __('This option will place the selected CTA templates into the dynamic sidebar widget on this page. Make sure you have added the dynamic Call to Action widget to the sidebar of this page for this option to work.</p><p>To add the dynamic sidebar widget to this page, go into appearance > widgets and add the widget to the sidebar of your choice', 'cta') . "</p></div>", 'id' => 'sidebar_message', 'type' => 'html-block', 'default' => '', 'context' => 'normal', 'class' => '', 'reveal_on' => 'widget_1'), array('data_type' => 'setting', 'region' => 'cta-placement-controls', 'label' => __('Below Message', 'cta'), 'description' => "<div style='margin-top:10px; margin-left:10px;'><p>" . __('Your Call to Action will be inserted into the bottom of the page/post.', 'cta') . "</p></div>", 'id' => 'below_message', 'type' => 'html-block', 'default' => '', 'context' => 'normal', 'class' => '', 'reveal_on' => 'below'), array('data_type' => 'setting', 'region' => 'cta-placement-controls', 'label' => __('Above Message', 'cta'), 'description' => "<div style='margin-top:10px; margin-left:10px;'><p>" . __('Your Call to Action will be inserted into the top of the page/post.', 'cta') . "</p></div>", 'id' => 'above_message', 'type' => 'html-block', 'default' => '', 'context' => 'normal', 'class' => '', 'reveal_on' => 'above'), array('data_type' => 'setting', 'region' => 'cta-placement-controls', 'label' => __('Middle Message', 'cta'), 'description' => "<div style='margin-top:10px; margin-left:10px;'><p>" . __('Your Call to Action will be inserted into the middle of the page/post\'s content.', 'cta') . "</p></div>", 'id' => 'above_message', 'type' => 'html-block', 'default' => '', 'context' => 'normal', 'class' => '', 'reveal_on' => 'middle'),);


            //IMPORT ALL EXTERNAL DATA
            return $wp_cta_data;
        }

        /**
         *
         */
        function read_template_categories() {

            $template_cats = array();

            if (!isset(self::$instance->definitions)) {
                return;
            }

            //print_r($extension_data);
            foreach (self::$instance->definitions as $key => $val) {

                if (strstr($key, 'wp-cta') || !isset($val['info']['category'])) continue;

                /* allot for older lp_data model */
                if (isset($val['category'])) {
                    $cats = $val['category'];
                } else {
                    if (isset($val['info']['category'])) {
                        $cats = $val['info']['category'];
                    }
                }

                $cats = explode(',', $cats);

                foreach ($cats as $cat_value) {
                    $cat_value = trim($cat_value);
                    $name = str_replace(array('-', '_'), ' ', $cat_value);
                    $name = ucwords($name);

                    if (!isset($template_cats[$cat_value])) {
                        $template_cats[$cat_value]['count'] = 1;
                    } else {
                        $template_cats[$cat_value]['count']++;
                    }

                    $template_cats[$cat_value]['value'] = $cat_value;
                    $template_cats[$cat_value]['label'] = "$name";
                }
            }

            self::$instance->template_categories = $template_cats;
        }
    }


    function CTA_Load_Extensions() {
        return CTA_Load_Extensions::instance();
    }
}

Inbound Pro Plugin - PHP Codex API documentation generated by ApiGen