2016-04-06 4 views
0

ゴーストCMSで検索フォームを実装したい。 訪問者/ユーザーは投稿、著者、タグで検索できる必要があります。 可能であれば、ghost dbにクエリして他のpublic ghost apisと同じような結果を返すREST APIがあります。例えばapiの下には、タグと著者を含むすべての投稿がフェッチされます。検索のためのカスタムゴーストAPIの作成方法

ghost.url.api('posts', 'slug', mySlugVariable, {include: 'tags, author'}); 

だから、私は、私はいくつかの文字列を渡すとDBからすべての一致したデータを取得することができ、このような何かをしたいです。

答えて

0

jsを使用して解決しました。実際には、私は良い解決策を見つけることができなかったと私は彼らが私がjsを使用してこれを解決するために提案した彼らのゆるやかなグループのゴーストチームに質問した。だから、これは私がやったことです:ユーザーが検索フォームで何かを入力したとしてlocalStorage

localStorage.setItem('posts', JSON.stringify(data)); 

にすべてのデータを保存した

$.get(
ghost.url.api('posts', { include: 'tags, author' })) 
.done(function(data) { 
    localStorage.setItem('posts', JSON.stringify(data)); 
}) 
.fail(function(err) { 
    console.log(err); 
}); 

API呼び出し、私はその検索文字列とfiをつかむその文字列に対応するデータを受け取ります。

// get search results 
function getSearchResult(string) { 
    var postData = JSON.parse(localStorage.getItem('posts')); 
    var searchResults = postData.posts.filter(function(post) { 
    return post.markdown.match(string) 
     || post.title.match(string) 
     || post.author.name.match(string); 
    }); 

    renderSearchResults(searchResults); 
} 

はその後accordinging結果をレンダリング

function renderSearchResults(posts) { 
    // my render code 
} 
関連する問題