Как вынести стену на страницу профиля?

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

3 комментария

0
Попытался решить плагином от лайвстрита, не вышло. Проблема ещё актуальна. :(
0
Добавил информацию со страницы профиля на стену, а сделал это так:
1. В файле ActionProfile.class.php добавил сразу после «public function EventWall() {»(Почему-то не вышло подключить EventWhois и EventInto на странице стены):
$this->sMenuSubItemSelect = 'main';

        // * Получаем список друзей
        $aUsersFriend = E::ModuleUser()->GetUsersFriend($this->oUserProfile->getId(), 1, Config::Get('module.user.friend_on_profile'));

        // * Если активен режим инвайтов, то загружаем дополнительную информацию
        if (Config::Get('general.reg.invite')) {
            // * Получаем список тех кого пригласил юзер
            $aUsersInvite = E::ModuleUser()->GetUsersInvite($this->oUserProfile->getId());
            E::ModuleViewer()->Assign('aUsersInvite', $aUsersInvite);

            // * Получаем того юзера, кто пригласил текущего
            $oUserInviteFrom = E::ModuleUser()->GetUserInviteFrom($this->oUserProfile->getId());
            E::ModuleViewer()->Assign('oUserInviteFrom', $oUserInviteFrom);
        }
        // * Получаем список юзеров блога
        $aBlogUsers = $this->_filterBlogUsers(
            E::ModuleBlog()->GetBlogUsersByUserId($this->oUserProfile->getId(), ModuleBlog::BLOG_USER_ROLE_USER)
        );
        $aBlogModerators = $this->_filterBlogUsers(
            E::ModuleBlog()->GetBlogUsersByUserId($this->oUserProfile->getId(), ModuleBlog::BLOG_USER_ROLE_MODERATOR)
        );
        $aBlogAdministrators = $this->_filterBlogUsers(
            E::ModuleBlog()->GetBlogUsersByUserId($this->oUserProfile->getId(), ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR)
        );

        // * Получаем список блогов которые создал юзер
        $aBlogsOwner = E::ModuleBlog()->GetBlogsByOwnerId($this->oUserProfile->getId());
        $aBlogsOwner = $this->_filterBlogs($aBlogsOwner);

        // * Получаем список контактов
        $aUserFields = E::ModuleUser()->GetUserFieldsValues($this->oUserProfile->getId());

        // * Вызов хуков
        E::ModuleHook()->Run('profile_whois_show', array("oUserProfile" => $this->oUserProfile));

        // * Загружаем переменные в шаблон
        E::ModuleViewer()->Assign('aBlogUsers', $aBlogUsers);
        E::ModuleViewer()->Assign('aBlogModerators', $aBlogModerators);
        E::ModuleViewer()->Assign('aBlogAdministrators', $aBlogAdministrators);
        E::ModuleViewer()->Assign('aBlogsOwner', $aBlogsOwner);
        E::ModuleViewer()->Assign('aUsersFriend', $aUsersFriend['collection']);
        E::ModuleViewer()->Assign('aUserFields', $aUserFields);
        E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('user_menu_profile') . ' ' . $this->oUserProfile->getLogin());
        E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('user_menu_profile_whois'));

2. В файле action.profile.wall.tpl после "{block name=«layout_profile_content»}" добавил нужную информацию со страницы профиля:
<div class="panel panel-default panel-table panel-user-activity flat">

        <div class="panel-body">

            <div class="panel-header">{$aLang.profile_activity}</div>

            <table class="table-profile-info">

                {if Config::Get('general.reg.invite') AND $oUserInviteFrom}
                    <tr>
                        <td class="text-muted cell-label">{$aLang.profile_invite_from}:</td>
                        <td>
                            <a href="{$oUserInviteFrom->getProfileUrl()}">{$oUserInviteFrom->getDisplayName()}</a> 
                        </td>
                    </tr>
                {/if}

                {if Config::Get('general.reg.invite') AND $aUsersInvite}
                    <tr>
                        <td class="text-muted cell-label">{$aLang.profile_invite_to}:</td>
                        <td>
                            {foreach $aUsersInvite as $oUserInvite}
                                <a href="{$oUserInvite->getProfileUrl()}">{$oUserInvite->getDisplayName()}</a>
                                 
                            {/foreach}
                        </td>
                    </tr>
                {/if}

                {if $aBlogsOwner}
                    <tr>
                        <td class="text-muted cell-label">{$aLang.profile_blogs_self}:</td>
                        <td>
                            {foreach $aBlogsOwner as $oBlog}
                                <a href="{$oBlog->getUrlFull()}">{$oBlog->getTitle()|escape:'html'}</a>{if !$oBlog@last}, {/if}
                            {/foreach}
                        </td>
                    </tr>
                {/if}

                {if $aBlogAdministrators}
                    <tr>
                        <td class="text-muted cell-label">{$aLang.profile_blogs_administration}:</td>
                        <td>
                            {foreach $aBlogAdministrators as $oBlogUser}
                                {$oBlog=$oBlogUser->getBlog()}
                                <a href="{$oBlog->getUrlFull()}">{$oBlog->getTitle()|escape:'html'}</a>{if !$oBlogUser@last}, {/if}
                            {/foreach}
                        </td>
                    </tr>
                {/if}

                {if $aBlogModerators}
                    <tr>
                        <td class="text-muted cell-label">{$aLang.profile_blogs_moderation}:</td>
                        <td>
                            {foreach $aBlogModerators as $oBlogUser}
                                {$oBlog=$oBlogUser->getBlog()}
                                <a href="{$oBlog->getUrlFull()}">{$oBlog->getTitle()|escape:'html'}</a>{if !$oBlogUser@last}, {/if}
                            {/foreach}
                        </td>
                    </tr>
                {/if}

                {if $aBlogUsers}
                    <tr>
                        <td class="text-muted cell-label">{$aLang.profile_blogs_join}:</td>
                        <td>
                            {foreach $aBlogUsers as $oBlogUser}
                                {$oBlog=$oBlogUser->getBlog()}
                                <a href="{$oBlog->getUrlFull()}">{$oBlog->getTitle()|escape:'html'}</a>{if !$oBlogUser@last}, {/if}
                            {/foreach}
                        </td>
                    </tr>
                {/if}

                {hook run='profile_whois_activity_item' oUserProfile=$oUserProfile}

                <tr>
                    <td class="text-muted cell-label">{$aLang.profile_date_registration}:</td>
                    <td>{date_format date=$oUserProfile->getDateRegister()}</td>
                </tr>

                {if $oSession}
                    <tr>
                        <td class="text-muted cell-label">{$aLang.profile_date_last}:</td>
                        <td>{date_format date=$oSession->getDateLast()}</td>
                    </tr>
                {/if}
            </table>

        </div>

    </div>
	{if $aUsersFriend}
    <div class="panel panel-default user-friends sidebar flat">

        <div class="panel-body">

            <div class="panel-header">
                <a href="{$oUserProfile->getProfileUrl()}friends/" class="user-friends link link-lead link-clear link-dark">{$aLang.profile_friends}</a>
            </div>

            {include file='commons/common.user_list_avatar.tpl' aUsersList=$aUsersFriend}
        </div>
        <div class="panel-footer">
            <a href="{$oUserProfile->getProfileUrl()}friends/" class="link link-dual link-lead link-clear">
                <i class="fa fa-users"></i>Все друзья ({$iCountFriendsUser})
            </a>
        </div>
    </div>

{/if}

3. Заменил ссылки на профиль в менюшках, добавив к адресу wall.
P.S. Если что, у меня бета версия с гитхаба. Может кто-нибудь подскажет как подключить EventWhois и EventInto на стене?
0
Я ошибся. На первом шаге перед всем этим кодом необходимо ещё добавить:
if (!$this->CheckUserProfile()) {
            return parent::EventNotFound();
        }
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.