MyBB Community Forums

Full Version: find_replace_templatesets help?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Can someone give me some help with this find_replace_templatesets.
I am making (my first plugin) a plugin that will add a link to your home page in just before the search link up the top. I am modelling it of the forum message plugin but i have run into a few problems.

I need to find:
<div class="menu">
				<ul>
And replace it with
<div class="menu">
<ul>
<li><a href="{$mybb->settings['homeurl']}"><img src="{$mybb->settings['bburl']}/{$theme['imgdir']}/on.gif" alt="" />Home</a></li>

So i am using:
find_replace_templatesets('header, '<div class="menu"><ul>', '<li><a href="{$mybb->settings['homeurl']}"><img src="{$mybb->settings['bburl']}/{$theme['imgdir']}/on.gif" alt="" />Home</a></li>');

But it spits this error:
Parse error: syntax error, unexpected T_CLASS in D:\xampp\htdocs\MYBB\inc\plugins\homelink.php on line 61
I have tryed all sorts of other things but i think there must be something i am missing.

Thanks, Smile

Ps. Line 61 is the code above.
Wheel-World Wrote:Can someone give me some help with this find_replace_templatesets.
I am making (my first plugin) a plugin that will add a link to your home page in just before the search link up the top. I am modelling it of the forum message plugin but i have run into a few problems.

I need to find:
<div class="menu">
				<ul>
And replace it with
<div class="menu">
<ul>
<li><a href="{$mybb->settings['homeurl']}"><img src="{$mybb->settings['bburl']}/{$theme['imgdir']}/on.gif" alt="" />Home</a></li>

So i am using:
find_replace_templatesets('header, '<div class="menu"><ul>', '<li><a href="{$mybb->settings['homeurl']}"><img src="{$mybb->settings['bburl']}/{$theme['imgdir']}/on.gif" alt="" />Home</a></li>');

But it spits this error:
Parse error: syntax error, unexpected T_CLASS in D:\xampp\htdocs\MYBB\inc\plugins\homelink.php on line 61
I have tryed all sorts of other things but i think there must be something i am missing.

Thanks, Smile

Ps. Line 61 is the code above.

First of all, in your code, you are missing a ' after header and you need to escape all the single quotes in the replace string. The syntax highlighter picks it up right away

find_replace_templatesets('header', '<div class="menu"><ul>', '<li><a href="{$mybb->settings[\'homeurl\']}"><img src="{$mybb->settings[\'bburl\']}/{$theme[\'imgdir\']}/on.gif" alt="" />Home</a></li>');

(I can't seem to use the PHP tags... it deletes things from my post when I do. o_O)

Also, your replace won't work correctly. You have to take into account new lines and tabs in your search string. So, you'll probably need something like '#<div class="menu">(\n|\r|\r\n)\t\t\t<ul>#' (that looks like three tabs, though it could be more).
The find and replace uses the preg_replace function, so your strings need to conform to the regular expressions syntax. See www.php.net/preg_replace and the related syntax pages for info.

Just a note: You need to escape:
<
>
=
with
\<
\>
\=
There may be other characters that have special meaning in regex that also need to be replaced (see the docs above)
Ah, right, forgot.

'#'.preg_quote('<div class="menu">').'(\n|\r|\r\n)\t\t\t'.preg_quote('<ul>').'#'
then.