/********************************************* * alliance_plugin.js --------------------------------------------- @constructor @init @plugin *********************************************/ /* ------------------------------------------- * @constructor ------------------------------------------- */ var u = new EPOS_CARD.Util(); // u インスタンスを作成 /* ------------------------------------------- * @init ------------------------------------------- */ //各HTMLの実行用js内で実行 /* -------------------------------- * 以下実行記述フォーマット ----------------------------------- j$(function(){ j$.get_JSON([ j$.get_Data({ category: "dining", name: ["ロイヤルホスト","モンテローザ","ダミーレストラン"] }), j$.get_Data({ category: "shopping", name: ["shopping_DUMMY01","shopping_DUMMY02","shopping_DUMMY03","shopping_DUMMY04","shopping_DUMMY05","shopping_DUMMY06","shopping_DUMMY07","shopping_DUMMY08","shopping_DUMMY09","shopping_DUMMY10"] }) ]); }); -------------------------------- */ /* ------------------------------------------- * @plugin ------------------------------------------- */ (function(j$){ /* JSONデータの取得 -------------------------------- */ j$.get_JSON = function(init){ var allData = [], i; j$.getJSON("/common-files/js/collabo/alliance_data.json", function(data){ var allData = data; for(i in init){ init[i](allData); } }); EPOS_CARD.module.equalHeight(true, true); }; /* JSONデータの絞込/吐き出し -------------------------------- */ j$.get_Data = function(config){ /* * user custom */ var c = j$.extend({ category: "", // category name: [], // ["name01","name02","name03"...] grid: 3 },config); /* * vars */ var filter_by_category = [], filter_by_name = [], catSelect = new RegExp(c.category), nameSelect, i, $target = j$('[data-category=' + c.category + ']'), BASE_HTML = "", CREATE_COL = "", arrLen = c.name.length; $target.addClass("grid" + c.grid); /* * init */ var init = function(allData){ if(arrLen === 0){ $target.remove(); return false; } // categoryで絞り込み if(c.category.match("alacarte")){ filter_by_category = allData; } else { filter_by_category = j$.grep(allData, function(element){ return element.category.match(catSelect); }); } /* * BASE_HTML */ BASE_HTML ='
'; $target.find(".allianceBlock").append(BASE_HTML); var $target2 = $target.find(".allianceLayout02"); // nameで絞り込み for(i in c.name){ nameSelect = c.name[i]; var nameReg = new RegExp("^" + nameSelect + "$"); filter_by_name = j$.grep(filter_by_category, function(element){ return element.name.match(nameReg); }); j$.each(filter_by_name, function(key,value){ var iconClass = value.icon === ""? "": " " + value.icon; CREATE_COL = '' + value.text + '
' + '