R
Rosner
Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buen día.
Tengo este código de un plugin de mensajes privados:
<?php
require_once 'controller.php';
require_once 'db.php';
require_once 'view.php';
class EmiPrivateMessages{
public static $Controller;
public static $View;
public static $DB;
public static $options;
public static $pluginUrl;
public static $pluginPath;
public static function init() {
register_activation_hook( __FILE__ ,'EmiPrivateMessages::activation');
register_deactivation_hook( __FILE__ , 'EmiPrivateMessages::deactivation' ) ;
register_uninstall_hook( __FILE__, 'EmiPrivateMessages::uninstall' );
add_action('init', 'EmiPrivateMessages::load');
add_action( 'admin_init', 'EmiPrivateMessages::adminInit' );
add_action( 'admin_notices', 'EmiPrivateMessages::notify' );
add_action( 'admin_menu', 'EmiPrivateMessages::addMenu' );
add_action('wp_ajax_emiPrivateMessages_ajax', 'EmiPrivateMessages::ajax');
add_action('wp_ajax_nopriv_do_ajax', 'EmiPrivateMessages::ajax');
add_action('wp_ajax_do_ajax', 'EmiPrivateMessages::ajax');
self::$Controller = new emiPrivateMessages_Controller();
self::$DB = new emiPrivateMessages_DB;
self::$View = new emiPrivateMessages_View();
self::$options = get_option( 'emiPrivateMessages' );
}
public static function activation(){
include plugin_dir_path( __FILE__ ).'setup/activation.php';
}
public static function deactivation(){
include plugin_dir_path( __FILE__ ).'setup/deactivation.php';
}
public static function uninstall(){
include plugin_dir_path( __FILE__ ).'setup/uninstall.php';
}
public static function load() {
$lang_loaded = load_plugin_textdomain( 'emiPrivateMessages', FALSE, basename( dirname( __FILE__ ) ) . '/languages' );
self::$pluginUrl = WP_PLUGIN_URL . '/' . plugin_basename( dirname( __FILE__ ) );
self::$pluginPath = dirname( __FILE__ );
}
public static function adminInit( ) {
register_setting( 'emiPrivateMessages_option_group', 'emiPrivateMessages' );
}
public static function addMenu( ) {
global $wpdb, $current_user;
$intTotalUnread = EmiPrivateMessages::$DB->getTotalUnread($current_user->ID);
if(empty($intTotalUnread)) {
$intTotalUnread = 0;
}
add_options_page( __( 'Opciones Ajax de Mensajes Privados', 'emiPrivateMessages' ), __( 'Mensajes Privados', 'emiPrivateMessages' ), 'manage_options', 'emiPrivateMessages', 'EmiPrivateMessages::adminOptions' );
$icon_url = WP_PLUGIN_URL . '/' . plugin_basename( dirname( __FILE__ ) ) . '/resources/images/icon.png';
add_menu_page( __( 'Mensajes Privados', 'emiPrivateMessages' ), __( 'Mensajes', 'emiPrivateMessages' ) . "<span class='update-plugins count-$intTotalUnread'><span class='plugin-count'>$intTotalUnread</span></span>", 'read', 'emiPrivateMessages_inbox', 'EmiPrivateMessages::inbox', $icon_url );
//
$emiPrivateMessages_inbox = add_submenu_page( 'emiPrivateMessages_inbox', __( 'Bandeja', 'emiPrivateMessages' ), __( 'Bandeja', 'emiPrivateMessages' ), 'read', 'emiPrivateMessages_inbox', 'EmiPrivateMessages::inbox' );
add_action( "admin_print_styles-$emiPrivateMessages_inbox", 'EmiPrivateMessages::adminprintStyles' );
$emiPrivateMessages_dialog = add_submenu_page( '', __( 'Diálogo', 'emiPrivateMessages' ), __( 'Diálogo', 'emiPrivateMessages' ), 'read', 'emiPrivateMessages_dialog', 'EmiPrivateMessages::dialog' );
add_action( "admin_print_styles-$emiPrivateMessages_dialog", 'EmiPrivateMessages::adminprintStyles' );
$emiPrivateMessages_send = add_submenu_page( 'emiPrivateMessages_inbox', __( 'Enviar Nuevo Mensaje Privado', 'emiPrivateMessages' ), __( 'Nuevo Mensaje', 'emiPrivateMessages' ), 'read', 'emiPrivateMessages_send', 'EmiPrivateMessages::send' );
add_action( "admin_print_styles-$emiPrivateMessages_send", 'EmiPrivateMessages::adminprintStyles' );
}
public static function adminOptions( ) {
self::$View->adminOptions(self::$Controller->adminOptions());
}
public static function inbox( ) {
self::$View->inbox(self::$Controller->inbox());
}
public static function dialog() {
self::$View->dialog(self::$Controller->dialog());
}
public static function send() {
self::$View->send(self::$Controller->send());
}
public static function adminprintStyles( ) {
wp_enqueue_style( 'emiPrivateMessages__resources_css_style', plugins_url( 'resources/css/style.css', __FILE__ ) );
wp_enqueue_script( 'emiPrivateMessages__resources_js_lib_jquery_ui', plugins_url( 'resources/js/lib/jquery-ui-1.8.24.custom.min.js', __FILE__), array('jquery'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_lib_jquery_elastic', plugins_url( 'resources/js/lib/jquery.elastic.source.js', __FILE__), array('jquery'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi', plugins_url( 'resources/js/Emi.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_lib_jquery_elastic'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi_util', plugins_url( 'resources/js/Emi.util.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi_servertime', plugins_url( 'resources/js/Emi.serverTime.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi_util'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi_lib_ui_pager', plugins_url( 'resources/js/Emi.lib.ui.pager.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi_servertime'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi_page', plugins_url( 'resources/js/Emi.page.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi_servertime'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_ready', plugins_url( 'resources/js/ready.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi_servertime'));
}
public static function frontEnd( ) {
global $wp;
if(!isset($wp->query_vars['page']) || strlen($wp->query_vars['page'])==0 || $wp->query_vars['page'] == 'emiPrivateMessages_inbox'){
EmiPrivateMessages::inbox();
}
else if($wp->query_vars['page'] == 'emiPrivateMessages_send'){
EmiPrivateMessages::send();
}
else if($wp->query_vars['page'] == 'emiPrivateMessages_dialog' || (intval(preg_replace('/[^0-9]*/i', '', $wp->query_vars['page']))>0)){
EmiPrivateMessages::dialog();
}
}
public static function notify(){
global $wpdb, $current_user;
$intTotalUnread = self::$DB->getTotalUnread($current_user->ID);
if(empty($intTotalUnread)) {
$intTotalUnread = 0;
}
if($intTotalUnread>0 && ('wp_head') && (!isset($_REQUEST['page']) || $_REQUEST['page'] != 'emiPrivateMessages_inbox' || $_REQUEST['page'] != 'emiPrivateMessages_dialog' )) {
echo '<div id="message" class="error"><p><b>', sprintf( _n( '¡Usted tiene %d nuevo mensaje!', '¡Usted tiene %d nuevos mensajes!', $intTotalUnread, 'emiPrivateMessages' ), $intTotalUnread ), '</b> <a href="admin.php?page=emiPrivateMessages_inbox">', __( 'Ir a la Bandeja', 'emiPrivateMessages' ), ' »</a></p></div>';
}
}
public static function ajax(){
global $wpdb, $current_user;
$result = new stdClass();
$result->success=false;
switch($_REQUEST['fn']){
case 'sendMessage':
self::$View->ajax(self::$Controller->ajax_sendMessage());
break;
case 'deleteMessage':
self::$View->ajax(self::$Controller->ajax_deleteMessage());
case 'getUser':
self::$View->ajax(self::$Controller->ajax_getUser());
break;
case 'getDialogPage':
self::$View->ajax(self::$Controller->ajax_getDialogPage());
break;
case 'getNewDialogMessages':
self::$View->ajax(self::$Controller->ajax_getNewDialogMessages());
break;
case 'getInboxPage':
self::$View->ajax(self::$Controller->ajax_getInboxPage());
break;
case 'getNewInboxMessages':
self::$View->ajax(self::$Controller->ajax_getNewInboxMessages());
break;
}
echo json_encode($result);
die;
}
}
EmiPrivateMessages::init();
?>
Tengo este código de un plugin de mensajes privados:
<?php
require_once 'controller.php';
require_once 'db.php';
require_once 'view.php';
class EmiPrivateMessages{
public static $Controller;
public static $View;
public static $DB;
public static $options;
public static $pluginUrl;
public static $pluginPath;
public static function init() {
register_activation_hook( __FILE__ ,'EmiPrivateMessages::activation');
register_deactivation_hook( __FILE__ , 'EmiPrivateMessages::deactivation' ) ;
register_uninstall_hook( __FILE__, 'EmiPrivateMessages::uninstall' );
add_action('init', 'EmiPrivateMessages::load');
add_action( 'admin_init', 'EmiPrivateMessages::adminInit' );
add_action( 'admin_notices', 'EmiPrivateMessages::notify' );
add_action( 'admin_menu', 'EmiPrivateMessages::addMenu' );
add_action('wp_ajax_emiPrivateMessages_ajax', 'EmiPrivateMessages::ajax');
add_action('wp_ajax_nopriv_do_ajax', 'EmiPrivateMessages::ajax');
add_action('wp_ajax_do_ajax', 'EmiPrivateMessages::ajax');
self::$Controller = new emiPrivateMessages_Controller();
self::$DB = new emiPrivateMessages_DB;
self::$View = new emiPrivateMessages_View();
self::$options = get_option( 'emiPrivateMessages' );
}
public static function activation(){
include plugin_dir_path( __FILE__ ).'setup/activation.php';
}
public static function deactivation(){
include plugin_dir_path( __FILE__ ).'setup/deactivation.php';
}
public static function uninstall(){
include plugin_dir_path( __FILE__ ).'setup/uninstall.php';
}
public static function load() {
$lang_loaded = load_plugin_textdomain( 'emiPrivateMessages', FALSE, basename( dirname( __FILE__ ) ) . '/languages' );
self::$pluginUrl = WP_PLUGIN_URL . '/' . plugin_basename( dirname( __FILE__ ) );
self::$pluginPath = dirname( __FILE__ );
}
public static function adminInit( ) {
register_setting( 'emiPrivateMessages_option_group', 'emiPrivateMessages' );
}
public static function addMenu( ) {
global $wpdb, $current_user;
$intTotalUnread = EmiPrivateMessages::$DB->getTotalUnread($current_user->ID);
if(empty($intTotalUnread)) {
$intTotalUnread = 0;
}
add_options_page( __( 'Opciones Ajax de Mensajes Privados', 'emiPrivateMessages' ), __( 'Mensajes Privados', 'emiPrivateMessages' ), 'manage_options', 'emiPrivateMessages', 'EmiPrivateMessages::adminOptions' );
$icon_url = WP_PLUGIN_URL . '/' . plugin_basename( dirname( __FILE__ ) ) . '/resources/images/icon.png';
add_menu_page( __( 'Mensajes Privados', 'emiPrivateMessages' ), __( 'Mensajes', 'emiPrivateMessages' ) . "<span class='update-plugins count-$intTotalUnread'><span class='plugin-count'>$intTotalUnread</span></span>", 'read', 'emiPrivateMessages_inbox', 'EmiPrivateMessages::inbox', $icon_url );
//
$emiPrivateMessages_inbox = add_submenu_page( 'emiPrivateMessages_inbox', __( 'Bandeja', 'emiPrivateMessages' ), __( 'Bandeja', 'emiPrivateMessages' ), 'read', 'emiPrivateMessages_inbox', 'EmiPrivateMessages::inbox' );
add_action( "admin_print_styles-$emiPrivateMessages_inbox", 'EmiPrivateMessages::adminprintStyles' );
$emiPrivateMessages_dialog = add_submenu_page( '', __( 'Diálogo', 'emiPrivateMessages' ), __( 'Diálogo', 'emiPrivateMessages' ), 'read', 'emiPrivateMessages_dialog', 'EmiPrivateMessages::dialog' );
add_action( "admin_print_styles-$emiPrivateMessages_dialog", 'EmiPrivateMessages::adminprintStyles' );
$emiPrivateMessages_send = add_submenu_page( 'emiPrivateMessages_inbox', __( 'Enviar Nuevo Mensaje Privado', 'emiPrivateMessages' ), __( 'Nuevo Mensaje', 'emiPrivateMessages' ), 'read', 'emiPrivateMessages_send', 'EmiPrivateMessages::send' );
add_action( "admin_print_styles-$emiPrivateMessages_send", 'EmiPrivateMessages::adminprintStyles' );
}
public static function adminOptions( ) {
self::$View->adminOptions(self::$Controller->adminOptions());
}
public static function inbox( ) {
self::$View->inbox(self::$Controller->inbox());
}
public static function dialog() {
self::$View->dialog(self::$Controller->dialog());
}
public static function send() {
self::$View->send(self::$Controller->send());
}
public static function adminprintStyles( ) {
wp_enqueue_style( 'emiPrivateMessages__resources_css_style', plugins_url( 'resources/css/style.css', __FILE__ ) );
wp_enqueue_script( 'emiPrivateMessages__resources_js_lib_jquery_ui', plugins_url( 'resources/js/lib/jquery-ui-1.8.24.custom.min.js', __FILE__), array('jquery'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_lib_jquery_elastic', plugins_url( 'resources/js/lib/jquery.elastic.source.js', __FILE__), array('jquery'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi', plugins_url( 'resources/js/Emi.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_lib_jquery_elastic'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi_util', plugins_url( 'resources/js/Emi.util.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi_servertime', plugins_url( 'resources/js/Emi.serverTime.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi_util'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi_lib_ui_pager', plugins_url( 'resources/js/Emi.lib.ui.pager.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi_servertime'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_emi_page', plugins_url( 'resources/js/Emi.page.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi_servertime'));
wp_enqueue_script( 'emiPrivateMessages__resources_js_ready', plugins_url( 'resources/js/ready.js', __FILE__ ), array( 'jquery','emiPrivateMessages__resources_js_emi_servertime'));
}
public static function frontEnd( ) {
global $wp;
if(!isset($wp->query_vars['page']) || strlen($wp->query_vars['page'])==0 || $wp->query_vars['page'] == 'emiPrivateMessages_inbox'){
EmiPrivateMessages::inbox();
}
else if($wp->query_vars['page'] == 'emiPrivateMessages_send'){
EmiPrivateMessages::send();
}
else if($wp->query_vars['page'] == 'emiPrivateMessages_dialog' || (intval(preg_replace('/[^0-9]*/i', '', $wp->query_vars['page']))>0)){
EmiPrivateMessages::dialog();
}
}
public static function notify(){
global $wpdb, $current_user;
$intTotalUnread = self::$DB->getTotalUnread($current_user->ID);
if(empty($intTotalUnread)) {
$intTotalUnread = 0;
}
if($intTotalUnread>0 && ('wp_head') && (!isset($_REQUEST['page']) || $_REQUEST['page'] != 'emiPrivateMessages_inbox' || $_REQUEST['page'] != 'emiPrivateMessages_dialog' )) {
echo '<div id="message" class="error"><p><b>', sprintf( _n( '¡Usted tiene %d nuevo mensaje!', '¡Usted tiene %d nuevos mensajes!', $intTotalUnread, 'emiPrivateMessages' ), $intTotalUnread ), '</b> <a href="admin.php?page=emiPrivateMessages_inbox">', __( 'Ir a la Bandeja', 'emiPrivateMessages' ), ' »</a></p></div>';
}
}
public static function ajax(){
global $wpdb, $current_user;
$result = new stdClass();
$result->success=false;
switch($_REQUEST['fn']){
case 'sendMessage':
self::$View->ajax(self::$Controller->ajax_sendMessage());
break;
case 'deleteMessage':
self::$View->ajax(self::$Controller->ajax_deleteMessage());
case 'getUser':
self::$View->ajax(self::$Controller->ajax_getUser());
break;
case 'getDialogPage':
self::$View->ajax(self::$Controller->ajax_getDialogPage());
break;
case 'getNewDialogMessages':
self::$View->ajax(self::$Controller->ajax_getNewDialogMessages());
break;
case 'getInboxPage':
self::$View->ajax(self::$Controller->ajax_getInboxPage());
break;
case 'getNewInboxMessages':
self::$View->ajax(self::$Controller->ajax_getNewInboxMessages());
break;
}
echo json_encode($result);
die;
}
}
EmiPrivateMessages::init();
?>