示例#1
0
function render_single_member_selector(Dimension $dimension, $genid = null, $selected_member_ids = null, $options = array(), $default_view = true)
{
    if (is_null($genid)) {
        $genid = gen_id();
    }
    $dim_info = array('dimension_id' => $dimension->getId(), 'dimension_code' => $dimension->getCode(), 'dimension_name' => $dimension->getName(), 'is_manageable' => $dimension->getIsManageable(), 'is_required' => array_var($options, 'is_required'), 'is_multiple' => array_var($options, 'is_multiple'));
    $dimensions = array($dim_info);
    if (!is_array($selected_member_ids)) {
        $selected_member_ids = array();
    }
    foreach ($selected_member_ids as $k => &$v) {
        if (!is_numeric($v)) {
            unset($selected_member_ids[$k]);
        }
    }
    if (count($selected_member_ids) > 0) {
        $sql = "SELECT m.id FROM " . TABLE_PREFIX . "members m WHERE m.id IN (" . implode(',', $selected_member_ids) . ") AND m.dimension_id=" . $dimension->getId();
        $clean_sel_member_ids = array_flat(DB::executeAll($sql));
        $selected_member_ids = $clean_sel_member_ids;
    }
    $content_object_type_id = array_var($options, 'content_object_type_id');
    $initial_selected_members = $selected_member_ids;
    if (is_null($selected_member_ids)) {
        $selected_member_ids = array();
    }
    // Set view variables
    $selected_members = count($selected_member_ids) > 0 ? Members::findAll(array('conditions' => 'id IN (' . implode(',', $selected_member_ids) . ')')) : array();
    $selected_members_json = "[" . implode(',', $selected_member_ids) . "]";
    $component_id = "{$genid}-member-selectors-panel-{$content_object_type_id}";
    $listeners = array_var($options, 'listeners', array());
    $allowed_member_type_ids = array_var($options, 'allowedMemberTypes', null);
    $hide_label = array_var($options, 'hide_label', false);
    if (isset($options['label'])) {
        $label = $options['label'];
    }
    // Render view
    include get_template_path("components/multiple_dimension_selector", "dimension");
}