Недоработки движка phpFOX 3 по удалению заметок

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

Недоработки движка phpFOX 3 по удалению заметок

Сообщение Slash » Пт окт 16, 2015 8:48 am

Здравствуйте.
Я уже приводил примеры недоработок по удалению заметок и их решения в темах Подарки (модуль phpFOX 3) и Комментарии (модуль phpFOX 3). Продолжу тут. И так пишем статус на стене, затем его удаляем, заметка удаляется из таблицы feed, но остается в таблице user_status.

Этот баг я исправил так: открыть: module/feed/include/service/process.class.php, найти:

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

            // Delete likes that belonged to this feed
            
$this->database()->delete(Phpfox::getT('like'), 'type_id = "'$aFeed['type_id'] .'" AND item_id = ' $aFeed['item_id']); 

после добавить:

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

            // Delete User Status (Table: user_status) 
            
if ($aFeed['type_id'] == 'user_status')
            {
                
$this->database()->delete(Phpfox::getT('user_status'), 'status_id = ' . (int) $aFeed['item_id']);            
            }
            
// End Delete User Status (Table: user_status) 

Готово. Теперь статус удален полностью.

Если Вы нашли недоработку в движке, расскажите о ней, постараюсь исправить.
Спасибо.
Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Недоработки движка phpFOX 3 по удалению заметок

Сообщение Slash » Вт мар 08, 2016 9:57 am

Допилил код для удаления комментов и лайков к музыки.
В файле: module/feed/include/service/process.class.php, найти:

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

            // Delete likes that belonged to this feed
            
$this->database()->delete(Phpfox::getT('like'), 'type_id = "'$aFeed['type_id'] .'" AND item_id = ' $aFeed['item_id']); 

Заменить на:

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

            # Удаление музыки
            
if ($aFeed['type_id'] != 'music_song'
            {
                
# Delete likes that belonged to this feed
                
$this->database()->delete(Phpfox::getT('like'), 'type_id = "'$aFeed['type_id'] .'" AND item_id = ' $aFeed['item_id']);
            }
            
# END Удаление музыки 

Затем открыть: module/music/include/service/process.class.php, найти (функция delete):

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

            (Phpfox::isModule('feed') ? Phpfox::getService('feed.process')->delete('music_song'$iId) : null);
            (
Phpfox::isModule('feed') ? Phpfox::getService('feed.process')->delete('music_album'$iId) : null); 

Ниже вставить:

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

            (Phpfox::isModule('comment') ? Phpfox::getService('comment.process')->deleteForItem(null$iId'music_song') : null);
            
$this->database()->delete(Phpfox::getT('like'), 'type_id = \'music_song\' AND item_id = ' . (int) $iId); 

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

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

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