商品の並べ替え私はPortfolioItemPage
と呼ばれるページ・タイプを持っている:SilverStripeは - タグ
<?php
class PortfolioItemPage extends Page {
private static $many_many = array(
'MediaTypeTags' => 'MediaTypeTag'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
if ($this->ID) {
$fields->addFieldToTab('Root.Media Type Tags', CheckboxSetField::create(
'MediaTypeTags',
'Media Type Tags',
MediaTypeTag::get()->map()
));
}
return $fields;
}
}
私はDataObjectを(MediaTypeTag
)は別々のタブとして、このページ・タイプにマップされています。これは、並べ替えの目的で特定のメディアタイプタグを各ポートフォリオアイテムページに関連付けたいからです。 (これはブログではなく、ソート/フィルタリングできるアイテムのページです)。
PortfolioItemPage
ベースを選択してMediaTypeTags
をソートする機能が問題になりました。
(function($) {
$(document).ready(function() {
var media = $('.media');
media.each(function(e) {
$(this).bind('click', function(e) {
e.preventDefault();
$(this).toggleClass('selectedTag');
sendMediaTag($(this).attr('id'));
}.bind($(this)));
});
function sendMediaTag(mediaTag){
$.ajax({
type: "POST",
url: "/home/getByMediaTag/"+mediaTag,
dataType: "json"
}).done(function (response) {
for(var i=0; i < response.length; i++){
//sort through the response items here
}
});
}
});
}(jQuery));
しかし、それはgetByMediaTag
機能に来るとき、私はすべてつかむするかどうかはわかりません。私は、選択したメディアタイプのタグのIDに引き出し、それをサーバに渡しているその場所でのjQueryを持っていますMediaTypeTag
によってIDはPortfolioItemPages
です。データベースには、対応するMediaTypeTag IDを持つPortfolioItemPage IDを格納するPorfolioItemPage_MediaTypeTags
という別のテーブルがありますが、その情報にアクセスする方法がわかりません。これは私がこれまで持っているものです:
//get all Portfolio Items by media tag(s)
public function getByMediaTag(){
$mediaID = $this->getRequest()->param('ID');
//get an array of PortfolioItemPage based on value of $mediaID
$return = array();
foreach($portfolioItems as $portfolioItem){
$return[] = array(
'thumbnail' => $portfolioItem->Thumbnail()->Link(),
'name' => $portfolioItem->H1,
'logo' => $portfolioItem->Logo()->Link(),
'excerpt' => $portfolioItem->Excerpt,
'id' => $portfolioItem->ID
);
}
return json_encode($return);
}
?
MediaTypeTagには、PortfolioItemPageへのbelongs_many_manyがありますか? – wmk
これは問題を解決したようですが、PortfolioItemPageタブにMediaTypeTag管理モデルを追加します。これはむしろ非表示にします。私はこのタブを何らかの方法で削除/非表示にすることができますか? –