Plugin Directory

Changeset 949453


Ignore:
Timestamp:
07/16/2014 08:11:34 AM (12 years ago)
Author:
SNaimath
Message:

#### 1.4.7 ####

  • Shortcode parsing enabled in user designed templates
File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugmatter-optin-feature-box-lite/trunk/plug_featurebox_lite.php

    r949450 r949453  
    11<?php
    22/*
    3 Plugin Name: Plugmatter Feature Box %NAME%
     3Plugin Name: Plugmatter Feature Box Lite
    44Plugin URI: http://plugmatter.com/feature-box
    55Description: Plugmatter Optin Feature Box is the Only List Building Plugin that Allows You to Create High Converting Optin Feature Boxes for Your WordPress Site.
     
    1010
    1111//--- Global values---
    12 define('Plugmatter_PACKAGE', '%PACKAGE%');
     12define('Plugmatter_PACKAGE', 'plug_featurebox_lite');
    1313//--------------------
    14 include_once("main.php");
     14
     15global $wpdb;
     16$siteurl = get_option('siteurl');
     17define('Plugmatter_FILE_PATH', dirname(__FILE__));
     18define('Plugmatter_DIR_NAME', basename(Plugmatter_FILE_PATH));
     19define('Plugmatter_FOLDER', dirname(plugin_basename(__FILE__)));
     20define('Plugmatter_URL', $siteurl.'/wp-content/plugins/' . Plugmatter_DIR_NAME);
     21define('Plugmatter_GOOGLE_FONTS_KEY', "AIzaSyBKo64RSV_kiZ8T7_J5LNv_npD0YERvr5g");
     22define('Plugmatter_UPNOTE', "<span style='color:red;'>This feature is available in higher packages. <a href='http://plugmatter.com/my/packages' target='_blank'><b>Upgrade Now!</b></a></span>");
     23//------------------------------------------------
     24
     25
     26register_activation_hook(__FILE__,'plugmatter_install');
     27register_uninstall_hook(__FILE__ , 'plugmatter_uninstall' );
     28
     29function plugmatter_install() {
     30    error_reporting(0);
     31    global $wpdb;
     32   
     33    $template_tbl_name = $wpdb->prefix.'plugmatter_templates';
     34    $abtest_tbl_name = $wpdb->prefix.'plugmatter_ab_test';
     35    $ab_stats_tbl_name = $wpdb->prefix.'plugmatter_ab_stats';
     36   
     37    $template_tbl = "CREATE TABLE IF NOT EXISTS $template_tbl_name (
     38        id INT(9) NOT NULL AUTO_INCREMENT,
     39        temp_name VARCHAR(80) NOT NULL,
     40        base_temp_name VARCHAR(80) NOT NULL,
     41        params TEXT,
     42        UNIQUE KEY id (id)
     43    ) DEFAULT CHARSET=utf8;";
     44    $wpdb->query($template_tbl);
     45
     46    $abtest_tbl = "CREATE TABLE IF NOT EXISTS $abtest_tbl_name (
     47    id INT(9) NOT NULL AUTO_INCREMENT,
     48    compaign_name VARCHAR(80) NOT NULL,
     49    boxA VARCHAR(80) NOT NULL,
     50    boxB VARCHAR(100),
     51    home VARCHAR(8),
     52    page VARCHAR(8),
     53    post VARCHAR(8),
     54    archieve VARCHAR(8),
     55    start_date VARCHAR(80) NOT NULL,
     56    active VARCHAR(8),
     57    UNIQUE KEY id (id)
     58    ) DEFAULT CHARSET=utf8;";
     59    $wpdb->query($abtest_tbl);
     60   
     61    $ab_stats_tbl = "CREATE TABLE IF NOT EXISTS $ab_stats_tbl_name (
     62    id INT(9) NOT NULL AUTO_INCREMENT,
     63    date DATE NOT NULL,
     64    ab_id INT(9) NOT NULL,
     65    a_imp INT(9),
     66    b_imp INT(9),
     67    a_conv INT(9),
     68    b_conv INT(9),
     69    UNIQUE KEY id (id)
     70    ) DEFAULT CHARSET=utf8;";
     71    $wpdb->query($ab_stats_tbl);
     72   
     73    if(get_option("Plugmatter_PACKAGE") != Plugmatter_PACKAGE) {
     74        delete_option('Plugmatter_PACKAGE');
     75        delete_option('Plugmatter_Featurebox_License');         
     76    }
     77}
     78
     79function plugmatter_uninstall() {
     80    global $wpdb;
     81    $template_tbl_name = $wpdb->prefix.'plugmatter_templates';
     82    $abtest_tbl_name = $wpdb->prefix.'plugmatter_ab_test';
     83    $ab_stats_tbl_name = $wpdb->prefix.'plugmatter_ab_stats';
     84   
     85    $structure = "drop table if exists $template_tbl_name";
     86    $wpdb->query($structure);
     87    $structure2 = "drop table if exists $abtest_tbl_name";
     88    $wpdb->query($structure2);
     89    $structure3 = "drop table if exists $ab_stats_tbl_name";
     90    $wpdb->query($structure3);
     91    $delete_options = "DELETE FROM wp_options WHERE option_name LIKE 'plugmatter_%' ";
     92    $wpdb->query($delete_options);
     93    delete_option('Plugmatter_PACKAGE');
     94    delete_option('Plugmatter_Featurebox_License');
     95}
     96
     97add_action('admin_menu', 'plugmatter_plugin_menu');
     98function plugmatter_plugin_menu() {
     99    if(Plugmatter_PACKAGE == "plug_featurebox_lite") {
     100        $plug_menu_lable = "Feature Box Lite";
     101    } else if(Plugmatter_PACKAGE == "plug_featurebox_single"){
     102        $plug_menu_lable = "Feature Box Single";
     103    } else {
     104        $plug_menu_lable = "Feature Box Pro";
     105    }
     106    add_menu_page("Plugmatter Featurebox - Settings",$plug_menu_lable,'manage_options',__FILE__, 'setting_submenu_page_callback',plugins_url( Plugmatter_DIR_NAME.'/images/icon.png')   );     
     107    add_submenu_page(__FILE__,"","",'manage_options',__FILE__, 'setting_submenu_page_callback');
     108    add_submenu_page( __FILE__, 'Plugmatter Featurebox - Templates', 'Templates','manage_options', 'template_submenu-page','template_submenu_page_callback' ); 
     109    add_submenu_page( __FILE__, 'Plugmatter Featurebox - Split-Testing','Split-Testing','manage_options', 'ab_test_submenu_page','ab_test_submenu_page_callback' );
     110    add_submenu_page( __FILE__, 'Plugmatter Featurebox - General Settings', 'General Settings','manage_options', 'settings_submenu-page','setting_submenu_page_callback' );     
     111   
     112    add_submenu_page( '', 'Plugmatter Featurebox - Edit Template','','manage_options', 'edit_template_submenu-page','edit_template_submenu_page_callback' );
     113    add_submenu_page( '', 'Plugmatter Featurebox - New A/B Split-Test Campaign','','manage_options', 'add_ab_test_submenu_page','add_ab_test_submenu_page_callback' );
     114   
     115    add_submenu_page( '', 'Plugmatter Featurebox - View A/B Split-Test Stats','','manage_options', 'ab_test_stats_page','ab_test_stats_page_callback' );
     116    add_submenu_page( '', 'Plugmatter Featurebox - ajax','','manage_options', 'ajax-page','ajax_page_callback' );
     117   
     118    add_submenu_page( '', 'Plugmatter Featurebox - Register for Support','','manage_options', 'license_submenu_page','license_submenu_page_callback' );
     119}
     120
     121add_action( 'wp_ajax_get_fonts', 'get_fonts' );
     122
     123function get_fonts() {
     124    $google_fonts = wp_remote_get('https://www.googleapis.com/webfonts/v1/webfonts?key='.Plugmatter_GOOGLE_FONTS_KEY, array( 'sslverify' => false ));
     125    $fonts = json_decode($google_fonts["body"]);
     126    $json_fonts = array();
     127    foreach($fonts->items as $itm) {
     128        $family= $itm->family;
     129        $var1='';
     130        foreach($itm->variants as $var){
     131            $var1=$var1.$var.',';
     132        }
     133        $variants= substr($var1,0,-1);
     134        $json_fonts[] = array("family"=>$family,"variants"=>$variants);
     135    }
     136    print  json_encode($json_fonts);
     137    die();
     138}
     139
     140
     141add_action('wp_ajax_plug_load_template', 'plug_load_template');
     142function plug_load_template() {
     143    $tem_name = $_GET["data"];
     144    include(Plugmatter_FILE_PATH . "/templates/". $tem_name . "/template.php");
     145    die();
     146}
     147
     148
     149add_action('wp_ajax_plug_get_page_content', 'plug_get_page_content');
     150function plug_get_page_content() {
     151    $page_id = $_POST['page_id'];
     152    $thispost = get_post( $page_id );
     153    $content = $thispost->post_content;
     154    echo $content;
     155    die();
     156}
     157
     158function license_submenu_page_callback() {
     159    set_js_globals();
     160    include('license.php');
     161}
     162
     163function ajax_page_callback() {
     164    set_js_globals();
     165    include('ajax_update.php');
     166}
     167
     168function ab_test_stats_page_callback(){
     169    set_js_globals();
     170    wp_enqueue_script('jquery');
     171    include('ab_statistics.php');
     172}
     173
     174function setting_submenu_page_callback() {
     175    set_js_globals();
     176    if(get_option('Plugmatter_Featurebox_License') == "") {
     177        include('license.php');
     178    } else {
     179        include('settings.php');
     180    }
     181}
     182
     183function ab_test_submenu_page_callback() {
     184    set_js_globals();
     185    include('ab_test.php');
     186}
     187
     188function template_submenu_page_callback() {
     189    set_js_globals();
     190    include('templates.php');
     191}
     192
     193function edit_template_submenu_page_callback() {
     194    set_js_globals();
     195    include('edit_template.php');
     196}
     197function add_ab_test_submenu_page_callback() {
     198    set_js_globals();
     199    include('ab_test_add.php');
     200}
     201
     202function set_js_globals() {
     203    echo "<script type='text/javascript'>
     204            var plugin_url = '".plugins_url(Plugmatter_DIR_NAME.'/')."';
     205            var site_url = '".admin_url('admin-ajax.php')."';
     206          </script>";
     207}
     208
     209add_action('admin_enqueue_scripts', 'pm_admin_styles');
     210function pm_admin_styles($hook) {   
     211    //echo $hook;
     212    if('admin_page_edit_template_submenu-page' == $hook ) {
     213        wp_enqueue_style('thickbox');
     214        wp_register_style('pm_inline_edit_style', plugins_url('css/pm_inline_edit.css', __FILE__));
     215        wp_enqueue_style('pm_inline_edit_style');
     216        wp_enqueue_style('pm_button_style', plugins_url('/css/pm_btn_style.css', __FILE__));       
     217        wp_enqueue_style('pm_bootstrap', plugins_url('/css/pm_bootstrap.css', __FILE__));       
     218    }
     219    wp_register_style('pm_settings', plugins_url('css/style.css', __FILE__));
     220    wp_enqueue_style('pm_settings');   
     221    wp_register_style('pm_headfont', "http://fonts.googleapis.com/css?family=Fauna+One");
     222    wp_enqueue_style('pm_headfont');       
     223}
     224
     225add_action('admin_enqueue_scripts', 'pm_admin_scripts');
     226function pm_admin_scripts($hook) {
     227    //echo $hook;
     228    wp_enqueue_script('jquery');                       
     229    if('admin_page_edit_template_submenu-page' == $hook ) {
     230        wp_enqueue_script('media-upload');
     231        wp_enqueue_script('thickbox');
     232        wp_enqueue_media();
     233        wp_register_script('pm_inline_edit_style_js',plugins_url('js/inline_edit.js', __FILE__), array('jquery'));
     234        wp_enqueue_script('pm_inline_edit_style_js');
     235        wp_register_script('pm__farbtastic_js',plugins_url('js/farbtastic.js', __FILE__), array('jquery'));
     236        wp_enqueue_script('pm__farbtastic_js');
     237        wp_register_script('pm_image_uploader', plugins_url('js/image_uploader.js', __FILE__), array('jquery','media-upload','thickbox'));
     238        wp_enqueue_script('pm_image_uploader');
     239    }else if('plugmatter_page_settings_submenu-page' == $hook ) {
     240    }else if('admin_page_ab_test_stats_page' == $hook ){
     241        wp_register_script('jqueryflot',plugins_url('js/jquery.flot.js', __FILE__), array('jquery'));
     242        wp_enqueue_script('jqueryflot');
     243        wp_register_script('excanvas_min',plugins_url('js/excanvas.min.js', __FILE__), array('jquery'));
     244        wp_enqueue_script('excanvas_min');             
     245    }
     246}
     247
     248add_action( 'wp_enqueue_scripts', 'pm_frontend_scripts' );
     249function pm_frontend_scripts($hook) {
     250    wp_enqueue_script('jquery');
     251}
     252
     253
     254function plugmatter_custom_hook() {
     255    wp_enqueue_script('jquery');
     256    set_js_globals();
     257    if(get_option("Plugmatter_PACKAGE") == "plug_featurebox_lite") {
     258        include_once('frontend_lite.php'); 
     259    } else if(get_option("Plugmatter_PACKAGE") == "plug_featurebox_single") {
     260        include_once('frontend_single.php');
     261    } else {
     262        include_once('frontend_pro.php');       
     263    }
     264}
     265
     266//--------------------------------------------------------------------------------------------------------
     267
     268add_action( 'add_meta_boxes', 'pm_post_featurebox' );
     269function pm_post_featurebox() {
     270    add_meta_box('myplugin_sectionid',__('Plugmatter Feature Box',''),'pm_post_inner_box','post');
     271    add_meta_box('myplugin_sectionid',__('Plugmatter Feature Box',''),'pm_post_inner_box','page');
     272}
     273
     274function pm_post_inner_box( $post ) {
     275    wp_nonce_field( plugin_basename( __FILE__ ), 'pm_meta_templ_id' );
     276
     277    $value = get_post_meta($post->ID, "pm_meta_templ_id", true);
     278   
     279    global $wpdb;   
     280    $table = $wpdb->prefix.'plugmatter_templates';
     281    $templt_list = $wpdb->get_results("SELECT id,temp_name,base_temp_name,params FROM $table");
     282   
     283    echo "Select Template for this Post: ";
     284    if(get_option("Plugmatter_PACKAGE") == "plug_featurebox_pro" || get_option("Plugmatter_PACKAGE") == "plug_featurebox_dev") {
     285        echo "<select name ='pm_meta_templ_sel' >";
     286        echo "<option value='-1' ";
     287        if($value == "-1") {
     288            echo "selected=selected";
     289        }
     290        echo " > Default </option>";
     291   
     292        echo "<option value='-2' ";
     293        if($value == "-2") {
     294            echo "selected=selected";
     295        }
     296        echo " > Disable </option>";   
     297   
     298        foreach ( $templt_list as $templ_list ) {
     299            echo "<option value=".$v = $templ_list->id;
     300            if($value == $v) {
     301                echo " selected='selected'";
     302            }
     303            echo " >".$templ_list->temp_name."</option>";       
     304        }
     305        echo "</select>";
     306    } else {
     307        echo Plugmatter_UPNOTE;
     308    }
     309}
     310
     311add_action( 'post_updated', 'pm_save_postdata' );
     312function pm_save_postdata( $post_id ) {
     313    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
     314        return;
     315
     316    if ('page' == $_POST['post_type'] ) {
     317        if ( !current_user_can( 'edit_page', $post_id ) )
     318            return;
     319    }
     320    else {
     321        if ( !current_user_can( 'edit_post', $post_id ) )
     322            return;
     323    }
     324    $pm_meta_templ_id = $_POST['pm_meta_templ_sel'];
     325    if( get_post_meta( $post_id, 'pm_meta_templ_id') == "") {
     326        add_post_meta($post_id, 'pm_meta_templ_id', $pm_meta_templ_id, true );
     327           
     328    } else if($pm_meta_templ_id != get_post_meta($post_id, $pm_meta_templ_id, true)) {
     329        update_post_meta($post_id, 'pm_meta_templ_id', $pm_meta_templ_id);
     330           
     331    } elseif($pm_meta_templ_id == "") {
     332        delete_post_meta($post_id, 'pm_meta_templ_id', get_post_meta($post_id, 'pm_meta_templ_id', true));
     333           
     334    }   
     335}
     336
     337
     338add_action( 'wp_ajax_pm_ab_track', 'pm_ab_track' );
     339add_action('wp_ajax_nopriv_pm_ab_track', 'pm_ab_track');
     340
     341function pm_ab_track() {
     342    global $wpdb;   
     343    $ab_stats_tbl = $wpdb->prefix.'plugmatter_ab_stats';
     344    $ab_test_tbl = $wpdb->prefix.'plugmatter_ab_test'; 
     345   
     346    $joined = explode( ':', $_POST['ab_meta'] );
     347    $ab_id = $joined[0];
     348    $templ_no = $joined[1];
     349    $date=date("Y-m-d");
     350    $box = "";
     351   
     352    if(isset($_POST['track']) && $_POST['track'] == "conv"){   
     353        $date=date("Y-m-d");
     354        $results = $wpdb->get_row("SELECT * FROM $ab_test_tbl WHERE active = 'yes' AND id = '".$ab_id."' ");
     355        if($results){
     356            if($results->boxA == $templ_no){
     357                $box = "a_conv";
     358            }else{
     359                $box = "b_conv";
     360            }
     361        }               
     362        $upq="UPDATE $ab_stats_tbl SET $box = $box+1 WHERE date = '$date' AND ab_id = '$ab_id'";
     363        $wpdb->query($upq);
     364   
     365    } else if(isset($_POST['track']) && $_POST['track'] == "imp"){             
     366        $results = $wpdb->get_row("SELECT * FROM $ab_test_tbl WHERE active = 'yes' AND id = '".$ab_id."' ");
     367        if($results){           
     368            if($results->boxA == $templ_no){               
     369                $upq="UPDATE $ab_stats_tbl SET a_imp = a_imp+1 WHERE date = '$date' AND ab_id = '$ab_id'";
     370                $wpdb->query($upq);
     371            }else{             
     372                $upq="UPDATE $ab_stats_tbl SET b_imp = b_imp+1 WHERE date = '$date' AND ab_id = '$ab_id'";
     373                $wpdb->query($upq);
     374            }           
     375        }
     376    }       
     377    die();
     378}
     379
     380if(Plugmatter_PACKAGE != "plug_featurebox_lite") {
     381    // About Auto Update
     382    require_once ("wp_plugin_auto_update.php");
     383    $wp_plugin_auto_update = new WpPluginAutoUpdate('http://plugmatter.com/updates/index.php', 'stable',  basename(dirname(__FILE__)));
     384
     385    add_filter('pre_set_site_transient_update_plugins', array($wp_plugin_auto_update, 'check_for_plugin_update'));
     386    add_filter('plugins_api', array($wp_plugin_auto_update, 'plugins_api_call'), 10, 3);
     387}
    15388
    16389?>
Note: See TracChangeset for help on using the changeset viewer.