これでもうmasterpage編集いらず?「SharePoint All Page Scripting」

いつもお世話になっている @SharePoint_X さんがcodeplexにひっそり素敵なソリューション「SharePoint All Page Scripting」を登録されたので勝手にご紹介です。

これをインストールして有効化したサイトコレクションでは、すべての画面で、ルートのスタイルライブラリに配置された「AllPageScripting.js」が読み込まれ、ここに記述されたスクリプトが自動実行される仕掛けです。

まず、Codeplexのプロジェクト から、ソリューションをダウンロードして下さい。CodeplexはMicrosoft公式のオープンソースコミュニティです。素晴らしいソリューションが沢山ありますが、もちろんノン・サポートなのでそこは理解の上で。厳密にはこの「SharePoint All Page Scripting」はGNU General Public License version 2(GPLv2)で公開さています。

サイトの設定画面から、[トップレベルのサイト設定に移動]します。ちなみにこの画面はOffice365のプランPです。

[ギャラリー|ソリューション]を開き、ここに先ほどダウンロードした AllPageScripting.wsp をアップロードします。

ついでにアクテイブ化します。なお、ここでしなくても、通常通りサイトコレクションの機能からON/OFFできます。

すると、ページがロードされる都度、このようにアラートが表示されるようになる筈です。

スタイルライブラリを開くと、AllPageScripting.js が自動で登録されています。ページが開かれる都度、このファイルが読み込まれ、その中に記述されたスクリプトが実行されます。

このファイルをダウンロードして、メモ帳で開くと、以下のようなソースが記述されています。これを編集することで(もちろんJavascriptの知識が必要ですが)、任意のスクリプトを自動実行させることが出来ます。

// Sample function

function AllPageScripting_OnPageLoad() {

var SampleMessage = “This message has shown by ‘AllPageScripting’ site collection feature.”
ExecuteOrDelayUntilScriptLoaded(function () { SP.UI.Notify.addNotification(SampleMessage); }, “sp.js”);

}
_spBodyOnLoadFunctionNames.push(“AllPageScripting_OnPageLoad”);

通常、こうしたカスタマイズはマスターページをSharePoint Designerで編集する必要がありましたが、当然サイトを「壊す」リスクがあります。こうしてソリューション化されることで、一般ユーザでも比較的容易に、スクリプトを「仕込む」ことが可能になりますね。

少しスクリプトを工夫すれば、CSSもいける筈ですが、それはおいおい…

「SharePoint All Page Scripting」でCSSを読込む


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9