public static function getAuthors($params) { $model = K2Model::getInstance('Items'); $model->setState('site', true); // Category filter $model->setState('category.filter', $params->get('authors_module_category')); $rows = $model->getAuthors(); $authors = array(); if (count($rows)) { foreach ($rows as $row) { $author = K2Users::getInstance($row->created_by); if ($params->get('authorLatestItem')) { $model->setState('site', true); $model->setState('author', $author->id); $model->setState('limit', 1); $model->setState('sorting', 'created.reverse'); $latest = $model->getRows(); $author->latest = $latest[0]; } if ($params->get('authorItemsCounter')) { $model->setState('site', true); $model->setState('author', $author->id); $author->items = $model->countRows(); } $authors[] = $author; } } return $authors; }
public function getInput() { JHtml::_('jquery.framework'); // Load required scripts $document = JFactory::getDocument(); $document->addStyleSheet(JURI::root(true) . '/media/k2app/vendor/magnific/magnific-popup.css?v=3.0.0'); $document->addScript(JURI::root(true) . '/media/k2app/vendor/magnific/jquery.magnific-popup.min.js?v=3.0.0'); $document->addScript(JURI::root(true) . '/media/k2app/vendor/sortable/jquery-sortable-min.js?v=3.0.0'); $document->addScript(JURI::root(true) . '/media/k2app/assets/js/fields.js?v=3.0.0'); $this->multiple = (bool) $this->element['k2multiple']; $link = JURI::root(true) . '/administrator/index.php?option=com_k2&tmpl=component#modal/users'; if ($this->multiple) { $title = JText::_('K2_ADD_USERS'); $users = array(); if ($this->value) { foreach ($this->value as $userId) { $users[] = K2Users::getInstance($userId); } } $js = "\n\t\t\tfunction K2SelectRow(row) {\n\t\t\t\tvar userAlreadyInList = false;\n\t\t\t\tjQuery('#" . $this->id . " input').each(function(){\n\t\t\t\t\tif(jQuery(this).val() == row.get('id')){\n\t\t\t\t\t\talert('" . JText::_('K2_THE_SELECTED_USER_IS_ALREADY_IN_THE_LIST') . "');\n\t\t\t\t\t\tuserAlreadyInList = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(!userAlreadyInList){\n\t\t\t\t\tvar li = '<li><a class=\"k2FieldResourceRemove\">" . JText::_('K2_REMOVE_ENTRY_FROM_LIST') . "</a><span class=\"k2FieldResourceMultipleHandle\">' + row.get('name') + '</span><input type=\"hidden\" value=\"' + row.get('id') + '\" name=\"" . $this->name . "[]\"/></li>';\n\t\t\t\t\tjQuery('#" . $this->id . " .k2FieldUsersMultiple').append(li);\n\t\t\t\t\tjQuery('#" . $this->id . " ul').sortable('refresh');\n\t\t\t\t\talert('" . JText::_('K2_USER_ADDED_IN_THE_LIST', true) . "');\n\t\t\t\t}\n\t\t\t}\n\t\t\t"; $document->addScriptDeclaration($js); $html = '<div id="' . $this->id . '"><a class="k2Modal btn" title="' . JText::_('K2_ADD_USERS') . '" href="' . $link . '"><i class="icon-list"></i>' . JText::_('K2_ADD_USERS') . '</a>'; $html .= '<ul class="k2FieldResourceMultiple k2FieldUsersMultiple">'; foreach ($users as $user) { $html .= ' <li> <a class="k2FieldResourceRemove">' . JText::_('K2_REMOVE_ENTRY_FROM_LIST') . '</a> <span class="k2FieldResourceMultipleHandle">' . $user->name . '</span> <input type="hidden" value="' . $user->id . '" name="' . $this->name . '[]"/> </li> '; } $html .= '</ul></div>'; } else { $title = JText::_('K2_SELECT_A_USER'); if ($this->value) { $user = K2Users::getInstance($this->value); $title = $user->name; } $js = "\n\t\t\tfunction K2SelectRow(row) {\n\t\t\t\tdocument.getElementById('" . $this->name . "' + '_id').value = row.get('id');\n\t\t\t\tdocument.getElementById('" . $this->name . "' + '_name').value = row.get('name');\n\t\t\t\tjQuery.magnificPopup.close();\n\t\t\t}\n\t\t\t"; $document->addScriptDeclaration($js); $html = '<span class="input-append"> <input type="text" id="' . $this->name . '_name" value="' . htmlspecialchars($title, ENT_QUOTES, 'UTF-8') . '" disabled="disabled" /> <a class="k2Modal btn" title="' . JText::_('K2_SELECT_A_CATEGORY') . '" href="' . $link . '"><i class="icon-list"></i>' . JText::_('K2_SELECT') . '</a> <input type="hidden" class="required modal-value" id="' . $this->name . '_id" name="' . $this->name . '" value="' . (int) $this->value . '" /> </span>'; } return $html; }
public function render() { require_once JPATH_ADMINISTRATOR . '/components/com_k2/helpers/extrafields.php'; $input = JFactory::getApplication()->input; $scope = $input->get('scope', '', 'cmd'); $resourceId = $input->get('resourceId', 0, 'int'); $filterId = $input->get('filterId', 0, 'raw'); if ($scope == 'item') { require_once JPATH_ADMINISTRATOR . '/components/com_k2/resources/items.php'; $item = K2Items::getInstance($resourceId); $values = $item->extra_fields; $fields = K2HelperExtraFields::getItemExtraFieldsGroups((int) $filterId, $values); } else { if ($scope == 'category') { require_once JPATH_ADMINISTRATOR . '/components/com_k2/resources/categories.php'; $category = K2Categories::getInstance($resourceId); $values = $category->extra_fields; $fields = K2HelperExtraFields::getCategoryExtraFieldsGroups($values); } else { if ($scope == 'user') { require_once JPATH_ADMINISTRATOR . '/components/com_k2/resources/users.php'; $user = K2Users::getInstance($resourceId); $values = $user->extra_fields; $fields = K2HelperExtraFields::getUserExtraFieldsGroups($values); } else { if ($scope == 'tag') { require_once JPATH_ADMINISTRATOR . '/components/com_k2/resources/tags.php'; $tag = K2Tags::getInstance($resourceId); $values = $tag->extra_fields; $fields = K2HelperExtraFields::getTagExtraFieldsGroups($values); } } } } echo json_encode($fields); return $this; }
/** * @param string $context The context for the data * @param integer $data The user id * * @return boolean * * @since 1.6 */ public function onContentPrepareData($context, $data) { // Get application $application = JFactory::getApplication(); // Valid contexts $contexts = array('com_users.profile', 'com_users.user', 'com_users.registration', 'com_admin.profile'); // Condition if ($application->isSite() && in_array($context, $contexts) && is_object($data)) { $userId = isset($data->id) ? $data->id : 0; if (!isset($data->k2Profile) and $userId > 0) { $k2User = K2Users::getInstance($userId); $data->k2Profile = array(); $data->k2Profile['description'] = $k2User->description; $data->k2Profile['image'] = $k2User->image; $data->k2Profile['site'] = $k2User->site; $data->k2Profile['gender'] = $k2User->gender; } JHtml::register('users.description', 'PlgUserK2::description'); JHtml::register('users.image', 'PlgUserK2::image'); JHtml::register('users.gender', 'PlgUserK2::gender'); JHtml::register('users.site', 'PlgUserK2::site'); } return true; }
public static function getTopCommenters($params) { $model = K2Model::getInstance('Users'); $rows = $model->getTopCommenters(); $commenters = array(); foreach ($rows as $row) { if ($row->comments > 0) { $commenter = K2Users::getInstance($row->userId); $commenter->comments = $row->comments; $commenter->displayName = $params->get('commenterNameOrUsername', 1) == 2 ? $commenter->username : $commenter->name; if ($params->get('commenterLatestComment')) { $model = K2Model::getInstance('Comments'); $model->setState('userId', $commenter->id); $model->setState('state', 1); $model->setState('limit', 1); $model->setState('sorting', 'id.reverse'); $comments = $model->getRows(); $commenter->comment = $comments[0]; } $commenters[] = $commenter; } } return $commenters; }
public static function getUsers($params) { $model = K2Model::getInstance('Users'); if ($params->get('source') == 'specific' && $params->get('userIDs')) { if (is_array($params->get('userIDs'))) { $ids = $params->get('userIDs'); } else { $ids = array(); $ids[] = $params->get('userIDs'); } $users = array(); $model->setState('block', 0); foreach ($ids as $id) { $model->setState('id', $id); $users = array_merge($users, $model->getRows()); } } else { $users = array(); switch ($params->get('filter', 'mostItems')) { case 'mostItems': $model->setState('limit', $params->get('limit', 4)); $rows = $model->getTopAuthors(); foreach ($rows as $row) { $users[] = K2Users::getInstance($row->userId); } break; case 'mostPopularItems': // Get database $db = JFactory::getDbo(); // Get query $query = $db->getQuery(true); // Select statement $query->select('DISTINCT(' . $db->quoteName('item.created_by') . ')'); $query->from($db->quoteName('#__k2_items', 'item')); $query->where($db->quoteName('item.created_by_alias') . ' = ' . $db->quote('')); $query->rightJoin($db->quoteName('#__k2_items_stats', 'stats') . ' ON ' . $db->quoteName('stats.itemId') . ' = ' . $db->quoteName('item.id')); // Sorting $query->order($db->quoteName('stats.hits') . ' DESC'); // Set the query $db->setQuery($query, 0, (int) $params->get('limit', 4)); // Get the result $rows = $db->loadObjectList(); foreach ($rows as $row) { $users[] = K2Users::getInstance($row->created_by); } break; case 'mostCommentedItems': // Get database $db = JFactory::getDbo(); // Get query $query = $db->getQuery(true); // Select statement $query->select('DISTINCT(' . $db->quoteName('item.created_by') . ')'); $query->from($db->quoteName('#__k2_items', 'item')); $query->where($db->quoteName('item.created_by_alias') . ' = ' . $db->quote('')); $query->rightJoin($db->quoteName('#__k2_items_stats', 'stats') . ' ON ' . $db->quoteName('stats.itemId') . ' = ' . $db->quoteName('item.id')); // Sorting $query->order($db->quoteName('stats.comments') . ' DESC'); // Set the query $db->setQuery($query, 0, (int) $params->get('limit', 4)); // Get the result $rows = $db->loadObjectList(); foreach ($rows as $row) { $users[] = K2Users::getInstance($row->created_by); } break; } } foreach ($users as $user) { if ($params->get('userItemCount')) { $model = K2Model::getInstance('Items'); $model->setState('site', true); $model->setState('author', $user->id); $model->setState('limit', $params->get('userItemCount')); $user->items = $model->getRows(); } else { $user->items = array(); } } return $users; }
<?php /** * @version 3.0.0 * @package K2 * @author JoomlaWorks http://www.joomlaworks.net * @copyright Copyright (c) 2006 - 2014 JoomlaWorks Ltd. All rights reserved. * @license GNU/GPL license: http://www.gnu.org/copyleft/gpl.html */ // no direct access defined('_JEXEC') or die; require_once dirname(__FILE__) . '/helper.php'; $user = JFactory::getUser(); if ($user->guest) { $login = ModK2UserHelper::getLogin($params); $layout = 'login'; } else { $user = K2Users::getInstance($user->id); $user->numOfComments = $user->getNumOfComments(); $logout = ModK2UserHelper::getLogout($params); $layout = 'userblock'; } include dirname(__FILE__) . '/legacy.php'; require JModuleHelper::getLayoutPath('mod_k2_user', $layout);
public function getUser() { $user = new stdClass(); if ($this->userId) { $instance = K2Users::getInstance($this->userId); $user->name = $instance->name; $user->username = $instance->username; $user->link = $instance->link; $user->image = $instance->image; } else { $user->name = $this->name; $user->username = $this->name; $user->link = false; $user->image = false; $params = JComponentHelper::getParams('com_k2'); if (!$user->image && $params->get('gravatar')) { $user->image = new stdClass(); $user->image->src = '//www.gravatar.com/avatar/' . md5($this->email) . '?s=' . $params->get('commenterImgWidth', 48); if ($params->get('userImageDefault')) { $user->image->src .= '&d=' . urlencode(JURI::root(false) . '/' . K2HelperImages::getPlaceholder('user')); } $user->image->url = $user->image->src; } } return $user; }
public function onAfterRender() { // Get variables $application = JFactory::getApplication(); $document = JFactory::getDocument(); $user = JFactory::getUser(); $params = JComponentHelper::getParams('com_k2'); $view = $application->input->get('view'); $print = $application->input->getBool('print'); $tmpl = $application->input->get('tmpl'); // Add user toolbar if ($application->isSite() && $document->getType() == 'html' && $user->authorise('core.manage', 'com_k2') && $view != 'admin' && $view != 'k2' && trim($view) != '' && !$print && $tmpl != 'component') { $author = K2Users::getInstance($user->id); $file = JPATH_SITE . '/components/com_k2/templates/default/toolbar.php'; $template = $application->getTemplate(); $override = JPATH_SITE . '/templates/' . $template . '/html/com_k2/default/toolbar.php'; if (JFile::exists($override)) { $file = $override; } ob_start(); include $file; $toolbar = ob_get_contents(); ob_end_clean(); $response = $application->getBody(); $searches = array('</body>'); $replacements = array($toolbar); $response = str_ireplace($searches, $replacements, $response); $application->setBody($response); } // Fix Facebook meta tags if ($params->get('facebookMetadata')) { $application = JFactory::getApplication(); $response = $application->getBody(); // Make the following more generic? $searches = array('<meta name="og:url"', '<meta name="og:title"', '<meta name="og:type"', '<meta name="og:image"', '<meta name="og:description"'); $replacements = array('<meta property="og:url"', '<meta property="og:title"', '<meta property="og:type"', '<meta property="og:image"', '<meta property="og:description"'); if (strpos($response, 'prefix="og: http://ogp.me/ns#"') === false) { $searches[] = '<html '; $searches[] = '<html>'; $replacements[] = '<html prefix="og: http://ogp.me/ns#" '; $replacements[] = '<html prefix="og: http://ogp.me/ns#">'; } $response = str_ireplace($searches, $replacements, $response); $application->setBody($response); } }
public function getAuthor() { $id = $this->created_by ? $this->created_by : JFactory::getUser()->id; $author = K2Users::getInstance($id); $this->authorLink = $author->link; return $author; }
public static function getAvatar($id, $email) { $user = K2Users::getInstance($id); return $user->image->src; }
protected function getUserItems($count = false) { // Get application $application = JFactory::getApplication(); // Get input $id = $application->input->get('id', 0, 'int'); // Determine offset and limit based on document type if ($this->type == 'html' || $this->type == 'raw') { $this->limit = $application->input->get('limit', 10, 'int'); } else { $this->limit = $this->params->get('feedLimit', 10, 'int'); } // Get user $this->author = K2Users::getInstance($id); // Check access $this->author->checkSiteAccess(); // @TODO Apply menu settings. Since they will be common all tasks we need to wait // Get items $model = K2Model::getInstance('Items'); $model->setState('site', true); $model->setState('author', $id); $model->setState('limit', $this->limit); $model->setState('limitstart', $this->offset); $this->items = $model->getRows(); // Count items if ($count) { $this->total = $model->countRows(); } }