public static function render_instance(BlockInstance $instance, $editing = false) { $groupid = $instance->get_view()->get('group'); if (!$groupid) { return ''; } $data = self::get_data($groupid); $dwoo = smarty_core(); $dwoo->assign('group', $data); $dwoo->assign('editwindow', group_format_editwindow($data)); return $dwoo->fetch('blocktype:groupinfo:groupinfo.tpl'); }
/** * Sets up groups for display in mygroups.php and find.php * * @param array $groups Initial group data, including the current user's * membership type in each group. See mygroups.php for * the query to build this information. * @param string $returnto Where forms generated for display should be told to return to */ function group_prepare_usergroups_for_display($groups, $returnto = 'mygroups') { if (!$groups) { return; } $groupids = array_map(create_function('$a', 'return $a->id;'), $groups); $groupadmins = group_get_admins($groupids); $i = 0; foreach ($groups as $group) { $group->admins = array(); foreach ($groupadmins as $admin) { if ($admin->group == $group->id) { $group->admins[] = $admin; } } if ($group->membershiptype == 'member') { $group->canleave = group_user_can_leave($group->id); } else { if ($group->membershiptype == 'invite') { $group->invite = group_get_accept_form('invite' . $i++, $group->id, $returnto); } else { if ($group->jointype == 'open') { $group->groupjoin = group_get_join_form('joingroup' . $i++, $group->id); } } } $showmembercount = !$group->hidemembersfrommembers && !$group->hidemembers || $group->membershiptype == 'member' && !$group->hidemembersfrommembers || $group->membershiptype == 'admin'; if (!$showmembercount) { unset($group->membercount); } $group->editwindow = group_format_editwindow($group); $group->settingsdescription = group_display_settings($group); } }
} else { if ($invite = get_record('group_member_invite', 'group', $group->id, 'member', $USER->get('id'))) { $group->membershiptype = 'invite'; $group->invite = group_get_accept_form('invite', $group->id, $afterjoin); } else { if ($group->jointype == 'open') { $group->groupjoin = group_get_join_form('joingroup', $group->id, $afterjoin); } else { if ($group->request and $request = get_record('group_member_request', 'group', $group->id, 'member', $USER->get('id'))) { $group->membershiptype = 'request'; } } } } } $editwindow = group_format_editwindow($group); $view = group_get_homepage_view($group->id); $viewcontent = $view->build_rows(); // Build content before initialising smarty in case pieform elements define headers. $headers = array(); if ($group->public) { $feedlink = get_config('wwwroot') . 'interaction/forum/atom.php?type=g&id=' . $group->id; $headers[] = '<link rel="alternate" type="application/atom+xml" href="' . $feedlink . '">'; } $javascript = array('paginator'); $blocktype_js = $view->get_all_blocktype_javascript(); $javascript = array_merge($javascript, $blocktype_js['jsfiles']); $inlinejs = "addLoadEvent( function() {\n" . join("\n", $blocktype_js['initjs']) . "\n});"; $headers = array_merge($headers, $view->get_all_blocktype_css()); $smarty = smarty($javascript, $headers, array(), array('stylesheets' => array('style/views.css'))); $smarty->assign('INLINEJAVASCRIPT', $inlinejs);