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
Reemplazar templates
angeluz   17 Dec, 2012, 10:47 pm
#1
Si, correcto, otra vez yo D:
Bueno ahora tengo un problema feo :c

Después de la feroz batalla con el php logré hacer que mi plugin funcione (solo se instala) ahora tengo que hacer que este funcione visualmente.

El plugin trata de dar un promedio de post por temas y eso de momento "funciona" pero tengo problemas al editar plantillas Dodgy

El código _activate que tengo es:

Código PHP:
<?php 
function miplugin_activate ()
{
require
MYBB_ROOT."/inc/adminfunctions_templates";
find_replace_templatesets('index_stats', '#{\$lang->stats_mostonline}#'<!-- miplugin -->$miplugin<!-- /miplugin -->');

return true;
}

Pero como es lógico en mi... no sirve... Confusedmiley-roll::whistling:

Adiós y perdonen que pida tanta ayuda pero si me ayudan santa claus les dará muuuchos regalos esta navida Wink
Omar G.   17 Dec, 2012, 11:02 pm
#2
Durante *_activate debe ser asi:
Código PHP:
<?php 
find_replace_templatesets
('index_stats', '#'.preg_quote('{$lang->stats_mostonline}').'#i', '{$lang->stats_mostonline}<!-- miplugin -->{$miplugin}<!-- /miplugin -->');

Y durante *_deactivate como sigue:
Código PHP:
<?php 
find_replace_templatesets
('index_stats', '#'.preg_quote('<!-- miplugin -->{$miplugin}<!-- /miplugin -->').'#i', '', false);
- - - Actualizado - - -
No lo digo por nada mal pero igual podrías revisar el código de otros plugins, no hay problema con eso mientras no lo copees.
Última modificación: 17 Dec, 2012, 11:03 pm por nicods_20055.
angeluz   17 Dec, 2012, 11:06 pm
#3
(17 Dec, 2012, 11:02 pm)Omar G. escribió: Durante *_activate debe ser asi:
Código PHP:
<?php 
find_replace_templatesets
('index_stats', '#'.preg_quote('{$lang->stats_mostonline}').'#i', '{$lang->stats_mostonline}<!-- miplugin -->{$miplugin}<!-- /miplugin -->');

Y durante *_deactivate como sigue:
Código PHP:
<?php 
find_replace_templatesets
('index_stats', '#'.preg_quote('<!-- miplugin -->{$miplugin}<!-- /miplugin -->').'#i', '', false);
- - - Actualizado - - -
No lo digo por nada mal pero igual podrías revisar el código de otros plugins, no hay problema con eso mientras no lo copees.
Disculpa, pero me podrías explicar para que sirven los pequeños detalles que le agregaste a mi código, lo digo para saber mejor lo que hice mal Big Grin

Lo de copiar de otros códigos, el plugin anterior que hice me base en uno o dos que me parecieron simples y la idea fue de un plugin que traduci para phpbb Smile
No me meterán a la cárcel por hacerlo vdd?? :c

Adiós.
Pero en serio no me meterán a la cárcel :c
Omar G.   17 Dec, 2012, 11:10 pm
#4
Abre el archivo ./inc/adminfunctions_templates.php y veras algo similar:
Código PHP:
<?php 
/**
* Find and replace a string in a particular template through every template set.
*
* @param string The name of the template
* @param string The regular expression to match in the template
* @param string The replacement string
* @param int Set to 1 to automatically create templates which do not exist for that set (based off master) - Defaults to 1
* @return bolean true if updated one or more templates, false if not.
*/

function find_replace_templatesets($title, $find, $replace, $autocreate=1)
{
...
}

Basicamente se explica solo.

$title = El nombre del template.
$find = expresion regular de lo que buscar dentro del template.
$replace = reemplazar lo de arriba con esto, solo si se encuentra.
$autocreate = Crear el template si no existe? Generalmente se pone 0 o false durante la desactivacion, ya que no importa si no existe el template.
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.