Exemple #1
0
         * Тут нужно проверить работу с новым форматом данных в DicValRel,
         * привести в соответствие с методом из scope_id.
         * Сделать это нужно при первой же необходимости использования select-multiple.
         */
        $value = (array) $value;
        $value = array_flip($value);
        foreach ($value as $v => $null) {
            $value[$v] = array('dicval_child_dic' => 'scope');
        }
        $element->related_dicvals()->sync($value);
        return @count($value);
    }, 'value_modifier' => function ($value, $element) {
        $return = is_object($element) && $element->id ? $element->related_dicvals()->get()->lists('id') : ($return = array());
        return $return;
    }), 'basic' => array('no_label' => true, 'title' => 'Чекбокс обычный', 'type' => 'checkbox', 'label_class' => 'normal_checkbox'), 'type_ids' => array('title' => 'Группа чекбоксов', 'type' => 'checkboxes', 'columns' => 2, 'values' => $lists['ontrade_types'], 'handler' => function ($value, $element, $field_name = 'type_ids') use($lists_ids) {
        $value = DicLib::formatDicValRel($value, $field_name, $element->dic_id, $lists_ids['ontrade_types']);
        #$element->related_dicvals($field_name)->sync($value);
        DicValRel::where('dicval_parent_id', $element->id)->where('dicval_parent_field', $field_name)->delete();
        if (count($value)) {
            foreach ($value as $v => $val) {
                $element->related_dicvals($field_name)->attach($v, $val);
            }
        }
        return @count($value);
    }, 'value_modifier' => function ($value, $element, $field_name = 'type_ids') {
        $return = is_object($element) && $element->id ? $element->related_dicvals($field_name)->get()->lists('name', 'id') : ($return = array());
        return $return;
    }), 'promise_id' => array('title' => 'Обещание', 'type' => 'textline', 'view_text' => @$lists['promises'][$dicval->promise_id]), 'map' => array('type' => 'custom', 'content' => View::make('system.views.map_google_block', ['element' => $dicval])->render(), 'scripts' => View::make('system.views.map_google_script', ['element' => $dicval, 'geo_prefix' => '"Россия, Ростов-на-Дону, "', 'default_lat' => '47.25221300', 'default_lng' => '39.69359700', 'default_zoom' => '11'])->render()));
}, 'menus' => function ($dic, $dicval = NULL) {
    $menus = array();
    $menus[] = array('raw' => '<br/>');
Exemple #2
0
    $dics_slugs = array('direction', 'course', 'teachers');
    $dics = Dic::whereIn('slug', $dics_slugs)->with('values')->get();
    $dics = Dic::modifyKeys($dics, 'slug');
    #Helper::tad($dics);
    $lists = Dic::makeLists($dics, 'values', 'name', 'id');
    #Helper::dd($lists);
    $lists_ids = Dic::makeLists($dics, null, 'id', 'slug');
    #Helper::dd($lists_ids);
    #Helper::ta($lists);
    #Helper::tad($dicval);
    $value_course_id = @$dicval->allfields[Config::get('app.locale')]['course_id'];
    if (!$value_course_id) {
        $value_course_id = Input::get('filter.fields.course_id');
    }
    return array('course_id' => array('title' => 'Курс', 'type' => 'select', 'values' => $lists['course'], 'default' => Input::get('filter.fields.course_id') ?: null), 'direction_id' => array('title' => 'Направление занятия', 'type' => 'select', 'values' => $lists['direction'], 'default' => Input::get('filter.fields.direction_id') ?: null), 'when' => array('title' => 'Когда', 'type' => 'text'), 'what' => array('title' => 'Что делаем', 'type' => 'textarea_redactor'), 'teacher_id' => array('title' => 'Куратор блока', 'type' => 'select', 'values' => $lists['teachers'], 'default' => Input::get('filter.fields.teacher_id') ?: null), 'teachers' => array('title' => 'Все преподаватели блока', 'type' => 'checkboxes', 'columns' => 2, 'values' => $lists['teachers'], 'handler' => function ($value, $element, $field_name = 'teachers') use($lists_ids) {
        $value = DicLib::formatDicValRel($value, $field_name, $element->dic_id, $lists_ids['teachers']);
        #$element->related_dicvals($field_name)->sync($value);
        DicValRel::where('dicval_parent_id', $element->id)->where('dicval_parent_field', $field_name)->delete();
        if (count($value)) {
            foreach ($value as $v => $val) {
                $element->related_dicvals($field_name)->attach($v, $val);
            }
        }
        return @count($value);
    }, 'value_modifier' => function ($value, $element, $field_name = 'teachers') {
        $return = is_object($element) && $element->id ? $element->related_dicvals($field_name)->get()->lists('name', 'id') : ($return = array());
        return $return;
    }), '-' => array('type' => 'custom', 'content' => '<br/><strong>ИЛИ</strong><br/><br/>'), 'col_1' => array('title' => 'Колонка 1', 'type' => 'textarea_redactor'), 'col_2' => array('title' => 'Колонка 2', 'type' => 'textarea_redactor'));
}, 'menus' => function ($dic, $dicval = NULL) {
    $menus = array();
    $menus[] = array('raw' => '<br/>');