エンタープライズパッケージを
利用しました!
∼ HTML Exporter編 ∼
株式会社翠灯舎 専務取締役 CTO
佐野譲
自己紹介
自己紹介
株式会社翠灯舎 専務取締役 CTO
佐野譲(さの ゆずる)
バリバリ手を動かすシステムディレクター的な立ち
位置。
PHPとJavaScriptがメインのお仕事。
ビールとソーセージが好きです。
CMSはconcrete5、WordPress、Movable Type
などなど
concrete5は去年から触り始めました!
インテグレーションパートナーではございますが、
まだまだconcrete5新人です!
ちょっとした自慢
concrete5開発元、
「PortlandLabs」
にお邪魔して超前衛的な話
をしたり
ビールをご馳走になったり
しました!
concrete5の開発者は皆、
スーパーナイスガイです!
@sizenkainookite
https://www.facebook.com/yuzuru.sano
今回の事例について
事例紹介セミナーに
登壇しているものの・・・
今回は大人の事情で
具体的にサイト名を紹介できません。
ごめんなさい!!!
さいごまでお付き合いいただきまして
ありがとうございました!
株式会社翠灯舎 Suitosha Inc.
〒604-8226
京都市中京区西錦小路町263番地
NAUTICA BLDG.C102号室
TEL:075-744-6581
FAX:075-744-6582
なんちゃって
セキュリティ面で
非常に厳しい要件が求められたお仕事で、
「このCMS使ってます!」
と公言できない
など様々な事情がありまして。
(でも事例紹介させてください)
お題の通り
今回はconcrete5から
静的htmlを出力する
アドオンのお話。
なぜ静的html?
表示速度を改善したいから?
NO!
concrete5には
各種キャッシュ機能が充実!
サイト表示速度の対応は
大体キャッシュの設定でOK
だったりします
ではなぜ?
静的htmlが有効なのは
サイト表示速度の改善
だけではない。
PHPやMySQLを
動作させることができない、
静的HTMLしか扱えない
でもCMSを利用した
強力なコンテンツ管理機能は必要・・・
そんな要件のWEBサイト構築に
concrete5が
バッチリはまった例をご紹介します。
事例概要
事例概要
ある日ご相談を受けた
コーポレートサイト的な
性質を持ったサイトの構築
事例概要
全ページをクライアントが更新する
(レイアウトも自由に設定したい)
ページの公開/編集に際して
上長承認が必要
記事の予約公開・予約クローズ
多言語対応
事例概要
concrete5で
OKよ!
concrete5の基本機能で
OKよ!
事例概要
「公開サーバーに動的コンテンツを
設置してはいけません」
浮かれていた矢先・・・
事例概要
concrete5設置できない!!!
公開サーバーでのphp使用不可
事例概要
_人人人人人人人人人_
> 大ピンチ! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
千手ピンチだ!!
実現に向けて
実現に向けて
Static Press・・・?
やっぱMT・・・?
あとサーバー周りとか・・・
実現に向けて
サーバーの構成は協力会社様と相談の上、
こんな感じに。
CMS設置サーバー 公開サーバー
HTML出力!
よし、
あとは静的HTML出力を
どげんかせんといかん・・・
実現に向けて
そこで今回の主役
実現に向けて
HTML Exporterさんの出番やで!
実現に向けて
concrete5にはデフォルトの強力な
機能以外に、
さらにすごい機能を追加してくれる
エンタープライズ
パッケージ
なるものが存在します。
HTML Expoterもその一つ。
http://concrete5.co.jp/ja/service/enterprise-software/
実現に向けて
concrete5の開発元であるPortlandLabs
が提供する、concrete5をエンタープラ
イズCMSとして使用するための拡張パッ
ケージラインナップです。
ブヒっ
実現に向けて
当社はPortlandLabsの公式パートナーとして、
これらのパッケージの日本語翻訳、
また日本語による導入コンサルティング、
インストール代行、
導入後のサポートなどのサービスを提供してい
ます。
ブヒヒっ
実現に向けて
動的CMSであるconcrete5に、Webページを静的
なHTMLファイルとして出力する機能を提供し、静
的CMSと同様の運用を可能にします。
concrete5のマウスによる直感的な操作方法や自
由度、素早い更新はそのままに、動的CMSでは導
入が難しかったWebサイトへもconcrete5の導入
が可能となります。
(以下略) ブヒヒヒっ
実現に向けて
・高トラフィックサイトでCPU負荷の軽減に
・PHPやMySQLを動作させることができない
セキュリティ基準の厳しいサーバーに
・アセットをCDNで管理し高速に配信したい
場合に
・緊急時に静的ファイルから一時的に表示を復
旧する、ディザスタリカバリの用途に
ブヒヒヒヒィっ!
_人人人人人人人人人_
> これだ! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
実現に向けて
concrete5 JAPANに相談
concrete5 JAPANに相談
html出力の速度はどれくらいでしょうか?
デモ環境では10p/秒で動いていますが、
基本的にサーバースペックに寄ります
concrete5 JAPANに相談
部分的な出力は可能でしょうか?
機能としてはありませんが、ちょっとカスタ
マイズすれば容易に可能だと思います。
concrete5 JAPANに相談
エラーの発生頻度とかはいかがでしょうか?
エラーの出る要因はタイムアウトくらいかと
思いますが、これはサーバー内でログ監視し
たほうが良いでしょう。
concrete5 JAPANに相談
価格はどのくらいでしょうか?
こちら価格表です。どうぞ。
※USドルベースの価格なので、レートにより実際の金
額が変動します。
concrete5 JAPANに相談
開発環境が私のローカル/テスト環境/クライアント
環境と複数あるのですが、アドオンは環境の分購入
が必要でしょうか?
1つのサイトに1ライセンスという考え方に
なります。1つのサーバーではなく、1つの
サイトを運用するために必要なステージング
環境や開発環境もあわせて1つと数えます
concrete5 JAPANに相談
実際に操作できるデモサイトはありますか?
デモサイトをご案内します
購入
購入
通常のマーケットプレイスからの
購入と異なり、
concrete5 JAPANから請求書が
発行されます。
入金後、アドオンファイル一式が
zipで送付されます。
5.6系最新版は画像処理にimagickを使用する版と、
imagick無しで動作する両方が送付されます。
インストール
インストール
インストールは手動で行います。
packagesディレクトリにファイ
ルをアップして
管理画面から有効化します。
※インストールは
/index.php/dashboard/extend/install/
から。
手動でアップ
基本的な使い方
基本的な使い方
インストール後、管理画面に
STATIC SITE EXPORTERエリ
アが追加されます。
設定もろもろはこちらから。
出力ディレクトリの指定|基本的な使い方
セッティングページでhtml出力す
るディレクトリを指定します。
動的なブロック(フォーム・検索
など)はhtml吐き出し時に動作
しないので、
チェック時(後述)にアラートを
出すブロックを指定します。
※ブラックリスト設定は、あくまでサイトチェック時
の指摘のみで、html出力時、自動的に取り除かれるわ
けではないことに注意。
存在しないディレクトリを指定することはで
きないので、あらかじめディレクトリを作成
しておきましょう。
サイトのチェック|基本的な使い方
動的なブロックが含まれたページ
がないか、サイト全体をチェック
できます。
ページ単位だけでなく、
サイト全体の設定もチェックして
くれます。
ブラックリスト設定したブロック
が含まれるページがあればアラー
トを出してくれます。
動的ブロックのアンインストール|基本的な使い方
動的ブロックを一括でアンインス
トールすることもできます。
とりあえず動かしてみましょう!
導入にあたって懸念されること
※ちょっと技術的な話も入ります
導入にあたって懸念されること
ページリストの処理を応用して、
RSSを出力するページを作りました。
RSSの配信はどうしたいいの?
いわゆる「動的なコンテンツ」なのでは?
導入にあたって懸念されること
ページリストの処理を応用して、
RSSを出力するページを作りました。
RSSの配信はどうしたいいの?
いわゆる「動的なコンテンツ」なのでは?
アップデート版でRSS配信に対応!
※本案件納品後のできごと
アップデート版でRSS配信に対応!
※本案件納品後のできごと
導入にあたって懸念されること
ページリストのカスタムテンプレートを追
加してjavascriptライブラリで実装しまし
た。
ページネーションはどうしたいいの?
いわゆる「動的なコンテンツ」なのでは?
導入にあたって懸念されること
ページリストのカスタムテンプレートを追
加してjavascriptライブラリで実装しまし
た。
ページネーションはどうしたいいの?
いわゆる「動的なコンテンツ」なのでは?
アップデート版でページネーションに対応!
※本案件納品後のできごと
導入にあたって懸念されること
ページデータをまとめてjsonで出力して、
javascriptで検索系の機能を実装しまし
た。できないことはないです!
検索系の機能は「動的」なので諦めるしかな
いのでしょうか・・・?
導入にあたって懸念されること
html出力時のサイト状態がそのまま反映
されるので問題なしです。
自動実行ジョブでこまめに動作するよう
設定すると、詳細な期間指定にも対応で
きますよ。
承認フローや期間指定ゲストアクセスの状態
など権限の適用状態もhtmlに反映されるの
でしょうか?
導入にあたって懸念されること
読み込みに時間がかかる処理のあるペー
ジはその分出力に時間がかかります。

特にがっつりカスタマイズしたブロックが
あってその処理が重い場合、かなり影響
を受けます。
やけに出力に時間がかかるんだけど・・・
導入にあたって懸念されること
読み込みに時間がかかる処理のあるペー
ジはその分出力に時間がかかります。

特にがっつりカスタマイズしたブロックが
あってその処理が重い場合、かなり影響
を受けます。
やけに出力に時間がかかるんだけど・・・
私はブロックのコンストラクタで
大容量csvを扱うというミスをしてしまい、
この現象の原因究明に手間取りました。
※菱川さんその節はありがとうございました。
導入にあたって懸念されること
ややこしい話も出ましたので
小休止
導入にあたって懸念されること
ややこしい話も出ましたので
小休止
カスタマイズについて
※ちょっと技術的な話も入ります
出力の基本の流れ|カスタマイズについて
基本は
閲覧可能な
ページデータを取得
$v = View::getInstance();
$v->render($c);
で、がっちりページを描画
htmlファイル化して
出力先ディレクトリへ
介入できるポイントは
沢山ある
ここでページオブジェクトそのものを使って
処理を加えたりとか
描画後にURLの置換をしたりとか
特定の条件下で出力先を振り分けたりとか
出力の基本の流れ|カスタマイズについて
複雑なカスマイズを施したブロックや、
ややこしい処理だらけのオリジナルブロックも
とりあえず描画してくれるので
思うがままカスタマイズしても大体大丈夫
な、印象。
出力の基本の流れ|カスタマイズについて
複雑なカスマイズを施したブロックや、
ややこしい処理だらけのオリジナルブロックも
とりあえず描画してくれるので
思うがままカスタマイズしても大体大丈夫
な、印象。
PHPでエラーが検出されると
さすがに止まってしまうのでそこは注意。
foreachにうまく値を渡せてない時とか・・・ね。
おわりに
concrete5の
強力なCMS機能も利用しつつ
セキュリティ系の
厳しい要件にも応えたい
そんな場面に是非、
concrete5 + HTML Exporter
ご検討してみては
いかがでしょうか?
さいごまでお付き合いいただきまして
ありがとうございました!
株式会社翠灯舎 Suitosha Inc.
〒604-8226
京都市中京区西錦小路町263番地
NAUTICA BLDG.C102号室
TEL:075-744-6581
FAX:075-744-6582
さいごまでお付き合いいただきまして
ありがとうございました!
株式会社翠灯舎 Suitosha Inc.
〒604-8226
京都市中京区西錦小路町263番地
NAUTICA BLDG.C102号室
TEL:075-744-6581
FAX:075-744-6582
朗報!
5.7系にも
対応したそうです!

エンタープライズパッケージを利用しました〜HTML Exporter編〜