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