Beispiel #1
0
/**
 * Only site announcement editors can access this part
 *
 * @return void
 */
function site_announcements_editor_gatekeeper()
{
    elgg_gatekeeper();
    if (!site_announcements_is_editor()) {
        register_error(elgg_echo('limited_access'));
        forward(REFERER);
    }
}
Beispiel #2
0
 /**
  * Change the filter menu items for site announcements
  *
  * @param string          $hook        the name of the hook
  * @param string          $type        the type of the hook
  * @param \ElggMenuItem[] $returnvalue current returnvalue
  * @param array           $params      supplied params
  *
  * @return \ElggMenuItem[]
  */
 public static function register($hook, $type, $returnvalue, $params)
 {
     if (empty($params) || !is_array($params)) {
         return $returnvalue;
     }
     if (!elgg_in_context('announcements')) {
         return $returnvalue;
     }
     // reset menu items
     $returnvalue = array();
     $returnvalue[] = \ElggMenuItem::factory(array('name' => 'all', 'text' => elgg_echo('site_annoucements:filter:active'), 'href' => 'announcements/all', 'priority' => 100, 'is_trusted' => true));
     $returnvalue[] = \ElggMenuItem::factory(array('name' => 'archive', 'text' => elgg_echo('site_annoucements:filter:archive'), 'href' => 'announcements/archive', 'priority' => 200, 'is_trusted' => true));
     if (site_announcements_is_editor()) {
         $returnvalue[] = \ElggMenuItem::factory(array('name' => 'scheduled', 'text' => elgg_echo('site_annoucements:filter:scheduled'), 'href' => 'announcements/scheduled', 'priority' => 300, 'is_trusted' => true));
         $returnvalue[] = \ElggMenuItem::factory(array('name' => 'editors', 'text' => elgg_echo('site_annoucements:filter:editors'), 'href' => 'announcements/editors', 'priority' => 400, 'is_trusted' => true));
     }
     return $returnvalue;
 }
Beispiel #3
0
 /**
  * Add a menu item to the user hover menu
  *
  * @param string          $hook        the name of the hook
  * @param string          $type        the type of the hook
  * @param \ElggMenuItem[] $returnvalue current returnvalue
  * @param array           $params      supplied params
  *
  * @return \ElggMenuItem[]
  */
 public static function register($hook, $type, $returnvalue, $params)
 {
     if (!elgg_is_admin_logged_in()) {
         return $returnvalue;
     }
     if (empty($params) || !is_array($params)) {
         return $returnvalue;
     }
     $entity = elgg_extract("entity", $params);
     if (empty($entity) || !elgg_instanceof($entity, "user")) {
         return $returnvalue;
     }
     if ($entity->isAdmin()) {
         // user is already admin
         return $returnvalue;
     }
     $is_editor = site_announcements_is_editor($entity);
     $returnvalue[] = \ElggMenuItem::factory(array('name' => 'announcement_make_editor', 'text' => elgg_echo('site_announcements:user_hover:make_editor'), 'href' => "action/site_announcements/toggle_editor?user_guid={$entity->getGUID()}", 'item_class' => $is_editor ? 'hidden' : '', 'section' => 'admin', 'priority' => 400));
     $returnvalue[] = \ElggMenuItem::factory(array('name' => 'announcement_remove_editor', 'text' => elgg_echo('site_announcements:user_hover:remove_editor'), 'href' => "action/site_announcements/toggle_editor?user_guid={$entity->getGUID()}", 'item_class' => $is_editor ? '' : 'hidden', 'section' => 'admin', 'priority' => 401));
     return $returnvalue;
 }
Beispiel #4
0
<?php

$user_guid = (int) get_input('user_guid');
$user = get_user($user_guid);
if (empty($user)) {
    register_error(elgg_echo('error:missing_data'));
    forward(REFERER);
}
if ($user->isAdmin()) {
    register_error(elgg_echo('site_announcements:action:toggle_editor:error:is_admin', array($user->name)));
    forward(REFERER);
}
if (site_announcements_is_editor($user)) {
    elgg_unset_plugin_user_setting('editor', $user->getGUID(), 'site_announcements');
    system_message(elgg_echo('site_announcements:action:toggle_editor:unmake', array($user->name)));
} else {
    elgg_set_plugin_user_setting('editor', time(), $user->getGUID(), 'site_announcements');
    system_message(elgg_echo('site_announcements:action:toggle_editor:make', array($user->name)));
}
forward(REFERER);
Beispiel #5
0
<?php

/**
 * List all currently active announcements
 */
// breadcrumb
elgg_push_breadcrumb(elgg_echo('site_annoucements'));
// add button
if (site_announcements_is_editor()) {
    elgg_register_title_button();
}
// build page elements
$title = elgg_echo('site_annoucements:all:title');
$options = array('type' => 'object', 'subtype' => SITE_ANNOUNCEMENT_SUBTYPE, 'order_by_metadata' => array('name' => 'startdate', 'as' => 'integer', 'direction' => 'DESC'), 'metadata_name_value_pairs' => array(array('name' => 'startdate', 'value' => time(), 'operand' => '<='), array('name' => 'enddate', 'value' => time(), 'operand' => '>')), 'no_results' => elgg_echo('site_annoucements:all:none'));
$content = elgg_list_entities_from_metadata($options);
// build page
$page_data = elgg_view_layout('content', array('title' => $title, 'content' => $content));
// draw page
echo elgg_view_page($title, $page_data);
Beispiel #6
0
 /**
  * Check the write permissions
  *
  * @param string $hook        the name of the hook
  * @param string $type        the type of the hook
  * @param array  $returnvalue current returnvalue
  * @param array  $params      supplied params
  *
  * @return bool
  */
 public static function permissionsCheck($hook, $type, $returnvalue, $params)
 {
     if ($returnvalue) {
         // already allowed
         return $returnvalue;
     }
     if (empty($params) || !is_array($params)) {
         return $returnvalue;
     }
     $user = elgg_extract('user', $params);
     $entity = elgg_extract('entity', $params);
     if (empty($user) || !elgg_instanceof($user, 'user')) {
         return $returnvalue;
     }
     if (empty($entity) || !elgg_instanceof($entity, 'object', SITE_ANNOUNCEMENT_SUBTYPE)) {
         return $returnvalue;
     }
     if (site_announcements_is_editor($user)) {
         return true;
     }
     return $returnvalue;
 }