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

Форум поддержки движка социальной сети phpFOX.
Аватара пользователя
Slash
Администратор
Сообщения: 2121
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 74 раза

Недоработки движка 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
Администратор
Сообщения: 2121
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 74 раза

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); 

Ответить Пред. темаСлед. тема

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

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