Tuesday, 17 July 2007
The other day I had to add My Sites to a client Moss Site
Firstly create a My Sites Web Application
Central Administration > Application Management > SharePoint Web Application Management:
Create or extend Web application
Then create a My Site Host Site Collection
Central Administration > Application Management > SharePoint Site Management:
Create site collection
Remember to set the site template as Enterprise>My Site Host
Now add a managed path if you don’t plan to use Sites as your location
Central Administration > Application Management > SharePoint Web Application Management:
Define managed paths
Add your Location as a wildcard path.
Next go in to your SSP
User Profiles and My Sites: My Site settings
Change the
Personal Site Services: to your new Web Application
And change
Personal Site Location: to your new location you defined earlier
And there you have it a new My Sites.
Monday, 9 July 2007
Adding Google as a search scope
Firstly how do we get google working with in a Moss site
As Google is droping thier Web service api (which was limated to 1000 quires a day) and are promoting thier Ajax API i will describe how to use the Ajax API.
We will use a CWEP (Content Editor Web Part) and drop some custom code in to the Source section.
<link href="http://www.google.com/uds/css/gsearch.css" type="text/css" rel="stylesheet">
<script src="http://www.google.com/uds/api?file=uds.js&v=1.0&key=REPLACE_ME" type="text/javascript"></script>
<script language="Javascript" type="text/javascript">
//<![CDATA[ function OnLoad() { // Create a search control var searchControl = new GSearchControl(); // Add in a full set of searchers searchControl.addSearcher(new GwebSearch()); searchControl.addSearcher(new GvideoSearch()); searchControl.addSearcher(new GblogSearch()); searchControl.addSearcher(new GnewsSearch()); searchControl.addSearcher(new GbookSearch()); // draw in tabbed layout mode var drawOptions = new GdrawOptions(); drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED); searchControl.draw(document.getElementById("search_control_tabbed"), drawOptions); // Execute an inital search searchControl.execute(cleanup(getQval("k"))); } GSearch.setOnLoadCallback(OnLoad); //]]>
function cleanup(str)
{
str = str.replace(/%22/ig, "\"");
str = str.replace(/\+/ig, " ");
str = str.replace(/%20/ig, " ");
str = str.replace(/%2B/ig, "+");
return str;
}
function getQval(name)
{
var m, Q = window.location.search.substring(1);
if ('' != Q)
{
var re = new RegExp(escape(name) + '=([^&$]+)');
if (m = Q.match(re))
return m[1];
else return '';
}
return '';
}</script>
<div class="search-control" id="search_control_tabbed">Loading</div>
<div id="error"></div>
Replace the REPLACE_ME with your google API key which you can get here
http://code.google.com/apis/ajaxsearch/signup.html
NOTE espaly for corprate clients they must read and approve of the tearms and conditions in relation to Google's API key
The Google part of the code is in the OnLoad()
and you should be able to easly modfy it to your own needs just explor the API
the rest of the fuctions are there to tokenise the URL string so make the search work from a search scope
the cleanup(str) fuction is used to reformat the URL token in to plain text.
the getQval(name) Gets the url tokens for the search string. Since i am just lazy and not much of a javascript programer this is just a cut and past from this Forum all credit goes to RobB and Michael Winter.
http://www.thescripts.com/forum/thread149745.html
now you have a google search webpart
go to the Search colection in your portal
Add two pages one for Google Search and one for Google Search Results.
Add these pages to the relative tabs.
Drop a Cwep whith the above code.
you now have a search page and a results page that contain a Google search web part
now how to get Moss search scopes to point the results here
go to search scopes ehter in the SSP or at the toplvl of the site colection(recomended for this method)
Create a display groop and call it Google Search Group (or your own name)
Creat a search scope called Google Search that is atached to Search Dropdown and Google Search Group that uses a custon search results page. Point to your newly created Google search results Page were you added the Cwep.
add a rule that will not search anywere (point it to the google search page you created for a minimal search)
now you will have a google search in your defauld search dropdown and any search placed in there will open your Google Search Results page which will display the search results in the Cwep.
one last thing to fix
go edit page on your Google search page and go Modfy sheard webpart on the Search box
Hide the search dropdown and under Mics change the results page to your new Google Search Results and change the Scope (txt box just below) to Google Search Group.
repeat these steps on your Google Search Resluts page
sorry i was in a hurry with this post :P
Monday, 18 June 2007
Adding a document to a Document library
One of my fellow developers had a web part that needed to convert a xml file to a pdf and then add the pdf to a document library . Well the conversion worked and everything was fine except he couldn’t workout how to get the pdf in to a document library.
There are no overrides on the .Add() method of the SPListItemCollection Class that take File in to account, the .File propriety is only a get and we didn’t know what Field to use. Evan the SPDocumentLibrary class was of no use.
After a bit of head scratching we found that we needed to use the list.Rootfolder.Files.add
This is in the SDK on one line in one of the related classes but I can’t find it again
Hopefully this post will help anyone else that gets snagged on this simple process
A useful tip
The Add method of the SPFilecolection returned a SPFile object
So you can use this code to add your relevant meta data
SPFile newFile = list.Rootfolder.Files.add( fileURL, fileStream);
SPListItem fileItem = newFile.Item;
Hope that help
Tuesday, 12 June 2007
Noooo SharePoint Blogs is down
One of the best resorces bor a bumbling MOSS newbee developers like my self
But there is light at the end of the tunnel as it is all is not lost
Thanks to Andrew Connell posting info on the problem
SharePointBlogs.com public service announcement
Heres to hoping you will be back up and running soon
Monday, 11 June 2007
Stsadm export / import comand Errors to catch us
After a short search you will find that most places point you towards Stsadm.exe -export / import and most of these tuts and How to’s are complete so no need to Blog it again (besides I could not do half as good a job) But what I want to highlight is errors that I have come across when using the commands that I can’t find answers to
Firstly the size of the sub site
When using stsadm.exe export the exported data is not written to destination disk till after the export is complete so if the sub site is larger than the free space on the system disk the export will fail.
Not much can be done around this one you can try reduce the amount of information exported by using the –versions command or create your own migration tool using the API’s
If you know any good way around this please add a comment.
Next Lists with e-mail address
If a list has an attached incoming email address and the Portal incoming email settings Directory Management Service is set to yes. The import fails as it can’t create the email address as it all ready exists short of removing all e-mail support from these lists and redoing the export and import then add email association to the newly imported lists
Best way I have found is to drop all list email association and then do the export and import then add the associations to the new lists.
If you know any good way around this please add a comment.
Lets start exposing my lack of anything
This blog is about MOSS 2007. I have only started on MOSS and have a measly 1 month of it behind me.