Форум (модуль phpFOX 3)

Форум поддержки движка социальной сети phpFOX.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Форум (модуль phpFOX 3)

Сообщение Slash » Пн мар 21, 2016 8:01 am

Форум - один из модулей phpFOX третей версии, я уже не представляю соцсеть без форума.

Фотографии лайкнувших сообщение в теме форума, отображаются только когда нажмешь на лайк, после перезагрузки страницы фотографий не видно, они спрятаны css свойством display: none. По моему это не правильно. В прежних версиях такого не было, такую ошибку я заметил в 3.8.0, но возможно, что баг появился до этой версии. Покопался и сообразил решение! Открываем файл шаблона: module/feed/template/default/block/comment.html.php, находим:

Код: Выделить всё

<div id="js_feed_like_holder_{$aFeed.type_id}_{$aFeed.item_id}" class="comment_mini_content_holder" {if isset($aFeed.bShowEnterCommentBlock) && $aFeed.bShowEnterCommentBlock == false}style="display:none"{/if} 

И меняем на:

Код: Выделить всё

<div id="js_feed_like_holder_{$aFeed.type_id}_{$aFeed.item_id}" class="comment_mini_content_holder"{if isset($aFeed.bShowEnterCommentBlock) && $aFeed.bShowEnterCommentBlock == false && !count($aFeed.likes)} style="display: none;"{/if}> 

Чистим кэш. Готово.

После того, как сообщение будет отредактировано, под сообщением будет написано, что данный пост был изменен таким то участником системы, в такое то время. Неважно, кто будет редактировать пост админ или обычный зарегистрированный пользователь. Я думаю, что пользователю не понравится, если он увидит, что его пост отредактировал админ, хотя он просто мог поставить пробел после запятой (многие пробел после запятой пропускают). И я решил не вносить информацию об редактировании поста, если его редактировал админ. Сделал так:
Открываем файл: module/forum/include/service/post/process.class.php, находим:

Код: Выделить всё

        $this->database()->update($this->_sTable, array( 
                
'update_time' => PHPFOX_TIME,
                'update_user' => substr(Phpfox::getUserBy('full_name'), 0, 100),
                'total_attachment' => Phpfox::isModule('attachment') ? Phpfox::getService('attachment')->getCountForItem($iId, 'forum') : 0,
            ), 'post_id = ' . (int) $iId
        
); 

И меняем на:

Код: Выделить всё

        if (Phpfox::isAdmin())
        {
            $this->database()->update($this->_sTable, array(
                    'total_attachment' => Phpfox::isModule('attachment') ? Phpfox::getService('attachment')->getCountForItem($iId, 'forum') : 0
                
), 'post_id = ' . (int) $iId
            
);            
        
}
        else
        
{            
            $this
->database()->update($this->_sTable, array(
                    'update_time'      => PHPFOX_TIME,
                    'update_user'      => substr(Phpfox::getUserBy('full_name'), 0, 100),
                    'total_attachment' => Phpfox::isModule('attachment') ? Phpfox::getService('attachment')->getCountForItem($iId, 'forum') : 0
                
), 'post_id = ' . (int) $iId
            
);
        

Дальше открываем файл: module/forum/include/service/thread/process.class.php, находим:

Код: Выделить всё

        $this->database()->update(Phpfox::getT('forum_post'), array(
                'total_attachment' => (Phpfox::isModule('attachment') ? Phpfox::getService('attachment')->getCountForItem($aVals['post_id'], 'forum') : 0),
                'title' => $oParseInput->clean($aVals['title'], 255),
                'update_time' => PHPFOX_TIME,
                'update_user' => substr(Phpfox::getUserBy('full_name'), 0, 100)
            ), 'post_id = ' . (int) $aVals['post_id']
        ); 

Меняем на:

Код: Выделить всё

        if (Phpfox::isAdmin())
        {
            $this->database()->update(Phpfox::getT('forum_post'), array(
                    'total_attachment' => (Phpfox::isModule('attachment') ? Phpfox::getService('attachment')->getCountForItem($aVals['post_id'], 'forum') : 0),
                    'title'            => $oParseInput->clean($aVals['title'], 255),
                ), 'post_id = ' . (int) $aVals['post_id']
            );
        }
        else
        
{
            $this->database()->update(Phpfox::getT('forum_post'), array(
                    'total_attachment' => (Phpfox::isModule('attachment') ? Phpfox::getService('attachment')->getCountForItem($aVals['post_id'], 'forum') : 0),
                    'title'            => $oParseInput->clean($aVals['title'], 255),
                    'update_time'      => PHPFOX_TIME,
                    'update_user'      => substr(Phpfox::getUserBy('full_name'), 0, 100)
                ), 'post_id = ' . (int) $aVals['post_id']
            );            
        

Готово, теперь информация о изменениях сообщениях будет в том случаи, если пост отредактировал простой участник.

Читайте ещё:
Локальные URL в названия тем форума (Форум phpFoX)
Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Форум (модуль phpFOX 3)

Сообщение Slash » Пт апр 22, 2016 7:45 am

При цитировании сообщения, после тега [quote=xxx] текст сообщения переносится на новую строку, так же переносится на новую строку закрывающий тег [/quote]. Мне показалось это не красиво, так как в блоке цитаты получается много свободного места, и убираю эти переносы на новые строки.

Делаем так: Открываем: module/forum/include/service/post/post.class.php, находим:

Код: Выделить всё

            $sQuotes .= "[quote={$aPost['user_id']}]\n" . Phpfox::getLib('parse.bbcode')->stripCode($aPost['text'], array('quote', 'attachment')) . "\n[/quote]\n\n\n";

Меняем на:

Код: Выделить всё

            $sQuotes .= "[quote={$aPost['user_id']}]" . Phpfox::getLib('parse.bbcode')->stripCode($aPost['text'], array('quote', 'attachment')) . "[/quote]\n\n"
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Форум (модуль phpFOX 3)

Сообщение Slash » Пт май 06, 2016 12:56 pm

Форум по адресу: site/index.php?do=/forum/ или site/forum/ (в зависимости от настроек сайта), мне показалось, что между двумя блоками слишком маленький отступ (левая сторона):

Форум модуль phpFOX 3  - Форум.jpg
 

Чтобы сделать отступ, как с правой стороны, пока решил сделать так:
Открываю: module/forum/template/default/controller/index.html.php, нахожу:

Код: Выделить всё

{template file='forum.block.entry'}

Меняю на:

Код: Выделить всё

{if Phpfox::isUser()}
<
div style="margin-right: 10px;">
    {template file='forum.block.entry'}
</
div>
{else}
{
template file='forum.block.entry'}
{/if} 

После очищаю кэш и вот результат:

Форум модуль phpFOX 3  - Форум.jpg
 
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Форум (модуль phpFOX 3)

Сообщение Slash » Сб май 07, 2016 10:39 pm

В мобильной версии сайта можно получить 502 ошибку. Как её получить: создаём страницу (сайт/pages/add/), изменяем её URL, то есть в место сайт/pages/ID/ будет, например: сайт/namepage/. Дальше переходим в мобильный стиль сайта, заходим на страницу, и переходим на форум страницы: (сайт/mobile/namepage/forum/). Вместо списка тем, вылетит 502 ошибка.

Покопавшись, решил проблему так:
Открываю: module/forum/include/component/controller/forum.class.php, нахожу:

Код: Выделить всё

        if (Phpfox::isMobile() && Phpfox::getLib('module')->getFullControllerName() == 'forum.forum' && !$this->request()->getInt('req2') && !in_array($this->request()->get('view'), array('subscribed','new','my-thread')))
        {
            return Phpfox::getLib('module')->setController('forum.index');
        }

И удаляю эти строки. Готово.

Добавлено в ошибки разработчиков: Re: Ошибки разработчиков (баги движка phpFOX) (Пост Slash #6753)

Вернуться в «phpFOX»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость