L'altro giorno un mio collega mi fa notare un bel bug di Microsoft Office Sharepoint Server, per quanto riguarda la "discussion board" (la lista dei fourm per intenderci...).
In pratica, quando veniva visualizzata la vista "Threaded", il link per effettuare un reply manda ad una pagina inesistente. Ecco i passi per riprodurre il bug:

  1. Creare una discussion list
  2. Inserire un messaggio
  3. Andare nella pagina dei Settings della discussion list
  4. Selezionare la vista Threaded
  5. Espandere il pannello "Folders"
  6. Scegliere l'opzione "Show this view in all folders"
  7. Provare ad effettuare un reply di un messaggio nella vista Threaded e riscontrare l'errore
Fantastico no ?
Beh, a me è toccata la risoluzione. E' stato necessario aggiungere un pò di codice CAML all'interno del file Schema.xml, posto sotto il percorso:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\Disccusion List\Discuss

più precisamente, ho dovuto modificare il contenuto dell'elemento DisplayPattern del campo "ReplyNoGif", che componeva l'URL della pagina di replay dimenticandosi di un punto interrogativo !
Ecco la modifica dell'elemento DisplayPattern del nodo Field con attributo name="ReplyNoGif":

<DisplayPattern><IfEqual>

<Expr1>
<GetVar Name="RootFolder" />
</Expr1>
<Expr2></Expr2>
<Then>
<IfHasRights>
<RightsChoices>
<RightsGroup PermAddListItems="required" />
</RightsChoices>
<Then>
<HTML><![CDATA[<a id="ReplyLink]]></HTML>
<Field Name="
ID" /><HTML><![CDATA[" href="]]></HTML>
<URL Cmd="
New" /><HTML><![CDATA[" ONCLICK="javascript:GoToPage(']]></HTML>
<ScriptQuote NotAddingQuote="
TRUE">
<URL Cmd="
New" />
</ScriptQuote><HTML><![CDATA[?ContentTypeId=0x0107&DiscussionParentID=]]></HTML>
<Field Name="
ID" StripWS="TRUE" URLEncode="TRUE" /><HTML><![CDATA[');return false;"
target="_self">]]></HTML><HTML><![CDATA[<img
id="replyButton" border="0" align="middle" alt="$Resources:core,ReplyLinkText"]]
</HTML><HTML><![CDATA[
src="/_layouts/content/images/reply.gif">&nbsp;]]></HTML><HTML><![CDATA
<NOBR><b>$Resources:core,ReplyLinkText</b></NOBR></a>]]></HTML>
</Then>
<Else><HTML><![CDATA[&nbsp;]]></HTML>
</Else>
</IfHasRights>
</Then>
<Else>
<IfHasRights>
<RightsChoices>
<RightsGroup PermAddListItems="required" />
</RightsChoices>
<Then>
<HTML><![CDATA[<a id="ReplyLink]]></HTML>
<Field Name="
ID" /><HTML><![CDATA[" href="]]></HTML>
<URL Cmd="
New" /><HTML><![CDATA[" ONCLICK="javascript:GoToPage(']]></HTML>
<ScriptQuote NotAddingQuote="
TRUE">
<URL Cmd="
New" />
</ScriptQuote><HTML><![CDATA[&ContentTypeId=0x0107&DiscussionParentID=]]></HTML>
<Field Name="
ID" StripWS="TRUE" URLEncode="TRUE" /><HTML><![CDATA[');return false;"
target="_self">]]></HTML><HTML><![CDATA[<img
id="replyButton" border="0" align="middle" alt="$Resources:core,ReplyLinkText"]]
</HTML><HTML><![CDATA[
src="/_layouts/content/images/reply.gif">&nbsp;]]></HTML><HTML>
<![CDATA[<NOBR><b>$Resources:core,ReplyLinkText</b></NOBR></a>]]></HTML>
</Then>
<Else><HTML><![CDATA[&nbsp;]]></HTML>
</Else>
</IfHasRights>
</Else>
</IfEqual>
</DisplayPattern>