コード例 #1
0
ファイル: init.php プロジェクト: socialweb/PiGo
/**
 *
 * Hook to create control menu for all entities for izap-elgg-bridge compatible
 * plugins. (access, edit, like, delete)
 * @param <type> $hook
 * @param <type> $type
 * @param <type> $return
 * @param <type> $params
 * @return <type>
 *
 */
function izap_entity_menu_setup($hook, $type, $return, $params)
{
    if (elgg_in_context('widgets')) {
        return $return;
    }
    $allowed_sub_types = array(GLOBAL_IZAP_VIDEOS_SUBTYPE, GLOBAL_IZAP_ECOMMERCE_SUBTYPE, GLOBAL_IZAP_CONTEST_CHALLENGE_SUBTYPE, GLOBAL_IZAP_CONTEST_QUIZ_SUBTYPE);
    $entity = $params['entity'];
    if (!in_array($entity->getSubtype(), $allowed_sub_types)) {
        return $return;
    }
    $handler = elgg_extract('handler', $params, false);
    // access
    $access = elgg_view('output/access', array('entity' => $entity));
    $options = array('name' => 'access', 'text' => $access, 'href' => false, 'priority' => 100);
    $return[] = ElggMenuItem::factory($options);
    if ($entity->canEdit() && $handler) {
        if (isset($params['vars']) && $params['vars'] != '') {
            if (!is_array($params['vars'])) {
                $vars = array($params['vars']);
            } else {
                $vars = $params['vars'];
            }
        } else {
            $vars = array($entity->getGUID());
        }
        //   edit link
        $options = array('name' => 'edit', 'text' => elgg_echo('edit'), 'title' => elgg_echo('edit:this'), 'href' => IzapBase::setHref(isset($params['page_owner']) ? array('page_owner' => $params['page_owner'], 'context' => $handler, 'action' => 'edit', 'vars' => $vars) : array('context' => $handler, 'action' => 'edit', 'vars' => $vars)), 'priority' => 200);
        $return[] = ElggMenuItem::factory($options);
        // delete link
        $options = array('name' => 'delete', 'text' => elgg_view_icon('delete'), 'title' => elgg_echo('delete:this'), 'href' => IzapBase::deleteLink(array('guid' => $entity->getGUID(), 'only_url' => true)), 'confirm' => elgg_echo('deleteconfirm'), 'priority' => 300);
        $return[] = ElggMenuItem::factory($options);
    }
    return $return;
}