· 9 years ago · Oct 05, 2016, 07:28 AM
1<?php
2/**
3Plugin Name: Bluestag Plugin
4Description: Configuration et gestion d'un parc de clients
5Author: Bluestag - Boileau Jonathan
6Author URI: http://www.bluestag.fr
7Version: 1.0
8*/
9
10/**
11 * Cette classe est la classe principale du plugin 'Bluestag Plugin'
12 * Sa fonction première est de gèrer les sous-classes du plugin tout
13 * en passant par la création et suppression des tables MySql ainsi que
14 * la création du menu dans l'administration.
15 *
16 *
17 * @author Bluestag <contact[@]bluestag.fr>
18 */
19class Bluestag_Plugin {
20
21 public function __construct() {
22
23 add_action( 'admin_menu', array($this,'bp_menu_create') );
24
25 register_activation_hook( __FILE__, array( 'Bluestag_Plugin', 'install' ) );
26 register_uninstall_hook( __FILE__, array( 'Bluestag_Plugin', 'uninstall' ) );
27
28 }
29
30 /**
31 * Création des diffèrentes tables de données.
32 */
33 public static function install() {
34
35 global $wpdb;
36
37 $wpdb->query( "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}bluestag_offers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, description TEXT NOT NULL);" );
38
39 }
40
41 /**
42 * Suppression des diffèrentes tables de données/
43 */
44 public static function uninstall() {
45
46 global $wpdb;
47
48 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}bluestag_offers;" );
49
50 }
51
52 /**
53 * Cette fonction génére le code source de la page
54 * de gestion des offres. Cette fonction sert d'argument à la fonction
55 * add_submenu_page() de WordPress.
56 */
57 public function admin_menu_offers() {
58
59 include( 'admin/pages/offers.php' );
60
61 }
62
63 /**
64 * Cette fonction génére le code source de la page
65 * d'accueil du plugin. Cette fonction sert d'argument à la fonction
66 * add_menu_page() de WordPress.
67 */
68 public function bp_menu_gen() {
69
70 include( 'admin/admin-page-welcome.php' );
71
72 }
73
74 /**
75 * Cette fonction créee le menu dans l'interface
76 * d'administration WordPress
77 */
78 public function bp_menu_create() {
79
80 add_menu_page( 'Gestion Bluestag', 'Gestion Bluestag', 'manage_options', 'bluestag-plugin' ,array( $this, 'bp_menu_gen' ) );
81
82 add_submenu_page( 'bluestag-plugin', 'Gestion des offres', 'Gestion des offres', 'manage_options', 'bluestag-plugin-offers', array( $this, 'admin_menu_offers' ) );
83
84 }
85
86}
87
88new Bluestag_Plugin();