Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 2087 Просмотров
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Добрый день всем.

Ситуация такая:

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

Так вот

у других профилей из данного листа ссылка выглядит так:

http://www.mysite.com.ua/index.php?option=com_comprofiler&task=userProfile&user=62&Itemid=3

а на мой профиль вот так:

http://www.mysite.com.ua/index.php?option=com_comprofiler&task=userslist&Itemid=3

и получается что если я авторизировался, зашел в список пользователей, кликаю по своему профилю чтобы его просмотреть, а меня кидает на дефолтный юзерлист, остальные профили открываются для просмотра норнмально.

В общем получается что любой юзер, который нашел себя в юзерлисте при переходе по ссылке попадает на дефолтный юзерлист.

Подскажите пожалуйста где и как это вылечить?
« Последнее редактирование: 25.07.2010, 16:04:56 от orsy »
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
нашел в файле

\public_html\administrator\components\com_comprofiler\plugin.foundation.php

такие строки(55-58):

Код
if ( ! $Itemid ) {		// if no user profile, try getting itemid of the default list:
$_CB_database->setQuery("SELECT id FROM #__menu WHERE link = 'index.php?option=com_comprofiler&task=usersList' AND published=1 AND access " . ( $_CB_framework->myCmsGid() == 0 ? "= " : "<= " ). (int) $_CB_framework->myCmsGid() );
$Itemid = (int) $_CB_database->loadResult();
}

если не ошибаюсь то именно эта строка дает ссылку, которая ведет на дефолтный юзерлист вместо профиля.

Я их закомментировал, теперь ссылка из юзерлиста ведет на профиль как положено(это временная мера), но все равно охота разобраться, подскажите почему в этой функции отрабатывает, показанный выше, фрагмент кода:

Код
function getCBprofileItemid( $htmlspecialchars = false, $task = 'userprofile' ) {
global $_CB_database, $_CB_framework;
static $cacheItemids = array();

if ( ! isset( $cacheItemids[$task] ) ) {
if ( $task !== 'userprofile' && is_string( $task ) ) {
$_CB_database->setQuery( 'SELECT id FROM #__menu WHERE link LIKE '
. $_CB_database->Quote( 'index.php?option=com_comprofiler&task=' . $_CB_database->getEscaped( $task, true ). '%', false )
. ' AND published=1 AND access ' . ( $_CB_framework->myCmsGid() == 0 ? '= ' : '<= ' ). (int) $_CB_framework->myCmsGid() );
$Itemid = (int) $_CB_database->loadResult();
} else {
$Itemid = null;
}
if ( ( $task === 'userprofile' ) || ( ( ! $Itemid ) && ! in_array( $task, array( 'login', 'logout', 'registers', 'lostpassword' ) ) ) ) {
// $task used to be a boolean before CB 1.2.3 but with no effect:
$task = 'userprofile';
$_CB_database->setQuery("SELECT id FROM #__menu WHERE link = 'index.php?option=com_comprofiler' AND published=1 AND access " . ( $_CB_framework->myCmsGid() == 0 ? "= " : "<= " ). (int) $_CB_framework->myCmsGid() );
$Itemid = (int) $_CB_database->loadResult();
/*if ( ! $Itemid ) { // if no user profile, try getting itemid of the default list:
$_CB_database->setQuery("SELECT id FROM #__menu WHERE link = 'index.php?option=com_comprofiler&task=usersList' AND published=1 AND access " . ( $_CB_framework->myCmsGid() == 0 ? "= " : "<= " ). (int) $_CB_framework->myCmsGid() );
$Itemid = (int) $_CB_database->loadResult();
}*/
}
$cacheItemids[$task] = $Itemid;
}
if ( $cacheItemids[$task] ) {
if ( is_bool( $htmlspecialchars ) ) {
return ( $htmlspecialchars ? "&amp;" : "&"). "Itemid=" . $cacheItemids[$task];
} else {
return $cacheItemids[$task];
}
} else {
return null;
}
}
« Последнее редактирование: 25.07.2010, 13:55:01 от orsy »
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
И еще одно, раньше когда пользователь редактировал свой профиль, после сохранения оного его выкидывало на дэфолтный юзерлист, теперь перемещаемся в профиль, как положено.

Очень хочется верить что данное исправление не потянет за собой каких-то нехороших последствий.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться