PluginProbe
Float menu – awesome floating side menu / 2.2
Float menu – awesome floating side menu v2.2
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
float-menu / float-menu.php

float-menu.php in Float menu – awesome floating side menu 2.2, at float-menu.php

178 lines 7.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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.2
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__ ) . 'asset/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.2';
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 $time = !empty($param['time']) ? $param['time'] : '';
128 wp_enqueue_style( $this->pluginname.'-'.$val->id, $this->pluginurl. 'asset/css/style-'.$val->id.'.css', array(), $time);
129 }
130 if (file_exists($path_script)) {
131 $time = !empty($param['time']) ? $param['time'] : '';
132 wp_enqueue_script( $this->pluginname.'-'.$val->id, $this->pluginurl. 'asset/js/script-'.$val->id.'.js', array( 'jquery' ), $time );
133 }
134
135
136
137
138 }
139 }
140 return ;
141 }
142 function display() {
143 global $wpdb;
144 $table = $wpdb->prefix . "wow_".self::PREF;
145 $arrresult = $wpdb->get_results("SELECT * FROM " . $table . " order by id asc");
146 if (count($arrresult) > 0) {
147 foreach ($arrresult as $key => $val) {
148 $param = unserialize($val->param);
149 echo do_shortcode('[Float-Menu id='.$val->id.']');
150
151 }
152 }
153 }
154 // Admin links
155 function row_meta( $meta, $plugin_file ){
156 if( false === strpos( $plugin_file, basename(__FILE__) ) )
157 return $meta;
158 $meta[] = '<a href="https://wow-estore.com/item/float-menu-pro/" target="_blank">Pro version</a>';
159 return $meta;
160 }
161 function action_links( $actions, $plugin_file ){
162 if( false === strpos( $plugin_file, basename(__FILE__) ) )
163 return $actions;
164 $settings_link = '<a href="admin.php?page='. $this->pluginname .'">Settings</a>';
165 array_unshift( $actions, $settings_link );
166 return $actions;
167 }
168 // check asset folder
169 function asset_folder(){
170 $path = plugin_dir_path( __FILE__ ).'asset';
171 if (!is_writable($path)) {
172 echo "<div class='error' id='message'><p>Please set the 775 access rights (chmod 775) for the '".$path."</p> </div>";
173 }
174 }
175
176 }
177 $plugin = new Float_Menu_Class();
178 }