コンテンツ検索webパーツの表示をカスタマイズする

だいぶ前になりますが、コンテンツ検索webパーツでブログの新着を表示するやり方を紹介しました。
【2013】コンテンツ検索 webパーツでBlogの新着情報を表示する | Me & SharePoint.

今回の記事と、次回の記事
コンテンツ検索 web パーツでホバーパネルを表示してみた
はその続きとなります。

前回のままではタイトルとサムネイルだけでさびしいので、本文の一部、投稿日、それから「Read More」ボタンを表示してみたいと思います。
完成イメージです。
20150826

これを実現するには、「表示テンプレート」というものをカスタマイズします。
表示テンプレートのカスタマイズについては、MSのサポートチームのブログで詳しく紹介されていますので参考にしてください。
SharePoint 2013 お知らせアイテムを新着順に表示するコンテンツ検索 Web パーツを作成する – Japan SharePoint Support Team Blog – Site Home – TechNet Blogs.
SharePoint 2013 検索結果の表示を制御する表示テンプレート – Japan SharePoint Support Team Blog – Site Home – TechNet Blogs.

さて、マスターページギャラリーからDisplay Templates>Content Web Parts とフォルダをたどって、Item_Picture3Lines.htmlをダウンロードします。
ダウンロードしたテンプレートを「Item_BlogPost.html」とリネームします。
テンプレートを開き、以下のように書き換えます。

<html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"> 
<head>
<title>For Blog Post</title>

<!--[if gte mso 9]><xml>
<mso:CustomDocumentProperties>
<mso:TemplateHidden msdt:dt="string">0</mso:TemplateHidden>
<mso:ManagedPropertyMapping msdt:dt="string">'Picture URL'{画像の URL}:'PublishingImage;PictureURL;PictureThumbnailURL','Link URL'{リンクの URL}:'Path','Line 1'{行 1}:'Title','Line 2'{行 2}:'DiscussionPost','Line 3'{行 3}:'Created', 'SecondaryFileExtension','ContentTypeId'</mso:ManagedPropertyMapping>
<mso:MasterPageDescription msdt:dt="string">このアイテム表示テンプレートでは、100 x 100 の大きさでアイテムの画像が左側に表示されます。画像の右側には、タイトル、既定アイテムの説明、カスタムの管理プロパティ用の行が表示されます。</mso:MasterPageDescription>
<mso:ContentTypeId msdt:dt="string">0x0101002039C03B61C64EC4A04F5361F385106603</mso:ContentTypeId>
<mso:TargetControlType msdt:dt="string">;#Content Web Parts;#</mso:TargetControlType>
<mso:HtmlDesignAssociated msdt:dt="string">1</mso:HtmlDesignAssociated>
</mso:CustomDocumentProperties>
</xml><![endif]-->
</head>

<body>

    <!--
            Warning: Do not try to add HTML to this section. Only the contents of the first <div>
            inside the <body> tag will be used while executing Display Template code. Any HTML that
            you add to this section will NOT become part of your Display Template.
    -->
    <script>
        $includeLanguageScript(this.url, "~sitecollection/_catalogs/masterpage/Display Templates/Language Files/{Locale}/CustomStrings.js");
    </script>

    <!--
        Use the div below to author your Display Template. Here are some things to keep in mind:
        * Surround any JavaScript logic as shown below using a "pound underscore" (#_ ... _#) token
        inside a comment.

        * Use the values assigned to your variables using an "underscore pound equals"
        (_#= ... =#_) token.
    -->

    <div id="Item_BlogPost">

<!--#_

var encodedId = $htmlEncode(ctx.ClientControl.get_nextUniqueId() + "_BlogPost_");

var linkURL = $getItemValue(ctx, "Link URL");
linkURL.overrideValueRenderer($urlHtmlEncodeValueObject);

var line1 = $getItemValue(ctx, "Line 1");
var line2 = $getItemValue(ctx, "Line 2");
var line3 = $getItemValue(ctx, "Line 3");

var StrLine2 = line2.value;
if (StrLine2.length > 150){
    StrLine2 = StrLine2.substr(0, 150) + "...";
}

var pictureURL = $getItemValue(ctx, "Picture URL");
var pictureId = encodedId + "picture";
var pictureMarkup = Srch.ContentBySearch.getPictureMarkup(pictureURL, 100, 100, ctx.CurrentItem, "cbs-picture3LinesImg", line1, pictureId);

line1.overrideValueRenderer($contentLineText);
line2.overrideValueRenderer($contentLineText);
line3.overrideValueRenderer($contentLineText);

var containerId = encodedId + "container";
var pictureLinkId = encodedId + "pictureLink";
var pictureContainerId = encodedId + "pictureContainer";
var dataContainerId = encodedId + "dataContainer";
var line1LinkId = encodedId + "line1Link";
var line1Id = encodedId + "line1";
var line2Id = encodedId + "line2";
var line3Id = encodedId + "line3";

var dataDisplayTemplateTitle = "BlogPost";

 _#-->
        <div class="cbs-picture3LinesContainer" id="_#= containerId =#_" data-displaytemplate="_#= $htmlEncode(dataDisplayTemplateTitle) =#_">
            <div class="cbs-picture3LinesImageContainer" id="_#= pictureContainerId =#_">
<!--#_
if(!linkURL.isEmpty)
{
_#-->
                <a class="cbs-pictureImgLink" href="_#= linkURL =#_" title="_#= $htmlEncode(line1.defaultValueRenderer(line1)) =#_" id="_#= pictureLinkId =#_">
<!--#_
}
_#-->
                    _#= pictureMarkup =#_
<!--#_
if(!linkURL.isEmpty)
{
_#-->
                </a>
<!--#_
}
_#-->
            </div>
            <div class="cbs-picture3LinesDataContainer" id="_#= dataContainerId =#_">
                <a class="cbs-picture3LinesLine1Link" href="_#= linkURL =#_" title="_#= $htmlEncode(line1.defaultValueRenderer(line1)) =#_" id="_#= line1LinkId =#_">
                    <h4 class="cbs-picture3LinesLine1 ms-accentText2 ms-noWrap" id="_#= line1Id =#_"> _#= line1 =#_</h4>
                </a>
<!--#_
if(!line2.isEmpty)
{
_#-->
                <div class="cbs-picture3LinesLine2" style="height:auto;" id="_#= line2Id =#_" > _#= StrLine2 =#_ </div>
<!--#_
}
_#-->
                <div style="overflow:hidden;">
<!--#_
if(!line3.isEmpty)
{
_#--> 
                    <span class="cbs-picture3LinesLine3 ms-textSmall ms-noWrap" id="_#= line3Id =#_" style="float:left;">[Posted : _#= line3 =#_ ]</span>
<!--#_
}
_#-->
                    <a class="cbs-button1" href="_#= linkURL =#_" style="float:right;">Read More</a>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

書き換えたItem_BlogPost.htmlを、ダウンロード元のフォルダにアップロードし、タイトルに「For Blog Post」と入力して保存します。

コンテンツ検索webパーツを設置したページに戻り、webパーツを編集状態にします。
「表示テンプレート」セクションの「アイテム」で、先ほどテンプレートのタイトルに設定した「For Blog Post」を選択します。

20150826-2

もし、うまく内容が反映されない場合は「プロパティのマッピング」でデフォルトで入力されているプロパティを再度選択しなおしてから保存してみてください。

最後に、「Read More」のリンクをボタン状にし、全体の見栄えを整えるためのCSSをページに埋め込みます。
ページを編集状態にし、「スクリプトエディター」を挿入して、コードスニペットのに以下のコードを貼り付けて保存します。

<style>
.cbs-picture3LinesContainer {
    padding: 20px 0;
    margin: 5px;
}
.cbs-picture3LinesImageContainer {
    margin-top: 5px;
}
.cbs-button1{
    text-decoration: none;
    text-align: center;
    display: inline-block;
    background-color: #59b1eb;
    border: 2px solid #59b1eb;
    color: #fff;
    padding: 0 30px;
}
.cbs-button1:visited{
    color: #fff;
}
.cbs-button1:hover {
    background-color: #fff;
    border-color: #59b1eb;
    color: #59b1eb;
    text-decoration: none;
}
.cbs-button1::before,
.cbs-button1::after {
    position: absolute;
    z-index: -1;
    display: block;
    content: '';
}
.cbs-button1,
.cbs-button1::before,
.cbs-button1::after {
    box-sizing: border-box;
    transition: all .3s;
}
</style>

これでOKです!
おなじみのコンテンツクエリwebパーツよりは、xslスタイルシートをいじらなくて済む分カスタマイズのハードルは低いですよね。
これからどんどん使っていきたいと思います!

SharePointサイトをレスポンシブ・デザインにするときの情報源

こんにちは。世間は夏休み真っ盛りですが、私は絶賛仕事中です!!
電車が空いててうれしいぞ!!!

さて、ここのところSharePointサイトをモバイルでも美しく表示できるようにするべく、いろいろと実験していたのですがそのとき参考にした情報を備忘録として載せておきます。

基本的な前提と方針は、
・バージョンはSharePoint2013
・SharePoint Onlineへのマイグレーションも見据え、カスタムマスタページは作らない
(参考:Latest Advice on Office 365 Branding | Microsoft Trends.)
・よって、デバイスチャネルも使わず、レスポンシブデザインで設計
・とはいえ、JavaScriptは使いたいのでマスタページでのJavaScriptの参照は(しぶしぶ)許容する
といったところです。

デフォルトマスタページを使い、CSSだけで何とかするやり方はもうほぼこれでOKではないかと。
Making seattle.master Responsive | Our SharePoint Experience.

レスポンシブなCSSグリッド・システムを導入するやり方。まだ試してないけど、そのうちやってみたいと思います。
Apply grid system to SharePoint using SUSY | Stefan Bauer – n8d

マスタページをいじくらずにviewportを設定する裏ワザ。
Add viewport meta without editing the master page | Stefan Bauer – n8d.

グローバルナビゲーションをモバイルではアコーディオンメニューにしたい!
巷にあふれるプラグインをしつこくいろいろ試した結果これがよさそうです。
レスポンシブメニューを作成できるjQueryプラグイン「MeanMenu」 | たすデザイン.
具体的な導入方法は、いずれ別のエントリで書きます。

JavaScript内でユーザーエージェントを判別したいとき。
2015年版JavaScriptユーザエージェント判別・判定.

viewportの設定になやんだら?
もう逃げない。HTMLのviewportをちゃんと理解する – Qiita.

マスタページをいじくらずともサイト全体にカスタムJavaScriptを適用するにはこんなやり方もあるです。
JavaScript を使用して SharePoint サイト UI をカスタマイズする.
MSの推奨はたぶんこれ。私はまだ試してないです。アドイン作れとか言われると、とたんにハードルが・・・(汗)

新たにいい情報が出てきたら、今後も追加していく予定です。
また、こんなのも参考になるよ!なんてのがあったらTwitterでもなんでもお知らせください。

SharePointのページに下部固定のフッターをつけてみた

SharePointのページにフッターをつけたい場合、通常はマスタページをカスタマイズすることになると思います。
しかし、マスタページをいじれないエンドユーザー・デベロッパーとか、SharePoint Onlineでカスタムマスタページを作りたくない!という場合はちょっと工夫が必要となります。

以下で紹介するのは、JavaScriptでフッター要素をページに追加し、CSSでスタイリングする方法です。
ページのコンテンツが少ない場合はウィンドウの最下部、それ以外はページ最下部に固定で表示されます。
検証した環境はSharePoint2013オンプレミスのチームサイト、ブラウザがIE11、マスタページはデフォルトのseattle.masterです。

できあがりはこんな感じ。
20150624

ソースコードです。

<style>
#s4-bodyContainer {
    position:relative;
    min-height: 100%;
    padding-bottom: 30px;
    box-sizing: border-box;
}
/* footer */
.footer-container{
    position:absolute;
    bottom: 0;
    left: 0;
    text-align: center;
    width: 100%;
    padding: 5px;
    background-color:#29629C;
    color: #fff;
    box-sizing: border-box;
    overflow: hidden;
}
</style>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    var footerHtml = "<div class='footer-container ms-dialogHidden'>";
    footerHtml += "<footer>© Marineko. All rights reserved.</footer></div>";
    $("#s4-bodyContainer").append(footerHtml);
});
</script>

マスタページはさわりたくないんだよね~、というときに、参考にしてみていただければと思います。

サイドリンクバーにwebフォントでリストマークをつける

SharePoint3分クッキングの時間がやってまいりましたー。
と、いうわけで、またしても3分でできる小ネタをご紹介します。
(SharePoint2013のオンプレ環境、ブラウザはIE11で検証しました)

サイドリンクバーのエントリに、好きなリストマークをつけたい!と思い立っても、画像を準備して表示させるのは結構面倒です。やる気が失せがちです。
そんなとき、webフォントでさくっとリストマークを表示できれば便利ですよね。

というので、定番webアイコンフォント Font Awesome を利用してリストマークをつけてみました。

できあがりはこんな感じです。
20150513

なお、Font Awesomeの基本的な使い方などは、以下をご参考に。
アイコンをWebフォントで表示! Font Awesomeの使い方 [ホームページ作成] All About.

CSSです。

@import "//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css";

.ms-core-listMenu-verticalBox > ul > li:first-child .ms-core-listMenu-item::before {
    content: "\f015";
    font-family: FontAwesome;
    margin-right: 5px;
    width:1em;
}

.ms-core-listMenu-verticalBox ul li ul li .ms-core-listMenu-item::before {
    content: "\f101";
    font-family: FontAwesome;
    margin-right: 3px;
    width:1em;
}

こういうちょっとしたことでも、サイトの雰囲気はずいぶん変わるので、気が向いたときに試してみていただければと思います。

SharePoint2013 注目リンクを丸くしてみた

SharePoint 3分クッキング!ということで、3分でできるカスタマイズをご紹介します。

先日、注目リンクのカスタマイズについての記事をアップしましたが、その続き(?)です。

表題のとおりで、ふつうは四角い注目リンクを、CSSで丸くしてみよう!というものです。
できあがりはこんな感じ。
20150515

CSSです。

.ms-tileview-tile-content, .ms-tileview-tile-content img {
    height: 150px;
    border-radius: 50%;
}
.ms-tileview-tile-detailsListMedium {
    padding: 10px 40px;
}

いい加減なCSSなんで、キャプションの文字列が若干切れてますが、そこはご愛嬌ということで(笑)。
サイトの雰囲気をやわらかくしたいときに、いかがでしょうか?

2013のトップリンクバーをボタン風にデザインしてみた(osloテーマで)

SharePoint2013のトップリンクバーって、なんだか地味ですよね。
そんなところにナビゲーションがあったんだ?!って感じで。

特にosloテーマの場合サイドリンクバーがないだけに、もうちょっと自己主張させてもいいかも・・・、と思い、CSSでボタン風にデザインしてみました。(ついでに「リンクの編集」メニューも隠してみました)

20150427

余談ですが、SharePoint2013だとサイドリンクバーやトップリンクバーにこの「最近使った項目」ってやつが出てしまうのがなんとも・・・しかもこれ最近「使った」ではなく「作った」なんですよね・・・というわけで、これを隠すやり方についてもおいおい書きます。

さて、ソースコードはこんな感じです。

.ms-core-listMenu-horizontalBox {
    padding-top: 20px;
    width: 100%;
}
.ms-core-listMenu-horizontalBox li.static {
    padding: 0.5em 1.5em;
    vertical-align: middle;
    display: inline-block;
}
.ms-core-listMenu-horizontalBox li.static.selected, .ms-core-listMenu-horizontalBox li.static:hover {
    background-color: #0072c6;
}
.ms-core-listMenu-horizontalBox li.static:hover > a, .ms-core-listMenu-selected, li.dynamic:hover .menu-item-text, li.static.dynamic-children:hover > span > span{
    color: #fff !important;
}
.ms-core-listMenu-horizontalBox a.static {
    display: table-cell;
    text-align: center;
}
.ms-core-listMenu-horizontalBox a.selected {
    font-weight: bold;
}
.static.ms-verticalAlignTop.ms-listMenu-editLink.ms-navedit-editArea{
    display: none;
}
.ms-core-listMenu-horizontalBox li.static > .ms-core-listMenu-item{
    margin-right: 0;
}
ul.dynamic{
    box-shadow: none;
    left: 0 !important;
    width: 150px !important;
    padding: 0;
}
li.dynamic{
    display: block !important;
    width: 100%;
    padding: 5px;
}
li.dynamic:hover{
    background: rgba(136, 179, 215, 0.84);
}
li.dynamic::before,
li.dynamic::after,
.ms-core-listMenu-horizontalBox li.static::before,
.ms-core-listMenu-horizontalBox li.static::after {
    position: absolute;
    z-index: -1;
    display: block;
    content: '';
}
li.dynamic,
.ms-core-listMenu-horizontalBox li.static,
.ms-core-listMenu-horizontalBox li.static::before,
.ms-core-listMenu-horizontalBox li.static::after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-transition: all .3s;
    transition: all .3s;
}

なお、上記CSSではこちらの記事を参考に、マウスオーバーでボタンの色がフワッと変わるようなエフェクトも入れています。
CSSのみで実装するボタンデザインやホバーエフェクト 20+α | NxWorld.

サイトデザインの参考にしていただけるとうれしいです!

注目リンクをページャを出さずに折り返して全部表示する

SharePoint2013から追加された新しいリスト、「注目リンク」。
いわゆるタイルUIで、SharePoint2013の画面デザインにもしっくりきますし、積極的に使っていきたいアプリではあると思います。

しかしリンクアイテムの数が増えてくると、デフォルトでは画面から見切れてページャが出てきてしまいます。
図1

ページャなしで折り返して全部見せたい!
そういう場合は、以下のCSSをスクリプトエディタ webパーツでページに埋め込みます。

<style>
.ms-promlink-header{
	display: none;
}
.ms-promlink-body {
   	width: 100%;
} 
.ms-tileview-tile-detailsBox{
	background-color: rgba(0,68,112,0.75);
}
</style>

上記サンプルコードでは、画像にオーバーレイするキャプションの背景色も変えてますが、この辺はお好みで。
すると、こんな感じで表示されます。
図2

いかがでしたでしょうか?参考にしていただけるとうれしいです。

SharePoint2010にコンテンツエリア拡大ボタンをつけてみた

SharePointのヘッダー部分や、サイドリンクバーって意外と場所をとりますよね。
なんで、コンテンツがもりだくさんのページの場合、もっと大きな画面で見せたい時があると思います。

そういうニーズを受けてかなのか、SharePoint2013なら、コンテンツエリアを拡大して見せるボタン(*)が標準であるのですが、残念ながら2010にはありません。

* コレ↓です
20141128

というわけで、自前で作ってみました。
動作イメージはこんな感じです。画面右下、「全画面」ボタンを押すとコンテンツエリアがぐぐっとひろがります。
20141128

ソースコードです。これをコンテンツエディタwebパーツでページにぺたっと貼ればOKです。

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.1.min.js"></script>
<style type="text/css">
  .screen-change
  {
      position: fixed;
      bottom: 20px;
      right: 80px;
  }

  .screen-change a
  {
      background: #666;
      text-decoration: none;
      color: #fff;
      width: 120px;
      padding: 8px 0;
      text-align: center;
      display: block;
      border-radius: 3px;
      -webkit-border-radius: 3px;
      -moz-border-radius: 3px;
      opacity: 0.8;
      filter: alpha(opacity=80); /* IE lt 8 */
      -ms-filter: "alpha(opacity=80)"; /* IE 8 */
  }

  .screen-change a:hover
  {
      text-decoration: none;
      background: #222;
  }
</style>
<script>
  $(function(){
    $(document.body).append('<p id="only-content-area" class="screen-change"><a href="#">全画面表示</a></p><p id="default-screen" class="screen-change"><a href="#">元に戻す</a></p>');
    $("#default-screen").hide();
    $(".screen-change").click(function() {
      $('#s4-titlerow, #s4-leftpanel, #RibbonContainer-TabRowLeft, .ms-cui-tts').toggle('slide', '', 500);
      var hide = $('#default-screen').css('display');
      if(hide == 'none'){
        $('.s4-ca').css('margin-left', '0px');
      } else {
        $('.s4-ca').css('margin-left', '155px');
      };
      $("#only-content-area, #default-screen" ).toggle();
    });
  });
</script>

リボンメニューが表示されている状態で拡大するとあやしい動きになってしまうので、リボンメニューを表示させられるツールバーのボタンやタブも軒並み隠してますが、それならいっそツールバー自体を隠しちゃってもよかったかも。
そのへんはお好みで調整してください。

ふと、思ったのですが、これ応用したら印刷用画面としても使えるかも・・・?

Geolocationフィールドを使ってBing Mapsにピンを立ててみた

例えばですが、営業所や事業所の位置をGoogle マップみたいな地図サービス上で表示させることってよくありますよね。
それをSharePointでもやってみたいと思い、遅ればせながらSharePoint2013の新機能、Geolocationフィールドを使って試してみることにしました。

Geolocationフィールドってなんぞ?という向きはとりあえずこちらを見てください。
SharePoint 2013 でロケーションとマップ機能を組み込む

要するに、リストにGeolocationフィールドという列を追加して位置情報を登録しておくと、自動でBing Mapsにピン表示してくれるというスグレモノです。
・・・なんですが、実際に使えるようになるには、いろいろ前提条件やら準備やらあってなかなか大変でした。
ので、その顛末をまとめておきます。

以下の記事はPowerShellもVisual Studioも使わずに実装するやり方です。サーバーに権限がなく、手持ちの武器はテキストエディタだけ、というみなさんもぜひ試してみてください。

大前提
オンプレミス環境のみですが、上記MSの記事に、

地理位置情報フィールドの値またはデータをリストに表示するには、SQLSysClrTypes.msi という MSI パッケージをすべての SharePoint フロントエンド Web サーバーにインストールする必要があります。このパッケージは、新しい図形座標、地理、および階層 ID の種類を SQL Server 2008 に実装するコンポーネントをインストールします。

とあります。なので、オンプレ環境で検証する場合は、SQLSysClrTypes.msi がWFEにインストール済みか確認してください。
SharePoint Onlineであれば、既定でインストールされているのですぐに作業が開始できます。

準備その1:Bing Mapsキーを取得する
Bing Mapを使うためには、まず Bing Maps Account Centerでアカウント作ってキーを取得する必要があります。
Microsoftにアカウントがあればそれでサインインできるので、新規でアカウントつくる必要はありません。
サインインすると、左側の「My Account」のところに「Create or view keys」というメニューがあるのでクリックします。
20140919-01
クリックすると以下のような画面になるので、「Application name」に適当に入れてSubmitします。
20140919-02
これで、Bing Mapsキーが取得できました!

※今回は検証目的だったので、個人のアカウントでTrialキーを取得しちゃいましたが、実環境で使う場合はBing Mapの利用規約やライセンスをきちんと確認する必要があります。
ライセンスについてはこちらの記事が参考になりました。
Bing Maps Key のライセンスについて調べてみた – chorus log

準備その2:サイトコレクションにBing Mapsキーを設定する
MSDNの記事
[方法] SharePoint 2013 で、Web およびファーム レベルで Bing Maps キーを設定する
ではPower ShellかVisual Studioでコンソールアプリケーションを作って設定するやり方しか紹介されてません。
サーバーにログインできず、Visual Studioはおろかテキストエディタしか持たないエンドユーザーでは手も足も出ません。
ここでかなりめげそうになりTwitterでぶつぶつ言ってたところ、Microsoft MVP 太田さんから以下の記事をご紹介いただき(ありがとうございます!)、
SP 2013: Getting started with the new Geolocation field in SharePoint 2013 – Tobias Zimmergren's thoughts on technology and business
JavaScriptだけでキーを設定できるのがわかりました。コードを書く際は、上記の記事を参考にしてみてください。

準備その3:Geolocationフィールドをリストに追加する
これで、ようやくGeolocationフィールドを使える状態になったわけですが、このフィールド、MSDNの記事
[方法] SharePoint 2013 で地理位置情報列をプログラムでリストに追加する
によると

既定では、[地理位置情報] 列が SharePoint リストに含まれていません。[地理位置情報] 列を SharePoint リストに追加するには、コードを記述する必要があります。

とあり、ブラウザからGUIで追加することができません。
さらに、上記の記事はVisual Studioを使ってクライアント オブジェクト モデルでフィールドを追加するやり方しか紹介されてませんので、準備その2でご紹介したTobias Zimmergrenさんの記事を参照してJavaScriptでコードを書きます。

・・・と、ここまで書いたところで後出しジャンケンのようで申し訳ないですが、上記準備その2とその3をまとめてできちゃう素晴らしいコードを紹介している記事をみつけました。
My SharePoint Insight: Adding geolocation field to SharePoint Online
こちらのコードをまるっと使えば、フィールドの追加までいとも簡単にできてしまいます。
20140919-07
いやーほんとにありがたいですね・・・
(ただし、私の環境ではHTMLをそのままスクリプトエディタに貼り付けると、inputタグのonclickイベントが消えてしまったので別ファイルにしてコンテンツエディタ webパーツでリンクしました)

Geolocationフィールドを追加したリストの設定を見てみます。
20140919-03
ちゃんと追加されていますね。
これで、ようやくリストアイテムに位置情報を追加できるようになりましたのでアイテムを作ってみます。
新規アイテム作成フォームで、「Specify location」をクリックします。
20140919-04
すると、緯度経度を入力するポップアップが出ますので、入力します。
20140919-05
これだけで、さっそくフォーム上にBing Mapsに位置がピンされた状態で表示されます。
20140919-06

ビュー上で地球儀のマークをクリックするとBing Mapsがポップアップ表示されます。
20140919-08

もうここまでできれば終わったも同然で、あとはこちらのMSDNの記事なり
SharePoint 2013 で地理位置情報フィールドのマップ ビューを作成する
見ていただければいろいろと好きにできると思うのですが、実際作っててはまったりしたポイントをおまけに書いておきます。

はまりポイント1:マップビューでBing Mapsの大きさを変えたい!
私の環境のせいかもなのですが、マップビューにしたときにBing Mapsが横長になってしまって、広範囲の地図を表示させたいときにあんまりうれしくありません。
20140919-09
ウィンドウの大きさに左右されるのかなーってちょっと思ったのですが・・・
で、リストビューwebパーツの編集で高さを固定にしてみたりもしたのですが、地図の大きさは変わってくれず。
最終的に以下のようなCSSで高さを固定しました。

#cardsContainer_WPQ2, #mapContainer_WPQ2{
	height: 650px !important;
}

※CSSで指定しているid名は環境によって違うと思うので、ご自身の環境に合わせて変えてくださいね。

はまりポイント2:左側のリストとポップアップで表示させるプロパティを変えたい!
デフォルトだと、地図左側のリストに表示されるのと、ピンにマウスホバーしたときに表示されるポップアップのプロパティは同じになるようです。
20140919-10
でも、左側のリストはタイトルだけでいいけど、ポップアップではタイトルに加えて詳細説明も、ってしたいシチュエーションがあると思います。
マップ ビューの設定にはそのように出しわけるオプションがなかったので、やはりCSSで表示を変えてみました。
ついでに、プロパティの列名が「Description:」みたいにポップアップ内に表示されてしまうので、それも非表示にしてみました。

div[id^='cardContent'], span[id^='MapCalloutContent'] span.ms-floatLeft.ms-soften{
	display: none;
}

完成形はこんな感じです。
20140919-11

そのほか、参考にさせていただいた記事です。
Adding Geolocation Columns to SharePoint Lists | Marc D Anderson's Blog

いかがでしたしょうか?
なんだか長い記事になっちゃいましたが、参考にしていただけるとうれしいです!

SharePoint 2010のwikiページを2013のosloテーマっぽくするCSS

先日ひさびさにバンドの練習で歌ってきたのですが、背中と脇腹が筋肉痛になりました。普段からまじめにトレーニングしないとだめですね・・・

さて、SharePoint2013になってosloテーマができ、サイドリンクバーなしの中央固定幅のレイアウトが選べるようになりました。
SharePoint2010のチームサイトでもosloっぽいレイアウトにしてみたく、CSSで強引につくってみました。
これを適用したいwikiページにコンテンツエディタ webパーツで埋め込んでください。

CSS

#s4-leftpanel
{
    display : none;
}
.s4-ca
{
    margin-left : 0px !important;
} 

.ms-rtestate-field{
    max-width: 1024px;
    min-width: 768px;
    margin: 0 auto;
    padding: 0;
}

max-width、min-widthはお好みや環境に応じて設定してください。

いちおう、wikiページのテキストレイアウトをいろいろ変更しても中央固定幅になることは確認してますが、そんなにしっかりテストはしてないので、実環境に適用される場合は副作用がないか十分検証してくださいね。