コード例 #1
0
ファイル: start.php プロジェクト: elgg/elgg
/**
 * Messageboard dispatcher for flat message board.
 * Profile (and eventually group) widgets handle their own.
 *
 * URLs take the form of
 *  User's messageboard:               messageboard/owner/<username>
 *  Y's history of posts on X's board: messageboard/owner/<X>/history/<Y>
 *  New post:                          messageboard/add/<guid> (container: user or group)
 *  Group messageboard:                messageboard/group/<guid>/all (not implemented)
 *
 * @param array $page Array of page elements
 * @return bool
 */
function messageboard_page_handler($page)
{
    $vars = [];
    switch ($page[0]) {
        case 'owner':
            //@todo if they have the widget disabled, don't allow this.
            $owner_name = elgg_extract(1, $page);
            $owner = get_user_by_username($owner_name);
            $vars['page_owner_guid'] = $owner->guid;
            $history = elgg_extract(2, $page);
            $username = elgg_extract(3, $page);
            if ($history && $username) {
                $vars['history_username'] = $username;
            }
            echo elgg_view_resource('messageboard/owner', $vars);
            break;
        case 'group':
            elgg_group_gatekeeper();
            $owner_guid = elgg_extract(1, $page);
            $vars['page_owner_guid'] = $owner_guid;
            echo elgg_view_resource('messageboard/owner', $vars);
            break;
        default:
            return false;
    }
    return true;
}
コード例 #2
0
ファイル: start.php プロジェクト: ibou77/elgg
/**
 * Messageboard dispatcher for flat message board.
 * Profile (and eventually group) widgets handle their own.
 *
 * URLs take the form of
 *  User's messageboard:               messageboard/owner/<username>
 *  Y's history of posts on X's board: messageboard/owner/<X>/history/<Y>
 *  New post:                          messageboard/add/<guid> (container: user or group)
 *  Group messageboard:                messageboard/group/<guid>/all (not implemented)
 *
 * @param array $page Array of page elements
 * @return bool
 */
function messageboard_page_handler($page)
{
    $pages = dirname(__FILE__) . '/pages/messageboard';
    switch ($page[0]) {
        case 'owner':
            //@todo if they have the widget disabled, don't allow this.
            $owner_name = elgg_extract(1, $page);
            $owner = get_user_by_username($owner_name);
            set_input('page_owner_guid', $owner->guid);
            $history = elgg_extract(2, $page);
            $username = elgg_extract(3, $page);
            if ($history && $username) {
                set_input('history_username', $username);
            }
            include "{$pages}/owner.php";
            break;
        case 'add':
            $container_guid = elgg_extract(1, $page);
            set_input('container_guid', $container_guid);
            include "{$pages}/add.php";
            break;
        case 'group':
            elgg_group_gatekeeper();
            $owner_guid = elgg_extract(1, $page);
            set_input('page_owner_guid', $owner_guid);
            include "{$pages}/owner.php";
            break;
        default:
            return false;
    }
    return true;
}
コード例 #3
0
ファイル: start.php プロジェクト: elgg/messageboard
/**
 * Messageboard dispatcher for flat message board.
 * Profile (and eventually group) widgets handle their own.
 *
 * URLs take the form of
 *  User's messageboard:               messageboard/owner/<username>
 *  Y's history of posts on X's board: messageboard/owner/<X>/history/<Y>
 *  New post:                          messageboard/add/<guid> (container: user or group)
 *  Group messageboard:                messageboard/group/<guid>/all (not implemented)
 *
 * @param array $page Array of page elements
 * @return bool
 */
function messageboard_page_handler($page)
{
    switch ($page[0]) {
        case 'owner':
            //@todo if they have the widget disabled, don't allow this.
            $owner_name = elgg_extract(1, $page);
            $owner = get_user_by_username($owner_name);
            set_input('page_owner_guid', $owner->guid);
            $history = elgg_extract(2, $page);
            $username = elgg_extract(3, $page);
            if ($history && $username) {
                set_input('history_username', $username);
            }
            echo elgg_view('resources/messageboard/owner');
            break;
        case 'add':
            $container_guid = elgg_extract(1, $page);
            set_input('container_guid', $container_guid);
            echo elgg_view('resources/messageboard/add');
            break;
        case 'group':
            elgg_group_gatekeeper();
            $owner_guid = elgg_extract(1, $page);
            set_input('page_owner_guid', $owner_guid);
            echo elgg_view('resources/messageboard/owner');
            break;
        default:
            return false;
    }
    return true;
}
コード例 #4
0
ファイル: page_handlers.php プロジェクト: lorea/Hydra-dev
/**
 * Handles all question pages
 *
 * @param array $segments
 *
 * @return bool
 */
function questions_page_handler($segments)
{
    elgg_push_breadcrumb(elgg_echo('questions'), 'questions/all');
    $pages = dirname(dirname(__FILE__)) . '/pages/questions';
    switch ($segments[0]) {
        case 'all':
            include "{$pages}/all.php";
            break;
        case 'todo':
            if (isset($segments[1]) && is_numeric($segments[1])) {
                set_input('group_guid', $segments[1]);
            }
            include "{$pages}/todo.php";
            break;
        case 'owner':
            if (isset($segments[1]) && is_numeric($segments[1])) {
                elgg_set_page_owner_guid($segments[1]);
            }
            include "{$pages}/owner.php";
            break;
        case 'view':
            set_input('guid', $segments[1]);
            include "{$pages}/view.php";
            break;
        case 'add':
            elgg_gatekeeper();
            include "{$pages}/add.php";
            break;
        case 'edit':
            elgg_gatekeeper();
            set_input('guid', $segments[1]);
            include "{$pages}/edit.php";
            break;
        case 'group':
            elgg_group_gatekeeper();
            include "{$pages}/owner.php";
            break;
        case 'experts':
            if (isset($segments[1]) && is_numeric($segments[1])) {
                elgg_set_page_owner_guid($segments[1]);
            }
            include "{$pages}/experts.php";
            break;
        default:
            forward('questions/all');
            return false;
    }
    return true;
}
コード例 #5
0
ファイル: blog.php プロジェクト: tjcaverly/Elgg
/**
 * Get page components to list a user's or all blogs.
 *
 * @param int $container_guid The GUID of the page owner or NULL for all blogs
 * @return array
 */
function blog_get_page_content_list($container_guid = NULL)
{
    $return = array();
    $return['filter_context'] = $container_guid ? 'mine' : 'all';
    $options = array('type' => 'object', 'subtype' => 'blog', 'full_view' => false, 'no_results' => elgg_echo('blog:none'));
    $current_user = elgg_get_logged_in_user_entity();
    if ($container_guid) {
        // access check for closed groups
        elgg_group_gatekeeper();
        $options['container_guid'] = $container_guid;
        $container = get_entity($container_guid);
        if (!$container) {
        }
        $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name));
        $crumbs_title = $container->name;
        elgg_push_breadcrumb($crumbs_title);
        if ($current_user && $container_guid == $current_user->guid) {
            $return['filter_context'] = 'mine';
        } else {
            if (elgg_instanceof($container, 'group')) {
                $return['filter'] = false;
            } else {
                // do not show button or select a tab when viewing someone else's posts
                $return['filter_context'] = 'none';
            }
        }
    } else {
        $return['filter_context'] = 'all';
        $return['title'] = elgg_echo('blog:title:all_blogs');
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('blog:blogs'));
    }
    elgg_register_title_button();
    // show all posts for admin or users looking at their own blogs
    // show only published posts for other users.
    $show_only_published = true;
    if ($current_user) {
        if ($current_user->guid == $container_guid || $current_user->isAdmin()) {
            $show_only_published = false;
        }
    }
    if ($show_only_published) {
        $options['metadata_name_value_pairs'] = array(array('name' => 'status', 'value' => 'published'));
    }
    $return['content'] = elgg_list_entities_from_metadata($options);
    return $return;
}
コード例 #6
0
ファイル: news.php プロジェクト: hypeJunction/news
/**
 * Get page components to list a user's or all news.
 *
 * @param int $container_guid The GUID of the page owner or null for all news
 * @return array
 */
function news_get_page_content_list($container_guid = null)
{
    $return = array();
    $return['filter_context'] = $container_guid ? 'mine' : 'all';
    $return['filter'] = '';
    $options = array('type' => 'object', 'subtype' => 'news', 'full_view' => false, 'no_results' => elgg_echo('news:none'), 'preload_owners' => true, 'distinct' => false);
    $current_user = elgg_get_logged_in_user_entity();
    if ($container_guid) {
        // access check for closed groups
        elgg_group_gatekeeper();
        $container = get_entity($container_guid);
        if ($container instanceof ElggGroup) {
            $options['container_guid'] = $container_guid;
        } else {
            $options['owner_guid'] = $container_guid;
        }
        $return['title'] = elgg_echo('news:title:user_news', array($container->name));
        $crumbs_title = $container->name;
        elgg_push_breadcrumb($crumbs_title);
        if ($current_user && $container_guid == $current_user->guid) {
            $return['filter_context'] = 'mine';
        } else {
            if (elgg_instanceof($container, 'group')) {
                $return['filter'] = false;
            } else {
                // do not show button or select a tab when viewing someone else's posts
                $return['filter_context'] = 'none';
            }
        }
    } else {
        $options['preload_containers'] = true;
        $return['filter_context'] = 'all';
        $return['title'] = elgg_echo('news:title:all_news');
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('news:news'));
    }
    if (elgg_is_admin_logged_in() || $container_guid && elgg_instanceof($container, 'group') && ($container->owner_guid == $current_user->guid || check_entity_relationship($current_user->guid, "group_admin", $container->guid))) {
        elgg_register_title_button();
    }
    $return['content'] = elgg_list_entities($options);
    return $return;
}
コード例 #7
0
ファイル: blog.php プロジェクト: ibou77/elgg
/**
 * Get page components to list a user's or all blogs.
 *
 * @param int $container_guid The GUID of the page owner or NULL for all blogs
 * @return array
 */
function blog_get_page_content_list($container_guid = NULL)
{
    $return = array();
    $return['filter_context'] = $container_guid ? 'mine' : 'all';
    $options = array('type' => 'object', 'subtype' => 'blog', 'full_view' => false, 'no_results' => elgg_echo('blog:none'), 'preload_owners' => true, 'distinct' => false);
    $current_user = elgg_get_logged_in_user_entity();
    if ($container_guid) {
        // access check for closed groups
        elgg_group_gatekeeper();
        $options['container_guid'] = $container_guid;
        $container = get_entity($container_guid);
        if (!$container) {
        }
        $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name));
        $crumbs_title = $container->name;
        elgg_push_breadcrumb($crumbs_title);
        if ($current_user && $container_guid == $current_user->guid) {
            $return['filter_context'] = 'mine';
        } else {
            if (elgg_instanceof($container, 'group')) {
                $return['filter'] = false;
            } else {
                // do not show button or select a tab when viewing someone else's posts
                $return['filter_context'] = 'none';
            }
        }
    } else {
        $options['preload_containers'] = true;
        $return['filter_context'] = 'all';
        $return['title'] = elgg_echo('blog:title:all_blogs');
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('blog:blogs'));
    }
    elgg_register_title_button();
    $return['content'] = elgg_list_entities($options);
    return $return;
}
コード例 #8
0
ファイル: sort.php プロジェクト: juho-jaakkola/tidypics
<?php

/**
 * Album sort page
 *
 * This displays a listing of all the photos so that they can be sorted
 */
elgg_gatekeeper();
elgg_group_gatekeeper();
// get the album entity
$album_guid = elgg_extract('guid', $vars);
$album = get_entity($album_guid);
// panic if we can't get it
if (!$album) {
    forward();
}
// container should always be set, but just in case
$owner = $album->getContainerEntity();
elgg_set_page_owner_guid($owner->getGUID());
$title = elgg_echo('tidypics:sort', array($album->getTitle()));
// set up breadcrumbs
elgg_push_breadcrumb(elgg_echo('photos'), 'photos/siteimagesall');
elgg_push_breadcrumb(elgg_echo('tidypics:albums'), 'photos/all');
if (elgg_instanceof($owner, 'group')) {
    elgg_push_breadcrumb($owner->name, "photos/group/{$owner->guid}/all");
} else {
    elgg_push_breadcrumb($owner->name, "photos/owner/{$owner->username}");
}
elgg_push_breadcrumb($album->getTitle(), $album->getURL());
elgg_push_breadcrumb(elgg_echo('album:sort'));
if ($album->getSize()) {
コード例 #9
0
ファイル: wall.php プロジェクト: justangel/hypeWall
<?php

$target_guid = elgg_extract('target_guid', $vars);
$post_guids = elgg_extract('post_guids', $vars);
elgg_entity_gatekeeper($target_guid);
elgg_group_gatekeeper(true, $target_guid);
$target = get_entity($target_guid);
elgg_set_page_owner_guid($target->guid);
elgg_push_breadcrumb(elgg_echo('wall'), hypeWall()->router->getPageHandlerId());
if (is_callable(array($target, 'getDisplayName'))) {
    $name = $target->getDisplayName();
} else {
    $name = $target instanceof ElggObject ? $target->title : $target->name;
}
$title = elgg_echo('wall:owner', array($name));
elgg_push_breadcrumb($title, hypeWall()->router->normalize($target->guid));
$content = elgg_view('lists/wall', array('entity' => $target, 'post_guids' => $post_guids));
if (elgg_is_xhr()) {
    echo $content;
} else {
    $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'filter' => false));
    echo elgg_view_page($title, $layout);
}
コード例 #10
0
<?php

/**
 * Search for content in this group
 *
 * @uses vars['entity'] ElggGroup
 */
$entity = elgg_extract('entity', $vars, elgg_get_page_owner_entity());
if (!elgg_group_gatekeeper(false, $entity->guid)) {
    return;
}
$identifier = is_callable('group_subtypes_get_identifier') ? group_subtypes_get_identifier($entity) : 'groups';
$url = elgg_get_site_url() . 'search';
$body = elgg_view_form('groups/search', array('action' => $url, 'method' => 'get', 'disable_security' => true), $vars);
echo elgg_view_module('aside', elgg_echo("{$identifier}:search_in_group"), $body);
コード例 #11
0
<?php

$page_owner = elgg_get_page_owner_entity();
if (!elgg_group_gatekeeper(false, $page_owner->guid)) {
    echo elgg_format_element('p', ['class' => 'elgg-no-results'], elgg_echo('groups:opengroup:membersonly'));
    return;
}
echo elgg_view('lists/groups/members', array('pagination' => false, 'show_rel' => false, 'show_sort' => false));
echo elgg_format_element('span', ['class' => 'elgg-widget-more'], elgg_view('output/url', array('text' => elgg_echo('groups:members:more'), 'href' => "groups/members/{$entity->guid}")));
コード例 #12
0
ファイル: groups.php プロジェクト: n8b/VMN
/**
 * Group members page
 *
 * @param int $guid Group entity GUID
 */
function groups_handle_members_page($guid)
{
    elgg_entity_gatekeeper($guid, 'group');
    $group = get_entity($guid);
    elgg_set_page_owner_guid($guid);
    elgg_group_gatekeeper();
    $title = elgg_echo('groups:members:title', array($group->name));
    elgg_push_breadcrumb($group->name, $group->getURL());
    elgg_push_breadcrumb(elgg_echo('groups:members'));
    $db_prefix = elgg_get_config('dbprefix');
    $content = elgg_list_entities_from_relationship(array('relationship' => 'member', 'relationship_guid' => $group->guid, 'inverse_relationship' => true, 'type' => 'user', 'limit' => (int) get_input('limit', max(20, elgg_get_config('default_limit')), false), 'joins' => array("JOIN {$db_prefix}users_entity u ON e.guid=u.guid"), 'order_by' => 'u.name ASC'));
    $params = array('content' => $content, 'title' => $title, 'filter' => '');
    $body = elgg_view_layout('content', $params);
    echo elgg_view_page($title, $body);
}
コード例 #13
0
ファイル: profile.php プロジェクト: iXuZhang/Project_Curia
<?php

$guid = elgg_extract('guid', $vars);
// turn this into a core function
global $autofeed;
$autofeed = true;
elgg_entity_gatekeeper($guid, 'group');
$group = get_entity($guid);
elgg_push_breadcrumb($group->name);
groups_register_profile_buttons($group);
$content = elgg_view('groups/profile/layout', array('entity' => $group));
$sidebar = '';
if (elgg_group_gatekeeper(false)) {
    if (elgg_is_active_plugin('search')) {
        $sidebar .= elgg_view('groups/sidebar/search', array('entity' => $group));
    }
    $sidebar .= elgg_view('groups/sidebar/members', array('entity' => $group));
    $subscribed = false;
    if (elgg_is_active_plugin('notifications')) {
        $NOTIFICATION_HANDLERS = _elgg_services()->notifications->getMethodsAsDeprecatedGlobal();
        foreach ($NOTIFICATION_HANDLERS as $method => $foo) {
            $relationship = check_entity_relationship(elgg_get_logged_in_user_guid(), 'notify' . $method, $guid);
            if ($relationship) {
                $subscribed = true;
                break;
            }
        }
    }
    $sidebar .= elgg_view('groups/sidebar/my_status', array('entity' => $group, 'subscribed' => $subscribed));
}
$params = array('content' => $content, 'sidebar' => $sidebar, 'title' => $group->name);
コード例 #14
0
ファイル: discussion.php プロジェクト: gzachos/elgg_ellak
/**
 * View a discussion topic
 *
 * @param int $guid GUID of topic
 */
function discussion_handle_view_page($guid)
{
    // We now have RSS on topics
    global $autofeed;
    $autofeed = true;
    elgg_entity_gatekeeper($guid, 'object', 'groupforumtopic');
    $topic = get_entity($guid);
    $group = $topic->getContainerEntity();
    if (!elgg_instanceof($group, 'group')) {
        register_error(elgg_echo('group:notfound'));
        forward();
    }
    elgg_load_js('elgg.discussion');
    elgg_set_page_owner_guid($group->getGUID());
    elgg_group_gatekeeper();
    elgg_push_breadcrumb($group->name, "discussion/owner/{$group->guid}");
    elgg_push_breadcrumb($topic->title);
    $params = array('topic' => $topic, 'show_add_form' => false);
    $content = elgg_view_entity($topic, array('full_view' => true));
    if ($topic->status == 'closed') {
        $content .= elgg_view('discussion/replies', $params);
        $content .= elgg_view('discussion/closed');
    } elseif ($group->canWriteToContainer(0, 'object', 'groupforumtopic') || elgg_is_admin_logged_in()) {
        $params['show_add_form'] = true;
        $content .= elgg_view('discussion/replies', $params);
    } else {
        $content .= elgg_view('discussion/replies', $params);
    }
    $params = array('content' => $content, 'title' => $topic->title, 'sidebar' => elgg_view('discussion/sidebar'), 'filter' => '');
    $body = elgg_view_layout('content', $params);
    echo elgg_view_page($topic->title, $body);
}
コード例 #15
0
/**
 * May the current user access item(s) on this page? If the page owner is a group,
 * membership, visibility, and logged in status are taken into account.
 *
 * @param bool $forward         If set to true (default), will forward the page;
 *                              if set to false, will return true or false.
 *
 * @param int  $page_owner_guid The current page owner guid. If not set, this
 *                              will be pulled from elgg_get_page_owner_guid().
 *
 * @return bool Will return if $forward is set to false.
 */
function group_gatekeeper($forward = true, $page_owner_guid = null)
{
    return elgg_group_gatekeeper($forward, $page_owner_guid);
}
コード例 #16
0
ファイル: izap-videos.php プロジェクト: justangel/izap-videos
function izap_group_gatekeeper()
{
    if (is_callable('elgg_group_gatekeeper')) {
        return elgg_group_gatekeeper();
    } else {
        return group_gatekeeper();
    }
}
コード例 #17
0
ファイル: add.php プロジェクト: elgg/elgg
<?php

elgg_gatekeeper();
$guid = elgg_extract('guid', $vars);
elgg_entity_gatekeeper($guid);
elgg_group_gatekeeper(true, $guid);
$container = get_entity($guid);
// Make sure user has permissions to add a topic to container
if (!$container->canWriteToContainer(0, 'object', 'discussion')) {
    register_error(elgg_echo('actionunauthorized'));
    forward(REFERER);
}
$title = elgg_echo('discussion:addtopic');
elgg_push_breadcrumb($container->getDisplayName(), "discussion/owner/{$container->guid}");
elgg_push_breadcrumb($title);
$body_vars = discussion_prepare_form_vars();
$content = elgg_view_form('discussion/save', array(), $body_vars);
$params = array('content' => $content, 'title' => $title, 'sidebar' => elgg_view('discussion/sidebar/edit'), 'filter' => '');
$body = elgg_view_layout('content', $params);
echo elgg_view_page($title, $body);
コード例 #18
0
ファイル: groups.php プロジェクト: ibou77/elgg
/**
 * Invite users to a group
 *
 * @param int $guid Group entity GUID
 */
function groups_handle_recommendations_page($guid)
{
    elgg_entity_gatekeeper($guid, 'group');
    elgg_set_page_owner_guid($guid);
    elgg_group_gatekeeper();
    $group = get_entity($guid);
    $title = elgg_echo('groups:recommendations');
    elgg_push_breadcrumb($group->name, $group->getURL());
    elgg_push_breadcrumb($title);
    //	$db_prefix = elgg_get_config('dbprefix');
    $params = array('content' => $content, 'title' => $title, 'filter' => '');
    $body = elgg_view_layout('content', $params);
    echo elgg_view_page($title, $body);
}
コード例 #19
0
/**
 * Dispatcher for bookmarks.
 *
 * URLs take the form of
 *  All bookmarks:        bookmarks/all
 *  User's bookmarks:     bookmarks/owner/<username>
 *  Friends' bookmarks:   bookmarks/friends/<username>
 *  View bookmark:        bookmarks/view/<guid>/<title>
 *  New bookmark:         bookmarks/add/<guid> (container: user, group, parent)
 *  Edit bookmark:        bookmarks/edit/<guid>
 *  Group bookmarks:      bookmarks/group/<guid>/all
 *  Bookmarklet:          bookmarks/bookmarklet/<guid> (user)
 *
 * Title is ignored
 *
 * @param array $page
 * @return bool
 */
function bookmarks_page_handler($page)
{
    elgg_load_library('elgg:bookmarks');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo('bookmarks'), 'bookmarks/all');
    $pages = dirname(__FILE__) . '/pages/bookmarks';
    switch ($page[0]) {
        case "all":
            include "{$pages}/all.php";
            break;
        case "owner":
            include "{$pages}/owner.php";
            break;
        case "friends":
            include "{$pages}/friends.php";
            break;
        case "view":
            set_input('guid', $page[1]);
            include "{$pages}/view.php";
            break;
        case "add":
            elgg_gatekeeper();
            include "{$pages}/add.php";
            break;
        case "edit":
            elgg_gatekeeper();
            set_input('guid', $page[1]);
            include "{$pages}/edit.php";
            break;
        case 'group':
            elgg_group_gatekeeper();
            include "{$pages}/owner.php";
            break;
        case "bookmarklet":
            set_input('container_guid', $page[1]);
            include "{$pages}/bookmarklet.php";
            break;
        default:
            return false;
    }
    elgg_pop_context();
    return true;
}
コード例 #20
0
/**
 * Filters listing subtitle
 * 
 * @param string $hook   "view_vars"
 * @param string $type   "group/elements/summary"
 * @param array  $return View vars
 * @param array  $params Hook params
 * @return array
 */
function group_list_filter_listing_subtitle($hook, $type, $return, $params)
{
    $entity = elgg_extract('entity', $return);
    if (!$entity instanceof ElggGroup) {
        return;
    }
    if (!elgg_get_plugin_setting('use_membership_view', 'group_list')) {
        return;
    }
    $subtitle = array();
    if ($entity->isPublicMembership()) {
        $mem = elgg_echo('group:membership:open');
        $mem_class = 'group-membership-open';
    } else {
        $mem = elgg_echo('group:membership:closed');
        $mem_class = 'group-membership-closed';
    }
    $subtitle['public_membership'] = elgg_format_element('b', ['class' => $mem_class], $mem);
    if ($entity->featured_group == 'yes') {
        $subtitle['featured'] = elgg_format_element('b', ['class' => 'group-featured'], elgg_echo('group:featured'));
    }
    if (elgg_group_gatekeeper(false, $entity->guid)) {
        $member_count = $entity->getVolatileData('select:member_count');
        if (!isset($member_count)) {
            $member_count = $entity->getMembers(array('count' => true));
        }
        if ($member_count == 1) {
            $subtitle['member_count'] = elgg_echo('group:member:count:single', [$member_count]);
        } else {
            $subtitle['member_count'] = elgg_echo('group:member:count', [$member_count]);
        }
    }
    //$subtitle['time_created'] = elgg_echo('group:time_created', [date('j M, Y', $entity->time_created)]);
    if ($entity->last_action) {
        $subtitle['last_action'] = elgg_echo('group:last_activity', [elgg_get_friendly_time($entity->last_action)]);
    }
    $subtitle_str = '';
    foreach ($subtitle as $s) {
        $subtitle_str .= elgg_format_element('span', ['class' => 'elgg-group-subtitle-element'], $s);
    }
    $view_subtitle = elgg_extract('subtitle', $return);
    if ($view_subtitle) {
        $view_subtitle = $subtitle_str . '<br />' . $view_subtitle;
    } else {
        $view_subtitle = $subtitle_str;
    }
    $return['subtitle'] = $view_subtitle;
    return $return;
}
コード例 #21
0
ファイル: view.php プロジェクト: hypejunction/hypediscussions
<?php

$guid = elgg_extract('guid', $vars);
$reply_guid = elgg_extract('reply_guid', $vars);
elgg_register_rss_link();
elgg_entity_gatekeeper($guid, 'object', 'discussion');
$entity = get_entity($guid);
elgg_group_gatekeeper(true, $entity->container_guid);
$container = $entity->getContainerEntity();
elgg_set_page_owner_guid($container->guid);
if ($container instanceof ElggGroup) {
    $owner_url = "discussion/group/{$container->guid}";
} else {
    $owner_url = "discussion/owner/{$container->guid}";
}
elgg_push_breadcrumb($container->getDisplayName(), $owner_url);
elgg_push_breadcrumb($entity->title);
$content = elgg_view_entity($entity, ['full_view' => true]);
$content .= elgg_view('discussion/replies', ['topic' => $entity, 'reply' => get_entity($reply_guid), 'show_add_form' => $entity->canWriteToContainer(0, 'object', 'discussion_reply'), 'expand_form' => true, 'full_view' => true]);
$params = array('content' => $content, 'title' => $entity->title, 'sidebar' => elgg_view('discussion/sidebar'), 'filter' => '', 'class' => 'elgg-discussion-layout');
$body = elgg_view_layout('content', $params);
echo elgg_view_page($entity->title, $body);