Здравствуйте.
Столкнулся с таким недоразумением... В настройках EB выставлено брать аватар с компонента CommunityBuilder. Этот же аватар является ссылкой на профиль CB. Но ссылка немного не такая, какой она должна быть.
Если в CB не делать пункт меню, который будет ссылаться на профиль юзера, то линк на профиль выглядит так:
http://site.ru/component/comprofiler/userprofile/имя_юзераЕсли сделать пункт меню, как это настоятельно рекомендуется, то линк на профиль принимает вид:
http://site.ru/profile/userprofile/имя_юзера (пункт меню имеет алиас profile).
Однако в записях EasyBlog аватар все равно имеет ссылку
http://site.ru/component/comprofiler/userprofile/имя_юзера
То есть в EasyBlog где-то забит стандартный путь на профиль юзера CB и ему не интересны мои пункты меню.
Вот в файле /components/com_easyblog/classes/avatar.php я нашел кусок кода
class EasyBlogAvatarCommunityBuilder
{
function _init()
{
$files = JPATH_ROOT . DIRECTORY_SEPARATOR . 'administrator' . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_comprofiler' . DIRECTORY_SEPARATOR . 'plugin.foundation.php';
if(!JFile::exists( $files ))
{
return false;
}
require_once( $files );
cbimport('cb.database');
cbimport('cb.tables');
cbimport('cb.tabs');
return true;
}
function _getAvatar($profile)
{
$user = CBuser::getInstance( $profile->id );
// @task: Apply guest avatars when necessary.
if( !$profile->id )
{
$avatar = new stdClass();
$avatar->link = selectTemplate(). 'images/avatar/tnnophoto_n.png';
return $avatar;
}
if (!$user)
{
$user = CBuser::getInstance( null );
}
// Prevent CB from adding anything to the page.
ob_start();
$source = $user->getField( 'avatar' , null , 'php' );
$reset = ob_get_contents();
ob_end_clean();
unset( $reset );
$source = $source[ 'avatar' ];
//incase we view from backend. we need to remove the /administrator/ from the path.
$source = str_replace('/administrator/','/', $source);
$avatar = new stdClass();
$avatar->link = $source;
return $avatar;
}
}
PHP начал изучать три дня назад, но тут что-то ничего не понимаю. Или в этом куске берется только аватар, но не линк на профиль? Подскажите, где в EasyBlog поправить это дело. Чтобы вместо component/comprofiler/userprofile/ сделать profile/userprofile