Chrome 拡張から Guest Entries をつかって Craft CMS にエントリを作成する #craftcms
このエントリの続き。
2019/4/30
開いてるページの情報をセットして送信するのはできた。
popup.html
<form method="post" action="https://note.mersy418.com/" accept-charset="UTF-8"> <input type="hidden" name="action" value="guest-entries/save"> <input type="hidden" name="sectionUid" value="xxxxxx"> <div class="form-group"> <label for="c_title">Title</label> <input type="text" name="title" id="c_title" value=""> </div> <div class="form-group"> <label for="c_url">URL</label> <input type="text" name="fields[c_url]" id="c_url" value=""> </div> <div class="form-group"> <label for="contentText">Memo</label> <textarea name="fields[contentText]" id="contentText"></textarea> </div> <button type="submit" id="submit" class="btn btn-primary" value="Publish">Submit</button> </form>
送信のactionはサイトであってた。
フィールドの指定が hundle かと思ってたら管理画面よくみたら fields[c_url] だった。
日付の指定どうするかなー、とか色々あーだこーだやってた。
postDate[date] とかで投げるのかなー、とか思ってたんだけど postDate に YYYY-MM-DD HH:MM:SS で投げればよかった。
とはいえ、今回はデフォルトのステータスを有効にしても問題なかったので、それを設定すれば投稿時刻を投げなくても自動で設定された。。。

Guest Entries の方に設定があるのを忘れてた。
こんな感じでボタンを押して

こんな感じで投稿される。

いい感じ。
タグの補完とかを引き続きやってみよう。
popup.js
(function($){
chrome.tabs.getSelected(null, function(tab){
var postCraft = {};
postCraft.title = tab.title;
postCraft.url = tab.url;
$("#c_title").val(postCraft.title)
$("#c_url").val(postCraft.url)
$("#submit").on('click', function(){
window.close();
})
});
})(jQuery);