PluginProbe
Float menu – awesome floating side menu / 4.0
Float menu – awesome floating side menu v4.0
7.2.5 trunk 2.1 2.2 3.0.1 3.1 3.2.2 3.3.1 3.5 3.5.1 3.5.2 3.5.3. 3.5.4 4.0 4.1 4.1.1 4.2 4.3 4.3.1 4.3.2 5.0 5.0.1 5.0.2 5.0.3 5.1 All 57 releases
← All changes | float-menu.php +187 -176 2.14.0 View file →
@@ -1,176 +1,187 @@
1 -<?php
2 - /**
3 - * Plugin Name: Float Menu (free version)
4 - * Plugin URI: https://wordpress.org/plugins/float-menu/
5 - * Description: EASILY CREATE FLOATING MENUS OF VARYING COMPLEXITY
6 - * Version: 2.1
7 - * Author: Wow-Company
8 - * Author URI: https://wow-estore.com/author/admin/?author_downloads=true
9 - * License: GPL-2.0+
10 - * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
11 - */
12 - if ( ! defined( 'WPINC' ) ) {die;}
13 - // Declaration Wow-Company class
14 - if( !class_exists( 'Wow_Company' )) {
15 - require_once plugin_dir_path( __FILE__ ) . 'include/class/wow-company.php';
16 - }
17 - if( !class_exists( 'WOW_DATA' )) {
18 - require_once plugin_dir_path( __FILE__ ) . 'include/class/data.php';
19 - }
20 - if( !class_exists( 'JavaScriptPacker' )) {
21 - require_once plugin_dir_path( __FILE__ ) . 'include/class/packer.php';
22 - }
23 - // Declaration of the plugin class
24 - if( !class_exists( 'Float_Menu_Class' ) ) {
25 - class Float_Menu_Class
26 - {
27 - const PREF = 'fmp';
28 - function __construct() {
29 - $this->name = 'Float Menu';
30 - $this->version = '2.1';
31 - $this->pluginname = dirname(plugin_basename(__FILE__));
32 - $this->plugindir = plugin_dir_path( __FILE__ );
33 - $this->pluginurl = plugin_dir_url( __FILE__ );
34 - // activate & diactivate
35 - register_activation_hook( __FILE__, array($this, 'plugin_activate' ) );
36 - register_deactivation_hook( __FILE__, array($this, 'plugin_deactivate') );
37 - // admin pages
38 - add_action( 'admin_menu', array($this, 'add_menu_page') );
39 - // show on front end
40 - add_shortcode('Float-Menu', array($this, 'shortcode') );
41 - add_action( 'wp_footer', array($this, 'display') );
42 - // admin links
43 - add_filter( 'plugin_row_meta', array($this, 'row_meta'), 10, 4 );
44 - add_filter( 'plugin_action_links', array($this, 'action_links'), 10, 2 );
45 - // check asset folder
46 - add_filter( 'admin_init', array($this, 'asset_folder') );
47 -
48 - }
49 - // Activate & diactivate
50 - function plugin_activate() {
51 - require_once plugin_dir_path( __FILE__ ) . 'include/activator.php';
52 - }
53 - function plugin_deactivate() {
54 - require_once plugin_dir_path( __FILE__ ) . 'include/deactivator.php';
55 - }
56 - // AdminPanel
57 - function add_menu_page() {
58 - add_submenu_page('wow-company', $this->name, $this->name, 'manage_options', $this->pluginname, array( $this, 'plugin_admin' ));
59 - }
60 - function plugin_admin() {
61 - $name = $this->name;
62 - $pluginname = $this->pluginname;
63 - $version = $this->version;
64 - global $wow_company_plugin;
65 - $wow_company_plugin = true;
66 - include_once( 'admin/partials/main.php' );
67 - self:: plugin_admin_style_script();
68 - }
69 - function plugin_admin_style_script() {
70 - // plugin sctyle & script
71 - wp_enqueue_style( $this->pluginname.'-style', $this->pluginurl . 'admin/css/style.css',false, $this->version);
72 - wp_enqueue_script($this->pluginname.'-script', $this->pluginurl . 'admin/js/script.js', array('jquery'), $this->version);
73 - // icon style
74 - wp_enqueue_style( $this->pluginname.'-icon', $this->pluginurl . 'asset/font-awesome/css/font-awesome.min.css', array(), '4.7.0' );
75 - // iconpicker
76 - wp_enqueue_script($this->pluginname.'-fonticonpicker', $this->pluginurl . 'admin/fonticonpicker/fonticonpicker.min.js', array('jquery'));
77 - wp_enqueue_style($this->pluginname.'-fonticonpicker', $this->pluginurl . 'admin/fonticonpicker/css/fonticonpicker.min.css');
78 - wp_enqueue_style($this->pluginname.'-fonticonpicker-darkgrey', $this->pluginurl . 'admin/fonticonpicker/fonticonpicker.darkgrey.min.css');
79 - // wp style & script
80 - wp_enqueue_style('wp-color-picker');
81 - wp_enqueue_script('wp-color-picker');
82 - wp_enqueue_script( 'wp-color-picker-alpha', $this->pluginurl . 'admin/js/wp-color-picker-alpha.js', array( 'wp-color-picker' ));
83 - wp_enqueue_script( 'jquery-ui-sortable' );
84 - }
85 - // Show on Front end
86 - function shortcode($atts) {
87 - extract(shortcode_atts(array('id' => ""), $atts));
88 - global $wpdb;
89 - $table = $wpdb->prefix . "wow_".self::PREF;
90 - $sSQL = $wpdb->prepare("select * from $table WHERE id = %d", $id);
91 - $arrresult = $wpdb->get_results($sSQL);
92 - if (count($arrresult) > 0) {
93 - foreach ($arrresult as $key => $val) {
94 - $param = unserialize($val->param);
95 - ob_start();
96 - include( 'public/partials/public.php' );
97 - $path_style = $this->plugindir.'/asset/css/style-'.$val->id.'.css';
98 - $path_script = $this->plugindir.'/asset/js/script-'.$val->id.'.js';
99 - $file_style = $this->plugindir.'/admin/partials/generator/style.php';
100 - $file_script = $this->plugindir.'/admin/partials/generator/script.php';
101 - if (file_exists($file_style) && !file_exists($path_style)){
102 - ob_start();
103 - include ($file_style);
104 - $content_style = ob_get_contents();
105 - ob_end_clean();
106 - file_put_contents($path_style, $content_style);
107 - }
108 - if (file_exists($file_script) && !file_exists($path_script)){
109 - ob_start();
110 - include ($file_script);
111 - $content_script = ob_get_contents();
112 - $packer = new JavaScriptPacker($content_script, 'Normal', true, false);
113 - $packed = $packer->pack();
114 - ob_end_clean();
115 - file_put_contents($path_script, $packed);
116 - }
117 - $menus = ob_get_contents();
118 - ob_end_clean();
119 -
120 - echo $menus;
121 -
122 - wp_enqueue_style( $this->pluginname.'-font-awesome', $this->pluginurl . 'asset/font-awesome/css/font-awesome.min.css', array(), '4.7.0' );
123 - wp_enqueue_style( $this->pluginname, plugin_dir_url( __FILE__ ) . 'public/css/style.css', array(), $this->version);
124 - wp_enqueue_script( $this->pluginname.'-velocity', plugin_dir_url( __FILE__ ) . 'public/js/velocity.min.js', array( 'jquery' ), $this->version);
125 - wp_enqueue_script( $this->pluginname.'-float-menu', plugin_dir_url( __FILE__ ) . 'public/js/script.js', array( 'jquery' ), $this->version);
126 - if (file_exists($path_style)) {
127 - wp_enqueue_style( $this->pluginname.'-'.$val->id, $this->pluginurl. 'asset/css/style-'.$val->id.'.css', array(), $this->version);
128 - }
129 - if (file_exists($path_script)) {
130 - wp_enqueue_script( $this->pluginname.'-'.$val->id, $this->pluginurl. 'asset/js/script-'.$val->id.'.js', array( 'jquery' ), $this->version );
131 - }
132 -
133 -
134 -
135 -
136 - }
137 - }
138 - return ;
139 - }
140 - function display() {
141 - global $wpdb;
142 - $table = $wpdb->prefix . "wow_".self::PREF;
143 - $arrresult = $wpdb->get_results("SELECT * FROM " . $table . " order by id asc");
144 - if (count($arrresult) > 0) {
145 - foreach ($arrresult as $key => $val) {
146 - $param = unserialize($val->param);
147 - echo do_shortcode('[Float-Menu id='.$val->id.']');
148 -
149 - }
150 - }
151 - }
152 - // Admin links
153 - function row_meta( $meta, $plugin_file ){
154 - if( false === strpos( $plugin_file, basename(__FILE__) ) )
155 - return $meta;
156 - $meta[] = '<a href="https://wow-estore.com/item/float-menu-pro/" target="_blank">Pro version</a>';
157 - return $meta;
158 - }
159 - function action_links( $actions, $plugin_file ){
160 - if( false === strpos( $plugin_file, basename(__FILE__) ) )
161 - return $actions;
162 - $settings_link = '<a href="admin.php?page='. $this->pluginname .'">Settings</a>';
163 - array_unshift( $actions, $settings_link );
164 - return $actions;
165 - }
166 - // check asset folder
167 - function asset_folder(){
168 - $path = plugin_dir_path( __FILE__ ).'asset';
169 - if (!is_writable($path)) {
170 - echo "<div class='error' id='message'><p>Please set the 775 access rights (chmod 775) for the '".$path."</p> </div>";
171 - }
172 - }
173 -
174 - }
175 - $plugin = new Float_Menu_Class();
176 - }
1 +<?php
2 +/**
3 + * Plugin Name: Float Menu Lite
4 + * Plugin URI: https://wordpress.org/plugins/float-menu/
5 + * Description: Easily create floating menus of varying complexity
6 + * Version: 4.0
7 + * Author: Wow-Company
8 + * Author URI: https://wow-estore.com
9 + * License: GPL-2.0+
10 + * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
11 + */
12 +
13 +// Required set the namespace for plugin.
14 +namespace float_menu_free;
15 +
16 +if ( ! defined( 'ABSPATH' ) ) {
17 + exit;
18 +}
19 +
20 +if ( ! class_exists( 'Wow_Plugin' ) ) :
21 +
22 + /**
23 + * Main Wow_Plugin Class.
24 + *
25 + * @since 1.0
26 + */
27 + final class Wow_Plugin {
28 +
29 + private static $_instance;
30 +
31 + // Set the database name.
32 + const PREF = 'fmp';
33 +
34 + /**
35 + * Main Wow_Plugin Instance.
36 + *
37 + * Insures that only one instance of Wow_Plugin exists in memory at any one
38 + * time. Also prevents needing to define globals all over the place.
39 + *
40 + * @return object|Wow_Plugin The one true Wow_Plugin for Current plugin
41 + *
42 + * @uses Wow_Plugin::_includes() Include the required files.
43 + * @uses Wow_Plugin::text_domain() load the language files.
44 + * @since 1.0
45 + * @static
46 + * @staticvar array $instance
47 + */
48 + public static function instance() {
49 +
50 + if ( ! isset( self::$_instance ) && ! ( self::$_instance instanceof Wow_Plugin ) ) {
51 +
52 + $info = array(
53 + 'plugin' => array(
54 + 'name' => esc_attr( 'Float Menu' ), // Plugin name
55 + 'menu' => esc_attr( 'Float Menu' ), // Plugin name in menu
56 + 'author' => 'Wow-Company', // Author
57 + 'prefix' => self::PREF, // Prefix for database
58 + 'text' => 'float-menu', // Text domain for translate files
59 + 'version' => '4.0', // Current version of the plugin
60 + 'file' => __FILE__, // Main file of the plugin
61 + 'slug' => dirname( plugin_basename( __FILE__ ) ), // Name of the plugin folder
62 + 'url' => plugin_dir_url( __FILE__ ), // filesystem directory path for the plugin
63 + 'dir' => plugin_dir_path( __FILE__ ), // URL directory path for the plugin
64 + 'shortcode' => 'Float-Menu',
65 + ),
66 + 'url' => array(
67 + 'author' => 'https://wow-estore.com/',
68 + 'home' => 'https://wordpress.org/plugins/float-menu/',
69 + 'support' => 'https://wordpress.org/support/plugin/float-menu/',
70 + 'pro' => 'https://wow-estore.com/item/float-menu-pro/',
71 + 'facebook' => 'https://www.facebook.com/wowaffect/',
72 + ),
73 + 'rating' => array(
74 + 'website' => esc_attr__( 'WordPress.org' ), // Name site for rating plugin
75 + 'url' => 'https://wordpress.org/support/plugin/float-menu/reviews/#new-post',
76 + 'wp_url' => 'https://wordpress.org/support/plugin/float-menu/reviews/#new-post',
77 + 'wp_home' => 'https://wordpress.org/plugins/float-menu/',
78 + 'wp_title' => 'Float menu – awesome floating side menu',
79 + ),
80 + );
81 +
82 + self::$_instance = new Wow_Plugin;
83 +
84 + register_activation_hook( __FILE__, array( self::$_instance, 'plugin_activate' ) );
85 + add_action( 'plugins_loaded', array( self::$_instance, 'text_domain' ) );
86 +
87 + self::$_instance->_includes();
88 + self::$_instance->admin = new Wow_Plugin_Admin( $info );
89 + self::$_instance->public = new Wow_Plugin_Public( $info );
90 + }
91 +
92 + return self::$_instance;
93 + }
94 +
95 + /**
96 + * Throw error on object clone.
97 + * The whole idea of the singleton design pattern is that there is a single
98 + * object therefore, we don't want the object to be cloned.
99 + *
100 + * @return void
101 + * @since 1.0
102 + * @access protected
103 + */
104 + public function __clone() {
105 + // Cloning instances of the class is forbidden.
106 + _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin&#8217; huh?', 'float-menu' ), '0.1' );
107 + }
108 +
109 + /**
110 + * Disable unserializing of the class.
111 + *
112 + * @return void
113 + * @since 1.0
114 + * @access protected
115 + */
116 + public function __wakeup() {
117 + // Unserializing instances of the class is forbidden.
118 + _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin&#8217; huh?', 'float-menu' ), '0.1' );
119 + }
120 +
121 +
122 + /**
123 + * Include required files.
124 + *
125 + * @access private
126 + * @return void
127 + * @since 1.0
128 + */
129 + private function _includes() {
130 + if ( ! class_exists( 'Wow_Company' ) ) {
131 + include_once 'includes/class-wow-company.php';
132 + }
133 + include_once 'admin/class-admin.php';
134 + include_once 'public/class-public.php';
135 + }
136 +
137 + /**
138 + * Activate the plugin.
139 + * create the database
140 + * create the folder in wp-upload
141 + *
142 + * @access public
143 + * @return void
144 + * @since 1.0
145 + */
146 + public function plugin_activate() {
147 + update_option( 'wow_' . self::PREF . '_notice_action', 'read' );
148 + global $wpdb;
149 + require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
150 + $table = $wpdb->prefix . 'wow_' . self::PREF;
151 + $sql = "CREATE TABLE " . $table . " (
152 + id mediumint(9) NOT NULL AUTO_INCREMENT,
153 + title VARCHAR(200) NOT NULL,
154 + param TEXT,
155 + UNIQUE KEY id (id)
156 + ) DEFAULT CHARSET=utf8;";
157 + dbDelta( $sql );
158 +
159 + deactivate_plugins( 'float-menu-pro/float-menu-pro.php' );
160 + }
161 +
162 + /**
163 + * Download the folder with languages.
164 + *
165 + * @access public
166 + * @return void
167 + * @since 1.0
168 + */
169 + public function text_domain() {
170 + $languages_folder = dirname( plugin_basename( __FILE__ ) ) . '/languages/';
171 + load_plugin_textdomain( 'float-menu', false, $languages_folder );
172 + }
173 + }
174 +
175 +endif; // End if class_exists check.
176 +
177 +/**
178 + * The main function for that returns Wow_Plugin
179 + *
180 + * @since 1.0
181 + */
182 +function Wow_Plugin_run() {
183 + return Wow_Plugin::instance();
184 +}
185 +
186 +// Get Running.
187 +Wow_Plugin_run();