DANFA

Недоработки движка 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) 

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

Допилил код для удаления комментов и лайков к музыки.
В файле: 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); 

Готово!

Если Вы нашли недоработку в движке, расскажите о ней, постараюсь исправить.
Спасибо.