PluginProbe
Float menu – awesome floating side menu / 2.1
Float menu – awesome floating side menu v2.1
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.1, at float-menu.php

176 lines 7.6 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.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 }