{"_id":"5544d76bd8833c0d0058283a","user":"552342f6e20da719000e7925","category":{"_id":"5544d76ad8833c0d00582802","pages":["5544d76bd8833c0d00582832","5544d76bd8833c0d00582833","5544d76bd8833c0d00582834","5544d76bd8833c0d00582835","5544d76bd8833c0d00582836","5544d76bd8833c0d00582837","5544d76bd8833c0d00582838","5544d76bd8833c0d00582839","5544d76bd8833c0d0058283a","5544d76bd8833c0d0058283b","5544d76bd8833c0d0058283c","5544d76bd8833c0d0058283d"],"version":"5544d76ad8833c0d00582801","__v":1,"project":"55227389b4a0de0d00de7e28","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-04-06T11:52:42.014Z","from_sync":false,"order":0,"slug":"_","title":"コア"},"project":"55227389b4a0de0d00de7e28","__v":1,"version":{"_id":"5544d76ad8833c0d00582801","__v":1,"project":"55227389b4a0de0d00de7e28","forked_from":"55227389b4a0de0d00de7e2b","createdAt":"2015-05-02T13:55:54.059Z","releaseDate":"2015-05-02T13:55:54.059Z","categories":["5544d76ad8833c0d00582802","5544d76ad8833c0d00582803","5544d76ad8833c0d00582804","5544d76ad8833c0d00582805","5544d76ad8833c0d00582806"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"4.0.0","version":"4.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-04-07T05:22:17.529Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":8,"body":"標準で5つの通知タイプがあります:\n\n- **通知** (code type: N)\n- **エラー** (code type: E)\n- **警告** (code type: W)\n- **チェックアウト時のエラー** (code type: O)\n- **情報** (code type: I)\n\nそれぞれのタイプには色がつけられています:\n**通知**は緑、**エラー**は赤、**警告**はオレンジ、**チェックアウト時のエラー**はオレンジで右上隅に表示され、**情報**はポップアップのダイアログで表示されます。\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/K0YGe2uPTgm2tiRDF1u1_notifi.png\",\n        \"notifi.png\",\n        \"611\",\n        \"401\",\n        \"#0699cc\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n\n表示フォーマットは通知が呼び出されるエリアのCSSファイルに定義されています。\n通知は関数`fn_set_notification` (*/functions/fn.common.php*) を使用して生成されます。\n\n空のコンテナはそれぞれのページのHTMLに書かれています。\n通知行われると**通知ブロック**はこのコンテナに表示されます。\n\n通知は以下のレンプレートに定義されています:\n- 管理パネル: **/backend/templates/common/notification.tpl**\n- ショップフロント: **/themes/[theme name]/templates/common/notification.tpl**\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"通知の設定方法\"\n}\n[/block]\n通知には2つの方法があります:\n\n- スクリプトの実行によってページがロードされる前に通知を表示される\n- AJAXリクエストと共に、ページが表示された後および特定場合に表示される\n\n1つ目はページがリロードされた際に表示される通知を作成するために使用します。  \n2つ目はページをリロードすることなく、いくつかのJavascriptのイベントによって通知する際に使用します。\n\n\n### まず1つ目の通知の生成過程を見てみましょう:\n\n通知の関数はコントローラーコードから呼び出されます。例えば:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\nif ($mode == 'add_to_cart') {\\n    fn_set_notification('E', fn_get_lang_var('warning'), $msg, true, 'insecure_password');\\n}\",\n      \"language\": \"php\"\n    }\n  ]\n}\n[/block]\n`fn_set_notification()` 関数は新しい通知内容を通知用の配列に追加します。\n\n- テンプレーターは*/backend/templates/common/notification.tpl や/themes/[theme name]/templates/common/notification.tpl* を処理し、`fn_get_notifications()`を介して、それぞれの配列へすべての通知のリストを渡します。\n- 通知用の配列が空でなかった場合、通知のHTMLコードが表示されます。\n\n----\n\n###2つ目はAJAXを使った通知の生成方法です\n\n- ページを表示する際、テンプレーターは*/backend/templates/common/notification.tpl* や*/themes/[theme name]/templates/common/notification.tpl* を処理し、通知用のコンテナ(`<div class=”cm-notification-container”>`)を作成します。このコンテナは空かまたは1つ目の通知設定を含んでいます。\n\n- 設定用関数はAJAXリクエストで実行されるコントローラーコードで呼び出されます。 例えば:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\nif (defined('AJAX_REQUEST')) {\\n    fn_set_notification('E', fn_get_lang_var('warning'), $msg, true, 'insecure_password');\\n}\",\n      \"language\": \"php\"\n    }\n  ]\n}\n[/block]\nこの関数は以下の場合、通知用配列に新しい要素を追加します。\n\n- コントローラーの実行もしくは`exit()` 関数で処理が明示的に中断された場合、(/Tygh/Ajax.php) のAJAXクラス用のデストラクタが起動します。このデストラクタは通知内容をJSON形式の配列に変換し、この配列をJS関数`response` (*/js/tygh/ajax.js*) に引き渡します。\n\n- この関数`response` は関数`ceNotification` (*/js/tygh/core.js*) を呼び出し、すべての定義されたAJAX通知配列が渡されます。通知の表示は`notification.append` メソッドにより`ceNotification` 関数で実行されます。\n\n関数は通知のHTMLコードが宣言されたテンプレート*/backend/templates/common/notification.tpl* または */themes/[theme name]/templates/common/notification.tpl* (`<div class=”cm-notification-container”>`)をコンテナに追加します。また、Javascriptの通知の作成を行います。\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$.ceNotification('show', {\\n  type: 'E',\\n title: _.error,\\n message: error_msg\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]","excerpt":"CS-Cartの通知は画面右上隅にポップアップして表示されます。","slug":"notifications","type":"basic","title":"通知システム"}

通知システム

CS-Cartの通知は画面右上隅にポップアップして表示されます。

標準で5つの通知タイプがあります: - **通知** (code type: N) - **エラー** (code type: E) - **警告** (code type: W) - **チェックアウト時のエラー** (code type: O) - **情報** (code type: I) それぞれのタイプには色がつけられています: **通知**は緑、**エラー**は赤、**警告**はオレンジ、**チェックアウト時のエラー**はオレンジで右上隅に表示され、**情報**はポップアップのダイアログで表示されます。 [block:image] { "images": [ { "image": [ "https://files.readme.io/K0YGe2uPTgm2tiRDF1u1_notifi.png", "notifi.png", "611", "401", "#0699cc", "" ] } ] } [/block] 表示フォーマットは通知が呼び出されるエリアのCSSファイルに定義されています。 通知は関数`fn_set_notification` (*/functions/fn.common.php*) を使用して生成されます。 空のコンテナはそれぞれのページのHTMLに書かれています。 通知行われると**通知ブロック**はこのコンテナに表示されます。 通知は以下のレンプレートに定義されています: - 管理パネル: **/backend/templates/common/notification.tpl** - ショップフロント: **/themes/[theme name]/templates/common/notification.tpl** [block:api-header] { "type": "basic", "title": "通知の設定方法" } [/block] 通知には2つの方法があります: - スクリプトの実行によってページがロードされる前に通知を表示される - AJAXリクエストと共に、ページが表示された後および特定場合に表示される 1つ目はページがリロードされた際に表示される通知を作成するために使用します。 2つ目はページをリロードすることなく、いくつかのJavascriptのイベントによって通知する際に使用します。 ### まず1つ目の通知の生成過程を見てみましょう: 通知の関数はコントローラーコードから呼び出されます。例えば: [block:code] { "codes": [ { "code": "<?php\nif ($mode == 'add_to_cart') {\n fn_set_notification('E', fn_get_lang_var('warning'), $msg, true, 'insecure_password');\n}", "language": "php" } ] } [/block] `fn_set_notification()` 関数は新しい通知内容を通知用の配列に追加します。 - テンプレーターは*/backend/templates/common/notification.tpl や/themes/[theme name]/templates/common/notification.tpl* を処理し、`fn_get_notifications()`を介して、それぞれの配列へすべての通知のリストを渡します。 - 通知用の配列が空でなかった場合、通知のHTMLコードが表示されます。 ---- ###2つ目はAJAXを使った通知の生成方法です - ページを表示する際、テンプレーターは*/backend/templates/common/notification.tpl* や*/themes/[theme name]/templates/common/notification.tpl* を処理し、通知用のコンテナ(`<div class=”cm-notification-container”>`)を作成します。このコンテナは空かまたは1つ目の通知設定を含んでいます。 - 設定用関数はAJAXリクエストで実行されるコントローラーコードで呼び出されます。 例えば: [block:code] { "codes": [ { "code": "<?php\nif (defined('AJAX_REQUEST')) {\n fn_set_notification('E', fn_get_lang_var('warning'), $msg, true, 'insecure_password');\n}", "language": "php" } ] } [/block] この関数は以下の場合、通知用配列に新しい要素を追加します。 - コントローラーの実行もしくは`exit()` 関数で処理が明示的に中断された場合、(/Tygh/Ajax.php) のAJAXクラス用のデストラクタが起動します。このデストラクタは通知内容をJSON形式の配列に変換し、この配列をJS関数`response` (*/js/tygh/ajax.js*) に引き渡します。 - この関数`response` は関数`ceNotification` (*/js/tygh/core.js*) を呼び出し、すべての定義されたAJAX通知配列が渡されます。通知の表示は`notification.append` メソッドにより`ceNotification` 関数で実行されます。 関数は通知のHTMLコードが宣言されたテンプレート*/backend/templates/common/notification.tpl* または */themes/[theme name]/templates/common/notification.tpl* (`<div class=”cm-notification-container”>`)をコンテナに追加します。また、Javascriptの通知の作成を行います。 [block:code] { "codes": [ { "code": "$.ceNotification('show', {\n type: 'E',\n title: _.error,\n message: error_msg\n});", "language": "javascript" } ] } [/block]