{"_id":"5dbfcb4fc11b1e0060b8bb57","project":"55227389b4a0de0d00de7e28","category":{"_id":"5dbfcb4fc11b1e0060b8bb1c","pages":["5dbfcb4fc11b1e0060b8bb4c","5dbfcb4fc11b1e0060b8bb4d","5dbfcb4fc11b1e0060b8bb4e","5dbfcb4fc11b1e0060b8bb4f","5dbfcb4fc11b1e0060b8bb50","5dbfcb4fc11b1e0060b8bb51","5dbfcb4fc11b1e0060b8bb52","5dbfcb4fc11b1e0060b8bb53","5dbfcb4fc11b1e0060b8bb54","5dbfcb4fc11b1e0060b8bb55","5dbfcb4fc11b1e0060b8bb56","5dbfcb4fc11b1e0060b8bb57"],"version":"5dbfcb4fc11b1e0060b8bb58","__v":1,"project":"55227389b4a0de0d00de7e28","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-04-06T11:52:42.014Z","from_sync":false,"order":0,"slug":"_","title":"コア"},"user":"552342f6e20da719000e7925","version":{"_id":"5dbfcb4fc11b1e0060b8bb58","__v":1,"project":"55227389b4a0de0d00de7e28","forked_from":"5544d76ad8833c0d00582801","createdAt":"2015-05-02T13:55:54.059Z","releaseDate":"2015-05-02T13:55:54.059Z","categories":["5dbfcb4fc11b1e0060b8bb1c","5dbfcb4fc11b1e0060b8bb1d","5dbfcb4fc11b1e0060b8bb1e","5dbfcb4fc11b1e0060b8bb1f","5dbfcb4fc11b1e0060b8bb20","5dd8f4894243850024b9564b"],"is_deprecated":false,"is_hidden":false,"is_beta":true,"is_stable":true,"codename":"","version_clean":"4.9.0","version":"4.9"},"__v":1,"githubsync":"","metadata":{"title":"","description":"","image":[]},"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-04-07T07:26:23.586Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":12,"body":"全てのスキームは(*...app/schemas*)ディレクトリに置かれています。\nアドオンはそれらを拡張したり、全体または部分的にそれらを無効にすることができます。[さらに詳しく](doc:extending a scheme)\n[block:api-header]\n{\n \"type\": \"basic\",\n \"title\": \"スキーマーとは\"\n}\n[/block]\nスキーマーはデータ構造を含んでおり、スキーマーによって定義されたアクションを処理する際にエンティティ(オブジェクト)によって使用されます。\n\n例えば、特定のアイテム(商品やページなど)のインポートやエクスポートに関する記述は、それらに直接書かれておらず、すべてのインポートやエクスポート用のスキームによって記述されています。\n[block:api-header]\n{\n \"type\": \"basic\",\n \"title\": \"スキーマーの種類\"\n}\n[/block]\nCS-Cartには、3種類のスキーマーがあります:\n**データ配列**、**XML構造**、**関数のセット**\n\nこれら3種類を組み合わせることはできません。\n(例えば、同じスクリプトにデータ配列と関数セットを記述することは出来ません)\n\n##データ配列\nこのスキーマーは配列を返します。\n\n例)\n- *app/schemas/permissions/admin.php*\n- *app/schemas/clone/objects.php*\n- *app/schemas/sharing/schema.php*\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php \\nreturn array(\\n 'layouts' => array(\\n 'checked_by_default' => true,\\n 'function' => 'fn_clone_layouts'\\n ),\\n 'settings' => array(\\n 'checked_by_default' => true,\\n 'tables' => array(\\n array(\\n 'name' => 'settings_vendor_values',\\n 'key' => '', // Do not needed\\n ),\\n ),\\n ),\\n // Some other code\\n);\\n?>\",\n \"language\": \"php\"\n }\n ]\n}\n[/block]\n## XML構造\nこのスキーマーは`fn_get_contents`関数によって読み込まれるテキストファイルです。\n現在では旧式のものとして扱われ、コアでは使用されていません。\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<menu>\\n <items>\\n <subitems>\\n ....\\n <subitems>\\n </items>\\n</menu>\",\n \"language\": \"xml\"\n }\n ]\n}\n[/block]\n\n##関数のセット\n関数は以下のようなスキーマーで記述されます。\n\n関数を持つスキーマーのほとんどは、データ配列をスキーマーへ追加します。\n\nこのスキーマーを特別に呼び出す必要はありません。\nファイルの先頭に`include_once()` で使用すれば、それらを利用することが出来ます。\n\nスキーマーが独立したものである場合(例えば、アクションや設定の値等)、標準で含まれています:`fn_get_schema(\"settings\", \"actions.functions\")`\n\n- *app/schemas/exim/products.functions.php*\n- *app/schemas/last_view/frontend.functions.php*\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php\\nfunction fn_some_scheme_func1($params)\\n{\\n ...\\n }\\n\\nfunction fn_some_scheme_func2()\\n{\\n ...\\n}\\n?>\",\n \"language\": \"php\"\n }\n ]\n}\n[/block]\n\n[block:api-header]\n{\n \"type\": \"basic\",\n \"title\": \"スキーマーの拡張\"\n}\n[/block]\n拡張には二種類の方法あります - アドオンを使用するか、タグを編集するかです。\n\n##アドオンを使って拡張する方法\n\nアドオンを使ってスキームを拡張するためには、アドオンのパッケージ内にコアと同じディレクトリ構造を作成し、ファイル名に*.post*を加えます。\n\n例えばメインファイルへのパスの場合は以下のようになります。:\n\n*app/schemas/permissions/admin.php*\n\nこのファイルの拡張は:\n\n*app/addons/seo/schemas/permissions/admin.post.php*\n\nとなります。\n`$schema` 変数に拡張スキームを渡します。\n\n`$schema` 変数は拡張データを含んでおり、最終的に追加された`$schema`変数を返します。\n\n例:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php\\n// $schema変数はすでに標準のスキーマーを含んでいます。\\n$schema['news'] = array(\\n 'modes' => array(\\n 'manage' => array(\\n 'permissions' => 'manage_news'\\n )\\n )\\n);\\nreturn $schema;\\n?>\",\n \"language\": \"php\"\n }\n ]\n}\n[/block]\nアドオンによるスキームの拡張方法のより詳しい情報は[こちら](doc:extending-a-scheme)を確認してください。\n\n\n##タグを編集して拡張する方法\n\n編集されたタグはエディション(スタンダード版かマーケットプレイス版)毎に必要なスキームデータを形成するために使用します。\n\nタグの編集によってスキーマーを拡張するには、\nschemeディレクトリに*schema_[PRODUCT_EDITION]* ファイルを作成します。\n\n\n例えば、次のファイルのスキーマーを拡張する場合、\n\n- *app/schemas/permissions/admin.php*\n\n編集するタグのファイルパスは以下となります。:\n\n- *app/schemas/permissions/admin_ultimate.php*\n\n`$schema`変数はここでも使用されます。\n\n`$schema`変数は拡張データを含んでいます。このスクリプトは拡張された変数で作動し、最終的に`$schema`変数を返します。\n[block:api-header]\n{\n \"type\": \"basic\",\n \"title\": \"スキーマーデータの取得方法\"\n}\n[/block]\nスキームデータを取得するには`fn_get_schema()`関数を使用します。\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php \\nfunction fn_get_schema($schema_dir, $name, $type = 'php', $force_addon_init = false)\\n{\\n\\t\\t....\\n}\",\n \"language\": \"php\"\n }\n ]\n}\n[/block]\n引数の解説:\n\n- `$schema_dir` - スキーマーディレクトリの相対パス(パーミッションや設定)\n\n- `$name `- 拡張されていないスキーマーファイル名(admin, schema)。スキーマータイプが関数の場合、この引数は次ようになります:*actions.functions, variants.functions*\n\n- `$type` - スキーマーの種類:*php*や*xml*\n\n- `$force_addon_init` - この引数がある場合、無効にするアドオンとその*func.php*ファイルが考慮されなければならないことを示します。\n\nスキーマーをリクエストしているとき、全体のスキーマーは全てのアドオンのスキームを含んでいます。\n\n例:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php \\n$menu = fn_get_schema('menu', 'menu', 'php');\",\n \"language\": \"php\"\n }\n ]\n}\n[/block]\nメインスキームファイルの検索: */app/schemas/menu/menu.php*\n\n拡張するスキーマーが次のアドオンディレクトリにも置かれている場合:*addons/my_addon/app/schemas/xxx/yyy.php*\n\n次のような関数を使用してスキーマーを追加します:`fn_get_schema('xxx', 'yyy')`\n\n\nスキームを追加するとキャッシュされますので、次回以降すべてのスキーマー・ディレクトリをスキャンする必要はありません。\n\n- アドオンによってスキーマーが追加されているか確認します:\n\n - *app/addons/access_restrictions/schemas/menu/menu.post.php* \n - *app/addons/attachments/schemas/menu/menu.post.php*\n - *app/addons/banners/schemas/menu/menu.post.php*\n - *app/addons/data_feeds/schemas/menu/menu.post.php*\n - *app/addons/news_and_emails/schemas/menu/menu.post.php, ‥*\n\n\n- CS-Cartはスキーマーファイルを1つずつ読み込みますので、結果として全ての有効なアドオンのスキーマーを含んだスキーマーを持つことになります。","excerpt":"スキーマー(scheme)は特定のオブジェクト構造を記述した特別なファイルです。\nブロック、設定、プロモーションなどに関するスキームがあります。","slug":"schemes","type":"basic","title":"スキーマー (scheme)"}
スキーマー (scheme)
スキーマー(scheme)は特定のオブジェクト構造を記述した特別なファイルです。
ブロック、設定、プロモーションなどに関するスキームがあります。