Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
    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;
    }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 /**
  * @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;
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
<?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);
Exemplo n.º 8
0
 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;
 }
Exemplo n.º 9
0
 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);
     }
 }
Exemplo n.º 10
0
 public function getAuthor()
 {
     $id = $this->created_by ? $this->created_by : JFactory::getUser()->id;
     $author = K2Users::getInstance($id);
     $this->authorLink = $author->link;
     return $author;
 }
Exemplo n.º 11
0
 public static function getAvatar($id, $email)
 {
     $user = K2Users::getInstance($id);
     return $user->image->src;
 }
Exemplo n.º 12
0
 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();
     }
 }