Pregunta

I have an issue with my ModX Evo site throwing this error:

Fatal error: Cannot redeclare insert_metka() (previously declared in /home/mysite/public_html/manager/includes/document.parser.class.inc.php(794) : eval()'d code:2) in /home/mysite/public_html/manager/includes/document.parser.class.inc.php(794) : eval()'d code on line 12'

I have searched and searched but cannot find where insert_metka() is declared. I even downloaded the entire site and ran a search to no avail. I also tried to updated the version to the latest, also to no avail.

Can anyone please tell me where to find this function?

¿Fue útil?

Solución

Download a database dump and look for the this line in it. It seems that the fault one of the plugins, try disabling plugins until you find it. See ModX Evo: PHP error in document.parser.class.inc.php for more advices.

Otros consejos

As you can see from your error-code, the function was declared in a snippet. This is because Modx has this way of caching snippets to speed up the performance. They make static files of your snippets wrapped as a function.

This may cause errors if the same function is called twice and you declared a function within it. I suspect that is what is going on here.

To solve this issue, simply wrap your entire function in function_exists like so:

if (!function_exists("insert_metka")) {
    function insert_metka() {
        // Stuff goes here
    }
}

Sidenote: This is in addition to the answer given by Vasis. You should search your snippets, extras and plugins. It should be located somewhere in those files. It is not a function provided from the Modx core.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top