[Rendimiento]  Problema con mi plugin
* URL del foro: http://lorataco.es * Versión del foro: 1.6.5 * Actualización: 1.6.5 Hola, vengo a pedir ayuda sobre el plugin que estoy creando ba...


Hola, vengo a pedir ayuda sobre el plugin que estoy creando basado en un tutorial de mybb.com
Cuando voy al Acp y le doy a plugins no aparecen los plugins, borro mi plugins y si aparecen, aqui dejo mi plugin por si pudierais solucionarmelo y explicarmelo:

Código PHP:
<?php
/**
 * Forum Age 1.0
 * © 2011 lorataco
 * http://lorataco.es
 */
if(!defined("IN_MYBB"))
{
    die(
"You Cannot Access This File Directly");
}

$plugins->add_hook("global_start","Global");
$plugins->add_hook("admin_style_templates_start","Foro")
function 
forum_age_info()
{
return array(
        
"name"  => "Forum Age",
        
"description"=> "Muestra el tiempo desde que se creo tu foro",
        
"website"        => "http://mybb-es.com",
        
"author"        => "Lorataco",
        
"authorsite"    => "http://lorataco.es",
        
"version"        => "1.0",
        
"guid"             => "",
        
"compatibility" => "*"
    
);
}
function 
forum_age_activate()
  {
    global 
$db;
    
   
$forum_age_group = array(
        
'gid'    => 'NULL',
        
'name'  => 'forum_age',
        
'title'      => 'Forum Age',
        
'description'    => 'Configuracion para forum age',
        
'disporder'    => "1",
        
'isdefault'  => 'no',
    );
   
        
$forum_age_group = array(
        
'gid'    => 'NULL',
        
'name'  => 'forum_age',
        
'title'      => 'Forum Age',
        
'description'    => 'Configuracion para forum age',
        
'disporder'    => "1",
        
'isdefault'  => 'no',
    );
 
$db->insert_query('settinggroups'$yourplugin_group);
 
$gid $db->insert_id();
   
$forum_age_setting = array(
        
'sid'            => 'NULL',
        
'name'        => 'enabled_forum_age',
        
'title'            => 'Forum age esta activo',
        
'description'    => 'Elige si se ve el tiempo de tu foro o no',
        
'optionscode'    => 'yesno',
        
'value'        => '1',
        
'disporder'        => 1,
        
'gid'            => intval($gid),
    );
     
$db->insert_query('settings'$yourplugin_setting);
  
rebuild_settings();
  }
  function 
forum_age_deactivate()
  {
  global 
$db;
 
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('enabled_forum_age')");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='forum_age'");
rebuild_settings();
 }
function Global(){
global 
$mybb;
find_add_global('global''$timenow = my_date($mybb->settings[\'timeformat\'], TIME_NOW);''$age_query = $db->query("SELECT * FROM ".TABLE_PREFIX."users LIMIT 1");
$age_result = $db->fetch_array($age_query);
$age = time() - $age_result[\'regdate\'];
$forumage = nice_time($age); 
'
);
function 
Foro(){
global 
$mybb;
find_add_templatesets('index''<br />Foro creado: {$forumage} ');
}
}
?>


Bueno para comenzar esta linea esta repetida:

Código PHP:
$forum_age_group = array(
        
'gid'    => 'NULL',
        
'name'  => 'forum_age',
        
'title'      => 'Forum Age',
        
'description'    => 'Configuracion para forum age',
        
'disporder'    => "1",
        
'isdefault'  => 'no',
    ); 

Luego esta esta mal

$db->insert_query('settinggroups', $yourplugin_group);

debe ir el nombre que ya asignaste arriba. en la opcion repetida.

$db->insert_query('settings', $yourplugin_setting);

Lo mismo que la anterior.

Y sería todo, reviza eso bueno lo que veo a simple vista.

"website" => "http://mybb-es.com",

Y eso el sitio, jaja, eso es broma, pues todo lo demás parece a primera vista bien, pero lo miro y te digo que cosa.

Saludos...
Sigue igual, aqui dejo como lo deje:
Código PHP:
<?php
/**
 * Forum Age 1.0
 * © 2011 lorataco
 * http://lorataco.es
 */
if(!defined("IN_MYBB"))
{
    die(
"You Cannot Access This File Directly");
}

$plugins->add_hook("global_start","Global");
$plugins->add_hook("admin_style_templates_start","Foro")
function 
forum_age_info()
{
return array(
        
"name"  => "Forum Age",
        
"description"=> "Muestra el tiempo desde que se creo tu foro",
        
"website"        => "http://mybb-es.com",
        
"author"        => "Lorataco",
        
"authorsite"    => "http://lorataco.es",
        
"version"        => "1.0",
        
"guid"             => "",
        
"compatibility" => "*"
    
);
}
function 
forum_age_activate()
  {
    global 
$db;
    
   
$forum_age_group = array(
        
'gid'    => 'NULL',
        
'name'  => 'forum_age',
        
'title'      => 'Forum Age',
        
'description'    => 'Configuracion para forum age',
        
'disporder'    => "1",
        
'isdefault'  => 'no',
    );
   
 
$db->insert_query('settinggroups'$forum_age_group);
 
$gid $db->insert_id();
   
$forum_age_setting = array(
        
'sid'            => 'NULL',
        
'name'        => 'enabled_forum_age',
        
'title'            => 'Forum age esta activo',
        
'description'    => 'Elige si se ve el tiempo de tu foro o no',
        
'optionscode'    => 'yesno',
        
'value'        => '1',
        
'disporder'        => 1,
        
'gid'            => intval($gid),
    );
     
$db->insert_query('settings'$forum_age_setting);
  
rebuild_settings();
  }
  function 
forum_age_deactivate()
  {
  global 
$db;
 
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('enabled_forum_age')");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='forum_age'");
rebuild_settings();
 }
function Global(){
global 
$mybb;
find_add_global('global''$timenow = my_date($mybb->settings[\'timeformat\'], TIME_NOW);''$age_query = $db->query("SELECT * FROM ".TABLE_PREFIX."users LIMIT 1");
$age_result = $db->fetch_array($age_query);
$age = time() - $age_result[\'regdate\'];
$forumage = nice_time($age); 
'
);
function 
Foro(){
global 
$mybb;
find_add_templatesets('index''<br />Foro creado: {$forumage} ');
}
}
?>
Tambien te falta un cierre aqui

$plugins->add_hook("admin_style_templates_start","Foro")

$plugins->add_hook("admin_style_templates_start","Foro");

Esta declaracion a que haces referencia no es válida al menos para MyBB 1.6.5

find_add_global

Eso es lo que te puedo decir:

Código PHP:
<?php
/**
 * Forum Age 1.0
 * © 2011 lorataco
 * http://lorataco.es
 */
if(!defined("IN_MYBB"))
{
    die(
"You Cannot Access This File Directly");
}

$plugins->add_hook("global_start","Global_ini");
$plugins->add_hook("admin_style_templates_start","Foro");

function 
forum_age_info()
{
return array(
        
"name"  => "Forum Age",
        
"description"=> "Muestra el tiempo desde que se creo tu foro",
        
"website"        => "http://mybb-es.com",
        
"author"        => "Lorataco",
        
"authorsite"    => "http://lorataco.es",
        
"version"        => "1.0",
        
"guid"             => "",
        
"compatibility" => "*"
    
);
}
function 
forum_age_activate()
  {
    global 
$db;

   
$forum_age_group = array(
        
'gid'    => 'NULL',
        
'name'  => 'forum_age',
        
'title'      => 'Forum Age',
        
'description'    => 'Configuracion para forum age',
        
'disporder'    => "1",
        
'isdefault'  => 'no',
    );

 
$db->insert_query('settinggroups'$forum_age_group);
 
$gid $db->insert_id();
   
$forum_age_setting = array(
        
'sid'            => 'NULL',
        
'name'        => 'enabled_forum_age',
        
'title'            => 'Forum age esta activo',
        
'description'    => 'Elige si se ve el tiempo de tu foro o no',
        
'optionscode'    => 'yesno',
        
'value'        => '1',
        
'disporder'        => 1,
        
'gid'            => intval($gid),
    );
     
$db->insert_query('settings'$forum_age_setting);
  
rebuild_settings();
  }
  function 
forum_age_deactivate()
  {
  global 
$db;
 
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('enabled_forum_age')");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='forum_age'");
rebuild_settings();
 }
function 
Global_ini(){
global 
$mybb;
find_add_global('global''$timenow = my_date($mybb->settings[\'timeformat\'], TIME_NOW);''$age_query = $db->query("SELECT * FROM ".TABLE_PREFIX."users LIMIT 1");
$age_result = $db->fetch_array($age_query);
$age = time() - $age_result[\'regdate\'];
$forumage = nice_time($age);
'
);
function 
Foro(){
global 
$mybb;
find_add_templatesets('index''<br />Foro creado: {$forumage} ');
}
}
?>

Con eso se mostrara en la caja de plugins, pero puedes activar y desactivar.

Ya solo busca lo que te falta, Wink.

la funcion enlazada a global no te dara, te va a tirar error, debes buscar una que no lo haga.

find_add_global

Solo corrige eso en lo que te pase y ya solucionas tu problema.
Última modificación: 31 Dec, 2011, 9:07 am por Naruteitor.
Y como lo pondria que buscara en el global.php esto
Código PHP:
$timenow my_date($mybb->settings['timeformat'], TIME_NOW); 
y agregue debajo
Código PHP:
$age_query $db->query("SELECT * FROM ".TABLE_PREFIX."users LIMIT 1");
$age_result $db->fetch_array($age_query);
$age time() - $age_result['regdate'];
$forumage nice_time($age); 

Y lo de añadir al index_stats:
Código PHP:
<br />Forum Age: {$forumage
Con un $page en la funcion y un replace en tu codigo.

Y lo otro pues con un

find_add_templatesets

Con eso seguro lo logras, ya mas no puedo ayudarte, sino sería mi plugin.

Creo que lo justo es que trabajes al menos en algo, no lo crees ??
Ya, pero esque acabo de empezar con esto del plugin, y la verdad he echo lo de $page y eso pero el foro se me queda en blanco
Así me gusta Lorataco (Y)(Y)

El nombre del archivo tiene que tener el nombre de la función de los datos. Por eso no te saldrá, ami me pasaba lo mismo O_O
El nombre del archivo es forum_Age D:
Pues no lo sé.

A mi cuando me pasaba eso era el nombre de la función. :\

Dark inspíranos!