Theory of Operation
However, as more and more users customize a product such as Cacti, it becomes almost impossible to maintain. Therefore, to the rescue in comes the Plugin Architecture for Cacti. It takes a fairly simply approach of injecting your code into very specific locations within Cacti's core code in order to allow Cacti to be extended to suit your needs.
Let's draw a picture of Cacti without the Plugin Architecture. So, let's say, for example, you had a piece of code that you added to a core Cacti function. Also, let's assume that you had to do that to 10 other functions as well. Now, you go to a website and then find another add on that essentially does the same. No problem , just put it in and it works. But then you find two more Addon's and you get stuck. You find yourself asking, where did Addon A put that change, or was it Addon B. Oh, wait what file was that?
Over time, it would become more and more difficult to upgrade your installation. So, what the Plugin Architecture does it place "hook" functions in very strategic locations of the Cacti base code. Then, through a plugin registration process, each Plugin can leverage one or all of these hooks to inject their code.
This is a very attractive technique that has proven itself. Currently, there are over 30 plugins in the wild, and I am sure there are numerous others that can not be released due to company restrictions on such things.





