Deploying Ribbon Button Across all sites in a site collection - sharepoint-2010

I have created a custom ribbon button using SharePoint designer 2010 for a library in a site and have associated a workflow to it.
How to extend this functionality to all the sites in a site collection?
If I create the custom ribbon button in the top most site of a site collection, can I have the functionality to be extended to all the sub-sites in that collection?
I am using SharePoint designer 2010 for the development, so is there a solution using SPD? I think using visual studio one can create a sandbox solution and apply that solution across all the sub-sites.
Are there any other tools to achieve this functionality?

Related

How to create a Outlook 2013 Add-in Command?

I want to create a Ribbon Button in the calendar view of Outlook that extracts some properties (e.g. data, time) of the current selected calendar item (appointment) in the Outlook calendar view and that creates a new Email with the properties listed in the text.
I also appreciate answers that will provide links to blogs, articles or videos related to this task, as I couldn't find much with the necessary guidance and explanation I need for this. Also other solutions to do this with Outlook on-board tools are welcome. Important: I do not just want to forward the appointment as an attachment to a new Email, I want the properties as text in the Email.
Remarks:
I have no background in MS Office plugin development, please consider this
I have successfully done this walktrough with the VBA code samples (https://msdn.microsoft.com/en-us/library/cc668191.aspx), that adds some text to every new Email message, but I couldn't figure out how to go on effectively to get my task done
Thanks
VBA doesn't allow creating a ribbon custom UI for Outlook. You need to develop a COM add-in for Outlook if you want to create a custom UI. Read more about that in the Walkthrough: Creating Your First VSTO Add-In for Outlook article.
VSTO provides two main ways for creating a custom ribbon UI:
Walkthrough: Creating a Custom Tab by Using Ribbon XML
Walkthrough: Creating a Custom Tab by Using the Ribbon Designer
You may find the Fluent UI described in depth in the following series of articles:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)
Also, you may consider creating web-based add-ins (former known as Mail Aps), see Add-in commands for Outlook for more information.

Backstage view in outlook 2007

I am developing an outlook 2007 add-in which is based on an existing outlook 2010 plugin. I managed to get most of the features working, because most of them were backwards compatible. However there are some I could not, because 2007 simply did not have certain features. \
Backstage view
Main ribbon
My question is - what would you suggest for an equivalent interface? Where would you put in outlook 2007 something that was in backstage view in 2010?
After much deliberation I decided to use a custom menu. All features available through the backstage view in 2010 will be converted to menu items in the custom menu in Outlook 2007.
Also buttons from the main ribbon will become items in the same custom menu.
This solution, while not as elegant as Fluent UI will work, I think, because all of my plugin's functionality will be available from one spot.

Custom ASPX Form whats the better way

I have developed a portal using SharePoint 2010 (Standard Edition). I want to develop a Master-Detail "Requisition" form using Visual Studio 2010. I don't want users to access the List and click on "Add New" to access the form. I want to create a link on portal's homepage like "Requisition Form" when user will click on the link it should open the form right there.
Should I create a Visual WebPart ..then create new page and embed the webpart there? or should I develop WebPart Page..I've never done webpart page so what's the better approach? and to Edit the page do I need to create another Visual part with Gridview control and fill currently logged in user's Requisitions including Item ID and pass it on to MyCustomRequisitionEditForm.aspx ?
Please advise.
Why don't you customize standard new form of the list with Sharepoint Designer or InfoPath? You can create a link to this form on the homepage of your portal.

How to reconnect InfoPath task form to SPD workflow after moving it to the new Site Collection

I have Globally reusable workflow (created in SPD) in my test site collection. This WF uses custom InfoPath task form. Now I am trying to move it to the new production site collection. I've done next steps.
Copy my globally reusable WF (in SPD) to make it reusable (I can't save GLOBALLY reusable WF as a template).
Save new reusable WF (not globally reusable) as WF template and deployed it to the production environment.
And now my WF is working well, but I've missed my custom InfoPath task forms and I don't know how to connect it to my WF.
Is there any way to reuse InfoPath task forms from my workflow after moving from test environment to production? May be I have to use another approach?
Every suggestions are very appreciated. Thank you very much in advance.
PS: I don't understand completely what is happenning behind the scenes, when I am creating custom InfoPath task forms in SPD. I googled about it, but couldn't find any good article to clarify. If you know any articles or books which could help me in my understanding of relationship between InfoPath and SharePoint 2010, it would be great if you recommend it.
PPS: SharePoint 2010.
UPDATE 1: It seems like InfoPath forms are missed in step 1 (I can't see forms in wsp file). If I create new reusable WF (not globally) with InfoPath forms, I can see them in the wsp file and WF deploys correctly with forms.
It seems like the way which Microsoft recommends for converting Globaly reusable WF to reusable WF doesn't work well and miss InfoPath task forms.
Also I found an unanswered question about the same problem on MSDN forum.
Thanks to Gennady Vanin, who helped me to find a solution.
To reconnect InfoPath form we can use the next approach:
1. Export source files of the form.
Open form in InfoPath designer. And because we can't republish it to the different place using wizard (its type is a Workflow form), we should Export source files (from the menu File\Publish) to some folder.
After this step we received a set of files, one of which is "manifest.xsf".
2. Close InfoPath designer.
3. Correct URLs in manifest.xsf
Open "manifest.xsf" in a text editor. Find all URL related to the first site collection and replace it with new URLs linked to new site collection. Save the file.
Hint: If you don't know the URL to publish in new site collection, you can open autogenerated form from it in the same manner (look at URLs in its manifest.xsf).
4. Publish changed form.
Open InfoPath designer, open corrected manifest.xsf in it and publish it (by pressing the publish button for example).
5. Hurray! The form is deployed to the new place!
You should repeat this steps for all custom InfoPath task forms in your workflow.
If somebody needs more detailed description, I could add screenshots.

SharePoint Designer 2010 List Forms

Are SharePoint 2010 Designer List Forms portable or custom rendering templates still the best way to customize the List Forms? InfoPath 2010 is out of question because of enterprise licensing issues.
Regards,
Nitin
It depends on the extent of your customization. You can achieve quiate a lot with the standard DataFromWebPart and custom XSLT but if you want to add custom controls you'll run into problems (as highlighted here http://www.chaholl.com/archive/2010/01/26/extending-the-dataform-web-part-to-allow-custom-field-controls.aspx).
For extensive customization the best bet is to create a custom webpart and include it on the edit form. Bear in mind that field controls automatically pick up and update content from the SPContext object so calling SPContext.Current.Listitem.Update() is enough to save the values of all field controls in your custom webpart. Of course if you're using standard asp.net control on there as well you'll need to pickup and set their values manually.