Example #1
0
/**
 * Track Elgg actions if the setting allows this
 *
 * @param string $action the name of the action
 *
 * @return void
 */
function analytics_track_action($action)
{
    $action_result = true;
    if (!analytics_google_track_actions_enabled()) {
        // tracking is not enabled
        return;
    }
    $params = ['action' => $action];
    if (!elgg_trigger_plugin_hook('track_action', 'analytics', $params, true)) {
        // don't track this action
        return;
    }
    // if an error occured log the action as failed
    if (count_messages('error') > 0) {
        $action_result = false;
    }
    if (!isset($_SESSION['analytics'])) {
        $_SESSION['analytics'] = [];
    }
    if (!isset($_SESSION['analytics']['actions'])) {
        $_SESSION['analytics']['actions'] = [];
    }
    $_SESSION['analytics']['actions'][$action] = $action_result;
}
Example #2
0
/**
 * Assembles and outputs a full page.
 *
 * A "page" in Elgg is determined by the current view type and
 * can be HTML for a browser, RSS for a feed reader, or
 * Javascript, PHP and a number of other formats.
 *
 * For HTML pages, use the 'head', 'page' plugin hook for setting meta elements
 * and links.
 *
 * @param string $title      Title
 * @param string $body       Body
 * @param string $page_shell Optional page shell to use. See page/shells view directory
 * @param array  $vars       Optional vars array to pass to the page
 *                           shell. Automatically adds title, body, head, and sysmessages
 *
 * @return string The contents of the page
 * @since  1.8
 */
function elgg_view_page($title, $body, $page_shell = 'default', $vars = array())
{
    $params = array();
    $params['identifier'] = _elgg_services()->request->getFirstUrlSegment();
    $params['segments'] = _elgg_services()->request->getUrlSegments();
    array_shift($params['segments']);
    $page_shell = elgg_trigger_plugin_hook('shell', 'page', $params, $page_shell);
    $messages = null;
    if (count_messages()) {
        // get messages - try for errors first
        $messages = system_messages(null, "error");
        if (count($messages["error"]) == 0) {
            // no errors so grab rest of messages
            $messages = system_messages(null, "");
        } else {
            // we have errors - clear out remaining messages
            system_messages(null, "");
        }
    }
    $vars['title'] = $title;
    $vars['body'] = $body;
    $vars['sysmessages'] = $messages;
    // head has keys 'title', 'metas', 'links'
    $head_params = _elgg_views_prepare_head($title);
    $vars['head'] = elgg_trigger_plugin_hook('head', 'page', $vars, $head_params);
    $vars = elgg_trigger_plugin_hook('output:before', 'page', null, $vars);
    // check for deprecated view
    if ($page_shell == 'default' && elgg_view_exists('pageshells/pageshell')) {
        elgg_deprecated_notice("pageshells/pageshell is deprecated by page/{$page_shell}", 1.8);
        $output = elgg_view('pageshells/pageshell', $vars);
    } else {
        $output = elgg_view("page/{$page_shell}", $vars);
    }
    $vars['page_shell'] = $page_shell;
    // Allow plugins to modify the output
    return elgg_trigger_plugin_hook('output', 'page', $vars, $output);
}
Example #3
0
File: views.php Project: rasul/Elgg
/**
 * Assembles and outputs a full page.
 *
 * A "page" in Elgg is determined by the current view type and
 * can be HTML for a browser, RSS for a feed reader, or
 * Javascript, PHP and a number of other formats.
 *
 * @param string $title      Title
 * @param string $body       Body
 * @param string $page_shell Optional page shell to use. See page/shells view directory
 * @param array  $vars       Optional vars array to pass to the page
 *                           shell. Automatically adds title, body, and sysmessages
 *
 * @return string The contents of the page
 * @since  1.8
 */
function elgg_view_page($title, $body, $page_shell = 'default', $vars = array())
{
    $messages = null;
    if (count_messages()) {
        // get messages - try for errors first
        $messages = system_messages(NULL, "error");
        if (count($messages["error"]) == 0) {
            // no errors so grab rest of messages
            $messages = system_messages(null, "");
        } else {
            // we have errors - clear out remaining messages
            system_messages(null, "");
        }
    }
    $vars['title'] = $title;
    $vars['body'] = $body;
    $vars['sysmessages'] = $messages;
    // check for deprecated view
    if ($page_shell == 'default' && elgg_view_exists('pageshells/pageshell')) {
        elgg_deprecated_notice("pageshells/pageshell is deprecated by page/{$page_shell}", 1.8);
        global $CONFIG;
        $vars['config'] = $CONFIG;
        $output = elgg_view('pageshells/pageshell', $vars);
    } else {
        $output = elgg_view("page/{$page_shell}", $vars);
    }
    $vars['page_shell'] = $page_shell;
    // Allow plugins to mod output
    return elgg_trigger_plugin_hook('output', 'page', $vars, $output);
}
Example #4
0
function show_error($error, $extra = NULL)
{
    // show error-message
    $msg = $error;
    if ($extra != NULL) {
        $msg .= " - " . $extra;
    }
    add_error($msg);
    if (empty($_GET['error'])) {
        session_write_close();
        mosRedirect(make_link("show_error", $GLOBALS["dir"]) . '&error=1&extra=' . urlencode($extra));
    } else {
        show_header($GLOBALS["error_msg"]["error"]);
        $errors = count_errors();
        $messages = count_messages();
        echo '<div class="quote">';
        if ($errors) {
            echo '<a href="#errors">' . $errors . ' ' . $GLOBALS["error_msg"]["error"] . '</a><br />';
        }
        if ($messages) {
            echo '<a href="#messages">' . $messages . ' ' . $GLOBALS["error_msg"]["message"] . '</a><br />';
        }
        echo "</div>\n";
        if (!empty($_SESSION['jx_message'])) {
            echo "<a href=\"" . str_replace('&dir=', '&ignore=', make_link("list", '')) . "\">[ " . $GLOBALS["error_msg"]["back"] . " ]</a>";
            echo "<div class=\"jx_message\"><a name=\"messages\"></a>\n\t\t\t\t\t<h3>" . $GLOBALS["error_msg"]["message"] . ":</strong>" . "</h3>\n";
            foreach ($_SESSION['jx_message'] as $msgtype) {
                foreach ($msgtype as $message) {
                    echo $message . "\n<br/>";
                }
                echo '<br /><hr /><br />';
            }
            empty_messages();
            if (!empty($_REQUEST['extra'])) {
                echo " - " . htmlspecialchars(urldecode($_REQUEST['extra']), ENT_QUOTES);
            }
            echo "</div>\n";
        }
        if (!empty($_SESSION['jx_error'])) {
            echo "<div class=\"jx_error\"><a name=\"errors\"></a>\n\t\t\t\t<h3>" . $GLOBALS["error_msg"]["error"] . ":</strong>" . "</h3>\n";
            foreach ($_SESSION['jx_error'] as $errortype) {
                foreach ($errortype as $error) {
                    echo $error . "\n<br/>";
                }
                echo '<br /><hr /><br />';
            }
            empty_errors();
        }
        echo "<a href=\"" . str_replace('&dir=', '&ignore=', make_link("list", '')) . "\">" . $GLOBALS["error_msg"]["back"] . "</a>";
        if (!empty($_REQUEST['extra'])) {
            echo " - " . htmlspecialchars(urldecode($_REQUEST['extra']), ENT_QUOTES);
        }
        echo "</div>\n";
        defined('JXPLORER_NOEXEC') or define('JXPLORER_NOEXEC', 1);
    }
}
Example #5
0
<?php

$messages = null;
if (count_messages()) {
    // get messages - try for errors first
    $messages = system_messages(NULL, 'error');
    if (count($messages['error']) == 0) {
        // no errors so grab rest of messages
        $messages = system_messages(null, '');
    } else {
        // we have errors - clear out remaining messages
        system_messages(null, '');
    }
}
$type = elgg_extract('type', $vars, 'view');
$entity = elgg_extract('entity', $vars);
echo elgg_view_menu('newsletter_buttons', ['entity' => $entity, 'type' => $type, 'class' => 'newsletter-buttons', 'sort_by' => 'priority']);
echo elgg_view('page/elements/messages', ['object' => $messages]);
echo elgg_format_element('style', ['type' => 'text/css'], elgg_view('css/newsletter/buttons.css'));
elgg_load_css('newsletter_buttons');