function bookmark_tools_init() { // extend CSS elgg_extend_view("css/elgg", "bookmark_tools/css/site"); if (bookmark_tools_use_folder_structure()) { elgg_extend_view("groups/edit", "bookmark_tools/group_settings"); } // extend js elgg_extend_view("js/elgg", "bookmark_tools/js/site"); // register JS libraries $vendors = elgg_get_site_url() . "mod/bookmark_tools/vendors/"; elgg_register_js("jquery.tree", $vendors . "jstree/jquery.tree.min.js"); elgg_register_css("jquery.tree", $vendors . "jstree/themes/default/style.css"); elgg_register_js("jquery.hashchange", $vendors . "hashchange/jquery.hashchange.js"); // register page handler for nice URL's elgg_register_page_handler("bookmark_tools", "bookmark_tools_page_handler"); // make our own URLs for folders elgg_register_entity_url_handler("object", BOOKMARK_TOOLS_SUBTYPE, "bookmark_tools_folder_url_handler"); // make our own URLs for folder icons elgg_register_plugin_hook_handler("entity:icon:url", "object", "bookmark_tools_folder_icon_hook"); // register group option to allow management of bookmark tree structure add_group_tool_option("bookmark_tools_structure_management", elgg_echo("bookmark_tools:group_tool_option:structure_management")); // register events elgg_register_event_handler("create", "object", "bookmark_tools_object_handler"); elgg_register_event_handler("update", "object", "bookmark_tools_object_handler"); elgg_register_event_handler("delete", "object", "bookmark_tools_object_handler_delete"); // register hooks elgg_register_plugin_hook_handler("register", "menu:entity", "bookmark_tools_entity_menu_hook"); elgg_register_plugin_hook_handler("permissions_check:metadata", "object", "bookmark_tools_can_edit_metadata_hook"); elgg_register_plugin_hook_handler("route", "bookmarks", "bookmark_tools_bookmark_route_hook"); elgg_register_plugin_hook_handler("route", "bookmarks_tree", "bookmark_tools_forward_old_link"); elgg_register_plugin_hook_handler("register", "menu:bookmark_tools_folder_breadcrumb", "bookmark_tools_folder_breadcrumb_hook"); elgg_register_plugin_hook_handler("register", "menu:bookmark_tools_folder_sidebar_tree", "bookmark_tools_folder_sidebar_tree_hook"); // register actions elgg_register_action("bookmark_tools/groups/save_sort", dirname(__FILE__) . "/actions/groups/save_sort.php"); elgg_register_action("bookmark_tools/folder/edit", dirname(__FILE__) . "/actions/folder/edit.php"); elgg_register_action("bookmark_tools/bmfolder/delete", dirname(__FILE__) . "/actions/folder/delete.php"); elgg_register_action("bookmark_tools/folder/reorder", dirname(__FILE__) . "/actions/folder/reorder.php"); elgg_register_action("bookmark_tools/bookmarks/hide", dirname(__FILE__) . "/actions/bookmarks/hide.php"); elgg_register_action("bookmark/move", dirname(__FILE__) . "/actions/bookmarks/move.php"); elgg_register_action("bookmark/bulk_delete", dirname(__FILE__) . "/actions/bookmarks/bulk_delete.php"); }
function bookmark_tools_bookmark_route_hook($hook, $type, $returnvalue, $params) { $result = $returnvalue; if (!empty($returnvalue) && is_array($returnvalue)) { $page = elgg_extract("segments", $returnvalue); switch ($page[0]) { case "view": if (!elgg_is_logged_in() && isset($page[1])) { if (!get_entity($page[1])) { gatekeeper(); } } break; case "owner": if (bookmark_tools_use_folder_structure()) { $result = false; include dirname(dirname(__FILE__)) . "/pages/list.php"; } break; case "group": if (bookmark_tools_use_folder_structure()) { $result = false; include dirname(dirname(__FILE__)) . "/pages/list.php"; } break; case "add": $user = get_user_by_username($page[1]); if ($user) { $search = elgg_get_site_url() . 'bookmarks/add/' . $user->username; $replace = elgg_get_site_url() . 'bookmarks/add/' . $user->guid; $url = str_replace($search, $replace, current_page_url()); forward($url); } break; } } return $result; }
<?php echo elgg_view('input/longtext', array('name' => 'description', 'value' => $desc)); ?> </div> <div> <label><?php echo elgg_echo('tags'); ?> </label> <?php echo elgg_view('input/tags', array('name' => 'tags', 'value' => $tags)); ?> </div> <?php if (elgg_is_active_plugin('bookmark_tools')) { if (bookmark_tools_use_folder_structure()) { $parent_guid = 0; if ($bookmark = elgg_extract("entity", $vars)) { if ($folders = $bookmark->getEntitiesFromRelationship(BOOKMARK_TOOLS_RELATIONSHIP, true, 1)) { $parent_guid = $folders[0]->getGUID(); } } ?> <div> <label><?php echo elgg_echo("bookmark_tools:forms:edit:parent"); ?> <br /> <?php echo elgg_view("input/bmfolder_select", array("name" => "bmfolder_guid", "value" => $parent_guid)); ?>