記事を操作する(ブログプラグイン)
ここでは、サイトアカウントに存在するブログインスタンスを、SDKから操作する方法について解説します。
記事オブジェクトECHO.Blogs.EntryObject
EntryObjectは、個別記事を操作するためのオブジェクトです。
オブジェクトを生成する
新しい記事をオブジェクトとして生成するには、コンストラクタの第一引数にブログインスタンスのIDを指定します。
var entry = new ECHO.Blogs.EntryObject("ブログインスタンスID");
既存の記事をオブジェクトとして生成するには、コンストラクタの第二引数に記事IDを指定します。
var entry = new ECHO.Blogs.EntryObject("ブログインスタンスID", "記事ID");
オブジェクトフィールド
記事オブジェクトは、以下のフィールドを持ちます。
フィールド名 | 型 | 説明 | 変更 |
---|---|---|---|
refid | String | 記事ID | ◯ |
url | String | URL | × |
url_path | String | URLパス | × |
title | String | 記事タイトル | ◯ |
description | String | 概要 | ◯ |
keywords | String | キーワード | ◯ |
robots | String | 検索エンジンロボット制御 | ◯ |
contents | Object | 記事コンテンツ | ◯ |
link_status | Number | リンク設定値 | ◯ |
owner | String | 所有ユーザー名 | × |
modified | Date | 最終更新日時 | × |
modified_user | String | 最終更新ユーザー名 | × |
created | Date | 作成日時 | × |
published | Date | 記事日時 | ◯ |
categories | Array <ECHO.ContentsCategoryObject> |
所属カテゴリ | ◯ |
変更不可フィールドは、サーバーから提供される静的な情報です。
フィールドからデータを取得する
フィールドからデータを取得する場合は、getメソッドを使用します。
var title = entry.get("title");
Date(日時)型のフィールドからデータを取得する
Date型のフィールドからデータを取得する場合は、getDateメソッドを使用します。
var created = entry.getDate("created");
フィールドにデータをセットする
オブジェクトのフィールドにデータをセットするには、putメソッドを使用します。
entry.put("title", "新しい記事");
entry.put("contents", {name:"記事コンテンツです。"});
アーカイブへ記事を保存する
サーバー上のアーカイブへ記事を保存するには、pushメソッドを使用します。
var entry = new ECHOEntryObject("ブログインスタンスID");
entry.put("title", "新しい記事"); // 記事のタイトルをセット
entry.put("refid", "20150305"); // 記事IDをセット
....
// 記事を保存
var promise = entry.push();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Complete: " + error);
});
アーカイブから記事を取得する
サーバー上のアーカイブに存在する既存の記事を取得するには、fetchメソッドを使用します。
var entry = new ECHO.Blogs.EntryObject("ブログインスタンスID", "記事ID");
// 記事データを取得
var promise = entry.fetch();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Complete: " + error);
});
アーカイブから記事を削除する
サーバー上のアーカイブに存在する既存の記事を削除するには、deleteメソッドを使用します。
var entry = new ECHO.Blogs.EntryObject("ブログインスタンスID", "記事ID");
// 記事データを削除var promise = entry.delete();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Complete: " + error);
});
アーカイブから記事を検索する
サーバー上のアーカイブから記事を検索するには、ECHO.Blogs.findメソッドを使用します。
検索条件は、第二引数にリスト制御パラメータを指定します。
// 記事一覧を取得
var promise = ECHO.Blogs.find("ブログインスタンスID", {q:"検索キーワード"});
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Complete: " + error);
});
現在のACLを取得する
オブジェクトに現在設定されているACLを取得するには、getACLメソッドを使用します。
var current_acl = entry.getACL();
ACLを変更する
オブジェクトに新しいACLを設定するには、setNewACLメソッドを使用します。
var new_acl = new ECHO.ACL(); // ACLオブジェクトを生成
new_acl.putEntryForAll(new ECHO.ACL.Entry(false, false, false, false)); // 例:非ログイン訪問者の操作権限を全て奪う
entry.setNewACL(new_acl); // 新しいACLをセット
entry.push(); // セットしたACLを反映させるには、最後に必ず保存を実行してください