The following is a presentation I gave at the Milwaukee SItecore Developer meetup. The presentation was sort of a back to basics...
Web Forms for Marketers without xDBDerek Dysart
I recently was upgrading a customer site from Sitecore v7.2 to v8.2. I usually stay away from the “Inital Release” of a Sitcore version, but I really wanted to use the “Express” upgrade option (quotes intentional) and this customer really wants to use language fallback for some areas of the site. I knew going into this that it wouldn’t upgrade modules, with Web Forms for Marketers being a key one. I ran into issues with some of the custom indexes on the site since Sitecore re-arranged the
<contentSearch> section of the overall config, as well as some of the cache API’s changing, but I was able to address most of those in the code.
Fixing WFFM was easy enough, I installed the v8.2 version of WFFM. One issue did I run into is this site is not using, nor plans to use xDB, but as of v8, WFFM uses xDB to store form submissions. This is easily remedied by enabling the SQL Server provider for WFFM. Sitcore has nice docs on that here. The only problem I have with them is this line:
In a text editor, in the Sitecore.WFFM.Dependencies.config file, find the /sitecore/wffm/analytics/formsDataProvider configuration node, and for the attribute reference, specify the relevant provider: sqlFormsDataProvider, or combinedFormsDataProvider.
NO! Do not edit files that Sitecore ships. That will complicate your upgrade down the line. Instead create a patch file with the following:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/"> <sitecore> <wffm> <analytics> <formsDataProvider> <patch:delete /> </formsDataProvider> <formsDataProvider ref="/sitecore/wffm/analytics/sqlFormsDataProvider"/> </analytics> </wffm> </sitecore> </configuration>
Save this into a file in the
App_Config\Include folder, making sure it has a name that alphabetizes it below Sitecore.WFFM.Dependencies.config (I used zzSitename.WFFM.config)