Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/class_language.php on line 201
Esta correcta la estructura hasta ahora? Como agregar cosas nuevas?
HSSWebs   17 Dec, 2012, 8:49 pm
#1
Buenas estoy creando un plugin, digamos que bastante interesante a mi parecer, este usa la API de GTmetrix y quisiera saber si voy bien hasta el momento.

La API de GTmetrix es bastante sencilla, así que en eso no hay complicaciones, si no lo que me complica es mostrar los resultados de este en el plugin.

Aquí va:

Código PHP:
<?php
if(!defined("IN_MYBB"))
die(
"This file cannot be accessed directly.");

$plugins->add_hook('admin_load', 'gtmetrix_admin');
$plugins->add_hook('admin_tools_menu', 'gtmetrix_admin_tools_menu');
$plugins->add_hook('admin_tools_action_handler', 'gtmetrix_admin_tools_action_handler');
$plugins->add_hook('admin_tools_permissions', 'gtmetrix_admin_permissions');

function
gtmetrixformybb_info()
{
return array(
"name" => "GTmetrix for MyBB",
"description" => "This plugin helps in development and a faster experience for your forum with GTMetrix",
"website" => "http://hasaezs.com",
"author" => "Steeep",
"authorsite" => "http://hasaezs.com",
"version" => "1.0",
"guid" => "",
"compatibility" => "16*"
);
}

function
gtmetrixformybb_activate()
{
global
$db;

$insertarray = array(
'name' => 'gtmetrix',
'title' => 'GTmetrix',
'description' => "Settings for GTmetrix",
'disporder' => 100,
);
$gid = $db->insert_query("settinggroups", $insertarray);


$setting0 = array(
"name" => "gtmetrix_email",
"title" => "Mail of GTmetrix",
"description" => "Enter here the email used in GTMetrix",
"optionscode" => "text",
"value" => "",
"disporder" => 1,
"gid" => $gid
);
$db->insert_query("settings", $setting0);

$setting1 = array(
"name" => "gtmetrix_api_key",
"title" => "API key of GTmetrix",
"description" => "Enter here the API key used in GTMetrix",
"optionscode" => "text",
"value" => "",
"disporder" => 2,
"gid" => $gid
);
$db->insert_query("settings", $setting1);

rebuild_settings();
}

function
gtmetrixformybb_deactivate()
{
global
$db;

$query = $db->query("SELECT gid FROM ".TABLE_PREFIX."settinggroups WHERE name='gtmetrix'");
$g = $db->fetch_array($query);
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE gid='{$g['gid']}'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE gid='{$g['gid']}'");

rebuild_settings();
}

function
gtmetrix_admin_tools_menu(&$sub_menu)
{
$sub_menu[] = array('id' => 'gtmetrix', 'title' => 'GTmetrix', 'link' => 'index.php?module=tools-gtmetrix');
}

function
gtmetrix_admin_tools_action_handler(&$actions)
{
$actions['gtmetrix'] = array('active' => 'gtmetrix', 'file' => 'gtmetrix');
}

function
gtmetrix_admin_permissions(&$admin_permissions)
{
$admin_permissions['gtmetrix'] = "Can manage GTMetrix?";
}

function
gtmetrix_admin()
{
global
$page, $run_module, $action_file;

if(
$run_module == 'tools' && $action_file == 'gtmetrix')
{
$page->add_breadcrumb_item('GTmetrix', 'index.php?module=tools-gtmetrix');
$page->output_header('GTmetrix');

$page->output_footer();
exit;
}
}

Mientras vaya desarrollándolo y se me vayan ocurriendo nuevas ideas iré preguntando Big Grin

Saludos.
Omar G.   17 Dec, 2012, 8:58 pm
#2
Si recuerdo bien tu estuviste usando PluginLibrary, debes saber que solo deberías eliminar información de la DB en _uninstall, ya sean configuraciones, tablas, o columnas.

El resto, en realidad no veo mucho que comentar, me parece muy incompleto considerando que mencionas la API es muy sencilla, ¿O querías ayuda para implementarla?
HSSWebs   17 Dec, 2012, 9:08 pm
#3
(17 Dec, 2012, 8:58 pm)Omar G. escribió: Si recuerdo bien tu estuviste usando PluginLibrary, debes saber que solo deberías eliminar información de la DB en _uninstall, ya sean configuraciones, tablas, o columnas.
No sabía que eso iba a hay, ahora ya lo sé.

(17 Dec, 2012, 8:58 pm)Omar G. escribió: El resto, en realidad no veo mucho que comentar, me parece muy incompleto considerando que mencionas la API es muy sencilla, ¿O querías ayuda para implementarla?
Claro es muy sencilla, solo que por ejemplo me gustaría saber como agregar estos menús & el código para acceder a estos, creo que se puede hacer con $mybb->input['action'] o no?

[Imagen: yUIeE.png]
Edson Ordaz   17 Dec, 2012, 9:22 pm
#4
si... $mybb->input['action'] == "add"
ovio al agragar el tab pones en el link ?action=add
Última modificación: 17 Dec, 2012, 9:22 pm por Pomelete.
Omar G.   17 Dec, 2012, 9:46 pm
#5
O, quieres saber esa parte, lee mis plugins:
https://github.com/Sama34/OUGC-Awards/tr...ter/Upload
https://github.com/Sama34/OUGC-Custom-Re...ter/Upload
https://github.com/PirataNervo/newpoints...ter/Upload
https://github.com/Sama34/OUGC-Announcem...ter/Upload

Básicamente debes crear un archivo para la pagina, no como lo estas haciendo, por que ese código se cargara en todas las paginas cuando no es necesario.
HSSWebs   18 Dec, 2012, 5:58 am
#6
Todo lo que llevo lo hice basándome en el plugin de Pirata Nervo, MyPermissions.
Ya que solo usa un archivo, & por lo que veo es que este no sé ejecuta en todo lados ahora explico porque, si me equivoco dímelo.

Código PHP:
<?php 
if($run_module == 'tools' && $action_file == 'gtmetrix')
{
$page->add_breadcrumb_item('GTmetrix', 'index.php?module=tools-gtmetrix');
$page->output_header('GTmetrix');

$page->output_footer();
exit;
}

Esta claro el condicional cierto? $run_module, así como también $action_file. Se supone que el código se carga solo cuando se cumple estas dos condiciones.

No veo donde se carga en todas la páginas, o tal vez donde se llama en el gancho (Hook) admin_load, pero aún así esta el condicional.
Omar G.   18 Dec, 2012, 3:52 pm
#7
Me refiero a que se carga todo el codigo, MyBB podría ser escrito en un solo archivo pero no seria optimo, a eso me refiero.
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.