It's rather frustrating that a task such as ensuring a web part zone has a certain web part in it (on a page layout) is such a difficult or, at the very least, tricky task considering it's surely included in many specifications!?
- I've tried the xml approach to this: http://sharepointsearch.com/cs/blogs/sharepointblogs/archive/2007/11/23/adding-custom-webparts-in-a-sharepoint-site-definition.aspx
- And even used the following server control to try and achieve it: http://code.msdn.microsoft.com/Adding-default-web-parts-ab7aec72
The problem with solution 1 is that every time I switch between a new page layout - the web part's added again (as explained in the article link in solution number 2). Not to mention the fact that every time I deploy a page layout with this xml a duplicate web part is added (which then calls the need for a feature event receiver!!).
The problem with solution 2 is similar - in the fact that when I switch between page layouts - the web part is added to completely different web part zones on completely different pages!
I'd really appreciate any help anyone can offer on this.