%s', wp_nonce_url(admin_url('admin.php?page=' . NEXTEND_SMARTSLIDER_3_URL_PATH . '&repairss3=1'), 'repairss3'), 'Reactivate'); } return $links; } public static function clear_slider_cache() { N2Loader::import(array( 'models.Sliders' ), 'smartslider'); $slidersModel = new N2SmartsliderSlidersModel(); $slidersModel->invalidateCache(); } public static function removeEmoji() { remove_action('wp_head', 'print_emoji_detection_script', 7); remove_action('admin_print_scripts', 'print_emoji_detection_script'); } public static function unyson_extension($locations) { if (version_compare(fw()->manifest->get_version(), '2.6.0', '>=')) { $path = dirname(__FILE__) . '/integrations/unyson'; $locations[$path] = plugin_dir_url(__FILE__) . 'integrations/unyson'; } return $locations; } public static function wpseo_xml_sitemap_post_url($permalink, $post) { global $shortcode_tags; $_shortcode_tags = $shortcode_tags; $shortcode_tags = array("smartslider3" => "N2SS3Shortcode::doShortcode"); $post->post_content = do_shortcode($post->post_content); $shortcode_tags = $_shortcode_tags; return $permalink; } public static function registerApplication() { N2Base::registerApplication(dirname(NEXTEND_SMARTSLIDER_3__FILE__) . '/library/smartslider/N2SmartsliderApplicationInfo.php'); } public static function _init() { N2Loader::import('libraries.settings.settings', 'smartslider'); if (current_user_can('smartslider_edit') && intval(N2SmartSliderSettings::get('wp-adminbar', 1))) { add_action('admin_bar_menu', 'SmartSlider3::admin_bar_menu', 81); } if (N2SmartSliderSettings::get('yoast-sitemap', 1)) { add_filter('wpseo_xml_sitemap_post_url', 'SmartSlider3::wpseo_xml_sitemap_post_url', 10, 2); } } public static function widgets_init() { N2Loader::import('libraries.settings.settings', 'smartslider'); $widgetAreas = intval(N2SmartSliderSettings::get('wordpress-widget-areas', 1)); if ($widgetAreas > 0) { for ($i = 1; $i <= $widgetAreas; $i++) { register_sidebar(array( 'name' => 'Custom Widget Area - #' . $i, 'description' => '', 'id' => 'smartslider_area_' . $i, 'before_widget' => '', 'after_widget' => '', 'before_title' => '
', 'after_title' => '
', )); } } } public static function widgets_admin_page() { add_action('dynamic_sidebar_before', 'SmartSlider3::dynamic_sidebar_before'); } public static function dynamic_sidebar_before($index) { if (substr($index, 0, strlen('smartslider_area_')) === 'smartslider_area_') { echo '
Display this widget area in your theme with:
<?php dynamic_sidebar(\'' . $index . '\'); ?>
'; } } public static function preRender() { if (isset($_GET['n2prerender']) && isset($_GET['n2app'])) { if (current_user_can('smartslider') || (!empty($_GET['h']) && ($_GET['h'] === sha1(NONCE_SALT . date('Y-m-d')) || $_GET['h'] === sha1(NONCE_SALT . date('Y-m-d', time() - 60 * 60 * 24))))) { try { N2Base::getApplication($_GET['n2app']) ->getApplicationType(N2Platform::$isAdmin ? 'backend' : 'frontend') ->setCurrent() ->render(array( "prerender" => true, "controller" => $_GET['n2controller'], "action" => $_GET['n2action'] )); n2_exit(true); } catch (Exception $e) { exit; } } else if (isset($_GET['sliderid']) && isset($_GET['hash']) && md5($_GET['sliderid'] . NONCE_SALT) == $_GET['hash']) { try { N2Base::getApplication('smartslider') ->getApplicationType('frontend') ->setCurrent() ->render(array( "prerender" => true, "controller" => 'slider', "action" => 'iframe' )); n2_exit(true); } catch (Exception $e) { exit; } } } } public static function nextendAdminInit() { add_menu_page('Smart Slider', 'Smart Slider', 'smartslider', NEXTEND_SMARTSLIDER_3_URL_PATH, 'SmartSlider3::application', 'dashicons-welcome-learn-more'); } public static function nextendNetworkAdminInit() { add_menu_page('Smart Slider Update', 'Smart Slider Update', 'smartslider', NEXTEND_SMARTSLIDER_3_URL_PATH, 'SmartSlider3::networkUpdate', 'dashicons-welcome-learn-more'); function nextend_smart_slider_admin_menu() { echo ''; } add_action('admin_head', 'nextend_smart_slider_admin_menu'); } public static function networkUpdate() { N2Base::getApplication("smartslider") ->getApplicationType('backend') ->setCurrent() ->render(array( "controller" => 'update', "action" => 'update' )); n2_exit(); } public static function application($dummy, $controller = 'sliders', $action = 'index') { N2Base::getApplication("smartslider") ->getApplicationType('backend') ->setCurrent() ->render(array( "controller" => $controller, "action" => $action )); n2_exit(); } public static function install() { N2WP::install(); N2Base::getApplication("smartslider") ->getApplicationType('backend') ->render(array( "controller" => "install", "action" => "index", "useRequest" => false ), array(true)); update_option("n2_ss3_version", N2SS3::$completeVersion); return true; } public static function delete_blog($blog_id, $drop) { N2WP::delete_blog($blog_id, $drop); if ($drop) { global $wpdb; $prefix = $wpdb->get_blog_prefix($blog_id); $wpdb->query('DROP TABLE IF EXISTS ' . $prefix . 'nextend2_smartslider3_generators, ' . $prefix . 'nextend2_smartslider3_sliders, ' . $prefix . 'nextend2_smartslider3_slides, ' . $prefix . 'nextend2_smartslider3_sliders_xref;'); } } public static function import($file) { N2Base::getApplication("smartslider") ->getApplicationType('backend'); N2Loader::import(array( 'models.Sliders', 'models.Slides' ), 'smartslider'); N2Loader::import('libraries.import', 'smartslider'); $import = new N2SmartSliderImport(); $sliderId = $import->import($file); if ($sliderId !== false) { return $sliderId; } return false; } public static function divi_et_builder_ready() { if (version_compare(ET_CORE_VERSION, '3.1', '<')) { require_once dirname(__FILE__) . '/integrations/Divi.php'; } } public static function divi_extensions_init() { if (version_compare(ET_CORE_VERSION, '3.1', '>=')) { require_once dirname(__FILE__) . '/integrations/Divi/SmartSlider3Extension.php'; } } public static function visualComposer() { require_once dirname(__FILE__) . '/integrations/VisualComposer.php'; } public static function visualComposer2() { require_once dirname(__FILE__) . '/integrations/VisualComposer2.php'; } public static function elementor() { require_once dirname(__FILE__) . '/integrations/Elementor.php'; } public static function beaverBuilder() { require_once dirname(__FILE__) . '/integrations/beaver-builder/BeaverBuilder.php'; } public static function tailor() { require_once dirname(__FILE__) . '/integrations/tailor.php'; } public static function motoPressCE() { require_once dirname(__FILE__) . '/integrations/MotoPressCE.php'; } /** * @param WP_Admin_Bar $wp_admin_bar */ public static function admin_bar_menu($wp_admin_bar) { global $wpdb; $wp_admin_bar->add_node(array( 'id' => 'new_content_smart_slider', 'parent' => 'new-content', 'title' => 'Slider [Smart Slider 3]', 'href' => admin_url("admin.php?page=" . NEXTEND_SMARTSLIDER_3_URL_PATH . '#createslider') )); $wp_admin_bar->add_node(array( 'id' => 'smart_slider_3', 'title' => 'Smart Slider', 'href' => admin_url("admin.php?page=" . NEXTEND_SMARTSLIDER_3_URL_PATH) )); $wp_admin_bar->add_node(array( 'id' => 'smart_slider_3_dashboard', 'parent' => 'smart_slider_3', 'title' => 'Dashboard', 'href' => admin_url("admin.php?page=" . NEXTEND_SMARTSLIDER_3_URL_PATH) )); $wp_admin_bar->add_node(array( 'id' => 'smart_slider_3_create_slider', 'parent' => 'smart_slider_3', 'title' => 'Create slider', 'href' => admin_url("admin.php?page=" . NEXTEND_SMARTSLIDER_3_URL_PATH . '#createslider') )); $query = 'SELECT sliders.title, sliders.id, slides.thumbnail FROM ' . $wpdb->prefix . 'nextend2_smartslider3_sliders AS sliders LEFT JOIN ' . $wpdb->prefix . 'nextend2_smartslider3_slides AS slides ON slides.id = (SELECT id FROM ' . $wpdb->prefix . 'nextend2_smartslider3_slides WHERE slider = sliders.id AND published = 1 AND generator_id = 0 AND thumbnail NOT LIKE \'\' ORDER BY ordering DESC LIMIT 1) ORDER BY time DESC LIMIT 10'; $sliders = $wpdb->get_results($query, ARRAY_A); if (count($sliders)) { $wp_admin_bar->add_node(array( 'id' => 'smart_slider_3_edit', 'parent' => 'smart_slider_3', 'title' => 'Edit slider', 'href' => admin_url("admin.php?page=" . NEXTEND_SMARTSLIDER_3_URL_PATH) )); foreach ($sliders AS $slider) { $wp_admin_bar->add_node(array( 'id' => 'smart_slider_3_slider_' . $slider['id'], 'parent' => 'smart_slider_3_edit', 'title' => '#' . $slider['id'] . ' - ' . $slider['title'], 'href' => admin_url("admin.php?page=" . NEXTEND_SMARTSLIDER_3_URL_PATH . '&nextendcontroller=slider&nextendaction=edit&sliderid=' . $slider['id']) )); } if (count($sliders) == 10) { $wp_admin_bar->add_node(array( 'id' => 'smart_slider_3_slider_view_all', 'parent' => 'smart_slider_3_edit', 'title' => 'View all', 'href' => admin_url("admin.php?page=" . NEXTEND_SMARTSLIDER_3_URL_PATH) )); } } /* $wp_admin_bar->add_node(array( 'id' => 'smart_slider_3_clear_cache', 'parent' => 'smart_slider_3', 'title' => 'Clear cache', 'href' => N2Base::getApplication('smartslider')->router->createUrl(array( 'settings/clearcache' ), true) )); */ } public static function sliderSelectAction($jQueryNode) { return 'NextendSmartSliderSelectModal(' . $jQueryNode . ');'; } } SmartSlider3::init();