2019-05-07

Chrome 拡張から Guest Entries をつかって Craft CMS にエントリを作成する #craftcms

このエントリの続き。

開いてるページの情報をセットして送信するのはできた。

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);