/** * * 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; }