SharePoint 2007 - tvorba vlastní WSS

Celý postup tvorby vlastní webové služby.

SharePoint - webová služba

Zadání

Potřebuji do SharePoint projektu integrovat vlastní webovou službu.

Řešení

V následujícíh článcích je způsob, jak se to dá udělat.

Sharepoint 2013 - zajímavé odkazy

SharePoint - Delegate Control

Zadáni

Potřebuji vložit do SharePoint 2010/2013 master page stránky kus kódu.

Řešení

Lze to provést pomocí vytvořeného prvku typu delegate control.

Postup

  1. Založim Empty Element
    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Control Id="mujRegisterControl" Sequence="1000" ControlSrc="~/_controltemplates/RegisterUser.ascx" />
    </Elements>
  2. Založím Visual Webpart - RegisterUser.ascx
    <div id="RegisterUserDiv" runat="server">
     <a href="#">Testovací Delegate Control</a>
    </div>
  3. Upravím master page pomocí SharePoint Designeru (vložim kód)
    <SharePoint:DelegateControl ControlId="mujRegisterControl" AllowMultipleControls="true" runat="server"></SharePoint:DelegateControl>

Zdroj

http://mihirsharepoint.wordpress.com/2012/11/15/create-delegate-control-in-sharepoint/
http://www.codeproject.com/Articles/569897/UsingplusDelegateplusControlplusinplusSharepoint
http://www.learningsharepoint.com/2013/02/10/addremove-links-in-top-suitebar-skydrivesitesnewsfeed-in-sharepoint-2013/

DispForm.aspx - špatný formát data

Problém

Mám vlastní (upravenou pomocí SharePoint Designeru) stránku DispForm.aspx pro zobrazování položek nad listem.
Pokud list obsahuje datum, na stránce se mi zobrazí datum např. 2012-04-11T11:30:00Z

Řešení

Nahradit následující kód

...
<xsl:value-of select="@mojeDatum" />
...

novým kódem.

...
<xsl:value-of select="ddwrt:FormatDateTime(string(@mojeDatum) ,1033 ,'d.M.yyyy')" />
...

Odkazy

http://social.technet.microsoft.com/Forums/en-US/1d1f9ad4-0643-430b-a042-7745cc4509cc/date-and-time-fields-wrong-format-on-custom-dispformaspx

Videokonference v prohlížeči

Pokud potřebujete udělat videokonferenci, lze to udělat bez instalace jakohokoliv klienta. Stačí následující postup:

  1. Otevřít adresu https://appear.in/
  2. Vytvořit na stránce novou místnost
  3. Pošlete odkaz na tuto místnost lidem, se kterými chcete komunikovat

Program využívá nový standard pro komunikace WebRTC a umožňuje přímé spojení počítačů, tabletů či mobilů skrze prohlížeče. Prozatím jej podporují programy Google Chrome, Opera nebo Mozilla Firefox.

SharePoint 2013 - Přihlásit jako jiný uživatel

Zadání

Pro testování se potřebuji občas přihlásit jako jiný uživatel. Ve verzi SharePoint 2010 tato funkce byla dostupná automaticky, ale ve verzi SharePoint 2013 chybí.

Řešení

Tuto funkcionalitu lze jednoduše dodělat.

Postup je např. zde http://community.bamboosolutions.com/blogs/sharepoint-2013/archive/2012/11/07/how-to-show-sign-in-as-different-user-menu-item-in-sharepoint-2013.aspx

EventReceiver - vytvoření kontextového menu

Zadání
potřebuji vytvořit Feature pro aktivaci kontextového menu v aktuálním webu pro knihovnu typu "Kontakt".

Řešení
Vytvořím EventReceiver, který aktivuji pomoci Feature ve Scope = Web. Tzn. akce se založí pouze pro knihovny v aktuálním webu.

Kód EvenReceiveru
FeatureActivated

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPWeb web = (SPWeb)properties.Feature.Parent;

    SPContentType contentType = web.Site.RootWeb.ContentTypes["Kontakt"];
    SPUserCustomAction action = web.UserCustomActions.Add();

    action.RegistrationType = SPUserCustomActionRegistrationType.ContentType;
    action.RegistrationId = contentType.Id.ToString();
    action.Location = "EditControlBlock";
    action.Sequence = 450;
    action.Title = "Moje menu";
    action.Rights = SPBasePermissions.EditListItems;
    action.Url = "/_Layouts/MojeUrl..aspx";
    action.Update();
}

FeatureDeactivating

public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
    SPWeb web = (SPWeb)properties.Feature.Parent;

    SPContentType contentType = web.Site.RootWeb.ContentTypes["Kontakt"];
    foreach (SPUserCustomAction action in web.UserCustomActions)
    {
        if (action.Name != null && action.Title.Equals("Moje menu"))
        {
            action.Delete();
            web.Update();
            break;
        }
    }
}

Odkazy
MSDN: SPUserCustomAction members

SharePoint podpora přímo do Microsoftu

Řešení problémů a rady přímo z Microsoftu.
Top Support Solutions for Microsoft SharePoint Server

HttpHandler - chyba 417

Problém
Po nasazení HttpHandleru se v aplikaci objevila chyba:

The request failed with HTTP status 417: Expectation failed.

Řešení
Upravit Web.Config

<system.net>
 <settings>
  <servicePointManager expect100Continue="false" />
 </settings>
</system.net>

Přidat do kódu:

System.Net.ServicePointManager.Expect100Continue = false;

Odkazy
CodeProject.com: The request failed with HTTP status 417: Expectation failed
MSDN.com: ServicePointManager.Expect100Continue Property

O blogu

Tento blog je místem, kde sdílím své zkušenosti, části zdrojových kódů, odkazy apod. Zdroje jsou zaměřeny převážně na problematiku portálového řešení SharePoint a vývoj webů v prostředí Microsoft. Mým cílem není úplně obsahnout konkrétní řešení, ale pouze tu část, kterou potřebuji. Pokud se problematika obsáhlejší, jsou pod článkem odkazy na související informace.

O autorovi

Oldřich Zátopek
Zabývám se vývojem webových aplikací internet/intranet na Microsoft technologiích. Hlavní specializace je SharePoint. LinkedIn