Форум (модуль phpFOX 3)
21.09.2017 04:39:24 pm
Форум - один из модулей phpFOX третей версии, я уже не представляю соцсеть без форума.
Фотографии лайкнувших сообщение в теме форума, отображаются только когда нажмешь на лайк, после перезагрузки страницы фотографий не видно, они спрятаны css свойством display: none. По моему это не правильно. В прежних версиях такого не было, такую ошибку я заметил в 3.8.0, но возможно, что баг появился до этой версии. Покопался и сообразил решение! Открываем файл шаблона: module/feed/template/default/block/comment.html.php, находим:
И меняем на:
Чистим кэш. Готово.
После того, как сообщение будет отредактировано, под сообщением будет написано, что данный пост был изменен таким то участником системы, в такое то время. Неважно, кто будет редактировать пост админ или обычный зарегистрированный пользователь. Я думаю, что пользователю не понравится, если он увидит, что его пост отредактировал админ, хотя он просто мог поставить пробел после запятой (многие пробел после запятой пропускают). И я решил не вносить информацию об редактировании поста, если его редактировал админ. Сделал так:
Открываем файл: module/forum/include/service/post/process.class.php, находим:
И меняем на:
Дальше открываем файл: module/forum/include/service/thread/process.class.php, находим:
Меняем на:
Готово, теперь информация о изменениях сообщениях будет в том случаи, если пост отредактировал простой участник.
Фотографии лайкнувших сообщение в теме форума, отображаются только когда нажмешь на лайк, после перезагрузки страницы фотографий не видно, они спрятаны 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']
);
}
Готово, теперь информация о изменениях сообщениях будет в том случаи, если пост отредактировал простой участник.
- Жалоба
21.09.2017 04:40:42 pm
При цитировании сообщения, после тега
Делаем так: Открываем: module/forum/include/service/post/post.class.php, находим:
Меняем на:
[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";
21.09.2017 04:44:01 pm
Форум по адресу: site/index.php?do=/forum/ или site/forum/ (в зависимости от настроек сайта), мне показалось, что между двумя блоками слишком маленький отступ (левая сторона):

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


Чтобы сделать отступ, как с правой стороны, пока решил сделать так:
Открываю: 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}
После очищаю кэш и вот результат:
