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; }
/** * !!! 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; }