/** * Redirects a notification item to the intended location * * @since 1.0 * @access public * @param string * @return */ public function route() { // The user needs to be logged in to access notifications FD::requireLogin(); // Check for user profile completeness FD::checkCompleteProfile(); $id = JRequest::getInt('id'); $table = FD::table('Notification'); $table->load($id); if (!$id || !$table->id) { FD::info()->set(JText::_('COM_EASYSOCIAL_NOTIFICATIONS_INVALID_ID_PROVIDED'), SOCIAL_MSG_ERROR); return $this->redirect(FRoute::dashboard(array(), false)); } // Check if the user is allowed to view this notification item. $my = FD::user(); if ($table->target_id != $my->id) { FD::info()->set(JText::_('COM_EASYSOCIAL_NOTIFICATIONS_NOT_ALLOWED'), SOCIAL_MSG_ERROR); return $this->redirect(FRoute::dashboard(array(), false)); } // Mark the notification item as read $table->markAsRead(); // Ensure that all & are replaced with & $url = str_ireplace('&', '&', $table->url); $this->redirect(FRoute::_($url, false)); $this->close(); }
/** * Redirects a notification item to the intended location * * @since 1.0 * @access public * @param string * @return */ public function route() { // The user needs to be logged in to access notifications FD::requireLogin(); // Get the notification id $id = $this->input->get('id', 0, 'int'); $table = FD::table('Notification'); $table->load($id); // Default redirection URL $redirect = FRoute::dashboard(array(), false); if (!$id || !$table->id) { $this->info->set(JText::_('COM_EASYSOCIAL_NOTIFICATIONS_INVALID_ID_PROVIDED'), SOCIAL_MSG_ERROR); return $this->redirect($redirect); } // Ensure that the viewer really owns this item if ($table->target_id != $this->my->id) { $this->info->set(JText::_('COM_EASYSOCIAL_NOTIFICATIONS_NOT_ALLOWED'), SOCIAL_MSG_ERROR); return $this->redirect($redirect); } // Mark the notification item as read $table->markAsRead(); // Ensure that all & are replaced with & $url = str_ireplace('&', '&', $table->url); $redirect = FRoute::_($url, false); $this->redirect($redirect); $this->close(); }
/** * Default user listings page. * * @since 1.0 * @access public * @param null * @return null */ public function display($tpl = null) { // Disallow access if (!$this->authorise('easysocial.access.setting')) { return $this->app->redirect('index.php', JText::_('JERROR_ALERTNOAUTHOR'), 'error'); } // Set page heading $this->setHeading(JText::_('COM_EASYSOCIAL_TITLE_HEADING_SETTINGS')); // Set page icon. $this->setIcon('ies-cog-2'); // Set page description $this->setDescription(JText::_('COM_EASYSOCIAL_DESCRIPTION_ACCESS')); $this->redirect(FRoute::_('index.php?option=com_easysocial&view=settings&layout=form&page=general')); $active = JRequest::getVar('active', 'general'); $this->set('active', $active); return parent::display('admin/settings/default'); }
public function load($options = array()) { if (!isset($options['url'])) { $options['url'] = FRoute::_(JRequest::getURI()); } $this->url = $options['url']; // If display mode is specified, set it accordingly. if (isset($options['display'])) { $this->display = $options['display']; } // Set the default text to our own text. $this->text = JText::_('COM_EASYSOCIAL_SHARING_SHARE_THIS'); // If text is provided, allow user to override the default text. if (isset($options['text'])) { $this->text = $options['text']; } // Obey settings $config = FD::config(); foreach (self::$availableVendors as $vendor) { if ($config->get('sharing.vendors.' . $vendor)) { $this->vendors[] = $vendor; } } // Force exclude if (isset($options['exclude'])) { $this->vendors = array_diff($this->vendors, self::$availableVendors); unset($options['exclude']); } // Force include if (isset($options['include'])) { $notInList = array_diff($options['include'], $this->vendors); $this->vendors = array_merge($this->vendors, $options['include']); unset($options['include']); } if (isset($options['css'])) { $this->css = $options['css']; } $this->options = $options; }
<?php echo $this->html('grid.id', $i, $category->id); ?> </td> <?php } ?> <td> <div class="row"> <img src="<?php echo $category->getAvatar(); ?> " class="es-avatar pull-left mr-10" /> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=groups&layout=categoryForm&id=' . $category->id); ?> " data-category-insert data-id="<?php echo $category->id; ?> " data-avatar="<?php echo $category->getAvatar(); ?> " data-alias="<?php echo $category->alias; ?> "
?> </a> </li> <li data-avatar-select-button> <a href="javascript:void(0);"><?php echo JText::_('COM_EASYSOCIAL_PHOTOS_SELECT_AVATAR'); ?> </a> </li> <?php if ($user->hasAvatar()) { ?> <li class="divider"></li> <li data-avatar-remove-button> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&controller=profile&task=removeAvatar', true, '', null, true); ?> "><?php echo JText::_("COM_EASYSOCIAL_PHOTOS_REMOVE_AVATAR"); ?> </a> </li> <?php } ?> </ul> </div> </div> <?php } ?>
?> <?php foreach ($themes as $theme) { ?> <tr> <td class="center"> <input type="radio" name="cid[]" value="<?php echo $theme->element; ?> " data-theme-item data-table-grid-id /> </td> <td> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=themes&layout=form&element=' . strtolower($theme->element)); ?> "> <?php echo $theme->name; ?> </a> </td> <td class="center"> <?php echo $this->html('grid.featured', $theme, 'themes', 'default', 'toggleDefault', !$theme->default ? true : false, array(JText::_('COM_EASYSOCIAL_THEMES_MAKE_DEFAULT'))); ?> </td> <td class="center">
/** * Allows overriden objects to redirect the current request only when in html mode. * * @access public * @param string $uri The raw uri string. * @param boolean $route Whether or not the uri should be routed */ public function redirect($uri, $route = true) { if ($route) { // Since redirects does not matter of the xhtml codes, we can just ignore this. $uri = FRoute::_($uri, false); } $this->app->redirect($uri); $this->app->close(); }
} ?> <?php if ($group->isInviteOnly()) { ?> <span class="label label-danger"><i class="ies-locked"></i> <?php echo JText::_('COM_EASYSOCIAL_GROUPS_INVITE_GROUP'); ?> </span> <?php } ?> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=groups&layout=form&id=' . $group->id); ?> " data-group-insert data-id="<?php echo $group->id; ?> "><?php echo $group->getName(); ?> </a> <p class="mt-5 fd-small"> <?php echo $group->description; ?> </p> </div>
/** * Builds the URLs for apps view * * @since 1.0 * @access public * @param array An array of request arguments * @param bool Determines if the url should be xhtml compliant * @return url The string of the URL */ public function route($options = array(), $xhtml = true) { $url = self::$base . '&view=' . $this->name; // Custom options $ssl = $options['ssl']; $tokenize = $options['tokenize']; $external = $options['external']; $tmpl = $options['tmpl']; $sef = $options['sef']; $layout = isset($options['layout']) ? $options['layout'] : ''; // check if the current request is from feed page or not. // if yes, let set the external to always true. $pageFormat = FD::input()->get('format', '', 'var'); if (!$external && $pageFormat == 'feed') { $external = true; } // Determines if this is a request to the controller $controller = $options['controller']; $data = array(); unset($options['ssl'], $options['tokenize'], $options['external'], $options['tmpl'], $options['controller'], $options['sef']); if ($options) { foreach ($options as $key => $value) { $data[] = $key . '=' . $value; } } $query = $options; $options = implode('&', $data); $join = !empty($options) ? '&' : ''; $url = $url . $join . $options; // Try to get the url from the adapter $overrideUrl = ''; // Set temporary data $query['view'] = $this->name; $query['option'] = 'com_easysocial'; // Ensure that all query values are lowercased $query = array_map(array('JString', 'strtolower'), $query); // Let's find for a suitable menu $view = $this->name; $layout = isset($query['layout']) ? $query['layout'] : ''; $id = isset($query['id']) ? (int) $query['id'] : ''; // For photos and albums, we want to fetch menu from "All Albums" if ($view == 'photos' || $view == 'albums') { $view = 'albums'; $layout = 'all'; $id = ''; } $menuId = FRoute::getItemId($view, $layout, $id); if ($menuId) { $menu = JFactory::getApplication()->getMenu()->getItem($menuId); if ($menu) { $current = $menu->query; if (isset($current['id']) && !empty($current['id'])) { $current['id'] = (int) $current['id']; } if (isset($query['id'])) { $query['id'] = (int) $query['id']; } $hasDiff = array_diff($query, $current); // // If there's no difference in both sets of query, we can safely assume that there's already // // a menu for this link if (empty($hasDiff)) { $overrideUrl = 'index.php?Itemid=' . $menuId; } //$overrideUrl = 'index.php?Itemid=' . $menuId; } } // If there are no overriden url's, we append our own item id. if ($overrideUrl) { $url = $overrideUrl; } else { // If there is no getUrl method, we want to get the default item id. if ($menuId) { $url .= '&Itemid=' . $menuId; } else { $url .= '&Itemid=' . FRoute::getItemId($view, $layout); } } return FRoute::_($url, $xhtml, array(), $ssl, $tokenize, $external, $tmpl, $controller, $sef); }
?> </a> </li> <li data-avatar-select-button> <a href="javascript:void(0);"><?php echo JText::_('COM_EASYSOCIAL_PHOTOS_SELECT_AVATAR'); ?> </a> </li> <?php if ($event->hasAvatar() && ($event->isAdmin() || $this->my->isSiteAdmin())) { ?> <li class="divider"></li> <li data-avatar-remove-button> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&id=' . $event->id . '&controller=events&task=removeAvatar', true, '', null, true); ?> "><?php echo JText::_("COM_EASYSOCIAL_PHOTOS_REMOVE_AVATAR"); ?> </a> </li> <?php } ?> </ul> </div> </div> <?php } ?>
<tr> <td><?php echo $this->html('grid.id', $i, $member->id); ?> </td> <td style="text-align: left;"> <span class="es-avatar es-avatar-rounded pull-left mr-15 ml-5"> <img src="<?php echo $user->getAvatar(SOCIAL_AVATAR_MEDIUM); ?> " width="24" align="left" /> </span> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=users&layout=form&id=' . $user->id); ?> " data-user-insert data-id="<?php echo $user->id; ?> " data-alias="<?php echo $user->getAlias(); ?> " data-title="<?php echo $this->html('string.escape', $user->name); ?> "
<?php echo $this->html('grid.id', $i, $badge->id); ?> </td> <?php } ?> <td> <img src="<?php echo $badge->getAvatar(); ?> " width="24" height="24" align="left" class="mr-10 mt-5" /> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=badges&layout=form&id=' . $badge->id); ?> " data-id="<?php echo $badge->id; ?> " data-title="<?php echo $badge->get('title'); ?> " data-avatar="<?php echo $badge->getAvatar(); ?> " data-alias="<?php
/** * Retrieve the badge permalink * * @since 1.0 * @access public * @return int The total number of users who achieved this badge. */ public function getPermalink($xhtml = false) { $url = FRoute::_('index.php?option=com_easysocial&view=labels&layout=item&id=' . $this->id, $xhtml); return $url; }
?> "></a> <?php } ?> </td> <td class="center"> <?php $title = $userObj->getProfile()->title; ?> <?php if ($title) { ?> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=profiles&layout=form&id=' . $userObj->getProfile()->id); ?> "><?php echo $title; ?> </a> <?php } else { ?> <?php echo JText::_('COM_EASYSOCIAL_NOT_AVAILABLE'); ?> <?php } ?> </td>
public static function url($options = array()) { // Set option as com_easysocial by default if (!isset($options['option'])) { $options['option'] = SOCIAL_COMPONENT_NAME; } // Remove external $external = false; if (isset($options['external'])) { $external = $options['external']; unset($options['external']); } // Remove sef $sef = false; if (isset($options['sef'])) { $sef = $options['sef']; unset($options['sef']); } // Remove tokenize $tokenize = false; if (isset($options['tokenize'])) { $tokenize = $options['tokenize']; unset($options['tokenize']); } // Remove ssl $ssl = false; if (isset($options['ssl'])) { $ssl = $options['ssl']; unset($options['ssl']); } // Remove xhtml $xhtml = false; if (isset($options['xhtml'])) { $xhtml = $options['xhtml']; unset($options['xhtml']); } $base = 'index.php?' . JURI::buildQuery($options); return FRoute::_($base, $xhtml, array(), $ssl, $tokenize, $external, '', '', $sef); }
?> </p> <?php } ?> <div class="mt-20"> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=apps'); ?> " class="btn btn-es-primary btn-medium"> <?php echo JText::_('COM_EASYSOCIAL_BACK_TO_APPLICATION_LISTINGS'); ?> </a> <?php echo JText::_('COM_EASYSOCIAL_OR'); ?> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=apps&layout=install'); ?> "><?php echo JText::_('COM_EASYSOCIAL_APPS_INSTALL_OTHER_APPS'); ?> </a> </div> </div> </div> </div>
</h3> </a> <p class="migrator-info"> <?php echo JText::_('COM_EASYSOCIAL_MIGRATORS_JOOMLA_REGISTRATIONS_DESC'); ?> </p> </div> </div> </li> <li> <div class="media"> <div class="media-body"> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=migrators&layout=cb'); ?> "> <h3><?php echo JText::_('COM_EASYSOCIAL_MIGRATORS_CB'); ?> </h3> </a> <p class="migrator-info"> <?php echo JText::_('COM_EASYSOCIAL_MIGRATORS_CB_DESC'); ?> </p> </div> </div> </li>
?> <?php $i = 0; ?> <?php foreach ($privacy as $item) { ?> <tr> <td> <?php echo $this->html('grid.id', $i, $item->id); ?> </td> <td> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=privacy&layout=form&id=' . $item->id); ?> "> <?php echo JText::_($item->description); ?> </a> </td> <td class="center"> <?php echo $this->html('grid.published', $item, 'privacy', 'state'); ?> </td> <td class="center"> <?php echo $item->type;
* @license GNU/GPL, see LICENSE.php * EasySocial is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ defined('_JEXEC') or die('Unauthorized Access'); ?> <li class="note-item" data-apps-notes-item data-id="<?php echo $note->id; ?> "> <h4 class="es-stream-content-title"> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=apps&layout=canvas&id=' . $appId . '&cid=' . $note->id . '&userid=' . $user->id); ?> " class="note-title"><?php echo $note->title; ?> </a> </h4> <div class="note-meta"> <time datetime="<?php echo $this->html('string.date', $note->created); ?> " class="note-date"> <span> <i class="ies-calendar-2 ies-small"></i> <?php echo $this->html('string.date', $note->created, JText::_('DATE_FORMAT_LC1'));
/** * Creates a new note. * * @since 1.0 * @access public */ public function store() { // Check for request forgeriess FD::checkToken(); // Ensure that the user is logged in. FD::requireLogin(); // Get ajax lib $ajax = FD::ajax(); // Get the current user. $my = FD::user(); // Get the app id. $appId = JRequest::getInt('appId'); // Get the title from request $title = JRequest::getVar('title'); // Get the note content from request $content = JRequest::getVar('content'); $stream = JRequest::getBool('stream'); // Check if this is an edited entry $id = JRequest::getInt('id'); // Create the note $note = $this->getTable('Note'); $state = $note->load($id); if ($id && $state) { if ($note->user_id != $my->id) { return $ajax->reject(); } } $note->title = $title; $note->content = $content; $note->user_id = $my->id; $state = $note->store(); $note->link = FRoute::_('index.php?option=com_easysocial&view=apps&layout=canvas&id=' . $appId . '&cid=' . $note->id . '&userId=' . $my->id); if (!$state) { return $ajax->reject($note->getError()); } // Format the note comments // Get the comments count $comments = FD::comments($note->id, 'notes', 'create', SOCIAL_APPS_GROUP_USER, array('url' => FRoute::apps(array('layout' => 'canvas', 'userid' => $my->getAlias(), 'cid' => $note->id)))); $note->comments = $comments->getCount(); // Get the likes count $likes = FD::likes($note->id, 'notes', 'create', SOCIAL_APPS_GROUP_USER); $note->likes = $likes->getCount(); // Create a stream record if ($stream) { $verb = $id ? 'update' : 'create'; $note->createStream($verb); } // Format the note. $comments = FD::comments($note->id, 'notes', 'create', SOCIAL_APPS_GROUP_USER, array('url' => FRoute::apps(array('layout' => 'canvas', 'userid' => $my->getAlias(), 'cid' => $note->id)))); $likes = FD::likes($note->id, 'notes', 'create', SOCIAL_APPS_GROUP_USER); $stream = FD::stream(); $options = array('comments' => $comments, 'likes' => $likes); $note->actions = $stream->getActions($options); $app = $this->getApp(); $theme = FD::themes(); $theme->set('app', $app); $theme->set('user', $my); $theme->set('appId', $appId); $theme->set('note', $note); $content = $theme->output('apps/user/notes/dashboard/item'); return $ajax->resolve($content); }
> <?php if (!$callback) { ?> <td align="center"> <?php echo $this->html('grid.id', $i, $profile->id); ?> </td> <?php } ?> <td> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=profiles&layout=form&id=' . $profile->id); ?> " data-profile-insert data-title="<?php echo $this->html('string.escape', $profile->get('title')); ?> " data-id="<?php echo $profile->id; ?> " data-avatar="<?php echo $profile->getAvatar(); ?> "
<?php /** * @package EasySocial * @copyright Copyright (C) 2010 - 2014 Stack Ideas Sdn Bhd. All rights reserved. * @license GNU/GPL, see LICENSE.php * EasySocial is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ defined('_JEXEC') or die('Unauthorized Access'); $model = FD::model('Profiles'); $profiles = $model->getItems(); $profilesList = array(); foreach ($profiles as $profile) { $profilesList[] = $settings->makeOption($profile->title, $profile->id, false); } echo $settings->renderPage($settings->renderColumn($settings->renderSection($settings->renderHeader('Twitter Application Settings'), $settings->renderSetting('Twitter Consumer Key', 'oauth.twitter.app', 'input', array('help' => true, 'info' => true, 'class="input-full"')), $settings->renderSetting('Twitter Consumer Secret', 'oauth.twitter.secret', 'input', array('help' => true, 'info' => true, 'class="input-full"')), $settings->renderSetting('Twitter Authentication', '', 'custom', array('field' => FD::oauth('Twitter')->getLoginButton('/administrator/index.php?option=com_easysocial&controller=oauth&task=grant&uid=1&type=config&client=twitter&callback=' . urlencode(FRoute::_('index.php?option=com_easysocial&view=settings&layout=closeOauthDialog&tmpl=component')), array('publish_stream'), 'popup'), 'rowAttributes' => array('data-oauth-twitter-button'))))));
<?php $i = 0; ?> <?php foreach ($points as $point) { ?> <tr> <td class="center"> <?php echo $this->html('grid.id', $i, $point->id); ?> </td> <td> <a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=points&layout=form&id=' . $point->id); ?> " data-es-provide="tooltip" data-content-original="<?php echo $point->description; ?> " data-placement="bottom" data-points-insert data-id="<?php echo $point->id; ?> " data-title="<?php echo $point->get('title');
<?php foreach ($stylesheets as $stylesheet) { if (!empty($stylesheet->themes)) { ?> <li class="tab-divider"><?php echo $stylesheet->title; ?> </li> <?php foreach ($stylesheet->themes as $theme) { ?> <li class="tab-item <?php echo $location == $stylesheet->location && $name == $theme->element ? 'active' : ''; ?> "><a href="<?php echo FRoute::_('index.php?option=com_easysocial&view=themes&layout=compiler&location=' . $stylesheet->location . '&name=' . $theme->element . ($stylesheet->override ? '&override=1' : '')); ?> "><?php echo $theme->name; ?> </a></li> <?php } ?> <?php } ?> <?php } ?>
<?php /** * @package EasySocial * @copyright Copyright (C) 2010 - 2014 Stack Ideas Sdn Bhd. All rights reserved. * @license GNU/GPL, see LICENSE.php * EasySocial is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ defined('_JEXEC') or die('Unauthorized Access'); echo $settings->renderPage($settings->renderColumn($settings->renderSection($settings->renderHeader('LinkedIn Application Settings'), $settings->renderSetting('LinkedIn API Key', 'oauth.linkedin.app', 'input', array('help' => true, 'info' => true, 'class="input-full"')), $settings->renderSetting('LinkedIn Secret Key', 'oauth.linkedin.secret', 'input', array('help' => true, 'info' => true, 'class="input-full"')), $settings->renderSetting('LinkedIn Authentication', '', 'custom', FD::oauth('LinkedIn')->getLoginButton(3, 'config', FRoute::_('index.php?option=com_easysocial&view=settings&layout=closeOauthDialog&tmpl=component'), array('publish_stream'))))));