Check out my Plugin-API ! Yes, I've gone mad with power:https://github.com/clonemeagain/attachment_preview/tree/developBasically, the attachment_preview function modifies the DOM right? Why not expose that via Signals, so other plugins can send changes to the DOM in a simplified way? Yeah. Because XPath is Super Simple! Also, because I didn't want to write my own customized version of this threads mod just for my team, in this way, I can throw things at it based on ticket_id/url/staff whatever, and edit the output in one go, rather than each plugin being responsible for converting HTML into DOMDocument and back again.. in turn.. wow that sounds really wasteful when you type it out, but that is the way this works. So, my idea was to subvert that, and inject new DOM elements into the single DOMDocument structure.. that way, it only has to be converted/printed once. Sweet. It works too, I've got almost all my customisations already changed into Plugins for this, the only thing that doesn't work directly, is my mods to class.ticket.php.. which I probably shouldn't have made in the first place.. but you live you learn. Here's an example plugin: https://github.com/clonemeagain/osticket-plugin-notefirstIt depends on the attachments_preview plugin being enabled (you don't need to have it actually attaching things, it just needs to be enabled in osTicket for the bootstrap code to work). Currently the Signals stuff is in the develop branch, but I'll port it over when I've finished testing it. That reminds me, write tests. :-)It uses the same mechanism as attachments_preview, via Signal's (the osTicket internal comms system). Pretty cool. Likely overkill for such a simple task, but it does work well, and doesn't change core.. so there's that. Using this, any plugin can edit/replace/delete any part of the rendered HTML & inject scripts/stylesheets/html anywhere.. it works pretty well. Might even write a "theme" plugin around it.. that could be cool. :-)