123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- namespace AU\LikedContent;
- const PLUGIN_ID = 'liked_content';
- require_once __DIR__ . '/lib/hooks.php';
- elgg_register_event_handler('init', 'system', __NAMESPACE__ . '\\init');
- function init() {
- elgg_register_plugin_hook_handler('register', 'menu:owner_block', __NAMESPACE__ . '\\owner_block');
- elgg_register_plugin_hook_handler('register', 'menu:entity', __NAMESPACE__ . '\\entity_menu', 1000);
- elgg_register_page_handler('liked_content', __NAMESPACE__ . '\\liked_content_page_handler');
- if (elgg_is_active_plugin('au_widgets')) {
- elgg_register_widget_type(
- 'liked_content', elgg_echo('liked_content:widget:your_likes:title'), elgg_echo('liked_content:widget:your_likes:description'), array(
- 'profile',
- 'dashboard',
- 'groups',
- 'index'
- ), TRUE
- );
- }
-
- add_group_tool_option('liked_content', elgg_echo('liked_content:group:enable'), true);
- }
- function liked_content_page_handler($page) {
- switch ($page[0]) {
- case 'group':
- $entity = get_entity($page[1]);
- if (!elgg_instanceof($entity, 'group') || $entity->liked_content_enable == 'no') {
- return false;
- }
- elgg_set_page_owner_guid($entity->guid);
- $content = elgg_view('resources/liked_content/group', array(
- 'group' => $entity
- ));
- if ($content) {
- echo $content;
- return true;
- }
- break;
- case 'user':
- $entity = get_user_by_username($page[1]);
- if (!elgg_instanceof($entity, 'user')) {
- return false;
- }
- elgg_set_page_owner_guid($entity->guid);
- $content = elgg_view('resources/liked_content/user', array(
- 'user' => $entity
- ));
- if ($content) {
- echo $content;
- return true;
- }
- break;
-
- case 'all':
- $content = elgg_view('resources/liked_content/all');
- if ($content) {
- echo $content;
- return true;
- }
- break;
- }
- return false;
- }
- function liked_content_set_defaults($widget) {
- if ($widget->defaults_set == 1) {
- return;
- }
- $widget->eligo_sortby = 'mostliked';
- $widget->eligo_sortby_dir = 'desc';
-
- $container = $widget->getContainerEntity();
- if (!elgg_instanceof($container, 'group')) {
-
- $widget->eligo_owners = 'all';
- } else {
-
- $widget->eligo_owners = 'thisgroup';
- }
- if (elgg_instanceof($container, 'user')) {
- $widget->my_likes = 0;
- }
- $widget->defaults_set = 1;
- }
|