public static function getPostPersonGroups($post_id) { $groups = PersonGroup::join(PersonGroupPostModel::getTableName(), PersonGroupPostModel::getField("group_id"), '=', PersonGroup::getField("id"))->join(PersonGroupLang::getTableName(), PersonGroupLang::getField("group_id"), '=', PersonGroup::getField('id'))->where(PersonGroupLang::getField("lang_id"), \WebAPL\Language::getId())->where(PersonGroupPostModel::getField("post_id"), $post_id)->select(PersonGroupLang::getField('name'), PersonGroupLang::getField('description'), PersonGroup::getField("id"))->get(); if ($groups) { foreach ($groups as &$group) { $persons = PersonModel::personPrepare()->where(PersonRelModel::getField("group_id"), $group->id)->get(); foreach ($persons as &$person) { if ($person->feed_id) { $person['posts'] = \Post::postsFeed($person->feed_id); } else { $person['posts'] = array(); } } $group['persons'] = $persons; } } return $groups; }
/** * get list of persons for jqgrid * @return json */ public function getlist() { User::onlyHas('person-view'); $jqgrid = new jQgrid('apl_person', 'person_id'); echo $jqgrid->populate(function ($start, $limit) { $persons = PersonLangModel::select('person_id', 'first_name', 'last_name')->where('lang_id', Language::getId())->skip($start)->take($limit)->orderBy(DB::raw(\PersonLangModel::getField('first_name') . ', ' . \PersonLangModel::getField('last_name')), 'asc')->get(); foreach ($persons as &$person) { $groups = \PersonRelModel::join(\PersonGroupLang::getTableName(), \PersonRelModel::getField('group_id'), '=', \PersonGroupLang::getField('group_id'))->select(\PersonGroupLang::getField('name'))->where(\PersonRelModel::getField('person_id'), $person->person_id)->where(\PersonGroupLang::getField('lang_id'), '=', \WebAPL\Language::getId())->get(); $array_groups = []; foreach ($groups as $group) { $array_groups[] = $group->name; } $person['group'] = $array_groups ? implode(', ', $array_groups) : '---'; } return $persons; }); }