Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
 /**
  * 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'));
     }
 }
Ejemplo n.º 3
0
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}";
}
Ejemplo n.º 4
0
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);
            }
        }
    }
}
Ejemplo n.º 5
0
/**
 * 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;
}
Ejemplo n.º 6
0
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}";
}
Ejemplo n.º 7
0
 /**
  * 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));
 }
Ejemplo n.º 8
0
 /**
  * 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);
 }
Ejemplo n.º 9
0
 /**
  * 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}");
 }
Ejemplo n.º 10
0
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'));
        }
    }
}
Ejemplo n.º 11
0
 /**
  * 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}";
     }
 }
Ejemplo n.º 12
0
 /**
  * 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}");
     }
 }
Ejemplo n.º 13
0
/**
 * 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}";
        }
    }
}
Ejemplo n.º 14
0
/**
 * 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);
}
Ejemplo n.º 15
0
/**
 * 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}";
}
Ejemplo n.º 16
0
<?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);
Ejemplo n.º 17
0
/**
 * @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}";
}
Ejemplo n.º 18
0
 /**
  * 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;
 }
Ejemplo n.º 19
0
 /**
  * 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);
     }
 }
Ejemplo n.º 20
0
function questions_url_handler($question)
{
    return "/questions/view/{$question->guid}/" . elgg_get_friendly_title($question->title);
}
Ejemplo n.º 21
0
/**
 * 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;
    }
}
Ejemplo n.º 22
0
    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);
Ejemplo n.º 23
0
/**
 * 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}";
    }
}
Ejemplo n.º 24
0
/**
 * 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}";
    }
}
Ejemplo n.º 25
0
/**
 * 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;
}
Ejemplo n.º 26
0
/**
 * 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);
}
Ejemplo n.º 27
0
/**
 * 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}";
}
Ejemplo n.º 28
0
 * 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>
Ejemplo n.º 29
0
            } 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);
Ejemplo n.º 30
0
/**
 * 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;
}