Initial commit
This commit is contained in:
117
ramais-telefonicos.php
Normal file
117
ramais-telefonicos.php
Normal file
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Name: Sistema de Ramais Telefônicos
|
||||
* Description: Plugin para gerenciar e exibir ramais telefônicos com busca, filtros e paginação.
|
||||
* Shortcodes disponíveis: [lista_ramais], [lista_ramais per_page="10"]
|
||||
* Version: 1.0
|
||||
* Author: Marco Antonio Vivas
|
||||
* Text Domain: ramais-telefonicos
|
||||
*/
|
||||
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
// Definição de constantes
|
||||
define('RAMAIS_TELEFONICOS_VERSION', '4.0');
|
||||
define('RAMAIS_TELEFONICOS_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||||
define('RAMAIS_TELEFONICOS_PLUGIN_URL', plugin_dir_url(__FILE__));
|
||||
define('RAMAIS_TELEFONICOS_CSV_DIR', wp_upload_dir()['basedir'] . '/ramais-telefonicos/');
|
||||
define('RAMAIS_TELEFONICOS_CSV_FILE', RAMAIS_TELEFONICOS_CSV_DIR . 'bancodados.csv');
|
||||
define('RAMAIS_TELEFONICOS_PER_PAGE', 15);
|
||||
|
||||
// Carrega as classes necessárias
|
||||
require_once RAMAIS_TELEFONICOS_PLUGIN_DIR . 'includes/class-ramais-database.php';
|
||||
require_once RAMAIS_TELEFONICOS_PLUGIN_DIR . 'includes/class-ramais-admin.php';
|
||||
require_once RAMAIS_TELEFONICOS_PLUGIN_DIR . 'includes/class-ramais-frontend.php';
|
||||
require_once RAMAIS_TELEFONICOS_PLUGIN_DIR . 'includes/class-ramais-ajax.php';
|
||||
|
||||
class Ramais_Telefonicos {
|
||||
private static $instance = null;
|
||||
public $database;
|
||||
public $admin;
|
||||
public $frontend;
|
||||
public $ajax;
|
||||
|
||||
private function __construct() {
|
||||
$this->init();
|
||||
}
|
||||
|
||||
public static function get_instance() {
|
||||
if (null === self::$instance) {
|
||||
self::$instance = new self();
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
private function init() {
|
||||
// Inicializa os componentes
|
||||
$this->database = new Ramais_Database();
|
||||
$this->admin = new Ramais_Admin($this->database);
|
||||
$this->frontend = new Ramais_Frontend($this->database);
|
||||
$this->ajax = new Ramais_Ajax($this->database);
|
||||
|
||||
// Hooks de ativação/desativação
|
||||
register_activation_hook(__FILE__, array($this, 'activate'));
|
||||
register_deactivation_hook(__FILE__, array($this, 'deactivate'));
|
||||
|
||||
// Inicialização
|
||||
add_action('plugins_loaded', array($this, 'load_textdomain'));
|
||||
add_action('wp_enqueue_scripts', array($this, 'enqueue_assets'));
|
||||
add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_assets'));
|
||||
}
|
||||
|
||||
public function activate() {
|
||||
// Cria o diretório se não existir
|
||||
if (!file_exists(RAMAIS_TELEFONICOS_CSV_DIR)) {
|
||||
wp_mkdir_p(RAMAIS_TELEFONICOS_CSV_DIR);
|
||||
}
|
||||
|
||||
// Se o arquivo CSV não existe, cria com cabeçalho
|
||||
if (!file_exists(RAMAIS_TELEFONICOS_CSV_FILE)) {
|
||||
$header = array('Ramal', 'Responsável', 'Secretaria', 'Setor', 'Email');
|
||||
$this->database->write_csv_row($header);
|
||||
}
|
||||
}
|
||||
|
||||
public function deactivate() {
|
||||
// Nada a fazer por enquanto
|
||||
}
|
||||
|
||||
public function load_textdomain() {
|
||||
load_plugin_textdomain('ramais-telefonicos', false, dirname(plugin_basename(__FILE__)) . '/languages/');
|
||||
}
|
||||
|
||||
public function enqueue_assets() {
|
||||
wp_enqueue_style(
|
||||
'ramais-telefonicos-css',
|
||||
RAMAIS_TELEFONICOS_PLUGIN_URL . 'assets/css/ramais.css',
|
||||
array(),
|
||||
RAMAIS_TELEFONICOS_VERSION
|
||||
);
|
||||
|
||||
wp_enqueue_script(
|
||||
'ramais-telefonicos-js',
|
||||
RAMAIS_TELEFONICOS_PLUGIN_URL . 'assets/js/ramais.js',
|
||||
array('jquery'),
|
||||
RAMAIS_TELEFONICOS_VERSION,
|
||||
true
|
||||
);
|
||||
|
||||
wp_localize_script('ramais-telefonicos-js', 'ramaisVars', array(
|
||||
'ajaxurl' => admin_url('admin-ajax.php'),
|
||||
'nonce' => wp_create_nonce('ramais_telefonicos_nonce')
|
||||
));
|
||||
}
|
||||
|
||||
public function enqueue_admin_assets() {
|
||||
wp_enqueue_style(
|
||||
'ramais-telefonicos-admin-css',
|
||||
RAMAIS_TELEFONICOS_PLUGIN_URL . 'assets/css/admin-ramais.css',
|
||||
array(),
|
||||
RAMAIS_TELEFONICOS_VERSION
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Inicializa o plugin
|
||||
Ramais_Telefonicos::get_instance();
|
Reference in New Issue
Block a user