Your IP : 3.19.238.155


Current Path : /home/church/esselwebdesign.com/wp-content/plugins/portfolio-wp/
Upload File :
Current File : /home/church/esselwebdesign.com/wp-content/plugins/portfolio-wp/portfolio-wp.php

<?php

/*
* Plugin Name: Grid Kit
* Plugin URI: http://wpsofts.com
* Description: WordPress multipurpose plugin to showcase your portfolio, photo gallery, eCommerce product catalog, image slider, album, clients or team members on your site!
* Author: wpsofts
* Author URI: http://wpsofts.com
* License: GPLv2 or later
* Version: 2.2.0
*/


//Load configs
require_once( dirname(__FILE__).'/gkit-config.php');
require_once( CRP_CLASSES_DIR_PATH.'/crp-ajax.php');
require_once( CRP_CLASSES_DIR_PATH.'/CRPHelper.php');
require_once( CRP_CLASSES_DIR_PATH.'/DBInitializer.php');

//Register activation & deactivation hooks
register_activation_hook( __FILE__, 'crp_activation_hook');
register_uninstall_hook( __FILE__, 'crp_uninstall_hook');
register_deactivation_hook( __FILE__, 'crp_deactivation_hook');

//Register action hooks
add_action('init', 'crp_init_action');
add_action('admin_enqueue_scripts', 'crp_admin_enqueue_scripts_action' );
add_action('wp_enqueue_scripts', 'crp_wp_enqueue_scripts_action' );
add_action('admin_menu', 'crp_admin_menu_action');
add_action('admin_head', 'crp_admin_head_action');
add_action('admin_footer', 'crp_admin_footer_action');
add_action('upgrader_process_complete', 'gkit_update_complete_action', 10, 2);
add_action('plugins_loaded', 'grid_kit_plugins_loaded_action');

//Register filter hooks

//Register crp shortcode handlers
add_shortcode('crp_portfolio', 'crp_shortcode_handler');
add_shortcode('gkit', 'crp_shortcode_handler');

//Register Ajax actions
add_action( 'wp_ajax_crp_get_portfolio', 'wp_ajax_crp_get_portfolio');
add_action( 'wp_ajax_crp_save_portfolio', 'wp_ajax_crp_save_portfolio');

//Global vars
$crp_portfolio;

function gkit_update_complete_action( $upgrader_object, $options ) {
    $our_plugin = plugin_basename( __FILE__ );
    if( $options['action'] == 'update' && $options['type'] == 'plugin' && isset( $options['plugins'] ) ) {
        foreach( $options['plugins'] as $plugin ) {
            if( $plugin == $our_plugin ) {
                set_transient( 'grid_kit_updated', 1 );
            }
        }
    }
}

function grid_kit_plugins_loaded_action()
{
    if (get_transient('grid_kit_updated')) {
        $dbInitializer = new DBInitializer();
        $dbInitializer->checkForChanges();

        delete_transient('grid_kit_updated');
    }
}

//Registered activation hook
function crp_activation_hook(){
    $dbInitializer = new DBInitializer();
    if($dbInitializer->needsConfiguration()){
        $dbInitializer->configure();
    }
    $dbInitializer->checkForChanges();
}

function crp_uninstall_hook(){
    delete_option(CRP_BANNERS_CONTENT);
    delete_option(CRP_BANNERS_LAST_LOADED_AT);
}

function crp_deactivation_hook(){
}

//Registered hook actions
function crp_init_action() {
    global $wp_version;
    if ( version_compare( $wp_version, '5.0.0', '>=' ) ) {
        wp_register_script(
            'gkit-shortcode-block-script',
            CRP_JS_URL . '/gkit-shortcode-block.js',
            array('wp-blocks', 'wp-element')
        );

        wp_register_style(
            'gkit-shortcode-block-style',
            CRP_CSS_URL . '/gkit-admin-editor-block.css',
            array('wp-edit-blocks'),
            filemtime(plugin_dir_path(__FILE__) . 'css/gkit-admin-editor-block.css')
        );

        register_block_type('grid-kit-premium/gkit-shortcode-block', array(
            'editor_script' => 'gkit-shortcode-block-script',
            'editor_style' => 'gkit-shortcode-block-style',
        ));
    }
    ob_start();
}

function crp_admin_enqueue_scripts_action($hook) {
    if (stripos($hook, CRP_PLUGIN_SLAG) !== false) {
        crp_enqueue_admin_scripts();
        crp_enqueue_admin_csss();
    }
}

function crp_wp_enqueue_scripts_action(){
    crp_enqueue_front_scripts();
    crp_enqueue_front_csss();
}

function crp_admin_menu_action() {
    crp_setup_admin_menu_buttons();
}

function crp_admin_head_action(){
    crp_include_inline_scripts();
    crp_setup_media_buttons();
}

function crp_admin_footer_action() {
    crp_include_inline_htmls();
}

//Registered hook filters
function crp_mce_external_plugins_filter($pluginsArray){
    return crp_register_tinymce_plugin($pluginsArray);
}

function crp_mce_buttons_filter($buttons){
    return crp_register_tc_buttons($buttons);
}

//Shortcode Hanlders
function crp_shortcode_handler($attributes){
    ob_start();

    //Prepare render data
    global $crp_portfolio;
    $crp_portfolio = CRPHelper::getPortfolioWithId($attributes['id']);
    require_once(CRP_FRONT_VIEWS_DIR_PATH."/crp-front.php");

    $result = ob_get_clean();
    return $result;
}

//Internal functionality
function crp_setup_admin_menu_buttons(){
    add_menu_page(CRP_PLUGIN_NAME, CRP_PLUGIN_NAME, 'manage_options', CRP_PLUGIN_SLAG, "crp_admin_portfolios_page", 'dashicons-portfolio', 76);
    add_submenu_page(CRP_PLUGIN_SLAG, CRP_SUBMENU_PORTFOLIOS_TITLE, CRP_SUBMENU_PORTFOLIOS_TITLE, 'manage_options', CRP_PLUGIN_SLAG, 'crp_admin_portfolios_page');
    add_submenu_page(CRP_PLUGIN_SLAG, CRP_SUBMENU_ALBUMS_TITLE, CRP_SUBMENU_ALBUMS_TITLE, 'manage_options', CRP_SUBMENU_ALBUMS_SLUG, 'crp_admin_albums_page');
    add_submenu_page(CRP_PLUGIN_SLAG, CRP_SUBMENU_GALLERIES_TITLE, CRP_SUBMENU_GALLERIES_TITLE, 'manage_options', CRP_SUBMENU_GALLERIES_SLUG, 'crp_admin_galleries_page');
    add_submenu_page(CRP_PLUGIN_SLAG, CRP_SUBMENU_CLIENT_LOGOS_TITLE, CRP_SUBMENU_CLIENT_LOGOS_TITLE, 'manage_options', CRP_SUBMENU_CLIENT_LOGOS_SLUG, 'crp_admin_client_logos_page');
    add_submenu_page(CRP_PLUGIN_SLAG, CRP_SUBMENU_TEAMS_TITLE, CRP_SUBMENU_TEAMS_TITLE, 'manage_options', CRP_SUBMENU_TEAMS_SLUG, 'crp_admin_teams_page');
    add_submenu_page(CRP_PLUGIN_SLAG, CRP_SUBMENU_PRODUCT_CATALOGS_TITLE, CRP_SUBMENU_PRODUCT_CATALOGS_TITLE, 'manage_options', CRP_SUBMENU_PRODUCT_CATALOGS_SLUG, 'crp_admin_catalogs_page');
    add_submenu_page(CRP_PLUGIN_SLAG, CRP_SUBMENU_SLIDER_TITLE, CRP_SUBMENU_SLIDER_TITLE, 'manage_options', CRP_SUBMENU_SLIDER_SLUG, 'crp_admin_sliders_page');
}

function crp_admin_page() {
  require_once(CRP_ADMIN_VIEWS_DIR_PATH.'/crp-admin.php');
}

function crp_admin_albums_page(){
    global $crp_adminPageType;
    $crp_adminPageType = CRPGridType::ALBUM;
    require_once(CRP_ADMIN_VIEWS_DIR_PATH.'/crp-admin.php');
}
function crp_admin_portfolios_page(){
    global $crp_adminPageType;
    $crp_adminPageType = CRPGridType::PORTFOLIO;
    require_once(CRP_ADMIN_VIEWS_DIR_PATH.'/crp-admin.php');
}
function crp_admin_galleries_page(){
    global $crp_adminPageType;
    $crp_adminPageType = CRPGridType::GALLERY;
    require_once(CRP_ADMIN_VIEWS_DIR_PATH.'/crp-admin.php');
}
function crp_admin_client_logos_page(){
    global $crp_adminPageType;
    $crp_adminPageType = CRPGridType::CLIENT_LOGOS;
    require_once(CRP_ADMIN_VIEWS_DIR_PATH.'/crp-admin.php');
}
function crp_admin_teams_page(){
    global $crp_adminPageType;
    $crp_adminPageType = CRPGridType::TEAM;
    require_once(CRP_ADMIN_VIEWS_DIR_PATH.'/crp-admin.php');
}
function crp_admin_catalogs_page(){
    global $crp_adminPageType;
    $crp_adminPageType = CRPGridType::CATALOG;
    require_once(CRP_ADMIN_VIEWS_DIR_PATH.'/crp-admin.php');
}
function crp_admin_sliders_page(){
    global $crp_adminPageType;
    $crp_adminPageType = CRPGridType::SLIDER;
    require_once(CRP_ADMIN_VIEWS_DIR_PATH.'/crp-admin.php');
}

function crp_setup_media_buttons(){
    global $typenow;
    // check user permissions
    if ( !current_user_can('edit_posts') && !current_user_can('edit_pages') ) {
        return;
    }

    // verify the post type
    if( ! in_array( $typenow, array( 'post', 'page' ) ) )
        return;

    // check if WYSIWYG is enabled
    if ( get_user_option('rich_editing') == 'true') {
        add_filter("mce_external_plugins", "crp_mce_external_plugins_filter");
        add_filter('mce_buttons', 'crp_mce_buttons_filter');
    }
}

function crp_register_tinymce_plugin($pluginsArray) {
    $pluginsArray['crp_tc_buttons'] = CRP_JS_URL."/crp-tc-buttons.js";
    return $pluginsArray;
}

function crp_register_tc_buttons($buttons) {
    array_push($buttons, "crp_insert_tc_button");
    return $buttons;
}

function crp_include_inline_scripts(){
?>
    <script type="text/javascript">

        <?php
             $dbInitializer = new DBInitializer();
            if ($dbInitializer->needsInitialization()) {
                $crp_shortcodes = array();
            } else {
                $crp_shortcodes = CRPHelper::tcButtonShortcodes();
            }
        ?>

        crp_shortcodes = [];
        <?php foreach($crp_shortcodes as $crp_shortcode): ?>
            crp_shortcodes.push({
                "id" : "<?php echo esc_attr($crp_shortcode->id); ?>",
                "title" : "<?php echo esc_attr($crp_shortcode->title); ?>",
                "shortcode" : "<?php echo esc_attr($crp_shortcode->shortcode); ?>"
            });
        <?php endforeach; ?>


        jQuery(document).ready(function() {
        });
    </script>
<?php
}

function crp_include_inline_htmls(){
?>

<?php
}

function crp_enqueue_admin_scripts(){
    wp_enqueue_script("jquery");
    wp_enqueue_script("jquery-ui-core");
    wp_enqueue_script("jquery-ui-sortable");
    wp_enqueue_script("jquery-ui-autocomplete");

    //Enqueue JS files
    wp_enqueue_script( 'crp-helper-js', CRP_JS_URL.'/crp-helper.js', array('jquery'), "", false );
    wp_enqueue_script( 'crp-main-admin-js', CRP_JS_URL.'/crp-main-admin.js', array('jquery'), "", true );
    wp_enqueue_script( 'crp-ajax-admin-js', CRP_JS_URL.'/crp-ajax-admin.js', array('jquery'), "", true );

    wp_register_script('crp-tooltipster', CRP_JS_URL."/jquery/jquery.tooltipster.js", array('jquery'), "", true );
    wp_enqueue_script('crp-tooltipster');

    wp_register_script('crp-caret', CRP_JS_URL."/jquery/jquery.caret.js", array('jquery'), "", true );
    wp_enqueue_script('crp-caret');

    wp_register_script('crp-tageditor', CRP_JS_URL."/jquery/jquery.tageditor.js", array('jquery'), "", true );
    wp_enqueue_script('crp-tageditor');

    wp_enqueue_media();
    wp_enqueue_script('wp-color-picker');
}

function crp_enqueue_admin_csss(){
    //Enqueue CSS files

    wp_register_style('crp-main-admin-style', CRP_CSS_URL.'/crp-main-admin.css');
    wp_enqueue_style('crp-main-admin-style');

    wp_register_style('crp-tc-buttons', CRP_CSS_URL.'/crp-tc-buttons.css');
    wp_enqueue_style('crp-tc-buttons');

    wp_register_style('crp-tooltipster', CRP_CSS_URL.'/tooltipster/tooltipster.css');
    wp_enqueue_style('crp-tooltipster');

    wp_register_style('crp-tooltipster-theme', CRP_CSS_URL.'/tooltipster/themes/tooltipster-shadow.css');
    wp_enqueue_style('crp-tooltipster-theme');

    wp_register_style('crp-accordion', CRP_CSS_URL.'/accordion/accordion.css');
    wp_enqueue_style('crp-accordion');

    wp_register_style('crp-tageditor', CRP_CSS_URL.'/tageditor/tageditor.css');
    wp_enqueue_style('crp-tageditor');

    wp_enqueue_style( 'wp-color-picker' );

    wp_register_style('crp-font-awesome', CRP_CSS_URL.'/fontawesome/font-awesome.css');
    wp_enqueue_style('crp-font-awesome');
}

function crp_enqueue_front_scripts(){
    //Enqueue JS files
    wp_enqueue_script( 'crp-main-front-js', CRP_JS_URL.'/crp-main-front.js', array('jquery') );
    wp_enqueue_script( 'crp-helper-js', CRP_JS_URL.'/crp-helper.js', array('jquery') );
    wp_enqueue_script( 'crp-modernizr', CRP_JS_URL."/jquery/jquery.modernizr.js", array('jquery') );
    wp_enqueue_script( 'crp-tiled-layer', CRP_JS_URL."/crp-tiled-layer.js", array('jquery') );
    wp_enqueue_script( 'crp-lg-viewer', CRP_JS_URL.'/jquery/jquery.lightgallery.js', array('jquery') );
    wp_enqueue_script( 'crp-owl', CRP_JS_URL.'/owl-carousel/owl.carousel.js', array('jquery') );
}

function crp_enqueue_front_csss(){
    //Enqueue CSS files
    wp_register_style('crp-main-front-style', CRP_CSS_URL.'/crp-main-front.css');
    wp_enqueue_style('crp-main-front-style');

    wp_register_style('crp-tc-buttons', CRP_CSS_URL.'/crp-tc-buttons.css');
    wp_enqueue_style('crp-tc-buttons');

    wp_register_style('crp-tiled-layer', CRP_CSS_URL.'/crp-tiled-layer.css');
    wp_enqueue_style('crp-tiled-layer');

    wp_register_style('crp-font-awesome', CRP_CSS_URL.'/fontawesome/font-awesome.css');
    wp_enqueue_style('crp-font-awesome');

    wp_register_style('crp-lg-viewer', CRP_CSS_URL.'/lightgallery/lightgallery.css');
    wp_enqueue_style('crp-lg-viewer');

    wp_register_style('crp-captions', CRP_CSS_URL.'/crp-captions.css');
    wp_enqueue_style('crp-captions');

    wp_register_style('crp-captions', CRP_CSS_URL.'/crp-captions.css');
    wp_enqueue_style('crp-captions');

    wp_register_style('crp-owl', CRP_CSS_URL.'/owl-carousel/assets/owl.carousel.css');
    wp_enqueue_style('crp-owl');

    wp_register_style('crp-layout', CRP_CSS_URL.'/owl-carousel/layout.css');
    wp_enqueue_style('crp-layout');
}