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();