Office 365: some frustration with public websites

In the past few months, like many SharePoint consultants, I have spent some time playing with Office 365, Microsoft’s own SharePoint hosting offer.

Having read on many blogs how great Office 365 is, once again I’ll go against the grain to express some frustration I had with public websites (plan E3).

On the paper, the SharePoint architecture offered in plan E3 looks very attractive:

  • On the one side, a collaborative site collection with secure access (https). Anonymous users are not allowed here.
  • On the other side a public site collection with pre-built pages (Home, Contact Us, etc.). Business users can easily do simple customization  – add a logo, move the navigation, etc. In addition, Microsoft offers a set of “gadgets” that can be added to the pages to insert a contact form, a map, etc.

I really like the clear separation between public and private sites. I also like the gadgets set, which makes it easy to add functionalities that are not available in SharePoint out of the box, like contact forms (several bloggers have claimed that they could build secure contact forms with SharePoint OOTB… but none has proved it!).

So, what’s my problem? Here is the catch: the usual content management features, that make SharePoint such a powerful application, are not available on the pages designed for the public site. You cannot, for example, manage your public announcements in an Announcements list, and have these announcements displayed on the Home page via a Web Part.

You can read about my discovery path in this thread from the Office 365 forum (obviously I was not in a good mood when I stumbled upon this):
http://community.office365.com/en-us/f/153/p/4533/17358.aspx

I also wrote about it and my current workaround on LinkedIn.

To conclude on a bright note, I really appreciate Microsoft’s recent efforts to get more involved in the community and provide proactive support. Special thanks to Jason Hennis for getting back to me and investigating the issue.

Build Your Own School Site (part IV) -Getting Started

Trudy Hutzler   Guest Author-Trudy Hutzler

Welcome to the fourth installment of the series on my School Site, in the first three posts we walked through the site looking at all the functionality that was built into it and briefly discussed how everything fit together.  Now we get to the fun stuff, I am going to start walking through how I created each part of the school site.  I am going to create a brand new Demo site so you can follow along each step of the way and see exactly what I did to create each part.  Along the way, I will provide you with all the information and formulas you need to recreate these solutions in your own environment.  So let’s get started!
First thing we need to do is create a new site for our demo.  I am using the Team Site template as the foundation for my new School Site.  For the Title I am using “School Site-Demo”.  The URL for the Web Site Address will look something like http://<server name>/<Site name>, so mine will be http://xmas/demo.
Next, we need to add a Picture Library titled “School Pictures”, and a new Document Library called “Formulas”.  This will be where I will place all the formulas and any other files you need to recreate these solutions in your own environment.  When it is all said and done I hope to provide users with a site template they can download, and this document library will be included. Now our site is ready for us to start adding our solutions.

Default Team Site

Create site using default Team site template

For the first solution, I wanted to start with something fun.  Therefore, I decided to start with the Image-Rotator solution which can be found in the SharePoint User’s Toolkit.  The Image-Rotator allows you to display a picture on your page randomly selected from a SharePoint picture library.   The Image-Rotator is a quick and easy way to add interest to your site, catch your users’ attention, and maybe even wow the boss.  But first, we need some pictures.
Now my daughter often downloads pictures for use in reports and such, and I don’t necessarily want those to be displayed by the Image-Rotator so I need to separate the pictures I want to display from the others.   So what I did in this instance is created another Picture Library I called “Rotator Pics”.    However, for this library I chose not to display it on the quick launch.  This way the typical user will even be aware that the library is there.  To further ensure no users try anything funny with the images I used unique permissions for this library restricting everyone, but the Site Collection administrators and owners, to read permissions.  This way if they do find the library they can’t change anything.
Picutre Library Permissions

Now we have a place to store our pictures we need to upload some pictures into the folder.

 On the Action Menu click on “Upload File”.  You can either upload each picture one at a time by selecting Upload file, or you can upload several files at one time by selecting “Upload Multiple Files”.

Now that we have the library and the pictures are uploaded, we need to find the URL for the picture library to use with the Image Rotator.  For the Image Rotator we need to find the edit view URL.

  • To do this first select the view of your picture library you want to use.  The view should not contain any folders.
  • Click on the down arrow of on the View Selector, and select “Modify this View”
  • When the “Picture Library Setting –>Edit View” page opens you will want to copy the URL from the address bar.

Now browse to SharePoint User’s Toolkit, and click on the Image-Rotator link.  The Image-Rotator configuration page will open, and you simply choose the options you want to use as follows:

  • First paste the URL we just copied above into the “Picture Library (Edit View)” text box.  This tells the Image-Rotator where to find the pictures to display.
    Choose a “Picture Format”.  In my case I want the pictures to be bigger than a thumbnail image so I am going with “Optimized for web display”
  • For “Picture Size” I will stay with the default option of “Forced Height” 200 px.
  • For “Alternate Text” the Image-Rotator we can either use the Picture Name from the library, or if you have added a description to each of your pictures when adding it to the library you can choose to use the description column instead.  I am going to stick with the picture name.
  • Under the “Description” section you can choose whether to display the information stored in the Description column or not.  I don’t want to clutter up the view too much so I am choosing not to display the description.
  • The next section is “Hyperlink”.  You options here are to NOT use a hyperlink, which is what I am going to use, you can also link to the full-sized picture, or you can use a link you have specified in a text column in your picture library.

I wanted to take a moment before we continue and talk about some of the neat extras the “Hyperlink” section provides.  Let’s say you are wanting to use the Image-Rotator to attract users to your site, you could allow your users to submit some of their own photos to be displayed, then using the Link to full-sized picture option you could allow users to click on a picture they particularly liked and see it full-sized view.

On the other hand, you might want to use the Image-Rotator as part of your new product announcement plan.  You could display pictures of new products in the Image-Rotator and then by choosing the “Open link specified in the following text column” option users to click on an image and be redirected to a product information page.  To do this create a custom text column in the picture Library where you can enter the URL for the Product information page, then enter the name of the column that holds the link in the text box for this option.

The possibilities are endless once you start thinking about it, and that is why I say this particular option packs a lot of nice extras that can give your site a polished look and feel.

  • The “Refresh Frequency” option allows you to choose how often the picture changes.  You can choose change the picture only once, each time the page uploads or refreshes. This way each time the users views the page the picture will be different, but will stay the same until they leave the page.  Or you can choose to change the picture on a regular set interval.  The default is 120 seconds, but since my Image-Rotator part is only going to be used as eye-candy I want mine to change more often so I am going to set it to 15 seconds.
  • The “Display Order” section is next, and here you can choose to display the images in a random order, or in a sequential order move from one to another on down the list.  I like to mix things up a bit so I am going with random.
  • You can even choose a “Progress Icon”.  This is a small image that displays when a picture is loading to show the progress.  You can use the built-in gears icon, no progress icon at all, or choose your own image by providing a URL where the image is stored.
  • Want to be alerted if there is an error with the Image-Rotator?  Then check the “Debugging” box to get alert messages on errors.
  • Finally you need to accept the license terms by Checking the ” I have read, understood, and I agree to the license terms.” box.  This is a free license folks, so no worries about checking the box.

Now that you have agreed to the terms the code for the Image-Rotator, including all the options you select will be visible in the text box at the bottom of the page.  To save the code to a text file click on the “Save To Disk” button which will save the code in a text file.  The default file name is “ImageRotator-2.0.txt”, but you can clear out the name and give it whatever name you like, such as “KentRotator.txt”.

Now we have our code, so let’s put it to use.  I want to replace the standard picture that comes with the default Team site template with my Image-Rotator so first I need to get rid of that picture.

  • Open up the SharePoint page where you want to display the Image-Rotator.
  • Next click on the “Page” tab of the ribbon and then click on “Edit” which will be the very first icon.
  • Click on the image to select it, then press the delete key

Now your site will look like the figure below.  Notice the large picture is now missing, and in its place, we will deploy our Image-Rotator.

Follow the steps below to deploy your Image-Rotator:

  • Open up the SharePoint page where you want to display the Image-Rotator.
  • Click on Site Actions –> View All Site Content
  • Once the “All Site Content” page opens look for Site Assets under Document Libraries, and click on it.
  • Click on the “Add New Document” link, this will open the Upload document dialog box.
  • Click on the Browse button to browse to the location where you saved your code text file.
  • Once the file has been uploaded click on the file to open it.
  • A message box may open asking you if you want to open the file as “Read Only” or “Edit” choose “Read Only” then click OK
  • This will open the file in a browser window.  Copy the URL form the address bar.
  • Then click the back button until you return to your site page.

The next part of deploying the Image-Rotator is to add a Content Editor Web Part to the page.  To do so follow these steps:

  • Browse to the page where you want to deploy the Image Rotator
  • Next click on the “Page” tab of the ribbon and then click on “Edit” which will be the very first icon.
  • Go to the web part zone where you want to display your images and place you cursor where you want to insert the CEWP
  • On the Ribbon, under the “Editing Tools” tab, click on “Insert”
  • Next on the Insert Ribbon, click on Web Parts which is part of the Web Parts group on the ribbon.
  • Under Categories select the Media and Content folder
  • Then under Web Parts select the Content Editor
  • Then click the Add Button.  This will add the CEWP to the page in the same place that your cursor was placed.

c

Now you are back on your page, still in Edit mode.

  • Select the Content Editor you just added and click on the down arrow
  • Select Edit Web Part

  • When the Web Part Editor opens paste the URL for the code text file we copied in the Content Link box.
  • Expand the Title section
  • Add in a title that will display above the images.  I am using “Kent State-You Belong Here!”
  • Leave the Height and Width section set to their default selections.
  • And for a cleaner look on the page I have set the Chrome Type to “None”
  • Then click on the OK button to save your changes.
  • You will now be taken back to the page, still in edit mode.  You will see the CEWP with its new Title but no pictures yet.
  • On the ribbon, click on the “Page” tab
  • Then click on “Save” which will be the very first icon

Once the page is saved and refreshed you should start to see your pictures in our new web part.

So we now have a little WOW factor added to our site, something to attract the users attention and get them looking around.  You can easily change things up by adding, changing, or deleting the pictures stored in the picture library.  You can also make changes to the options you selected by returning to the Image-Rotator page in the SharePoint User’s Toolkit and making different selections.  Then save the file to disk using the same name as you did above.  Finally upload the new text file to the Site Assets library, overwriting the original file.  The changes will take effect as soon as you refresh your page.

As we discussed earlier you can use the Image-Rotator part in a variety of different ways.  You can use it to promote new products, make SharePoint feel more like a community by displaying photos submitted by users, or just display picutres from the last office party.  The possiblities are endless!  How will you use the Image-Rotator?  I would love to hear from readers about the different ways you have put the Image-Rotator to use.  And stay tuned for the next installement ” Tracking the What, When and Where-Customizing Contacts and Calendar”

A School Site to Track Schedules, Assignments and Grades (Part II)

Guest Author: Trudy Hutzler

Welcome to part two of the School Site Overview.

In the last article I gave you some background about why we created the School Site, and I showed how we tracked classes. In this article we start to get into more of the fun stuff as I walk you through how we track homework and assignments.

The Home Page

Again starting on the Home Page, where we have used Easy Tabs version 5 to organize our data, I want to start with the “All Assignments” tab. Here is a list of all assignments that are due for the current quarter and their status.

This shows whether an assignment is submitted, late and by how many days, or how many days until it is due. To evaluate how many days till due, or late against the due date I used Christophe’s new Countdown/Countup formulas.

The priority of the assignment is indicated by the font color of the Assignment Title. I used the Color Coded Calendar tool from the SharePoint Users Toolkit for this piece and just tweaked it a little for my use.

The progress % is a visual indicator showing the percentage of the assignment that has been completed. It moves from Red to bright green as it moves across the bar. The actual color changes in 10% increments.

With online classes, it is not unusual to have classes with over 100 students, so as you can imagine it sometimes takes the teachers a while before they grade all those assignments and post the grades. Until they are all graded the assignment remains blank or at 0% making it hard to know if the assignment was submitted and being graded or was late. So we added the Submitted field so we as parents know if the assignment was submitted, and my daughter can be sure she didn’t forget to turn in the assignment after she completed her work, which if you have teenagers you know can happen a lot.

The Due Today and Due This Week tabs are pretty self-explanatory they are filter views of the Assignments list which list all assignments that are due. The image below shows the Due This Week tab.

The Late Assignments tab is another filtered view which gives us a list of all assignments that are past their due date, and have not been marked as submitted.

The List

As I said in my last article the Lists are the real work horse of the School Site and the Assignments List is really the nerve center for the whole site, everything else is just for support of this one list. In this list all homework assignments for the current quarter are tracked, and the grades recorded. We even track how many days until it is due, or how many days an assignment is late. We also provide access to any links needed to complete the assignment, and scheduled time for completing the work. It all happens here, and it all gets integrated from here as well.

Keeping track of the assignments is only one part of process; you also need to manage your time so that you can actually get the work done and submitted.  But as we all know clicking around between your to-do list and your calendar is a pain, even for the most disciplined of us, but especially for a teenager.  I knew if it wasn’t easy to move between assignment list and calendar and somehow tie the two together it wouldn’t be long before my daughter gave up and went back to her old tried and failed methods of doing her work.   So we needed to find a way to connect her Assignments list with the Schedule calendar.  You may remember the Schedule calendar from the last article.

This calendar color codes the entries by changing the background color according to the category you choose.  If you look at the figure above you will see some of the entries have a green background, another entry has a red background, and so on.  When you create a calendar entry there is a Category field where you can choose a category like “Holidays-No School” which would give the entry a green background and “Report Periods” which would give the entry a red background.  The category you choose will determine the background color of the calendar entry.

But that’s not all, if you call in and order in the next 30 minutes you will also receive the added feature of the Assignment List integration.  You can link your calendar event with an item in your assignment list by using a hyperlink that when clicked will open up the view list item dialog box from the Assignments list.

 Let’s say you are checking out your schedule in the calendar and see an assignment you are supposed to be working on, but can’t remember what it is you were supposed to do for the assignment.  If you open the calendar event, it will look something like the figure below.   You can now scroll down to the Assignment field and click on the hyperlink, which for this example is titled “Assignment 4”.  

This will open the View list item dialog box for this homework assignment from the Assignments list, which you can see in the figure below.  The Assignment List item will even open in a new window so you don’t have to navigate back to the Calendar page again. 

But wait that’s still not all, did you notice the Assignment Page link at the top of the calendar page?

Click that link and go straight to the All Tasks view of the Assignments List, as shown in the figure below.

The All Task, as seen above, is the default view for this list. Notice that in this view we are using the Title field that is linked to the edit dialog box. This gives us quick access to edit the item and update its information. We can easily see how much progress has been made on the assignment by the progress bar. If you click on any of the links in the Scheduled column it will open the dialog box for the calendar item associated with this assignment.

So if you need to reschedule your time to work on the assignment or extend it to another day you can do so easily from the list item itself without having to navigate away from the page. But what if no work time has been scheduled for this item yet? No problem, to schedule time to work on this item, simply select the assignment in the list, hover your mouse over the title of the item then click on the down arrow to open the drop down list item menu. There we have added a new action called Schedule Work using SharePoint designer.

Click on Scheduled work and you will be redirected to the Schedule Calendar where you can schedule time to complete this assignment. Then simply hit the back button on your browser, or click on the Assignments Page link at the top of the page to return to the Assignment list. Finally notice the last column Late Status, this is our newest addition to the site and is based on the Countdown/Countup Formulas Christophe debuted in his blog not long ago. Once I saw them I just had to have them, and Christophe was kind enough to let me beta test them. I of course altered them just a tiny bit to better fit my purposes. The formula you are seeing in this view is the system time formula; I will show you the Internet Time formula in just a little bit. I have used both for demonstration purposes.

So basically that is the list, I have used views to change the way the list looks and functions based on what I needed to accomplish. For example, to track late assignment I created the Late Assignment view that you saw on the Late Assignment tab on the home page. Or I have created a calendar view to show when each assignment is due on a calendar. Some views have a few more visual indicators, like the Details view.

I wanted to be able to see which assignments were more heavily weighted and therefore, should have a higher priority, but I didn’t want to add another column when I was already struggling to keep all the information from running together in a hodge podge. So I made a dual purpose field that would display the Title of the assignment and then color code its priority level by changing the color of the font. May not be real fancy, but it is effective.

Remember when I told you we would be seeing the Internet Time based countdown/countup formula later, well here is in the IsLate column. If you need to create more visual impact this is the one for you, it combines the countdown/countup information with an icon image to really get your attention. I also tweaked this formula a tiny bit to make it more suitable for my needs, mainly by changing the text.

As I have said before replace classes with projects, assignments with milestones, and grades for progress or performance indicators and you can see how these same concepts can be adapted to the business world.

In my next post I will cover how we track grades, because in the end it’s all about the grades.

Easy Tabs and accessibility

Adaptive Web Design is my topic of the day, with my RSS reader bringing me two articles on this theme: Responsive Layouts Using CSS Media Queries, by Kyle Schaeffer, and Now You See Me by Aaron Gustafson.

I am sure the Easy Tabs have a role to play in responsive layout, but today I’ll focus on the second article.

In this excerpt from his book, Aaron compares various methods to show and hide content – a standard pattern nowadays with tabbed interfaces, accordions and other widgets.

This gives me an opportunity to point out one of the changes I made to the Easy Tabs last year. In version 5, the show/hide behavior is now included in a stylesheet, in a class called “et-offscreen”. And the method I use is the one recommended by Aaron Gustafson: instead of changing the display to “none”, move the content off-screen. This way, users don’t see it anymore, but assistive technologies can still access it.

As we’re talking Web design, I should also mention that the Easy Tabs follow the progressive enhancement approach.

If you are not familiar with CSS, this post may just be as clear as mud. But the bottom line is that by adhering to the principles of accessibility and progressive enhancement, the Easy Tabs v5 are currently a solid solution to build tabbed interfaces.

A School Site to Track Schedules, Assignments and Grades (Part I)

Guest Author: Trudy Hutzler

Trudy currently works as a Senior Technical Architect for AT&T Hosting and Application Management, where she provides Windows Server and SharePoint support and administration.  She is also a contributing author for the new Mastering SharePoint Foundation 2010 book.

As a SharePoint Administrator I often get asked about adding visualizations and such to SharePoint to add that little something extra to the out of the box SharePoint experience.  As an avid follower of Path to SharePoint I find many of the solutions Christophe has provided are a great way to enhance the users SharePoint experience without requiring me, as the Administrator, to maintain a lot of code or customizations on the server.  As good as the solutions are on their own, when you begin to combine them and layer them you can create something that is user friendly and visually appealing.

To demonstrate this I am going to share with you a School Site that I created for my oldest daughter who attends school online.  Now obviously not everyone will have a need for a School Site to track classes, homework assignments, and grades, but if you replace classes with departments or projects, homework assignments with milestones or requirements, and grades with assessments or performance ratings, you can begin to see where this concept can be applied to many more business related activities.

To make this easier to follow I am going to break this down into several posts, the first few will be an overview of the site and what it looks like, and then later posts will cover how I created each part and tied them together.  When it is all said and done I hope to provide readers with a copy of my site, and all the formulas I used.  So let me start by giving you the nickel tour.

BACKGROUND

The high schools in our area are not all that great, so my oldest daughter attends a state chartered online school.  We love the way the classes themselves are conducted, but the homework and grade interface is difficult to navigate, confusing, and it is very easy to miss an important assignment simply because it is hidden deep in layers of folders.  After an entire year of missing and late assignments and a constant struggle to navigate the interface, my daughter came to me last summer and asked me to help her create a SharePoint site on my development farm I have at home that she could use instead.

What you are about to see is the current version of that site.  My daughter would like me to note that all names, classes, and grades have been changed to protect the innocent, and that no actual grades have been used in creating this demo.

This site is created on the Team Site template, and I am using SharePoint Foundation 2010, however most of the functionality will work on SharePoint 2007, with a few exceptions like calendar overlay which is only available with SharePoint 2010.

As we go through the series I will refer you back to the blog entries I used to create each feature, and make all of the formulas available.  I will also be adding them to a special document library I have added to the demo site which, with Christophe’s help, I hope to make a copy of the site available to the readers for their use.

ON THE HOME PAGE

The site itself has three main functions; track classes, track homework assignments, and track grades. In this post I will be walking through the parts of the site that we use to track classes.

For tracking classes, my daughter needed to know the days and times her classes were scheduled for and what each teachers fax number was for submitting work she was unable to submit in the drop boxes provided by the school.  She also needed to be able to keep control of her schedule by scheduling in time to do her assignments. As parents we needed to know when she was supposed to be attending her online classes, the name of her teachers and how to contact them if we had questions. We also needed to know when the grade periods started and ended, and when there was no school.  Most of all we needed a way for busy parents, as well as the student, to be able to track it all at a glance.  This is what we came up with.


 
On the home page of the school site we used Easy Tabs to create an easy way to organize and navigate through the information we wanted “at our finger tips”. Some of the views are for Mom and Dad’s information, others are for our daughter’s use, but it is all there in one spot.

This first tab “Class Calendar”, as seen above, is a view of her class schedule, but to make it even more informative we over laid her schedule and assignment calendar views to give it a more complete view.

Next we will look at the tabs pertaining to classes and schedules.  The Schedule tab, This Week tab, and the Today’s Schedule tab show a calendar view of the scheduled classes and events for the month, the week, or for the day.  This helps other family members know when she is busy attending her web classes and can’t be disturbed.  This actually comes in very handy on days when my other children have no school, like snow days, and they know when they need to be quiet and leave their Sister alone, however you can use something like this to tack meetings, or deadlines, schedule events, etc.

For this calendar we have added color coding so we can easily differentiate between scheduled classes, work time, and holidays.

The last tab is Print Preview click on one of the other tabs that you would like a printed version for, then click on the Print Preview tab and it will create a printer friendly view of that tab, click on your browsers print button to print.  Once you have printed out your page if you look at the Print Preview tab it now reads Back to Page.  Click on this tab and you will be returned to your regular view.

For us, this gives my daughter a printed copy to keep with her and refer to throughout the day, or a schedule to post of the refrigerator, or just a list of assignments to follow up on at the end of the day, but you can also use this feature to print out pages to add to a report or share with others who may not have access to your site.

LIBRARIES

We are using the Shared Documents library to keep copies of any downloaded forms, assignments, test, or home work she has written up and scanned to email to the teacher or upload to the Drop Box in the class web site.  This way if something doesn’t reach the teacher the work is handy and can be easily resubmitted.
She also has to keep an activity diary for PE, she didn’t want those getting mixed in with other assignments so we made a separate library for it.
Finally for this demonstration I added a third document library to hold text file copies of all the formulas and calculations used in creating this site.
                                             

 

LISTS

It is in the lists that the real action starts.  It is the Class Calendar, Assignments, Schedule, Contacts and Grades that are the real work horses for this site.  Since this post is all about organizing and tracking classes we will look at the Class Calendar and Contacts lists.

The Class Calendar is really just the Team Site Calendar renamed.  We added all her regularly scheduled classes in as events, and later over laid the Assignment Calendar, which is how my Daughter schedules in time to actually work on her assignments, to increase its impact and usefulness.


 
Next we needed to track information about the classes, teachers and contact information so we created a contact list.  We started with a basic contact list then removed fields that weren’t needed and were just cluttering up the place, and added a few custom fields till we got what we needed.


 
We kept the usual contact fields like First and Last Name, Phone Numbers, and such.  Then we edited the Category from your typical Work, Meeting, Phone Call, etc. to something more school oriented like Teacher, Advisor, School Staff, Student and Other.  Finally we added another Choice field and added in the name of her classes.

At this point my Daughter decided she needed a place to keep track of all her other dates and to schedule time to actual work on each assignment.  So we created another calendar called Schedule which, since it would track multiple types of events, we made into a color coded calendar.


 
This calendar color codes the entries by category.  When you create a calendar entry, along with all the usual fields like title, location, start and end time, all day event or reoccurring event check boxes you also have a category choice field.  The category you choose will determine the color of the calendar entry.


 
So now you can see how using calendar overlays, and color coded calendars, in conjunction with Easy Tabs can begin to create a very useful interface.  This same concept can easily be adapted to tracking projects, deadlines, meetings and other deliverables.  And you don’t have to be a code ninja to get the job done.

In my next post I will get into the real nitty gritty of what makes the School Site work when I show you how we are tracking, and scheduling homework and assignments.

Coming soon on Path to SharePoint

No post in more than a month, this had never happened since I started this blog in 2008! Yes, starting my new company, traveling across the US, and the tax return have taken their toll…

Mind you, the blog still remained very active, with more than a hundred comments posted in the past month. But now it’s about time I add new content. So what’s coming next?

My next tutorial will be about countdowns/countups. I already published a live demo in February. If you can’t wait, head out for the SharePoint User Toolkit, a first countdown-countup page is already posted there! (and remember to send me some feedback)

I am also working on the Easy Tabs v 5.1. One of the most common request is to have more branding options (colors, hover effects, etc.). I already made a leap forward between v4 and v5.0, and I hope to bring some more improvements soon. I already published an example of custom style (including a live demo), but the release of Internet Explorer 9 changes the game (for example IE 9 natively supports rounded corners, no need for workarounds).

In March, I spoke at the San Diego SharePoint User Group. After I clean up my slides, I’ll post them, along with some interesting Q&As from the session.

I also have a couple projects with my new company, User Managed Solutions LLC. In particular I am working on a new online training offer for this Fall – more details coming in May!

Last, but not least, I am honored to welcome guest blogger Trudy Hutzler for a series on creating a “school site”. Trudy is a Senior Technical Architect for AT&T Hosting and Application Management, and a contributing author for the Mastering SharePoint Foundation 2010 book. As this blog is user focused, she is not going to talk about her experience on SharePoint 2010 migrations, but about a custom site she built for her daughter who attends school online. Stay tuned!

Live demo: countdown/countup

Countdowns, and generally speaking comparisons with Today’s date,  have been a recurring theme on my blog.

SharePoint 2010 hasn’t brought much improvement to the “Today” issue, so the workarounds published on my blog in 2008 remain a good reference, either the one I wrote for Data View Web Parts or Alexander Bautz’ follow up article for list views.

A year ago, I blogged about two other solutions, one relying on jQuery, the other on Flash and ClockLink.com (the demos are not active anymore).

Today I am showing two new examples that are much simpler than the previous ones. The live demo is here:
http://sp2010.pathtosharepoint.com/Portfolio/Pages/Countdown.aspx

Why much simpler? Because the only thing you need in the page is my Text to HTML script – the exact same that is used for color coding calendars. The calculated column will take care of all the rest (for example the formula to calculate the difference between target date and Today, or the color selection).

Note that there’s a key difference between the two examples: the “Countdown” column relies on the local time of your computer, while the “TimeAndDate” column pulls today’s time from TimeAndDate.com. In the past, I have already highlighted this important choice (for example, don’t use the local computer time if you’re building an auctions site!).

The drawback of this new approach is redundancy – the current date is calculated for each item. So I would recommend to only use it for views with few items.

You’ll notice that the column filters also render the HTML (cf. above screenshot). That’s because the page uses a custom version of my Text to HTML. It is still work in progress, so please don’t copy this script!

About Scripts, Web Parts and Urban Myths

Today, I came across conversations, initiated by Marc Anderson (@sympmarc on Twitter), about the Content Editor Web Part.

Reported by Marc on his blog:

One of the things I heard at SPTechCon several times was that in SharePoint 2010, it is no longer possible to put script into Content Editor Web Parts (CEWPs). Instead, I was told, you have to use the new HTML Form Web Part.

And on twitter:

sympmarc Just verified that you *can* put script in a #CEWP in #SP2010, contrary to what several people said at #SPTechCon . Urban myths can kill…

EUSP RT @sympmarc: Just verified that you *can* put script in a #CEWP in #SP2010 <- Problems with <form> tags in CEWP 2010.

sympmarc @eusp: Problems with <form> tags in CEWP 2010. -> Different issue. Some HTML tags may not work, but it looks like script does.

sympmarc @eusp Remember that basically the whole page is a form already. That may be the issue rather than SP2010.

 

Let me try and clarify how this works.

The Content Editor Web Part

It was August 2008, I had just started my blog, and I was already writing about the CEWP. At that time, I did not even mention the ability to link to external content. I only talked about this several months later, when I started promoting an architecture where scripts are stored in a central library.

In SharePoint 2007, the most advertised way to add scripts to a SharePoint page is via the “Source Editor” option of the CEWP. So no wonder people are lost when they start using SP 2010: no “Source Editor” button anymore!

It doesn’t mean that the feature has been removed though. As with many others, the option – renamed “Edit HTML source” – is now located in the ribbon, and becomes visible when you click on the content section of the CEWP (in edit mode), or select the “Edit Web Part” option:

In addition, SharePoint tries to help: it will screen the code you enter, and you’ll receive this notification:
“the HTML source you entered might have been modified”

The cool part is that SharePoint will never tell you whether anything was modified, you’re on your own to figure it out. Feel free to take a look at some examples I collected when I posted the question on SharePoint Overflow two months ago.

Another issue with the CEWP is that you cannot include form elements. This is not new to 2010, it has always been the case even with previous versions. As Marc explains in the above tweet, the reason is that the whole page is already a form. So here comes…

The HTML Form Web Part

Yes, you can use the HTML Form Web Part to include scripts in a page. Yes, it will also accept form tags, it’s its primary purpose. Yes, it has this “Source Editor” button everybody is looking for. And no, it is not a new Web Part, it was already present in SP 2007. It is actually one of the building blocks of my SharePoint User Toolkit, in both SP 2007 and SP 2010.

So why is everybody promoting the CEWP, if the HTML Form Web Part offers more?

For one, it seems that few people actually know about the capabilities of this Web Part (it is better known for its role in Web Part connections). But another reason is that it doesn’t have the “Content Link” option that I recommend as a good practice.

Other Web Parts

Can’t use the CEWP or the Form Web Part on your site? There are still other Web Parts available (not to mention the option to add scripts outside Web Parts). Although they are not as convenient as the CEWP and the HTML Form Web Part, they can help in specific cases.

For example, back in SP 2003, forms (new, display, edit) were not as easy to edit as today. I used to rely on a Page Viewer Web Part, which allowed me to modify scripts without editing the form page itself. Come talk to me if you need more details!