Многие из Вас при установке новой версии Joomla видели в административной панели модуль Новые пользователи, который по английски называется Latest users. Служебные файлы данного модуля находится в каталоге  /modules/mod_users_latest  относительно корня Вашего сайта.

И хоть данный модуль малоинформативен, тем не менее, за неимением других аналогов, сразу после установки CMS Joomla многие устанавливают его. Однако в нем есть еще один, на мой взгляд, существенный недостаток:

Модуль отображает имена последних зарегистрированных пользователей, без возможности "провалиться" по ссылке, нажав на имя пользователя.

Зачем это нужно? Поисковые системы анализируют Ваш сайт в том числе с точки зрения, на какие страницы ссылается главная страница, и у этих второстепенных страниц, имеющих ссылку с главной, будет Выше вес и PR, что влияет на позиции в выдаче ПС. Ну и, потом, просто удобно, щелкнув на имя пользователя, провалиться в его профиль.

Итак, сегодня мы этот недостаток исправим.

Допустим у Вас на сайте основным компонентом для хранения информации о пользователе является расширение-форум Kunena forum. Тогда ссылка на профиль пользователя, в действительности будет выглядеть так:

http://адрес_Вашего_сайта/index.php?option=com_kunena&userid=XXX&view=user

где XXX - уникальный идентификатор пользователя в Joomla.

Чем мы и воспользуемся. Открываем файл по адресу  /modules/mod_users_latest/tmpl/default.php:

<?php
/**
 * @package        Joomla.Site
 * @subpackage    mod_users_latest
 * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */
// no direct access
defined('_JEXEC') or die;
?>
<?php if (!empty($names)) : ?>
    <ul class="latestusers<?php echo $moduleclass_sfx ?>" >
    <?php foreach($names as $name) : ?>
        <li>
            <?php echo $name->username; ?>
        </li>
    <?php endforeach;  ?>
    </ul>
<?php endif; ?>

и меняем его содержимое на:

<?php
/**
 * @package        Joomla.Site
 * @subpackage    mod_users_latest
 * @copyright    Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */
// no direct access
defined('_JEXEC') or die;
?>
<?php if (!empty($names)) : ?>
    <ul class="latestusers<?php echo $moduleclass_sfx ?>" >
    <?php foreach($names as $name) : ?>
        <li>
            <?php echo '<a href="index.php?option=com_kunena&userid='.$name->id.'&view=user">'.$name->username.'</a>'; ?>
        </li>
    <?php endforeach;  ?>
    </ul>
<?php endif; ?>

Сохраняемся, обновляем главную страницу сайта и пользуемся. :)

P.S. В JoomSocial ссылка на профиль пользователя будет выглядеть следующим образом:

http://адрес_Вашего_сайта//index.php?option=com_community&view=profile&userid=XXX

Comments   

+1 # Еще вариантGuest 2013-10-29 20:05
Я сделала еще вариант решения проблемы с профилями joomla (на вашем примере). Можно сделать поиск пользователей со ссылкой на стандартный профиль joomla. Для этого надо заменить сточку

на строчку


Спасибо за урок!
Reply | Reply with quote | Quote | Report to administrator
0 # ErrorGuest 2014-05-24 19:43
$name->id - пустое
Пытался править mod_whosonline
Reply | Reply with quote | Quote | Report to administrator

Add comment


Security code
Refresh