orbit-basic/lib/orbit_app/helper/front_end_array_params_help...

21 lines
1.1 KiB
Ruby

module FrontEndArrayParamsHelper
#Deal with multi tags and cates that could be sat at both from setting or passed by views like tag cloud.
#Take Tag as example: Those tags which be sat at setting will be pass as params 'tag_ext',and the rest will be pass as 'tag'
#But when the showing process goes to fronend or default widget itself the controller will need to know what data it should use exactly.
#That's why we need tags_and_cates
def tags_and_cates(params)
params["category_id"] = params["category_id"].collect{|t| t.gsub(/\"|\[|\]/,'').split(",").each(&:strip!)}.flatten if params["category_id"].is_a? Array
params["tag_id"] = params["tag_id"].collect{|t| t.gsub(/\"|\[|\]/,'').split(",").each(&:strip!)}.flatten if params["tag_id"].is_a? Array
params["category_id"] = [ params["base_category_id"],params["category_id"]].flatten.reject(&:nil?).reject(&:empty?)
params.delete :base_category_id
params["tag_id"] = [ params["base_tag_id"],params["tag_id"]].flatten.reject(&:nil?).reject(&:empty?)
params.delete :base_tag_id
return params
end
end