logoWebRelease 2 ユーザーズマニュアル
Version 2.75Y 版
menu
1章 はじめに
  • 1. はじめに
  • 2. WebRelease の利用環境
  • 3. 製品のライセンスについて
2章 ユーザ管理
  • 1. WebRelease のユーザ管理
  • 2. ユーザの登録
  • 3. ユーザの休止
  • 4. ユーザの削除
  • 5. ログインユーザ一覧
  • 6. ログイン履歴
  • 7. ユーザ登録情報の一括処理
3章 サイトの作成
  • 1. サイトの作成
  • 2. サイト設定
  • 3. スタッフ設定
    • 1. スタッフごとのテンプレート設定
    • 2. スタッフのフォルダへのアクセス制限
    • 3. スタッフの承認ステップ
    • 4. スタッフの解任
  • 4. サイトリソース
    • 1. リソースの登録
    • 2. リソースの編集
    • 3. リソースの一括移動
    • 4. リソース名の一括設定
    • 5. リソースの一括削除
    • 6. リソースフォルダ
  • 5. 辞書の管理
  • 6. 外部リンクのチェック
  • 7. サイトのエキスポート
  • 8. サイトのインポート
  • 9. サイトの閉鎖
  • 10. サイトの削除
  • 11. サイトの操作履歴
4章 FTPの設定
  • 1. FTP の設定
  • 2. プライマリチャネルの設定
  • 3. FTP 記録の参照
  • 4. FTP の実行状況
  • 5. FTP 予約(定時起動)の設定
5章 テンプレート
  • 1. テンプレート
  • 2. テンプレートの作成
  • 3. 文書型の定義
  • 4. 要素のタイプ
    • 1. 1行テキスト
    • 2. 複数行テキスト
    • 3. WYSIWYG エディタ
    • 4. ラジオボタン
    • 5. ポップアップボタン
    • 6. チェックボックス
    • 7. 年月日/時分/秒
    • 8. 目次
    • 9. リンク
    • 10. イメージ (GIF/JPG/PNG)
    • 11. 添付ファイル
    • 12. XMLリーダ
    • 13. コンポーネント
    • 14. グループ項目
    • 15. セレクタ
    • 16. 各要素に共通の設定項目
  • 5. テンプレートの展開
    • 1. 要素参照
    • 2. 関数呼び出し
    • 3. 演算子
    • 4. テンプレートリソース
    • 5. リソース参照
    • 6. メソッド
    • 7. 拡張タグ wr-if wr-then wr-else
    • 8. 拡張タグ wr-switch wr-case wr-default
    • 9. 拡張タグ wr-conditional wr-cond
    • 10. 拡張タグ wr-for
    • 11. 拡張タグ wr-break
    • 12. 拡張タグ wr-variable
    • 13. 拡張タグ wr-append
    • 14. 拡張タグ wr-clear
    • 15. 拡張タグ wr-return
    • 16. 拡張タグ wr-error
    • 17. 拡張タグ wr-- と wr-comment
  • 6. WYSIWYG エディタ設定
  • 7. テンプレート・プロファイラ
  • 8. テンプレートのリビジョン
  • 9. テンプレートのダウンロード
  • 10. テンプレートのアップロード
  • 11. テンプレートの上書きアップロード
  • 12. テンプレートのフォルダ
  • 13. テンプレートの状態
  • 14. テンプレートの削除
  • 15. ページ作成後のテンプレート修正
  • 16. 入力フィールドの短縮表示
  • 17. 作成したページの一覧
  • 18. テンプレートを利用可能なスタッフの設定
  • 19. テンプレートの操作履歴
  • 20. テンプレートを参照している目次の一覧
  • 21. テンプレートの検索
6章 コンポーネント
  • 1. コンポーネント
  • 2. コンポーネントの使用例
  • 3. コンポーネントとセレクタ
7章 ページの作成
  • 1. ページの作成の手順
  • 2. ページのプレビュー
  • 3. 実機でのプレビュー
  • 4. ページの状態
  • 5. ページの編集と編集完了
  • 6. ページリソース
    • 1. リソースの登録
    • 2. リソースの編集
    • 3. リソースの一括移動
    • 4. リソースの一括削除
    • 5. リソースフォルダ
  • 7. ページの公開と公開終了
  • 8. ページの削除
  • 9. ページのリビジョン管理
  • 10. ページのリビジョン間の比較表示
  • 11. リンク元一覧
  • 12. ページ内の外部リンク一覧
  • 13. ページの公開状況
  • 14. スケジュール一覧
  • 15. フォルダ
  • 16. バージョニングフォルダ
  • 17. ページの一括処理
  • 18. 一括ページ登録
  • 19. html と関連リソースの zip 取り込み
  • 20. WYSIWYG エディタの使い方
  • 21. Markdown の使い方
  • 22. ページの操作履歴
  • 23. コンテンツ中の語句のチェック
  • 24. ページの検索
8章 マルチデバイス配信
  • 1. 多チャネル化
  • 2. チャネル別コンテンツの生成
  • 3. チャネル選択機能
9章 承認プロセスの設定
  • 1. 承認ステップの定義
  • 2. 承認プロセスの定義
  • 3. 承認プロセスをフォルダに関連付ける
  • 4. 承認プロセスによる公開管理
    • 1. ページの公開承認依頼
    • 2. 承認と差戻
    • 3. 承認プロセスとページの公開終了
    • 4. 承認依頼フォルダ
    • 5. 一括承認依頼
    • 6. 一括承認
    • 7. 緊急対応としてのページの公開と公開終了
    • 8. 承認依頼の削除
    • 9. 進行中の承認依頼の管理
10章 その他の機能
  • 1. ダッシュボード
  • 2. 英語インタフェース
  • 3. タイムゾーンの指定
11章 システムの運用管理
  • 1. WebRelease の停止と起動
  • 2. データのバックアップ
  • 3. メモリ設定
  • 4. メールサーバの設定
  • 5. Proxy サーバの設定
  • 6. その他のシステム設定
  • 7. 証明書のインポート
  • 8. ストレージの管理
  • 9. 操作履歴
  • 10. ログファイルのダウンロード
  • 11. ログインエラーへの対応
  • 12. WebRelease のバージョンアップ
  • 13. ライセンスのアップグレード
  • 14. 期間ライセンスコードの更新
  • 15. WebRelease の Uninstall
12章 索引
  • 1. 関数索引
    • 1. add
    • 2. allObjects
    • 3. allPages
    • 4. channel
    • 5. channelCookieName
    • 6. channelName
    • 7. codePointAt
    • 8. comma3
    • 9. concatenate
    • 10. contentType
    • 11. count
    • 12. currentTime
    • 13. divide
    • 14. encoding
    • 15. fileName
    • 16. fileSize
    • 17. find
    • 18. firstElement
    • 19. folder
    • 20. formatDate
    • 21. formatDateRFC2822
    • 22. formatDateW3CDTF
    • 23. fullURL
    • 24. gengou
    • 25. getXML
    • 26. group
    • 27. halfwidth
    • 28. hasElement
    • 29. hasMethod
    • 30. head
    • 31. indexOfPage
    • 32. isEven と isOdd
    • 33. isFirstElement と isNotFirstElement
    • 34. isFirstPage
    • 35. isLastElement と isNotLastElement
    • 36. isLastPage
    • 37. isNull と isNotNull
    • 38. isNumber
    • 39. isPreview と isNotPreview
    • 40. jstr
    • 41. kmg1000
    • 42. kmg1024
    • 43. lastElement
    • 44. lastModifiedDate
    • 45. length
    • 46. multiply
    • 47. nextElement
    • 48. nextPage
    • 49. number
    • 50. pageCreatedDate と revisionCreatedDate
    • 51. pageID
    • 52. pageRevision
    • 53. pageTitle
    • 54. pageWithPageID
    • 55. parseDate
    • 56. parseDateRFC2822 と parseDateRFC2822Relaxed
    • 57. parseDateW3CDTF
    • 58. parseHtml
    • 59. path
    • 60. prevElement
    • 61. prevPage
    • 62. previewClock
    • 63. quote
    • 64. remainder
    • 65. replaceAll と replaceFirst
    • 66. resourceURL
    • 67. resourceWithName
    • 68. rtlCount
    • 69. rtlRatio
    • 70. scheduledEndDate
    • 71. scheduledStartDate
    • 72. searchText
    • 73. setScale
    • 74. siteTimeZone
    • 75. sort
    • 76. split
    • 77. startsWith と endsWith
    • 78. string
    • 79. stripTags
    • 80. substring
    • 81. subtract
    • 82. suffix
    • 83. tail
    • 84. templateName
    • 85. thisPage
    • 86. toEntityRef
    • 87. toLowerCase と toUpperCase
    • 88. trim
    • 89. unescapeEntities
    • 90. unsplit
    • 91. width と height
  • 2. オブジェクト索引
    • 1. Channel オブジェクト
    • 2. CheckBox オブジェクト
    • 3. Folder オブジェクト
    • 4. HTMLComment オブジェクト
    • 5. HTMLDataNode オブジェクト
    • 6. HTMLDocument オブジェクト
    • 7. HTMLElement オブジェクト
    • 8. HTMLElements オブジェクト
    • 9. HTMLTextNode オブジェクト
    • 10. Page オブジェクト
    • 11. Selector オブジェクト
    • 12. XMLFeed オブジェクト
13章 Appendix
  • 1. サポートされているタイムゾーン
  • 2. プレビュー時の URL 書き換え機能
  • 3. 正規表現
  • 4. 要素名・リソース名・変数名・メソッド名

8章 マルチデバイス配信

2. チャネル別コンテンツの生成

プライマリチャネル以外のチャネルを作成し、多チャンネル化したら、次は、チャネル別のコンテンツ生成が行えるようにテンプレートを修正します。

WebRelease では、コンテンツ生成はテンプレートの展開とメソッドの中で行われるわけですが、その中に、配信先のチャネルに対応して異なるコンテンツ生成を行うロジックを組み込みます。このために channelName() 関数が重要な役割を果たします。

WebRelease はあるページについて、コンテンツ (多くの場合 html) を生成するときに、チャネルの数だけ展開処理を繰り返します。例えば、main mobile tablet の3つのチャネルが定義されているサイトの場合、トップページの index.html の生成は3回行われます。

展開処理中で channelName() 関数を呼び出すと、その展開処理がどのチャネル向けの展開処理なのかを示すチャネル名が返されます。このチャネル名を wr-if などでチェックしながら、チャネル用のコンテンツを生成します。

例えば main mobile tablet という3つのチャネルが定義されている場合の、 WebRelease のコンテンツ生成の処理は下記のように行われます。

  • チャネル main に対する index.html の生成処理を行います。この処理が行われている時に、展開中やメソッド中で channelName() 関数を呼び出すと "main" という文字列が返ってきます。 展開を終えたら、結果を、チャネル main に指定されている配信先に配信します。
  • チャネル mobile に対する index.html の生成処理を行います。この展開処理が行われている時に、展開中やメソッド中で channelName() 関数を呼び出すと "mobile" という文字列が返ってきます。 展開を終えたら、結果を、チャネル mobile に指定されている配信先に配信します。
  • チャネル tablet に対する index.html の生成処理を行います。この展開処理が行われている時に、展開中やメソッド中で channelName() 関数を呼び出すと "tablet" という文字列が返ってきます。 展開を終えたら、結果を、チャネル tablet に指定されている配信先に配信します。

チャネルの処理順序は不定です。かならずしも main mobile tablet の順に処理されるわけではありません。

channelName() 関数以外に channel() 関数を呼び出すと、処理の対象となっているチャネルを表す Channel オブジェクトが入手できます。Channel オブジェクトから取得できる情報を使って展開処理を分岐することも可能です。

関連項目
  • channelName
  • channel
  • Channel オブジェクト

サイトリソース、テンプレートリソースについては、全チャネルに同一のセットが配信されます。これらをチャネルごとに変更することはできません。

また、ページ中に入力された画像や添付ファイルについても、同一のものが各チャネルに配信されます。

チャネル別に内容をコントロールできるのは、あくまでも、テンプレートの展開とメソッド、コンポーネントのメソッドに記述される部分に限られるという点がポイントです。

大きな単位でコンテンツ生成を分離する

多くの場合、各デバイス向けのコンテンツは「まったく異なる」コーディングになります。つまり、mobile 向けの html5 系の html と、PC 向けの html4 系の html は、最も外側の doctype や html 宣言からして別物であり、また、html のツリー構造はほぼ同等であっても、細部がことごとく異なる(属性指定があちこちで異なる)ものとなる場合が多いようです。

いろいろな考え方があるとは思いますが、テンプレートの展開レベルで、デバイスの判断を行い、それぞれのデバイス向けの展開の生成は、それぞれのデバイス向けの展開を行う専用メソッドに処理を委譲するのが良いのかもしれません。

main mobile tablet という 3 つのチャネルが定義されているサイトの、あるテンプレートの展開を、例えば、下記の様に書いておきます。

3つのチャネルに対応したテンプレートの展開例
<wr-if condition="channelName() == \"tablet\"">%generateTablet()</wr-if>
<wr-if condition="channelName() == \"mobile\"">%generateMobile()</wr-if>
<wr-if condition="channelName() == \"main\"">%generateMain()</wr-if>

このテンプレートに generateTablet() generateMobile() generateMain() という3つのメソッドを定義し、その中で、それぞれのチャネル用の展開を生成するようにしておくことで、トップレベルでチャネル別のコンテンツ生成をコントロールすることができるでしょう。

Responsive Design を併用する

デバイス向けのコンテンツを生成する方法として、Responsive Design という手法が使われることがあります。

Responsive Design は、大雑把に言うならば、全デバイスに同一のコンテンツを配信しておいて、デバイス側のスタイルシートの機能(Media Queries など)や JavaScript を使って、デバイス側でそのデバイスに合ったコンテンツを表示するというものです。

デバイス間の違いが少ない(同じレベルの CSS や JavaScript が使える、HTML5 環境)場合には有効な方式であると言えますが、一方で、下記のような点が問題になる場合もあります。

  • 全デバイスに向けて同時にメンテナンスが必要になる。換言すると、最初に PC 向けのサイトを作成しておいて、後から、モバイル向けのサイトを作成する場合などに、作成済みの PC サイトについてもメンテナンスや再テストが必要となり、コスト増を招く場合がある。
  • デバイスごとに異なる HTML 標準や文字コードを使うことができない。例えば PC 向けコンテンツには従来どおり HTML 4 + Shift_JIS でコンテンツを提供し、タブレットには HTML5 + UTF-8 でコンテンツを提供するといったことはできない。
  • 別々に HTML を書いてしまえばなにも難しいことがないことについても Responsive で対応するために、多少の余計な検討・検証・コーディングが発生することがある。

WebRelease では、ある特定のチャネルについてのみ Responsive を採用することができます。例えば、タブレットとスマートフォン向けには同じチャネルから同じコンテンツを配信し、端末側で Responsive で表示内容を調整することにし、その他のデバイス、例えば PC 向けには、他のチャネルから PC 専用のコンテンツを配信することができます。

前

次

© 2000 - 2024  FrameWorks Software, Inc.