Пример #1
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;
 }
Пример #2
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;
 }