XF 1.5 Change clear.png reference to absolute url?

alex2k5

Member
Looks like the clear.png file that overlays smilies and the like are hardcoded relative.

I am using a custom add on that shows forum content on pages outside the main forum directory. So, that image comes back not loaded and 404 not found on all those pages.

Is there any way to change that location easily that I'm not seeing? If not, a file edit, which one, etc?

Example:

Code:
<img src="styles/default/xenforo/clear.png" class="mceSmilieSprite mceSmilie10" alt=":oops:" title="Oops!    :oops:" />
Code:
<img src="http://www.domain.com/forum/styles/default/xenforo/clear.png" class="mceSmilieSprite mceSmilie10" alt=":oops:" title="Oops!    :oops:" />
Thanks!
 

Chris D

XenForo developer
Staff member
To do this properly would require a proper add-on to be created, but there is a shortcut simply if you edit the file library/XenForo/BbCode/Formatter/Base.php:

PHP:
protected $_smilieSpriteTemplate = '<img src="styles/default/xenforo/clear.png" class="mceSmilieSprite mceSmilie%1$d" alt="%2$s" title="%3$s    %2$s" />';
 

alex2k5

Member
Actually, I wrote an add-on a few years ago to add a space after each smilie - it just involved editing the two smilie templates in this file and adding a space, but it does so as a proper add-on:

https://xenforo.com/community/resources/space-after-smilie.1558/

It's a very simple add-on so if you were interested in doing this "properly" then this would be a good place to start.
That did it. Left the space functionality in there too :)

I hard coded, but, is there a way to utilize the options forum path in there so it can be ported to other installs easier in the future?
 

Chris D

XenForo developer
Staff member
Just using the original XF code as an example:

PHP:
protected $_smilieSpriteTemplate = '<img src="' . XenForo_Application::getOptions->boardUrl . '/styles/default/xenforo/clear.png" class="mceSmilieSprite mceSmilie%1$d" alt="%2$s" title="%3$s    %2$s" />';
That's probably the easiest way.
 

alex2k5

Member
Ahh cool. For some reason I was thinking way more complicated, like I had to make that available in there somehow first. Thanks again!
 

trapped_soul

Well-known member
To do this properly would require a proper add-on to be created, but there is a shortcut simply if you edit the file library/XenForo/BbCode/Formatter/Base.php:

PHP:
protected $_smilieSpriteTemplate = '<img src="styles/default/xenforo/clear.png" class="mceSmilieSprite mceSmilie%1$d" alt="%2$s" title="%3$s    %2$s" />';
Hi Chris,
Sorry to bump an old thread but I've followed suit and they've still not updated with the correct path.
Any ideas if this still works as mentioned or is there also something else we need to do?
Thank you in advance. :)
 
Last edited:

Amin Sabet

Well-known member
Does anyone else have an idea or has done this successfully?
I adapted Chris D's addon below to do it.

Actually, I wrote an add-on a few years ago to add a space after each smilie - it just involved editing the two smilie templates in this file and adding a space, but it does so as a proper add-on:

https://xenforo.com/community/resources/space-after-smilie.1558/

It's a very simple add-on so if you were interested in doing this "properly" then this would be a good place to start.
Was very straightforward. Just edit the Base.php file from the addon (found at upload/library/SpaceAfterSmilie/BbBode/Formatter/Base.php). In my case, I wanted to use my CDN, so I changed

Code:
protected $_smilieSpriteTemplate = '<img src="styles/default/xenforo/clear.png"
to

Rich (BB code):
protected $_smilieSpriteTemplate = '<img src="https://cdn2.mu-43.com/styles/default/xenforo/clear.png"
I also changed

Rich (BB code):
protected $_smilieTemplate = '<img src="%1$s" class="mceSmilie" alt="%2$s" title="%3$s    %2$s" />&nbsp;';
to

Code:
protected $_smilieTemplate = '<img src="%1$s" class="mceSmilie" alt="%2$s" title="%3$s    %2$s" />';
since I didn't want the space after smilies.

Then I just installed the addon without any other changes, and it did the job (y).
 
Top