예제 #1
0
/**
 * Flush menu tree cache for root page
 *
 * @param string     $event  the name of the event
 * @param string     $type   the type of the event
 * @param ElggObject $object the object affected
 *
 * @return void
 */
function pages_tools_cache_handler($event, $type, ElggObject $object)
{
    if (!pages_tools_is_valid_page($object)) {
        return;
    }
    $ia = elgg_set_ignore_access(true);
    $root_page = pages_tools_get_root_page($object);
    pages_tools_flush_tree_html_cache($root_page);
    elgg_set_ignore_access($ia);
}
예제 #2
0
function pages_tools_get_root_page(ElggObject $entity)
{
    $result = false;
    if (pages_tools_is_valid_page($entity)) {
        if (elgg_instanceof($entity, "object", "page_top")) {
            $result = $entity;
        } elseif (isset($entity->parent_guid)) {
            $parent = get_entity($entity->parent_guid);
            $result = pages_tools_get_root_page($parent);
        }
    }
    return $result;
}
예제 #3
0
/**
 * Get the options_values array for the edit form parent selector
 *
 * @param ElggEntity $entity the page entity being edited
 *
 * @return false|array
 */
function pages_tools_get_parent_selector_options(ElggEntity $entity)
{
    if (!pages_tools_is_valid_page($entity)) {
        return false;
    }
    $root_page = pages_tools_get_root_page($entity);
    $result = array($root_page->getGUID() => $root_page->title);
    $result += pages_tools_get_parent_selector_children($root_page, $entity->getGUID());
    return $result;
}
예제 #4
0
<?php

$entity = elgg_extract('entity', $vars);
if (!pages_tools_is_valid_page($entity)) {
    return;
}
$root_page = pages_tools_get_root_page($entity);
$tree_data = pages_tools_get_tree_html_from_cache($root_page);
if ($tree_data !== false) {
    echo $tree_data;
    return;
}
if (!pages_tools_register_navigation_tree($entity)) {
    return;
}
// get the navigation menu
$tree_data = elgg_view_menu('pages_nav', array('class' => 'pages-nav', 'sort_by' => 'priority'));
pages_tools_save_tree_html_to_cache($root_page, $tree_data);
echo $tree_data;