Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PlanetRed
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Digital Experience Group
PlanetRed
Commits
4af9922e
Commit
4af9922e
authored
15 years ago
by
Eric Rasmussen
Browse files
Options
Downloads
Patches
Plain Diff
moved globe plugin to plugins dir
parent
68ad5bc0
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
globe/index.php
+0
-31
0 additions, 31 deletions
globe/index.php
globe/start.php
+0
-565
0 additions, 565 deletions
globe/start.php
with
0 additions
and
596 deletions
globe/index.php
deleted
100644 → 0
+
0
−
31
View file @
68ad5bc0
<?php
/**
* Elgg globe plugin
*
* @package ElggGlobe
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
* @author Eric Rasmussen
* @copyright UNL 2009
* @link http://planetred.unl.edu/
*/
require_once
(
dirname
(
dirname
(
dirname
(
__FILE__
)))
.
"/engine/start.php"
);
$limit
=
get_input
(
"limit"
,
10
);
$offset
=
get_input
(
"offset"
,
0
);
$title
=
sprintf
(
elgg_echo
(
"groups:owned"
),
page_owner_entity
()
->
name
);
// Get objects
$area2
=
elgg_view_title
(
$title
);
set_context
(
'search'
);
$objects
=
list_entities
(
"group"
,
""
,
page_owner
(),
$limit
,
false
);
set_context
(
'groups'
);
$area2
.
=
$objects
;
$body
=
elgg_view_layout
(
'two_column_left_sidebar'
,
$area1
,
$area2
);
// Finally draw the page
page_draw
(
$title
,
$body
);
?>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
globe/start.php
deleted
100644 → 0
+
0
−
565
View file @
68ad5bc0
<?php
/**
* Elgg globe plugin
*
* @package ElggGlobe
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
* @author Eric Rasmussen
* @copyright UNL 2009
* @link http://planetred.unl.edu/
*/
/**
* Initialise the groups plugin.
* Register actions, set up menus
*/
function
groups_init
()
{
global
$CONFIG
;
// Set up the menu for logged in users
if
(
isloggedin
())
{
add_menu
(
elgg_echo
(
'groups'
),
$CONFIG
->
wwwroot
.
"pg/groups/world/"
);
//add_menu(elgg_echo('groups:alldiscussion'),$CONFIG->wwwroot."mod/groups/discussions.php");
}
else
{
add_menu
(
elgg_echo
(
'groups'
),
$CONFIG
->
wwwroot
.
"pg/groups/world/"
);
}
// Register a page handler, so we can have nice URLs
register_page_handler
(
'groups'
,
'groups_page_handler'
);
// Register a URL handler for groups and forum topics
register_entity_url_handler
(
'groups_url'
,
'group'
,
'all'
);
register_entity_url_handler
(
'groups_groupforumtopic_url'
,
'object'
,
'groupforumtopic'
);
// Register an icon handler for groups
register_page_handler
(
'groupicon'
,
'groups_icon_handler'
);
// Register some actions
register_action
(
"groups/edit"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/edit.php"
);
register_action
(
"groups/delete"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/delete.php"
);
register_action
(
"groups/join"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/join.php"
);
register_action
(
"groups/leave"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/leave.php"
);
register_action
(
"groups/joinrequest"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/joinrequest.php"
);
register_action
(
"groups/killrequest"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/groupskillrequest.php"
);
register_action
(
"groups/addtogroup"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/addtogroup.php"
);
register_action
(
"groups/invite"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/invite.php"
);
// Use group widgets
use_widgets
(
'groups'
);
// Add a page owner handler
add_page_owner_handler
(
'groups_page_owner_handler'
);
// Add some widgets
add_widget_type
(
'a_users_groups'
,
elgg_echo
(
'groups:widget:membership'
),
elgg_echo
(
'groups:widgets:description'
));
//extend some views
extend_view
(
'profile/icon'
,
'groups/icon'
);
extend_view
(
'css'
,
'groups/css'
);
// Access permissions
register_plugin_hook
(
'access:collections:write'
,
'all'
,
'groups_write_acl_plugin_hook'
);
//register_plugin_hook('access:collections:read', 'all', 'groups_read_acl_plugin_hook');
// Notification hooks
if
(
is_callable
(
'register_notification_object'
))
register_notification_object
(
'object'
,
'groupforumtopic'
,
elgg_echo
(
'groupforumtopic:new'
));
register_plugin_hook
(
'object:notifications'
,
'object'
,
'group_object_notifications_intercept'
);
// Listen to notification events and supply a more useful message
register_plugin_hook
(
'notify:entity:message'
,
'object'
,
'groupforumtopic_notify_message'
);
// add the forum tool option
add_group_tool_option
(
'forum'
,
elgg_echo
(
'groups:enableforum'
),
true
);
// Now override icons
register_plugin_hook
(
'entity:icon:url'
,
'group'
,
'groups_groupicon_hook'
);
}
/**
* Event handler for group forum posts
*
*/
function
group_object_notifications
(
$event
,
$object_type
,
$object
)
{
static
$flag
;
if
(
!
isset
(
$flag
))
$flag
=
0
;
if
(
is_callable
(
'object_notifications'
))
if
(
$object
instanceof
ElggObject
)
{
if
(
$object
->
getSubtype
()
==
'groupforumtopic'
)
{
//if ($object->countAnnotations('group_topic_post') > 0) {
if
(
$flag
==
0
)
{
$flag
=
1
;
object_notifications
(
$event
,
$object_type
,
$object
);
}
//}
}
}
}
/**
* Intercepts the notification on group topic creation and prevents a notification from going out
* (because one will be sent on the annotation)
*
* @param unknown_type $hook
* @param unknown_type $entity_type
* @param unknown_type $returnvalue
* @param unknown_type $params
* @return unknown
*/
function
group_object_notifications_intercept
(
$hook
,
$entity_type
,
$returnvalue
,
$params
)
{
if
(
isset
(
$params
))
{
if
(
$params
[
'event'
]
==
'create'
&&
$params
[
'object'
]
instanceof
ElggObject
)
{
if
(
$params
[
'object'
]
->
getSubtype
()
==
'groupforumtopic'
)
{
return
true
;
}
}
}
return
null
;
}
/**
* Returns a more meaningful message
*
* @param unknown_type $hook
* @param unknown_type $entity_type
* @param unknown_type $returnvalue
* @param unknown_type $params
*/
function
groupforumtopic_notify_message
(
$hook
,
$entity_type
,
$returnvalue
,
$params
)
{
$entity
=
$params
[
'entity'
];
$to_entity
=
$params
[
'to_entity'
];
$method
=
$params
[
'method'
];
if
((
$entity
instanceof
ElggEntity
)
&&
(
$entity
->
getSubtype
()
==
'groupforumtopic'
))
{
$descr
=
$entity
->
description
;
$title
=
$entity
->
title
;
global
$CONFIG
;
$url
=
$entity
->
getURL
();
$msg
=
get_input
(
'topicmessage'
);
if
(
empty
(
$msg
))
$msg
=
get_input
(
'topic_post'
);
if
(
!
empty
(
$msg
))
$msg
=
$msg
.
"
\n\n
"
;
else
$msg
=
''
;
$owner
=
get_entity
(
$entity
->
container_guid
);
if
(
$method
==
'sms'
)
{
return
elgg_echo
(
"groupforumtopic:new"
)
.
': '
.
$url
.
" (
{
$owner
->
name
}
:
{
$title
}
)"
;
}
else
{
return
$_SESSION
[
'user'
]
->
username
.
' '
.
elgg_echo
(
"groups:viagroups"
)
.
': '
.
$title
.
"
\n\n
"
.
$msg
.
"
\n\n
"
.
$entity
->
getURL
();
}
}
return
null
;
}
/**
* This function loads a set of default fields into the profile, then triggers a hook letting other plugins to edit
* add and delete fields.
*
* Note: This is a secondary system:init call and is run at a super low priority to guarantee that it is called after all
* other plugins have initialised.
*/
function
groups_fields_setup
()
{
global
$CONFIG
;
$profile_defaults
=
array
(
'name'
=>
'text'
,
'description'
=>
'longtext'
,
'briefdescription'
=>
'text'
,
'interests'
=>
'tags'
,
'website'
=>
'url'
,
);
$CONFIG
->
group
=
trigger_plugin_hook
(
'profile:fields'
,
'group'
,
NULL
,
$profile_defaults
);
}
/**
* Sets up submenus for the groups system. Triggered on pagesetup.
*
*/
function
groups_submenus
()
{
global
$CONFIG
;
// Get the page owner entity
$page_owner
=
page_owner_entity
();
// Submenu items for all group pages
if
(
$page_owner
instanceof
ElggGroup
&&
get_context
()
==
'groups'
)
{
if
(
isloggedin
())
{
if
(
$page_owner
->
canEdit
())
{
add_submenu_item
(
elgg_echo
(
'groups:edit'
),
$CONFIG
->
wwwroot
.
"mod/groups/edit.php?group_guid="
.
$page_owner
->
getGUID
(),
'1groupsactions'
);
add_submenu_item
(
elgg_echo
(
'groups:invite'
),
$CONFIG
->
wwwroot
.
"mod/groups/invite.php?group_guid=
{
$page_owner
->
getGUID
()
}
"
,
'1groupsactions'
);
if
(
!
$page_owner
->
isPublicMembership
())
add_submenu_item
(
elgg_echo
(
'groups:membershiprequests'
),
$CONFIG
->
wwwroot
.
"mod/groups/membershipreq.php?group_guid=
{
$page_owner
->
getGUID
()
}
"
,
'1groupsactions'
);
}
if
(
$page_owner
->
isMember
(
$_SESSION
[
'user'
]))
{
if
(
$page_owner
->
getOwner
()
!=
$_SESSION
[
'guid'
])
add_submenu_item
(
elgg_echo
(
'groups:leave'
),
$CONFIG
->
wwwroot
.
"action/groups/leave?group_guid="
.
$page_owner
->
getGUID
(),
'1groupsactions'
);
}
else
{
if
(
$page_owner
->
isPublicMembership
())
{
add_submenu_item
(
elgg_echo
(
'groups:join'
),
$CONFIG
->
wwwroot
.
"action/groups/join?group_guid=
{
$page_owner
->
getGUID
()
}
"
,
'1groupsactions'
);
}
else
{
add_submenu_item
(
elgg_echo
(
'groups:joinrequest'
),
$CONFIG
->
wwwroot
.
"action/groups/joinrequest?group_guid=
{
$page_owner
->
getGUID
()
}
"
,
'1groupsactions'
);
}
}
}
if
(
$page_owner
->
forum_enable
!=
"no"
){
add_submenu_item
(
elgg_echo
(
'groups:forum'
),
$CONFIG
->
wwwroot
.
"pg/groups/forum/
{
$page_owner
->
getGUID
()
}
/"
,
'1groupslinks'
);
}
}
// Add submenu options
if
(
get_context
()
==
'groups'
&&
!
(
$page_owner
instanceof
ElggGroup
))
{
if
(
isloggedin
())
{
add_submenu_item
(
elgg_echo
(
'groups:new'
),
$CONFIG
->
wwwroot
.
"pg/groups/new/"
,
'1groupslinks'
);
add_submenu_item
(
elgg_echo
(
'groups:owned'
),
$CONFIG
->
wwwroot
.
"pg/groups/owned/"
.
$_SESSION
[
'user'
]
->
username
,
'1groupslinks'
);
add_submenu_item
(
elgg_echo
(
'groups:yours'
),
$CONFIG
->
wwwroot
.
"pg/groups/member/"
.
$_SESSION
[
'user'
]
->
username
,
'1groupslinks'
);
}
add_submenu_item
(
elgg_echo
(
'groups:all'
),
$CONFIG
->
wwwroot
.
"pg/groups/world/"
,
'1groupslinks'
);
}
}
/**
* Set a page owner handler.
*
*/
function
groups_page_owner_handler
()
{
$group_guid
=
get_input
(
'group_guid'
);
if
(
$group_guid
)
{
$group
=
get_entity
(
$group_guid
);
if
(
$group
instanceof
ElggGroup
)
return
$group
->
owner_guid
;
}
return
false
;
}
/**
* Group page handler
*
* @param array $page Array of page elements, forwarded by the page handling mechanism
*/
function
groups_page_handler
(
$page
)
{
global
$CONFIG
;
if
(
isset
(
$page
[
0
]))
{
// See what context we're using
switch
(
$page
[
0
])
{
case
"new"
:
include
(
$CONFIG
->
pluginspath
.
"groups/new.php"
);
break
;
case
"world"
:
set_context
(
'groups'
);
set_page_owner
(
0
);
include
(
$CONFIG
->
pluginspath
.
"groups/all.php"
);
break
;
case
"forum"
:
set_input
(
'group_guid'
,
$page
[
1
]);
include
(
$CONFIG
->
pluginspath
.
"groups/forum.php"
);
break
;
case
"owned"
:
// Owned by a user
if
(
isset
(
$page
[
1
]))
set_input
(
'username'
,
$page
[
1
]);
include
(
$CONFIG
->
pluginspath
.
"groups/index.php"
);
break
;
case
"member"
:
// User is a member of
if
(
isset
(
$page
[
1
]))
set_input
(
'username'
,
$page
[
1
]);
include
(
$CONFIG
->
pluginspath
.
"groups/membership.php"
);
break
;
default
:
set_input
(
'group_guid'
,
$page
[
0
]);
include
(
$CONFIG
->
pluginspath
.
"groups/groupprofile.php"
);
break
;
}
}
}
/**
* Handle group icons.
*
* @param unknown_type $page
*/
function
groups_icon_handler
(
$page
)
{
global
$CONFIG
;
// The username should be the file we're getting
if
(
isset
(
$page
[
0
]))
{
set_input
(
'group_guid'
,
$page
[
0
]);
}
if
(
isset
(
$page
[
1
]))
{
set_input
(
'size'
,
$page
[
1
]);
}
// Include the standard profile index
include
(
$CONFIG
->
pluginspath
.
"groups/graphics/icon.php"
);
}
/**
* Populates the ->getUrl() method for group objects
*
* @param ElggEntity $entity File entity
* @return string File URL
*/
function
groups_url
(
$entity
)
{
global
$CONFIG
;
$title
=
friendly_title
(
$entity
->
name
);
return
$CONFIG
->
url
.
"pg/groups/
{
$entity
->
guid
}
/
$title
/"
;
}
function
groups_groupforumtopic_url
(
$entity
)
{
global
$CONFIG
;
return
$CONFIG
->
url
.
'mod/groups/topicposts.php?topic='
.
$entity
->
guid
.
'&group_guid='
.
$entity
->
container_guid
;
}
/**
* Groups created, so add users to access lists.
*/
function
groups_create_event_listener
(
$event
,
$object_type
,
$object
)
{
//if (($event == 'create') && ($object_type == 'group') && ($object instanceof ElggGroup))
//{
$group_id
=
create_access_collection
(
elgg_echo
(
'groups:group'
)
.
": "
.
$object
->
name
);
if
(
$group_id
)
{
$object
->
group_acl
=
$group_id
;
}
else
return
false
;
//}
return
true
;
}
/**
* Hook to listen to read access control requests and return all the groups you are a member of.
*/
function
groups_read_acl_plugin_hook
(
$hook
,
$entity_type
,
$returnvalue
,
$params
)
{
//error_log("READ: " . var_export($returnvalue));
$user
=
$_SESSION
[
'user'
];
if
(
$user
)
{
// Not using this because of recursion.
// Joining a group automatically add user to ACL,
// So just see if they're a member of the ACL.
//$membership = get_users_membership($user->guid);
$members
=
get_members_of_access_collection
(
$group
->
group_acl
);
print_r
(
$members
);
exit
;
if
(
$membership
)
{
foreach
(
$membership
as
$group
)
$returnvalue
[
$user
->
guid
][
$group
->
group_acl
]
=
elgg_echo
(
'groups:group'
)
.
": "
.
$group
->
name
;
return
$returnvalue
;
}
}
}
/**
* Return the write access for the current group if the user has write access to it.
*/
function
groups_write_acl_plugin_hook
(
$hook
,
$entity_type
,
$returnvalue
,
$params
)
{
$page_owner
=
page_owner_entity
();
// get all groups if logged in
if
(
$loggedin
=
get_loggedin_user
())
{
$groups
=
get_entities_from_relationship
(
'member'
,
$loggedin
->
getGUID
());
if
(
is_array
(
$groups
))
{
foreach
(
$groups
as
$group
)
{
$returnvalue
[
$group
->
group_acl
]
=
elgg_echo
(
'groups:group'
)
.
': '
.
$group
->
name
;
}
}
}
// This doesn't seem to do anything.
// There are no hooks to override container permissions for groups
//
// if ($page_owner instanceof ElggGroup)
// {
// if (can_write_to_container())
// {
// $returnvalue[$page_owner->group_acl] = elgg_echo('groups:group') . ": " . $page_owner->name;
// }
// }
return
$returnvalue
;
}
/**
* Groups deleted, so remove access lists.
*/
function
groups_delete_event_listener
(
$event
,
$object_type
,
$object
)
{
delete_access_collection
(
$object
->
group_acl
);
return
true
;
}
/**
* Listens to a group join event and adds a user to the group's access control
*
*/
function
groups_user_join_event_listener
(
$event
,
$object_type
,
$object
)
{
$group
=
$object
[
'group'
];
$user
=
$object
[
'user'
];
$acl
=
$group
->
group_acl
;
add_user_to_access_collection
(
$user
->
guid
,
$acl
);
return
true
;
}
/**
* Listens to a group leave event and removes a user from the group's access control
*
*/
function
groups_user_leave_event_listener
(
$event
,
$object_type
,
$object
)
{
$group
=
$object
[
'group'
];
$user
=
$object
[
'user'
];
$acl
=
$group
->
group_acl
;
remove_user_from_access_collection
(
$user
->
guid
,
$acl
);
return
true
;
}
/**
* This hooks into the getIcon API and provides nice user icons for users where possible.
*
* @param unknown_type $hook
* @param unknown_type $entity_type
* @param unknown_type $returnvalue
* @param unknown_type $params
* @return unknown
*/
function
groups_groupicon_hook
(
$hook
,
$entity_type
,
$returnvalue
,
$params
)
{
global
$CONFIG
;
if
((
!
$returnvalue
)
&&
(
$hook
==
'entity:icon:url'
)
&&
(
$params
[
'entity'
]
instanceof
ElggGroup
))
{
$entity
=
$params
[
'entity'
];
$type
=
$entity
->
type
;
$viewtype
=
$params
[
'viewtype'
];
$size
=
$params
[
'size'
];
if
(
$icontime
=
$entity
->
icontime
)
{
$icontime
=
"
{
$icontime
}
"
;
}
else
{
$icontime
=
"default"
;
}
$filehandler
=
new
ElggFile
();
$filehandler
->
owner_guid
=
$entity
->
owner_guid
;
$filehandler
->
setFilename
(
"groups/"
.
$entity
->
guid
.
$size
.
".jpg"
);
if
(
$filehandler
->
exists
())
{
$url
=
$CONFIG
->
url
.
"pg/groupicon/
{
$entity
->
guid
}
/
$size
/
$icontime
.jpg"
;
return
$url
;
}
}
}
/**
* A simple function to see who can edit a group discussion post
* @param the comment $entity
* @param user who owns the group $group_owner
* @return boolean
*/
function
groups_can_edit_discussion
(
$entity
,
$group_owner
)
{
//logged in user
$user
=
$_SESSION
[
'user'
]
->
guid
;
if
((
$entity
->
owner_guid
==
$user
)
||
$group_owner
==
$user
||
isadminloggedin
())
{
return
true
;
}
else
{
return
false
;
}
}
/**
* Overrides topic post getURL() value.
*
*/
function
group_topicpost_url
(
$annotation
)
{
if
(
$parent
=
get_entity
(
$annotation
->
entity_guid
))
{
global
$CONFIG
;
return
$CONFIG
->
wwwroot
.
'mod/groups/topicposts.php?topic='
.
$parent
->
guid
.
'&group_guid='
.
$parent
->
container_guid
.
'#'
.
$annotation
->
id
;
}
}
register_extender_url_handler
(
'group_topicpost_url'
,
'annotation'
,
'group_topic_post'
);
// Register a handler for create groups
register_elgg_event_handler
(
'create'
,
'group'
,
'groups_create_event_listener'
);
// Register a handler for delete groups
register_elgg_event_handler
(
'delete'
,
'group'
,
'groups_delete_event_listener'
);
// Make sure the groups initialisation function is called on initialisation
register_elgg_event_handler
(
'init'
,
'system'
,
'groups_init'
);
register_elgg_event_handler
(
'init'
,
'system'
,
'groups_fields_setup'
,
10000
);
// Ensure this runs after other plugins
register_elgg_event_handler
(
'join'
,
'group'
,
'groups_user_join_event_listener'
);
register_elgg_event_handler
(
'leave'
,
'group'
,
'groups_user_leave_event_listener'
);
register_elgg_event_handler
(
'pagesetup'
,
'system'
,
'groups_submenus'
);
register_elgg_event_handler
(
'annotate'
,
'all'
,
'group_object_notifications'
);
// Register actions
global
$CONFIG
;
register_action
(
"groups/addtopic"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/forums/addtopic.php"
);
register_action
(
"groups/deletetopic"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/forums/deletetopic.php"
);
register_action
(
"groups/addpost"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/forums/addpost.php"
);
register_action
(
"groups/edittopic"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/forums/edittopic.php"
);
register_action
(
"groups/deletepost"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/forums/deletepost.php"
);
register_action
(
"groups/featured"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/featured.php"
);
register_action
(
"groups/editpost"
,
false
,
$CONFIG
->
pluginspath
.
"groups/actions/forums/editpost.php"
);
?>
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment