Definición de Plugin: escribió:Los plugins son básicamente funciones en PHP que son ejecutadas en ciertos puntos a lo largo de la ejecución de MyBB. Estos "ciertos puntos" -llamados hooks- estan ubicados sobre la mayor parte de archivos de MyBB (Ver lista completa). Un plugin normalmente realiza dos cosas: Enlaza funciones a determinados hooks Edita los templates del theme para editar el "Look & Feel" del diseño. Que son los templates? escribió:Los templates son pequeñas porciones de código HTML pero que pueden incluir variables (PHP). Puedes ver todos los templates existentes en: Panel de Administración -> Plantillas y Estilos -> Plantillas -> Templates Predeterminados
Que son los templates? escribió:Los templates son pequeñas porciones de código HTML pero que pueden incluir variables (PHP). Puedes ver todos los templates existentes en: Panel de Administración -> Plantillas y Estilos -> Plantillas -> Templates Predeterminados
<?phpif(!defined("IN_MYBB")){ die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");}function registrate_loco_info(){ return array( "name" => "Registrate loco", "description" => "Muestra un mensaje a los usuarios no identificados invitando a que se registren o se identifiquen.", "website" => "", "author" => "Santiago Dimattia", "authorsite" => "http://www.teleportz.com.ar", "version" => "1.0", "guid" => "", "compatibility" => "16*" );}?>
<?phpfunction registrate_loco_activate(){ // Creamos el grupo de opciones $query = $db->simple_select("settinggroups", "COUNT(*) as rows"); $rows = $db->fetch_field($query, "rows"); $new_groupconfig = array( 'name' => 'registrate_logo', 'title' => 'Registrate loco', 'description' => 'Opciones para cambiar el texto del aviso o activar y desactivar el plugin.', 'disporder' => $rows+1, 'isdefault' => 0 ); return true;}?>
<?phpfunction registrate_loco_activate(){ // Creamos las opciones $new_config = array(); $new_config[] = array( 'name' => 'registrate_loco_active', 'title' => 'Activar plugin', 'description' => 'Selecciona si deseas activar el plugin.', 'optionscode' => 'yesno', 'value' => '1', 'disporder' => 10, 'gid' => $group['gid'] ); $new_config[] = array( 'name' => 'registrate_loco_texto', 'title' => 'Texto del aviso', 'description' => 'Cambia el texto del aviso', 'optionscode' => 'textarea', 'value' => '<a href="member.php?action=register">Registate</a> ahora para poder participar del concurso de una vaca y poder postear en los foros! (Si! Una vaca!)', 'disporder' => 10, 'gid' => $group['gid'] ); foreach($new_config as $array => $content) { $db->insert_query("settings", $content); } return TRUE;}?>
<?phpfunction registrate_loco_activate(){ // Editamos el template "header" require MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets('header', '#{\$unreadreports}#', '{$unreadreports}<!-- RegistrateLoco -->{$alerta_para_invitados}<!-- /RegistrateLoco -->'); return TRUE;}?>
<?phpfunction registrate_loco_activate(){ // Creamos el grupo de opciones $query = $db->simple_select("settinggroups", "COUNT(*) as rows"); $rows = $db->fetch_field($query, "rows"); $new_groupconfig = array( 'name' => 'registrate_logo', 'title' => 'Registrate loco', 'description' => 'Opciones para cambiar el texto del aviso o activar y desactivar el plugin.', 'disporder' => $rows+1, 'isdefault' => 0 ); // Creamos las opciones $new_config = array(); $new_config[] = array( 'name' => 'registrate_loco_active', 'title' => 'Activar plugin', 'description' => 'Selecciona si deseas activar el plugin.', 'optionscode' => 'yesno', 'value' => '1', 'disporder' => 10, 'gid' => $group['gid'] ); $new_config[] = array( 'name' => 'registrate_loco_texto', 'title' => 'Texto del aviso', 'description' => 'Cambia el texto del aviso', 'optionscode' => 'textarea', 'value' => '<a href="member.php?action=register">Registate</a> ahora para poder participar del concurso de una vaca y poder postear en los foros! (Si! Una vaca!)', 'disporder' => 10, 'gid' => $group['gid'] ); foreach($new_config as $array => $content) { $db->insert_query("settings", $content); } // Editamos el template "header" require MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets('header', '#{\$unreadreports}#', '{$unreadreports}<!-- RegistrateLoco -->{$alerta_para_invitados}<!-- /RegistrateLoco -->'); return TRUE;}?>
// Para poder acceder a la base de datos: global $db; Devuelvo true (medio inútil... si) return TRUE;
<?phpfunction registrate_loco_deactivate(){ global $db; // Borrar el grupo de opciones $query = $db->simple_select("settinggroups", "gid", "name = \"registrate_loco\""); $rows = $db->fetch_field($query, "gid"); $db->delete_query("settinggroups", "gid = {$rows}"); // Borrar las opciones $db->delete_query("settings", "gid = {$rows}"); rebuild_settings(); // Editar el template header require MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets('header', '#' . preg_quote('<!-- RegistrateLoco -->{$alerta_para_invitados}<!-- /RegistrateLoco -->') . '#', ''); return TRUE;}?>
<?php// Enlazamos la función al hook. Esta funcion acepta varios parámetros, pero solo estos dos son requeridos:// 1) El nombre del hook// 2) El nombre de la función$plugins->add_hook('global_start', 'registrate_loco_mostrar_aviso');function registrate_loco_mostrar_aviso(){ global $mybb, $alerta_para_invitados; // Si el plugin se encuentra desactivado, no hacemos nada. if($mybb->settings['registrate_loco_active'] == '0') { return FALSE; } // Comprobamos si el usuario esta logueado if($mybb->user['uid'] != 0) { // Si el uid del usuario es indistinto a cero, el usuario se encuentra identificado $alerta_para_invitados = ''; } else { // Si el uid es igual a 0, el usuario no se encuentra identificado $alerta_para_invitados = $mybb->settings['registrate_loco_texto']; }}?>
<?phpif(!defined("IN_MYBB")){ die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");}$plugins->add_hook('global_start', 'registrate_loco_mostrar_aviso');function registrate_loco_info(){ return array( "name" => "Registrate loco", "description" => "Muestra un mensaje a los usuarios no identificados invitando a que se registren o se identifiquen.", "website" => "", "author" => "Santiago Dimattia", "authorsite" => "http://www.teleportz.com.ar", "version" => "1.0", "guid" => "", "compatibility" => "16*" );}function registrate_loco_activate(){ global $db; // Crear el grupo de opciones $query = $db->simple_select("settinggroups", "COUNT(*) as rows"); $rows = $db->fetch_field($query, "rows"); $new_groupconfig = array( 'name' => 'registrate_logo', 'title' => 'Registrate loco', 'description' => 'Opciones para cambiar el texto del aviso o activar y desactivar el plugin.', 'disporder' => $rows+1, 'isdefault' => 0 ); $group['gid'] = $db->insert_query("settinggroups", $new_groupconfig); // Crear las opciones $new_config = array(); $new_config[] = array( 'name' => 'registrate_loco_active', 'title' => 'Activar plugin', 'description' => 'Selecciona si deseas activar el plugin.', 'optionscode' => 'yesno', 'value' => '1', 'disporder' => 10, 'gid' => $group['gid'] ); $new_config[] = array( 'name' => 'registrate_loco_texto', 'title' => 'Texto del aviso', 'description' => 'Cambia el texto del aviso', 'optionscode' => 'textarea', 'value' => '<a href="member.php?action=register">Registate</a> ahora para poder participar del concurso de una vaca y poder postear en los foros! (Si! Una vaca!)', 'disporder' => 10, 'gid' => $group['gid'] ); foreach($new_config as $array => $content) { $db->insert_query("settings", $content); } rebuild_settings(); // Editar el template header require MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets('header', '#{\$unreadreports}#', '{$unreadreports}<!-- RegistrateLoco -->{$alerta_para_invitados}<!-- /RegistrateLoco -->'); return TRUE;}function registrate_loco_deactivate(){ global $db; // Borrar el grupo de opciones $query = $db->simple_select("settinggroups", "gid", "name = \"registrate_loco\""); $rows = $db->fetch_field($query, "gid"); $db->delete_query("settinggroups", "gid = {$rows}"); // Borrar las opciones $db->delete_query("settings", "gid = {$rows}"); rebuild_settings(); // Editar el template header require MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets('header', '#{\$unreadreports}#', '{$unreadreports}<!-- RegistrateLoco -->{$alerta_para_invitados}<!-- /RegistrateLoco -->'); return TRUE;}function registrate_loco_mostrar_aviso(){ global $mybb, $alerta_para_invitados; // Si el plugin se encuentra desactivado, no hacemos nada. if($mybb->settings['registrate_loco_active'] == '0') { return FALSE; } // Comprobamos si el usuario esta logueado if($mybb->user['uid'] != 0) { // Si el uid del usuario es indistinto a cero, el usuario se encuentra identificado $alerta_para_invitados = ''; } else { // Si el uid es igual a 0, el usuario no se encuentra identificado $alerta_para_invitados = $mybb->settings['registrate_loco_texto']; }}?>
$rows = $db->fetch_field($query, "rows");
$new_config = array();
$new_config[] = array(
foreach($new_config as $array => $content)
$db->insert_query("settings", $new_config);