Пример #1
0
 public function appProject($lang, $slug)
 {
     $project = Dic::valueBySlugs('projects', $slug, ['fields', 'textfields']);
     #Helper::tad($project);
     if (!$project) {
         App::abort(404);
     }
     $project = DicLib::loadImages($project, ['image']);
     $project_page = Page::by_id($project->page_id);
     #Helper::tad($project_page);
     if (!$project_page) {
         App::abort(404);
     }
     $prev_project = null;
     $next_project = null;
     $prev_project = Dic::valuesBySlug('projects', function ($query) use($project) {
         $query->where('lft', '<', $project->lft);
         $query->orderBy('lft', 'ASC');
         $query->take(1);
     }, ['fields', 'textfields'], true, true, true);
     #Helper::ta($prev_project);
     $next_project = Dic::valuesBySlug('projects', function ($query) use($project) {
         $query->where('lft', '>', $project->lft);
         $query->orderBy('lft', 'ASC');
         $query->take(1);
     }, ['fields', 'textfields'], true, true, true);
     #Helper::tad($next_project);
     return View::make(Helper::layout('project'), compact('project', 'project_page', 'prev_project', 'next_project'));
 }
Пример #2
0
 public static function getSidebarModules()
 {
     $start_page = AuthAccount::getStartPage();
     $menu = array();
     ## Modules info
     $mod_info = Config::get('mod_info');
     $mod_menu = Config::get('mod_menu');
     #Helper::dd($mod_info);
     #Helper::d($mod_menu);
     $dic_entities = array();
     if (class_exists('AdminDicvalsController')) {
         $entity_dics = Dic::where('entity', '1')->orderBy(DB::raw('-`order`'), 'DESC')->get();
         #Helper::tad($entity_dics);
         if (count($entity_dics)) {
             $controller = new AdminDicvalsController();
             foreach ($entity_dics as $entity_dic) {
                 if (!$controller->is_available($entity_dic)) {
                     continue;
                 }
                 $dic_entities[$entity_dic->slug] = array(array('title' => $entity_dic->name, 'link' => Helper::clearModuleLink(URL::route('entity.index', $entity_dic->slug)), 'class' => $entity_dic->icon_class, 'module' => 'dictionaries', 'permit' => 'dicval_entity_view'));
             }
             ##$dic_entities += $mod_menu;
             ##$mod_menu = $dic_entities;
             #Helper::d($dic_entities);
             #Helper::dd($mod_menu);
         }
     }
     ## If exists menu elements...
     if (isset($mod_menu) && is_array($mod_menu) && count($mod_menu)) {
         #foreach( $mod_menu as $mod_name => $menu_elements ) {
         foreach ((array) @$dic_entities + Allow::modules() as $mod_name => $module) {
             #Helper::d($mod_name);
             ## Hardcode...
             $menu_elements = @is_object($module) && @is_array($mod_menu[$mod_name]) ? $mod_menu[$mod_name] : $module;
             if (is_array($menu_elements) && count($menu_elements)) {
                 #Helper::d($mod_name); #continue;
                 #Helper::d($menu_elements); #continue;
                 foreach ($menu_elements as $m => $menu_element) {
                     #Helper::d($menu_element); #continue;
                     ## If permit to view menu element
                     $rules = @$menu_element['permit'];
                     $module = @$menu_element['module'] ?: $mod_name;
                     $permit = $rules ? Allow::action($module, $rules, true, false) : true;
                     #Helper::d($module . " :: " . $permit . " :: " . $rules);
                     #Helper::d( $menu_element['title'] . " - " . (int)$permit );
                     if ($permit) {
                         $menu[] = $menu_element;
                     }
                 }
             }
         }
     }
     #Helper::dd($menu);
     return $menu;
 }
Пример #3
0
?>
@extends(Helper::layout())
<?php 
$route = Route::current();
#dd($route);
$id = $route->getParameter('id');
$event = Dic::valueBySlugAndId('events', $id, ['fields', 'textfields']);
if (!$event) {
    echo json_encode(['responseType' => 'error', 'responseCode' => 404]);
    return;
}
$event = DicLib::loadImages($event, ['image', 'header_img']);
#Helper::tad($event);
$others_events = Dic::valuesBySlug('events', function ($query) use($event) {
    #$query->where('id', '!=', $event->id);
    $query->filter_by_field('date_start', '>=', date('Y-m-d'));
    $query->order_by_field('date_start', 'asc');
    $query->take(5);
}, ['fields', 'textfields']);
$others_events = DicLib::loadImages($others_events, ['image']);
#Helper::tad($others_news);
?>


@section('style')
@stop


@section('content')

    <section class="b-title " style="background-image: url({{ isset($event->header_img) && is_object($event->header_img) ? $event->header_img->full() : '' }});">
 public function postAjaxCheckDicvalSlugUnique()
 {
     $input = Input::all();
     #Helper::dd(Input::all());
     $json_request = array('status' => FALSE, 'responseText' => '');
     $dic_id = Input::get('_dic_id');
     $dic = Dic::find($dic_id);
     /**
      * Если словарь не найден - сообщаем об ошибке
      */
     if (!is_object($dic)) {
         $json_request['responseText'] = 'Вы пытаетесь добавить запись в несуществующую сущность';
         return Response::json($json_request, 200);
     }
     $id = Input::get('_id');
     $slug = trim(Input::get('slug'));
     $name = Input::get('name');
     $element = new DicVal();
     if ($id) {
         $element = DicVal::find($id);
     }
     if (!is_object($element)) {
         $element = new DicVal();
     }
     switch ((int) $dic->make_slug_from_name) {
         case 1:
             $input['slug'] = Helper::translit($input['name']);
             break;
         case 2:
             if (!$dic->hide_slug && !@$input['slug']) {
                 $input['slug'] = Helper::translit($input['name']);
             }
             break;
         case 3:
             if ($dic->hide_slug && $element->slug == '') {
                 $input['slug'] = Helper::translit($input['name']);
             }
             break;
         case 4:
             $input['slug'] = Helper::translit($input['name'], false);
             break;
         case 5:
             if (!$dic->hide_slug && !@$input['slug']) {
                 $input['slug'] = Helper::translit($input['name'], false);
             }
             break;
         case 6:
             if ($dic->hide_slug && $element->slug == '') {
                 $input['slug'] = Helper::translit($input['name'], false);
             }
             break;
         case 7:
             $input['slug'] = $input['name'];
             break;
         case 8:
             if (!$dic->hide_slug && !@$input['slug']) {
                 $input['slug'] = $input['name'];
             }
             break;
         case 9:
             if ($dic->hide_slug && $element->slug == '') {
                 $input['slug'] = $input['name'];
             }
             break;
     }
     $new_slug = $input['slug'];
     $json_request['new_slug'] = $new_slug;
     #Helper::d($new_slug);
     #Helper::tad($input);
     /**
      * Ищем записи в текущем словаре с новым системным именем
      */
     $dicval = DicVal::where('slug', $new_slug)->where('dic_id', $dic_id);
     /**
      * Если мы редактируем существующую запись - исключаем ее ID из проверки
      */
     if ($element->id) {
         $dicval = $dicval->where('id', '!=', $element->id);
     }
     $dicval = $dicval->first();
     #Helper::ta($dicval);
     if (is_object($dicval)) {
         $json_request['responseText'] = 'Запись с таким системным именем уже существует';
         $json_request['also_exists'] = $dicval->id;
     } else {
         $json_request['status'] = TRUE;
     }
     return Response::json($json_request, 200);
 }
Пример #5
0
 public function ajaxChangeCity()
 {
     $city_id = Input::get('city_id');
     $response = ['status' => false, 'errorText' => ''];
     $user_city_cache_key = self::$user_city_cache_key;
     $user_city_cache_min = self::$user_city_cache_min;
     if (is_numeric($city_id)) {
         $city = Dic::valueBySlugAndId('city', $city_id, 'all');
         if (is_object($city) && $city->id) {
             Session::set($user_city_cache_key, $city->id);
             setcookie('change_city', true, time() + 60 * $user_city_cache_min, '/');
             $response['status'] = true;
             $response['session'] = Session::all();
         } else {
             $response['errorText'] = 'wrong city_id';
         }
     } else {
         $response['errorText'] = 'bad city_id';
     }
     return Response::json($response);
 }
Пример #6
0
<?
/**
 * TITLE: Меню
 * AVAILABLE_ONLY_IN_ADVANCED_MODE
 */
?>
<?php 
$categories = Dic::valuesBySlug('product_category', function ($query) {
    $query->orderBy("dictionary_values.lft");
}, 'all', TRUE);
$current_category = array();
if ($page->sysname == 'menu') {
    echo json_encode(['responseType' => 'redirect', 'redirectUrl' => URL::route('page.category_menu', array('category' => $categories->first()->slug)), 'redirectCode' => 301]);
    return;
} elseif ($page->sysname == 'category_menu') {
    $current_category_slug = Request::segment(2);
    foreach ($categories as $category) {
        if ($category->slug == $current_category_slug) {
            $current_category = $category;
            break;
        }
    }
}
if (!is_object($current_category)) {
    echo json_encode(['responseType' => 'redirect', 'redirectUrl' => URL::route('page.category_menu', array('category' => $categories->first()->slug)), 'redirectCode' => 301]);
    return;
}
?>
@section('title'){{{ $current_category->seo->title }}}@stop
@section('description'){{{ $current_category->seo->description }}}@stop
@section('keywords'){{{ $current_category->seo->keywords }}}@stop
Пример #7
0
    #Helper::tad($dics);
    Config::set('temp.index_dics', $dics);
    ## Получаем список с нужными индексами
    $cities = Dic::makeLists($dics['city']['values_no_conditions'], null, 'name', 'id');
    #Helper::ta($cities);
    Config::set('temp.cities', $cities);
    ## Получаем список с нужными индексами
    $types = Dic::makeLists($dics['type']['values_no_conditions'], null, 'name', 'id');
    #Helper::ta($types);
    Config::set('temp.types', $types);
    /**
     * Создаем списки из полученных данных
     */
    $dic_ids = Dic::makeLists($dics, false, 'id');
    #Helper::d($dic_ids);
    $dicval_ids = Dic::makeLists($dicvals, false, 'id');
    #Helper::d($dicval_ids);
    /**
     * Получаем количество необходимых нам данных, одним SQL-запросом.
     * Сохраняем данные в конфиг - для дальнейшего использования в функции-замыкании actions (см. выше).
     */
    $counts = array();
    if (count($dic_ids) && count($dicval_ids)) {
        $counts = DicVal::counts_by_fields($dic_ids, array('course_id' => $dicval_ids));
    }
    #Helper::dd($counts);
    Config::set('temp.index_counts', $counts);
}, 'after_store_update_destroy_order' => function ($dic = NULL, $dicval = NULL) {
    Cache::forget('dic_' . $dic->slug);
}), 'second_line_modifier' => function ($line, $dic, $dicval) {
    #Helper::ta($dicval);
Пример #8
0
## Paginator Set Current Page - It is WORK!!
## http://stackoverflow.com/questions/17386641/specify-a-page-for-pagination-laravel-4
##
$current_page = Input::get('tab') == 'blog' ? Input::get('page') : 1;
Paginator::setCurrentPage($current_page);
$blogs = Dic::valuesBySlug('blog', function ($query) {
    $query->orderBy('created_at', 'desc');
}, ['fields', 'textfields'], true, true, true, 6);
$blogs = DicLib::loadImages($blogs, ['image']);
#Helper::tad($blogs);
#dd($blogs);
$current_page = Input::get('tab') == 'events' ? Input::get('page') : 1;
Paginator::setCurrentPage($current_page);
$events = Dic::valuesBySlug('events', function ($query) use($current_city) {
    $query->filter_by_field('city_id', '=', $current_city->id);
    $query->filter_by_field('date_start', '>=', date('Y-m-d'));
    $query->order_by_field('date_start', 'asc');
}, ['fields', 'textfields'], true, true, true, 1);
$events = DicLib::loadImages($events, ['image']);
#Helper::tad($events);
#dd($events);
Paginator::setCurrentPage(1);
$current_tab = 'blog';
if (Input::get('tab') == 'events') {
    $current_tab = Input::get('tab');
} elseif (Input::get('tab') == 'social') {
    $current_tab = Input::get('tab');
}
?>

Пример #9
0
<?php

return array('fields' => function () {
    /**
     * Предзагружаем нужные словари с данными, по системному имени словаря, для дальнейшего использования.
     * Делается это одним SQL-запросом, для снижения нагрузки на сервер БД.
     */
    $dics_slugs = array('city', 'course');
    $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);
    return array('company' => array('title' => 'Компания', 'type' => 'text'), 'position' => array('title' => 'Должность', 'type' => 'text'), 'quote' => array('title' => 'Цитата в шапке', 'type' => 'textarea'), 'header_img' => array('title' => 'Изображение в шапке', 'type' => 'image', 'params' => array('maxFilesize' => 4)), 'avatar' => array('title' => 'Аватар', 'type' => 'image', 'params' => array('maxFilesize' => 4)), 'gender' => array('title' => 'Пол', 'type' => 'select', 'values' => Config::get('site.genders')), 'short' => array('title' => 'Короткий текст', 'type' => 'textarea'), 'full' => array('title' => 'Полный текст', 'type' => 'textarea_redactor'), 'city_id' => array('title' => 'Город', 'type' => 'select', 'values' => $lists['city'], 'default' => Input::get('filter.fields.city_id') ?: null), 'course_id' => array('title' => 'Обучался на курсе', 'type' => 'select', 'values' => array('Выберите..') + $lists['course'], 'default' => Input::get('filter.fields.course_id') ?: null), '-' => array('type' => 'custom', 'content' => '<br/><strong>ИЛИ</strong><br/><br/>'), 'course_text' => array('title' => 'Название курса', 'type' => 'text'), 'fb_link' => array('title' => 'Facebook', 'type' => 'text', 'others' => ['placeholder' => 'http://']), 'vk_link' => array('title' => 'VKontakte', 'type' => 'text', 'others' => ['placeholder' => 'http://']), 'ig_link' => array('title' => 'Instagram', 'type' => 'text', 'others' => ['placeholder' => 'http://']), 'tw_link' => array('title' => 'Twitter', 'type' => 'text', 'others' => ['placeholder' => 'http://']), 'yt_link' => array('title' => 'YouTube', 'type' => 'text', 'others' => ['placeholder' => 'http://']), 'mainpage' => array('no_label' => true, 'title' => 'Показывать на главной', 'type' => 'checkbox', 'label_class' => 'normal_checkbox'));
}, 'hooks' => array('after_store_update_destroy_order' => function ($dic = NULL, $dicval = NULL) {
    Cache::forget('dic_' . $dic->slug);
}));
Пример #10
0
 public static function by_id($id)
 {
     Dic::preload();
     $cache_key = self::$cache_key;
     $dics = Config::get($cache_key);
     $dic = @$dics['by_id'][$id];
     return $dic ?: NULL;
 }
Пример #11
0
<?php

return array('fields' => function () {
    /**
     * Предзагружаем нужные словари с данными, по системному имени словаря, для дальнейшего использования.
     * Делается это одним SQL-запросом, для снижения нагрузки на сервер БД.
     */
    $dics_slugs = array('city', 'course');
    $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);
    return array('email' => array('title' => 'E-mail', 'type' => 'text'), 'phone' => array('title' => 'Телефон', 'type' => 'text'), 'course_id' => array('title' => 'Курс', 'type' => 'select', 'values' => $lists['course'], 'default' => Input::get('filter.fields.course_id') ?: null), 'city_id' => array('title' => 'Город', 'type' => 'select', 'values' => $lists['city'], 'default' => Input::get('filter.fields.city_id') ?: null));
}, 'hooks' => array('before_index_view' => function ($dic, $dicvals) {
    $temp = Dic::valuesBySlug('city', null, [], true, true, true);
    #Helper::tad($temp);
    Config::set('temp.city', $temp);
    $temp = Dic::valuesBySlug('course', null, [], true, true, true);
    #Helper::tad($temp);
    Config::set('temp.course', $temp);
}, 'after_store_update_destroy_order' => function ($dic = NULL, $dicval = NULL) {
    Cache::forget('dic_' . $dic->slug);
}), 'second_line_modifier' => function ($line, $dic, $dicval) {
    #Helper::ta($dicval);
    $cities = Config::get('temp.city');
    $courses = Config::get('temp.course');
    return (isset($cities[$dicval->city_id]) && is_object($cities[$dicval->city_id]) ? $cities[$dicval->city_id]->name : '') . ' - ' . (isset($courses[$dicval->course_id]) && is_object($courses[$dicval->course_id]) ? $courses[$dicval->course_id]->name : '');
});
 public static function returnRoutes($prefix = null)
 {
     ## Предзагружаем все словари (с кешированием)
     Dic::preload();
     #Helper::tad(Cache::get('app.dics'));
 }
 public function manage($id)
 {
     Allow::permission($this->module['group'], $this->module['name']);
     $element = Storage::find($id);
     if (!is_object($element)) {
         App::abort(404);
     }
     $element->extract();
     #Helper::tad($element);
     #Helper::dd($element->items->{5}->title);
     /*
     Helper::dd(
         StringView::make(
             array(
                 'template'  => $element->items->{5}->title,
                 'cache_key' => sha1($element->items->{5}->title),
                 'updated_at' => time()
             ),
             array('key' => 'val')
         )->render()
     );
     */
     #Helper::dd(StringView::force($element->items->{5}->title));
     $pages = Page::where('version_of', NULL)->orderBy('created_at', 'DESC')->get();
     $pages = Dic::modifyKeys($pages, 'id');
     #Helper::ta($pages);
     /**
      * Убираем из набора ссылок меню те страницы, которых несуществует (скорее всего они были удалены)
      */
     #/*
     if (isset($element->items) && count($element->items) && $pages !== NULL && count($pages)) {
         foreach ($element->items as $i => $item) {
             if (!is_object($item) || $item->type != 'page') {
                 continue;
             }
             #Helper::d($i);
             #Helper::d($item);
             if (!isset($pages[$item->page_id])) {
                 unset($element->items->{$i});
             }
         }
         #Helper::tad($element);
     }
     #*/
     $functions = array();
     $temp = Config::get('menu.functions');
     if (count($temp)) {
         foreach ($temp as $name => $closure) {
             $result = $closure();
             $functions[$name] = is_array($result) && isset($result['text']) ? @$result['text'] . " (" . $name . ")" : $name;
         }
     }
     return View::make($this->module['tpl'] . 'manage', compact('element', 'pages', 'functions'));
 }
Пример #14
0
<?
/**
 * TITLE: Главная страница
 * AVAILABLE_ONLY_IN_ADVANCED_MODE
 */
?>
<?php 
$sliders = Dic::valuesBySlug('slider_in_main', function ($query) {
    $query->orderBy("dictionary_values.lft");
}, 'all', TRUE);
$images = array();
if (count($sliders)) {
    $images_ids = array();
    foreach ($sliders as $index => $slider) {
        if (!empty($slider->slide)) {
            $images_ids[] = $slider->slide;
        }
    }
    if (!empty($images_ids)) {
        foreach (Photo::whereIn('id', $images_ids)->get() as $image) {
            $images[$image->id] = $image->name;
        }
    }
}
?>
@extends(Helper::layout())
@section('style')
@stop
@section('content')
    @if(count($sliders))
        <div id="carousel" class="cf" style="margin-bottom: 0;">
Пример #15
0
    if ($real_city) {
        ## Редирект на нужный адрес
        echo json_encode(['responseType' => 'redirect', 'redirectUrl' => URL::route('page.course', [$real_city->slug, $course_id])]);
        return;
    } else {
        ## 404
        echo json_encode(['responseType' => 'error', 'responseCode' => 404]);
        return;
    }
}
#$course->load('related_dicvals'); ## пусто
#Helper::tad($course);
$teacher = isset($dic_teachers[$course->teacher_id]) ? $dic_teachers[$course->teacher_id] : null;
#Helper::tad($teacher);
$lessons = Dic::valuesBySlug('lessons', function ($query) use($course) {
    $query->filter_by_field('course_id', '=', $course->id);
}, 'all', true, true, true);
#Helper::tad($lessons);
$students_works = new Collection();
if (isset($dic_students_work) && is_object($dic_students_work) && $dic_students_work->count()) {
    foreach ($dic_students_work as $work) {
        if ($work->type_id == $course->type_id) {
            $students_works[] = $work;
        }
    }
}
#Helper::tad($students_works);
$reviews = new Collection();
if (isset($dic_reviews) && is_object($dic_reviews) && $dic_reviews->count()) {
    foreach ($dic_reviews as $review) {
        if ($review->course_id == $course->id) {
Пример #16
0
 /**
  * !!! NEED TO ADD RELATED_DICVALS SUPPORT !!!
  *
  * @param $dic_slug
  * @param $dicval_id
  * @param $array
  *
  * @return bool|\Illuminate\Support\Collection|null|static
  */
 public static function refresh($dic_slug, $dicval_id, $array)
 {
     #Helper::d($dic_slug);
     #Helper::d($array);
     ## Find DIC
     $dic = Dic::where('slug', $dic_slug)->first();
     if (!is_object($dic)) {
         return false;
     }
     ## Find dicval
     $dicval = DicVal::find($dicval_id);
     if (!is_object($dicval)) {
         return false;
     }
     if ($dicval->dic_id != $dic->id) {
         $dicval->dic_id = $dic->id;
     }
     if (isset($array['slug'])) {
         $dicval->slug = $array['slug'];
     }
     if (isset($array['name'])) {
         $dicval->name = $array['name'];
     }
     $dicval->save();
     ## UPDATE FIELDS
     if (@isset($array['fields']) && is_array($array['fields']) && count($array['fields'])) {
         #$fields = new Collection();
         foreach ($array['fields'] as $key => $value) {
             $dicval_field_search_array = array('dicval_id' => $dicval->id, 'key' => $key);
             if (is_array($value) && isset($value['language'])) {
                 $dicval_field_search_array['language'] = @$value['language'] ?: NULL;
             }
             $dicval_field = DicFieldVal::firstOrNew($dicval_field_search_array);
             $dicval_field->value = is_array($value) ? @$value['value'] : $value;
             $dicval_field->save();
             #$fields[] = $dicval_field;
         }
         #$dicval->relations['fields'] = $fields;
     }
     ## CREATE FIELDS_I18N
     if (@isset($array['fields_i18n']) && is_array($array['fields_i18n']) && count($array['fields_i18n'])) {
         #$fields_i18n = new Collection();
         foreach ($array['fields_i18n'] as $locale_sign => $fields) {
             if (!@is_array($fields) || !@count($fields)) {
                 continue;
             }
             #$temp = new Collection();
             foreach ($fields as $key => $value) {
                 $dicval_field_search_array = array('dicval_id' => $dicval->id, 'language' => $locale_sign, 'key' => $key);
                 $dicval_field = DicFieldVal::firstOrNew($dicval_field_search_array);
                 $dicval_field->value = is_array($value) ? @$value['value'] : $value;
                 $dicval_field->save();
                 #$temp[] = $dicval_field_i18n;
             }
             #$fields_i18n[$locale_sign] = $temp;
         }
         #$dicval->relations['fields_i18n'] = $fields_i18n;
     }
     ## CREATE TEXT FIELDS
     if (@isset($array['textfields']) && is_array($array['textfields']) && count($array['textfields'])) {
         #$textfields = new Collection();
         foreach ($array['textfields'] as $key => $value) {
             $dicval_field_search_array = array('dicval_id' => $dicval->id, 'key' => $key);
             if (is_array($value) && isset($value['language'])) {
                 $dicval_field_search_array['language'] = @$value['language'] ?: NULL;
             }
             $dicval_field = DicTextFieldVal::firstOrNew($dicval_field_search_array);
             $dicval_field->value = is_array($value) ? @$value['value'] : $value;
             $dicval_field->save();
             #$textfields[] = $dicval_textfield;
         }
         #$dicval->relations['textfields'] = $textfields;
     }
     ## CREATE TEXT FIELDS_I18N
     if (@isset($array['textfields_i18n']) && is_array($array['textfields_i18n']) && count($array['textfields_i18n'])) {
         #$textfields_i18n = new Collection();
         foreach ($array['textfields_i18n'] as $locale_sign => $textfields) {
             if (!@is_array($textfields) || !@count($textfields)) {
                 continue;
             }
             #$temp = new Collection();
             foreach ($textfields as $key => $value) {
                 $dicval_field_search_array = array('dicval_id' => $dicval->id, 'language' => $locale_sign, 'key' => $key);
                 $dicval_field = DicTextFieldVal::firstOrNew($dicval_field_search_array);
                 $dicval_field->value = is_array($value) ? @$value['value'] : $value;
                 $dicval_field->save();
                 #$temp[] = $dicval_textfield_i18n;
             }
             #$textfields_i18n[$locale_sign] = $temp;
         }
         #$dicval->relations['textfields_i18n'] = $textfields_i18n;
     }
     ## CREATE META
     if (@isset($array['meta']) && is_array($array['meta']) && count($array['meta'])) {
         #$metas = new Collection();
         foreach ($array['meta'] as $locale_sign => $fields) {
             if (!@is_array($fields) || !@count($fields)) {
                 continue;
             }
             $temp = new Collection();
             foreach ($fields as $key => $value) {
                 $dicval_field_search_array = array('dicval_id' => $dicval->id, 'language' => $locale_sign);
                 $dicval_field = DicValMeta::firstOrNew($dicval_field_search_array);
                 $dicval_field->name = is_array($value) ? @$value['name'] : $value;
                 $dicval_field->save();
                 #$temp[] = $dicval_meta;
             }
             #$metas[$locale_sign] = $temp;
         }
         #$dicval->relations['metas'] = $metas;
     }
     $dicval->load('allfields', 'alltextfields', 'metas');
     ## RETURN DICVAL
     return $dicval;
 }
Пример #17
0
 public function postClear($dic_id)
 {
     #Helper::tad($dic_id);
     #Helper::tad(URL::route('dicval.index', ['dic_id' => $dic_id]));
     $dic = Dic::by_id($dic_id);
     $dicvals = Dic::valuesBySlug($dic->slug, NULL, []);
     #Helper::tad($dicvals);
     $adc = new AdminDicvalsController();
     if (count($dicvals)) {
         foreach ($dicvals as $dicval) {
             $id = $dicval->id;
             $adc->full_destroy($dic_id, $id);
         }
     }
     return Redirect::route('dicval.index', ['dic_id' => $dic_id]);
 }
Пример #18
0
?>
@extends(Helper::layout())
<?php 
$route = Route::current();
#dd($route);
$id = $route->getParameter('id');
$record = Dic::valueBySlugAndId('blog', $id, ['fields', 'textfields']);
if (!$record) {
    echo json_encode(['responseType' => 'error', 'responseCode' => 404]);
    return;
}
$record = DicLib::loadImages($record, ['image', 'header_img']);
#Helper::tad($record);
$others_news = Dic::valuesBySlug('blog', function ($query) use($record) {
    $query->where('id', '!=', $record->id);
    $query->orderBy('created_at', 'desc');
    $query->take(5);
}, ['fields', 'textfields']);
$others_news = DicLib::loadImages($others_news, ['image']);
#Helper::tad($others_news);
?>


@section('style')
@stop


@section('content')

    <section class="b-title " style="background-image: url({{ isset($record->header_img) && is_object($record->header_img) ? $record->header_img->full() : '' }});">
Пример #19
0
<?php

return array('fields' => function () {
    /**
     * Предзагружаем нужные словари с данными, по системному имени словаря, для дальнейшего использования.
     * Делается это одним SQL-запросом, для снижения нагрузки на сервер БД.
     */
    $dics_slugs = array('city');
    $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);
    return array('city_id' => array('title' => 'Город', 'type' => 'select', 'values' => $lists['city'], 'default' => Input::get('filter.fields.city_id') ?: null));
}, 'hooks' => array('before_index_view' => function ($dic, $dicvals) {
    $temp = Dic::valuesBySlug('city', null, [], true, true, true);
    #Helper::tad($temp);
    Config::set('temp.city', $temp);
}, 'after_store_update_destroy_order' => function ($dic = NULL, $dicval = NULL) {
    Cache::forget('dic_' . $dic->slug);
}), 'second_line_modifier' => function ($line, $dic, $dicval) {
    #Helper::ta($dicval);
    $cities = Config::get('temp.city');
    return isset($cities[$dicval->city_id]) && is_object($cities[$dicval->city_id]) ? $cities[$dicval->city_id]->name : '';
});