Last year we announced codesearch.epicom.com, which is a tool for developers to quickly search through the SugarCRM code base. Blake Robertson wrote a comment on our last blog post asking us if we could also index some of the popular plugins on SugarForge. The concept was that the search tool could become an easy way to track down how other engineers went about solving similar issues that you may be trying to solve.
As a result of Blake’s suggestion, we are now indexing some of the popular projects on SugarForge as part of the codesearch.epicom.com offering. Jason Eggers at Sugar Outfitters gave us a list of some of the higher quality plugins from SugarForge that we should index. Right now there are 19 projects that are indexed. You can request to have additional projects indexed by completing the form here.
When you do a search at codesearch.epicom.com, it will search both the core product and the plugins from SugarForge. On the left of the screen you have the ability to filter down to only search the core code or only search the plugins by choosing either CE or Plugin from the Sugar Flavor filter. You can also filter down to only a single plugin by choosing it from the Sugar Version filter menu.
The new filter and plugin feature proved to be a valuable tool when one of our engineers, Tommy Wiebell, built a plugin that is part of our Quickbooks Integration. The plugin needed to be able to modify layouts on install and again on uninstall. Tommy made the Quickbooks plugin a few months ago, and at the time there were no code samples available on the web showing how to add a field to a layout as part of an install of a module loadable package. Last month the support team at Sugar rewrote the developer guide and added a reference for how to add a field to a layout. However, at this time there are still no code samples on how to remove a field from a layout (which we wanted when you uninstall the plugin for it to remove any traces of it).
If you knew that the ParserFactory was the trick to do it, then you can search through the plugins to see which developers are using it and view code samples of how they are using it. If you search for ParserFactory on codesearch.epicom.com: http://codesearch.epicom.com/index.php?q=ParserFactory
and then filter down to plugins:
you can see that Tommy has used that object in his pre_install script, and when you click on that:
you can also see how he uses it.
If you are interested in learning how to remove a field, he does that in his pre_uninstall script, which you can find by searching for “removeFieldFromLayouts” on codebase.epicom.com.
We hope this service will make it easier for developers to find sample codes to base their module loadable packages on to help solve some of the tougher problems.
If you have any questions or suggestions on improving the codebase.epicom.com tool, submit a comment below.