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
Error al intentar editar class_parser.php
BitLiberal   30 Jul, 2014, 5:38 am
#1
  • URL del foro: localhost
  • Versión del foro: 1.6.x
  • Actualización: 1.6.13

En uno de mis plugins estoy intentando que edite class_parser.php para añadir una opcion a MyBB, pero al usar este codigo en la funcion de activado del plugin con PluginLibrary. con todo definido:

Código:
global $PL;
    $PL or require_once PLUGINLIBRARY;
    $edits = array(
            'search' => array('Codigo a buscar'),
            'replace' => array(
                'Codigo a insertar linea 1',
                '¡Codigo a insertar linea 1',
                ),
            );
    return $PL->edit_core('google_seo', 'inc/class_parser.php', true, $edits);
    }

Me da este error:
[spoiler]
Warning [2] Cannot use a scalar value as an array - Line: 831 - File: inc/plugins/pluginlibrary.php PHP 5.3.28 (Linux)
File Line Function
/inc/plugins/pluginlibrary.php 831 errorHandler->error
/inc/plugins/pluginlibrary.php 875 PluginLibrary->_dissect
/inc/plugins/pluginlibrary.php 981 PluginLibrary->_edit
/inc/plugins/nombre_plugin.php 408 PluginLibrary->edit_core
[PHP] nombre_plugin_activate
/admin/modules/config/plugins.php 401 call_user_func
/admin/index.php 572 require
Warning [2] Cannot use a scalar value as an array - Line: 839 - File: inc/plugins/pluginlibrary.php PHP 5.3.28 (Linux)
File Line Function
/inc/plugins/pluginlibrary.php 839 errorHandler->error
/inc/plugins/pluginlibrary.php 875 PluginLibrary->_dissect
/inc/plugins/pluginlibrary.php 981 PluginLibrary->_edit
/inc/plugins/nombre_plugin.php 408 PluginLibrary->edit_core
[PHP] nombre_plugin_activate
/admin/modules/config/plugins.php 401 call_user_func
/admin/index.php 572 require
Warning [2] Cannot use a scalar value as an array - Line: 839 - File: inc/plugins/pluginlibrary.php PHP 5.3.28 (Linux)
File Line Function
/inc/plugins/pluginlibrary.php 839 errorHandler->error
/inc/plugins/pluginlibrary.php 875 PluginLibrary->_dissect
/inc/plugins/pluginlibrary.php 981 PluginLibrary->_edit
/inc/plugins/nombre_plugin.php 408 PluginLibrary->edit_core
[PHP] nombre_plugin_activate
/admin/modules/config/plugins.php 401 call_user_func
/admin/index.php 572 require
Warning [2] Cannot use a scalar value as an array - Line: 844 - File: inc/plugins/pluginlibrary.php PHP 5.3.28 (Linux)
File Line Function
/inc/plugins/pluginlibrary.php 844 errorHandler->error
/inc/plugins/pluginlibrary.php 875 PluginLibrary->_dissect
/inc/plugins/pluginlibrary.php 981 PluginLibrary->_edit
/inc/plugins/nombre_plugin.php 408 PluginLibrary->edit_core
[PHP] nombre_plugin_activate
/admin/modules/config/plugins.php 401 call_user_func
/admin/index.php 572 require
Warning [2] Cannot use a scalar value as an array - Line: 845 - File: inc/plugins/pluginlibrary.php PHP 5.3.28 (Linux)
File Line Function
/inc/plugins/pluginlibrary.php 845 errorHandler->error
/inc/plugins/pluginlibrary.php 875 PluginLibrary->_dissect
/inc/plugins/pluginlibrary.php 981 PluginLibrary->_edit
/inc/plugins/nombre_plugin.php 408 PluginLibrary->edit_core
[PHP] nombre_plugin_activate
/admin/modules/config/plugins.php 401 call_user_func
/admin/index.php 572 require
[/spoiler]

  • Temas personalizados (HTML5, flat, responsive, SEO Friendly, etc)
  • Plugins y sistemas personalizados (Galería de imagenes, Bolsa de Trabajo, etc)
DarkFinder   30 Jul, 2014, 7:49 am
#2
Trata de declarar antes la variable $edits

Ej.

Código PHP:
<?php 
$edits
= array();
$edits['search'] = array('blablabla');
$edits['replace'] = array('blablabla','blablabla');

A mi me paso una vez, no en MyBB pero si con PHP, en donde por muy irónico que parezca el error se encontraba en que no había declarado primero la variable como array y despues agregado los valores
BitLiberal   30 Jul, 2014, 9:02 am
#3
Has dado en el clavo en un 99%.
Tienes razón, había que declarar la variable como array, que es lo que no hize, pero lo utlimo lo puse asi:
Código:
$PL->edit_core('plugin_name', 'inc/class_parser.php',
               array('search' => 'Texto a buscar',
                     'replace' => 'Reemplazar'),
               true);

Y funciona.

¡Muchísimas gracias!
Última modificación: 30 Jul, 2014, 9:02 am por ada314.

  • Temas personalizados (HTML5, flat, responsive, SEO Friendly, etc)
  • Plugins y sistemas personalizados (Galería de imagenes, Bolsa de Trabajo, etc)
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.