Exemplo n.º 1
0
 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');
 }
Exemplo n.º 2
0
/**
 * 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);
    }
}
Exemplo n.º 3
0
    } 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);