Office365 SharePointページにカスタムページをアップロードするには

SharePoint Onlineのモダンサイトでは、画面の統制を取るべく。かと思いますが、旧来まで使えていたスクリプトエディタWebパーツなどのカスタムを加えたページが使えなくなっています。

とはいえ、SharePointサイト上にカスタマイズを加えたページを表示させたいという欲求は高くあったりするので、今回はiFrameを使って、カスタムページを挿入してみたいと思います。

まずはSharePointサイトにアクセス。
ページライブラリの中にはaspxを含めることができますが、そのままではサイト ページ(モダンページ)のみが登録可能な状態となっています。

f:id:mohessu:20180312021946p:plain

新規にファイルを作成すると、サイト ページのみが表示されます。

f:id:mohessu:20180312022408p:plain

これではカスタマイズしたページは置けないので、従来のSharePointの表示に戻すを利用して、ファイルをアップロードしましょう。

左下にあるこのボタンを押しましょう。

f:id:mohessu:20180312022626p:plain

すると、クラシック表示に切り替わりファイルのアップロードボタンが表示されます。

f:id:mohessu:20180312022723p:plain

このアップロードでは、以下のような形で、aspxファイルのアップロードが可能です。
(HTMLファイルもアップロードできますが、MIMEがダウンロードとなっているので、ブラウザで表示することができません。HTMLファイルはそのまま拡張子を変更するだけでaspxファイルとすることができるので拡張子を変えておきましょう。)

f:id:mohessu:20180312022852p:plain

ただし、残念ながらそのままではアクセス許可がないと表示されてしまいます。
これは、サイトコレクションに対してカスタムページの投稿許可がない為表示されます。(デフォルトでは投稿許可がありません。)

f:id:mohessu:20180312023148p:plain

次のSharePoint PowerShellを実行することで許可を付加することができます。

SharePoint Online Management Shellから実行しましょう。

上部の変数は適宜変更ください。
$orgName="companyName"
$adminUPN="sharePointAdmin@companyName.onmicrosoft.com"
$address = "/sites/SiteCollectionName"

$siteAddres = "https://" + $orgName + ".sharepoint.com" + $address
$userCredential = Get-Credential -UserName $adminUPN -Message "Type the password."
Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $userCredential
Get-SPOsite $siteAddres | select DenyAddAndCustomizePages
Set-SPOsite $siteAddres -DenyAddAndCustomizePages 0
Get-SPOsite $siteAddres | select DenyAddAndCustomizePages

うまくいくとこんな感じでDenyAddAndCustomizePagesがEnabled Disabledと表示され、カスタムページを投稿できるようになります。(スクリプトは即時反映のようです。)

f:id:mohessu:20180312023834p:plain

 

f:id:mohessu:20180312020755p:plain

こうしておくことでモダンページ内にこのaspxファイルをiframeで張り付けることができるようになり、カスタマイズしたページを表示できるようになります。

(ただ、クラシックのSharePoint表示はいつまでできるのかちょっと不安なところもありますね。)

音楽:オムレットワルツ