function event_manager_entity_menu($hook, $entity_type, $returnvalue, $params) { $result = $returnvalue; if (elgg_in_context("widgets")) { return $result; } if (($entity = elgg_extract("entity", $params)) && elgg_instanceof($entity, "object", Event::SUBTYPE)) { $attendee_menu_options = array("name" => "attendee_count", "priority" => 50, "text" => elgg_echo("event_manager:event:relationship:event_attending:entity_menu", array($entity->countAttendees())), "href" => false); $result[] = ElggMenuItem::factory($attendee_menu_options); // change some of the basic menus if (!empty($result) && is_array($result)) { foreach ($result as &$item) { switch ($item->getName()) { case "edit": $item->setHref("events/event/edit/" . $entity->getGUID()); break; case "delete": $href = elgg_get_site_url() . "action/event_manager/event/delete?guid=" . $entity->getGUID(); $href = elgg_add_action_tokens_to_url($href); $item->setHref($href); $item->setConfirmText(elgg_echo("deleteconfirm")); break; } } } // show an unregister link for non logged in users if (!elgg_is_logged_in() && $entity->register_nologin) { $result[] = ElggMenuItem::factory(array("name" => "unsubscribe", "text" => elgg_echo("event_manager:menu:unsubscribe"), "href" => "events/unsubscribe/" . $entity->getGUID() . "/" . elgg_get_friendly_title($entity->title), "priority" => 300)); } } return $result; }
/** * adds the buttons to the specified menu * @param array $array * menu_name => menu name of the button * $title => title of button * $url => link of the button * */ protected function addButton($array) { extract($array); if (!empty($title) && !empty($menu_name)) { elgg_register_menu_item($menu_name, array('name' => elgg_get_friendly_title($title), 'href' => $url, 'text' => $title, 'link_class' => 'elgg-button elgg-button-action')); } }
function sched_conf_url_handler($entity) { elgg_load_library('elgg:sched_conf'); $friendly_title = elgg_get_friendly_title($entity->title); $event = sched_conf_get_event_for_conference($entity->guid); return "event_calendar/view/{$event->guid}/{$friendly_title}"; }
function pleiofile_add_folder_to_zip(ZipArchive &$zip_archive, ElggObject $folder, $folder_path = "") { if (!empty($zip_archive) && !empty($folder) && elgg_instanceof($folder, "object", "folder")) { $folder_title = elgg_get_friendly_title($folder->title); $zip_archive->addEmptyDir($folder_path . $folder_title); $folder_path .= $folder_title . DIRECTORY_SEPARATOR; $file_options = array("type" => "object", "subtype" => "file", "limit" => false, "relationship" => "folder_of", "relationship_guid" => $folder->getGUID()); // add files from this folder to the zip if ($files = elgg_get_entities_from_relationship($file_options)) { foreach ($files as $file) { // check if the file exists if ($zip_archive->statName($folder_path . $file->originalfilename) === false) { // doesn't exist, so add $zip_archive->addFile($file->getFilenameOnFilestore(), $folder_path . sanitize_file_name($file->originalfilename)); } else { // file name exists, so create a new one $ext_pos = strrpos($file->originalfilename, "."); $file_name = substr($file->originalfilename, 0, $ext_pos) . "_" . $file->getGUID() . substr($file->originalfilename, $ext_pos); $zip_archive->addFile($file->getFilenameOnFilestore(), $folder_path . sanitize_file_name($file_name)); } } } // check if there are subfolders $folder_options = array("type" => "object", "subtype" => "folder", "limit" => false, "metadata_name_value_pairs" => array("parent_guid" => $folder->getGUID())); if ($sub_folders = elgg_get_entities_from_metadata($folder_options)) { foreach ($sub_folders as $sub_folder) { pleiofile_add_folder_to_zip($zip_archive, $sub_folder, $folder_path); } } } }
/** * Give entities their own URLs * * @param string $hook Equals 'entity:url' * @param string $type Equals 'object' * @param string $return Current URL * @param array $params Additional params * @return string Filtered URL */ function url_handler($hook, $type, $return, $params) { $entity = elgg_extract('entity', $params); if (elgg_instanceof($entity, 'object', 'hjplace')) { $friendly_title = elgg_get_friendly_title($entity->title); return elgg_normalize_url(PAGEHANDLER . '/profile/' . $entity->guid . '/' . $friendly_title); } return $return; }
function blogbook_url_handler($entity) { if (!$entity->getOwnerEntity()) { // default to a standard view if no owner. return FALSE; } $friendly_title = elgg_get_friendly_title($entity->title); return "blogbook/view/{$entity->guid}/{$friendly_title}"; }
/** * Get the URL for this entity * * @see ElggEntity::getURL() * * @return string */ public function getURL() { $title = $this->title; if (strlen($title) > 50) { $title = elgg_get_excerpt($title, 50); } $title = str_replace("...", "", $title); return elgg_normalize_url("user_support/support_ticket/" . $this->getGUID() . "/" . elgg_get_friendly_title($title)); }
/** * Returns normalized category URL * * @param Category $entity Category * @return string */ public function getEntityUrl(Category $entity) { $friendly = elgg_get_friendly_title($entity->getDisplayName()); $query = array(); $page_owner = elgg_get_page_owner_entity(); if ($page_owner instanceof \ElggGroup) { $query['container_guid'] = $page_owner->guid; } return $this->normalize(array('view', $entity->guid, $friendly), $query); }
/** * Get url * * @see ElggEntity::getURL() * @return string */ public function getURL() { $friendly_title = $this->friendly_title; if (!empty($friendly_title)) { return elgg_normalize_url("wizard/{$this->friendly_title}"); } // something went wrong, use fallback url $friendly_title = elgg_get_friendly_title($this->title); return elgg_normalize_url("wizard/view/{$this->getGUID()}/{$friendly_title}"); }
function developers_setup_menu() { if (elgg_in_context('admin')) { elgg_register_admin_menu_item('develop', 'inspect'); elgg_register_admin_menu_item('develop', 'sandbox', 'develop_tools'); elgg_register_admin_menu_item('develop', 'unit_tests', 'develop_tools'); elgg_register_menu_item('page', array('name' => 'dev_settings', 'href' => 'admin/developers/settings', 'text' => elgg_echo('settings'), 'context' => 'admin', 'priority' => 10, 'section' => 'develop')); $inspect_options = developers_get_inspect_options(); foreach ($inspect_options as $key => $value) { elgg_register_menu_item('page', array('name' => 'dev_inspect_' . elgg_get_friendly_title($key), 'href' => "admin/develop_tools/inspect?inspect_type={$key}", 'text' => $value, 'context' => 'admin', 'section' => 'develop', 'parent_name' => 'inspect')); } } }
/** * Get album URL * * @param string $action Operation * @return string */ public function getURL($action = 'view') { switch ($action) { default: case 'view': $friendly_title = elgg_get_friendly_title($this->title); return "gallery/view/{$this->guid}/{$friendly_title}"; case 'edit': return "gallery/edit/{$this->guid}"; case 'delete': return elgg_add_action_tokens_to_url(elgg_get_site_url() . "action/gallery/delete/object?guid={$this->guid}"); case 'manage': return "gallery/manage/{$this->guid}"; } }
/** * Get URL for a specific operation * * @param string $action Operation name * @return string */ public function getURL($action = 'view') { switch ($action) { default: case 'view': $friendly_title = elgg_get_friendly_title($this->title); return elgg_normalize_url("gallery/view/{$this->guid}/{$friendly_title}"); case 'edit': return elgg_normalize_url("gallery/manage/{$this->container_guid}#elgg-object-{$this->guid}"); case 'delete': return elgg_add_action_tokens_to_url(elgg_normalize_url("action/gallery/delete/object?guid={$this->guid}")); case 'download': return elgg_normalize_url("gallery/download/{$this->guid}"); } }
/** * Format and return the URL for news objects, since 1.9. * * @param string $hook * @param string $type * @param string $url * @param array $params * @return string URL of amapnews */ function amapnews_set_url($hook, $type, $url, $params) { $entity = $params['entity']; if (elgg_instanceof($entity, 'object', 'amapnews')) { if ($entity->connected_guid) { $connected_entity = get_entity($entity->connected_guid); $friendly_title = elgg_get_friendly_title($entity->title); if ($connected_entity) { return $connected_entity->getURL(); } else { return "news/view/{$entity->guid}/{$friendly_title}"; } } else { return "news/view/{$entity->guid}/{$friendly_title}"; } } }
/** * When given a title, returns a version suitable for inclusion in a URL * * @param string $title The title * * @return string The optimised title * @deprecated 1.8 Use elgg_get_friendly_title() */ function friendly_title($title) { elgg_deprecated_notice('friendly_title was deprecated by elgg_get_friendly_title', 1.8); return elgg_get_friendly_title($title); }
/** * Populates the ->getUrl() method for group objects * * @param ElggEntity $entity File entity * @return string File URL */ function groups_url($entity) { $title = elgg_get_friendly_title($entity->name); return "groups/profile/{$entity->guid}/{$title}"; }
<?php elgg_require_js('menu_builder/manage_menu_items'); $menus = menu_builder_get_managed_menus(); $selected = get_input('menu_name'); if (!empty($selected) && !menu_builder_is_managed_menu($selected)) { $selected = null; } $tabs = []; if (!empty($menus)) { $menu_list = ''; foreach ($menus as $menu) { if (empty($selected)) { $selected = $menu; } $class = 'hidden'; if ($menu === $selected) { $class = ''; } $menu_list .= elgg_view('menu_builder/admin/edit_menu', ['menu' => $menu, 'class' => $class, 'rel' => $menu]); $tabs[] = ['text' => elgg_echo('menu:' . elgg_get_friendly_title($menu) . ':header:default'), 'selected' => $menu === $selected, 'rel' => $menu, 'href' => 'javascript:void(0)']; } } else { $menu_list = elgg_echo('notfound'); } $tabs[] = ['text' => ' <strong>+</strong> ' . elgg_echo('menu_builder:admin:menu:add'), 'id' => 'menu-builder-add-menu', 'href' => 'javascript:void(0)']; $menu_list = elgg_view('navigation/tabs', ['tabs' => $tabs, 'class' => 'menu-builder-admin-tabs']) . $menu_list; echo elgg_view_module('inline', elgg_echo('menu_builder:admin:menu:list'), $menu_list);
/** * @param ElggObject $videolist_item * @return string */ function videolist_url($videolist_item) { $guid = $videolist_item->guid; $title = elgg_get_friendly_title($videolist_item->title); return elgg_get_site_url() . "videolist/watch/{$guid}/{$title}"; }
/** * Returns the thumbnail for the video * * @param boolean $pathOnly if we want the img src only or full <img ... /> tag * @param array $attArray attributes for the <img /> tag * @return HTML <img /> tag or image src */ public function getThumb($pathOnly = false, $attArray = array()) { $html = ''; $attString = ''; $imagePath = $this->IZAPSETTINGS->filesPath . 'image/' . $this->guid . '/' . elgg_get_friendly_title($this->title) . '.jpg'; if (count($attArray) > 0) { foreach ($attArray as $att => $value) { $attString .= ' ' . $att . '="' . $value . '" '; } } if ($pathOnly) { $html = $imagePath; } else { $html = '<img src="' . $imagePath . '" ' . $attString . ' />'; } return $html; }
/** * https://github.com/elgg/elgg/issues/3210 - Don't remove -s in friendly titles * https://github.com/elgg/elgg/issues/2276 - improve char encoding */ public function test_friendly_title() { $cases = array("B&N > Amazon, OK? <bold> 'hey!' \$34" => "bn-amazon-ok-bold-hey-34", "a-a_a a\na\ra\ta\va!a\"a#a\$a%aa'a(a)a*a+a,a.a/a:a;a=a?a@a[a\\a]a^a`a{a|a}a~a" => "a-a-a-a-a-a-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "-_ hello _-" => "hello", "Iñtërnâtiônàlizætiøn, AND 日本語" => 'internationalizaetion-and-%E6%97%A5%E6%9C%AC%E8%AA%9E'); // where available, string is converted to NFC before transliteration if (\Elgg\Translit::hasNormalizerSupport()) { $form_d = "Å"; // A followed by 'COMBINING RING ABOVE' (U+030A) $cases[$form_d] = "a"; } foreach ($cases as $case => $expected) { $friendly_title = elgg_get_friendly_title($case); $this->assertIdentical($expected, $friendly_title); } }
function questions_url_handler($question) { return "/questions/view/{$question->guid}/" . elgg_get_friendly_title($question->title); }
/** * Populates the ->getUrl() method for bookmarked objects * * @param string $hook * @param string $type * @param string $url * @param array $params * @return string bookmarked item URL */ function bookmark_set_url($hook, $type, $url, $params) { $entity = $params['entity']; if (elgg_instanceof($entity, 'object', 'bookmarks')) { $title = elgg_get_friendly_title($entity->title); return "bookmarks/view/" . $entity->getGUID() . "/" . $title; } }
if (!empty($include_subpages) && ($sub_index = pages_tools_render_index($page))) { $html .= $sub_index; } $html .= "</ul>"; $html .= "<p style='page-break-after:always;'></p>"; } // print page $html .= "<h3>" . elgg_view("output/url", array("text" => $page->title, "href" => false, "name" => "page_" . $page->getgUID())) . "</h3>"; $html .= elgg_view("output/longtext", array("value" => $page->description)); $html .= "<p style='page-break-after:always;'></p>"; // print subpages if (!empty($include_subpages) && ($child_pages = pages_tools_render_childpages($page))) { $html .= $child_pages; } // load library elgg_load_library("dompdf"); // render everything try { $dompdf = new DOMPDF(); // set correct page format $dompdf->set_paper($format); // set contents $dompdf->load_html($html); $dompdf->render(); // output as download $dompdf->stream(elgg_get_friendly_title($page->title) . ".pdf"); exit; } catch (Exception $e) { register_error($e->getMessage()); } forward(REFERER);
/** * Format and return the URL for blogs. * * @param string $hook * @param string $type * @param string $url * @param array $params * @return string URL of blog. */ function blog_set_url($hook, $type, $url, $params) { $entity = $params['entity']; if (elgg_instanceof($entity, 'object', 'blog')) { $friendly_title = elgg_get_friendly_title($entity->title); return "blog/view/{$entity->guid}/{$friendly_title}"; } }
/** * Override the page url * * @param string $hook * @param string $type * @param string $url * @param array $params * @return string */ function pages_set_url($hook, $type, $url, $params) { $entity = $params['entity']; if (pages_is_page($entity)) { $title = elgg_get_friendly_title($entity->title); return "pages/view/{$entity->guid}/{$title}"; } }
/** * Populates the ->getUrl() method for file objects * * @param ElggEntity $entity File entity * @return string File URL */ function file_url_override($entity) { $title = $entity->title; $title = elgg_get_friendly_title($title); return "file/view/" . $entity->getGUID() . "/" . $title; }
/** * Override the discussion topic url * * @param ElggObject $entity Discussion topic * @return string */ function discussion_override_topic_url($entity) { return 'discussion/view/' . $entity->guid . '/' . elgg_get_friendly_title($entity->title); }
/** * Populates the ->getUrl() method for group objects * * @param string $hook * @param string $type * @param string $url * @param array $params * @return string */ function groups_set_url($hook, $type, $url, $params) { $entity = $params['entity']; $title = elgg_get_friendly_title($entity->name); return "groups/profile/{$entity->guid}/{$title}"; }
* Copyrights (c) 2005-2011. iZAP * * All rights reserved * * ************************************************** * @author iZAP Team "<*****@*****.**>" * @link http://www.izap.in/ * Under this agreement, No one has rights to sell this script further. * For more information. Contact "Tarun Jangra<*****@*****.**>" * For discussion about corresponding plugins, visit http://www.pluginlotto.com/forum/ * Follow us on http://facebook.com/PluginLotto and http://twitter.com/PluginLotto */ //shows the detail view of the result page $result = $vars['entity']; ?> <div class="contentWrapper"> <a href="<?php echo izapbase::setHref(array('context' => GLOBAL_IZAP_CONTEST_CHALLENGE_PAGEHANDLER, 'action' => 'result', 'page_owner' => FALSE, 'vars' => array($result->container_guid, $result->guid, elgg_get_friendly_title($result->title)))); ?> "> <div> <div style="float: left; margin-right: 10px; width: 22%"> #<?php echo $result->guid; ?> </div> <div style="float: left; margin-right: 10px; width: 22%"> <?php echo elgg_view_friendly_time($result->time_created); ?> </div>
} else { $slot_relation = EVENT_MANAGER_RELATION_SLOT_REGISTRATION; } } $guid_explode = explode(',', $program_guids); foreach ($guid_explode as $slot_guid) { // add relationships with slots if (!empty($slot_guid)) { $object->addRelationship($slot_guid, $slot_relation); } } if (!elgg_is_logged_in()) { event_manager_send_registration_validation_email($event, $object); system_message(elgg_echo("event_manager:action:register:pending")); } $forward_url = $event->getURL(); if ($event->rsvp($relation, $object->getGUID())) { // relate to the event if (elgg_is_logged_in()) { $forward_url = "events/registration/completed/" . $event->getGUID() . "/" . $object->getGUID() . "/" . elgg_get_friendly_title($event->title); } } else { register_error(elgg_echo('event_manager:event:relationship:message:error')); } } else { register_error(elgg_echo("event_manager:event_not_found")); } } else { system_message(elgg_echo("InvalidParameterException:MissingParameter")); } forward($forward_url);
/** * Make a unique friendly title/permalink, when editing it validates to make sure it's unique * * @param string $friendly_title the input friendly title * @param int $entity_guid when provided it validates for uniques * * @return bool|string false when not unique, string otherwise */ function static_make_friendly_title($friendly_title, $entity_guid = 0) { if (empty($friendly_title)) { return false; } $entity_guid = sanitise_int($entity_guid, false); $friendly_title = strtolower($friendly_title); // make an URL friendly title $friendly_title = str_replace('"', "", $friendly_title); $friendly_title = str_replace("'", "", $friendly_title); $friendly_title = str_replace("`", "", $friendly_title); $friendly_title = preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($friendly_title, ENT_QUOTES, 'UTF-8')); $friendly_title = preg_replace('~&([a-z]{1,2})(quo);~i', '', $friendly_title); // rich text editor double quotes $friendly_title = elgg_get_friendly_title($friendly_title); $available = static_is_friendly_title_available($friendly_title, $entity_guid); if (!empty($entity_guid) && !$available) { // when editing an existing entity we will not generate a new name return false; } if (!$available) { // generate a new name $counter = 1; while (!static_is_friendly_title_available($friendly_title . $counter, $entity_guid)) { $counter++; } $friendly_title = $friendly_title . $counter; } return $friendly_title; }