AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.112
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/coopiak/amisdesseniors-fr/nimes/components/com_rsfeedback/helpers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/nimes/components/com_rsfeedback/helpers/rsfeedback.php
<?php
/**
* @package RSFeedback!
* @copyright (C) 2010-2018 www.rsjoomla.com
* @license GPL, http://www.gnu.org/copyleft/gpl.html
*/

defined( '_JEXEC' ) or die( 'Restricted access' );

use Joomla\CMS\MVC\Model\BaseDatabaseModel;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\User\UserHelper;
use Joomla\CMS\Captcha\Captcha;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Access\Access;
use Joomla\Registry\Registry;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Factory;

class RSFeedbackHelper
{
	// Check for Joomla! 4.x
	public static function isJ4() {
		return version_compare(JVERSION, '4.0', '>=');
	}
	
	public static function init($admin = false) {
		HTMLHelper::_('jquery.framework', true);
		HTMLHelper::_('behavior.core');
		HTMLHelper::_('bootstrap.tooltip', '.hasTooltip');
		
		if ($admin) {
			self::addToolbar();
			
			HTMLHelper::stylesheet('com_rsfeedback/admin.css', array('relative' => true, 'version' => 'auto'));
			HTMLHelper::script('com_rsfeedback/validation.js', array('relative' => true, 'version' => 'auto'));
		} else {
			$doc 	= Factory::getDocument();
			$config = RSFeedbackHelper::getConfig();
			
			// Load bootstrap
			$load_bootstrap = isset($config->load_bootstrap) ? $config->load_bootstrap : 1;
			if ($load_bootstrap) {
				HTMLHelper::_('bootstrap.framework');
				HTMLHelper::_('bootstrap.loadcss', true);
			}

			// Load Font Awesome
			$load_fontawesome = isset($config->load_fontawesome) ? $config->load_fontawesome : 1;
			if ($load_fontawesome) {
				HTMLHelper::stylesheet('com_rsfeedback/font-awesome.min.css', array('relative' => true, 'version' => 'auto'));
			}
			
			if ($config->captcha == 2) {
				$doc->addScript('https://www.google.com/recaptcha/api.js?render=explicit');
			}
			
			// Load CSS & JavaScript
			HTMLHelper::stylesheet('com_rsfeedback/style.css', array('relative' => true, 'version' => 'auto'));
			HTMLHelper::script('com_rsfeedback/script.js', array('relative' => true, 'version' => 'auto'));
		}
	}

	// Gets our configuration settings
	public static function getConfig($name = null) {
		static $config;
		
		if (!is_object($config)) {
			$db = Factory::getDbo();
			$query = $db->getQuery(true)->select($db->qn('params'))
						->from($db->qn('#__extensions'))
						->where($db->qn('type') . ' = ' . $db->q('component'))
						->where($db->qn('element') . ' = ' . $db->q('com_rsfeedback'));
			$db->setQuery($query);
			$params = $db->loadResult();
			
			$registry = new Registry;
			$registry->loadString($params);
			$config = $registry->toObject();
		}

		if ($name != null) {
			if (isset($config->$name))
				return $config->$name;
			else
				return false;
		}
		else return $config;
	}
	
	public static function addToolbar() {
		if (RSFeedbackHelper::isJ4()) {
			return;
		}

		$view = Factory::getApplication()->input->get('view');
		
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_OVERVIEW'), Route::_('index.php?option=com_rsfeedback'), empty($view));
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_MENU_FEEDBACKS'), Route::_('index.php?option=com_rsfeedback&view=feedbacks'), $view == 'feedbacks');
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_MENU_CATEGORIES'), Route::_('index.php?option=com_rsfeedback&view=categories'), $view == 'categories');
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_MENU_GROUPS'), Route::_('index.php?option=com_rsfeedback&view=groups'), $view == 'groups');
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_MENU_STATUSES'), Route::_('index.php?option=com_rsfeedback&view=statuses'), $view == 'statuses');
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_MENU_FLAGS'), Route::_('index.php?option=com_rsfeedback&view=flags'), $view == 'flags');
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_MENU_MODERATION'), Route::_('index.php?option=com_rsfeedback&view=moderations'), $view == 'moderations');
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_MENU_COMMENTS'), Route::_('index.php?option=com_rsfeedback&view=comments'), $view == 'comments');
		JHtmlSidebar::addEntry(Text::_('COM_RSFEEDBACK_MENU_SUBSCRIPTIONS'), Route::_('index.php?option=com_rsfeedback&view=subscriptions'), $view == 'subscriptions');
	}

	public static function showDate($date, $dateformat=null) {
		$config 		= RSFeedbackHelper::getConfig();
		$date_format	= !empty($dateformat) ? $dateformat : $config->global_dateformat;

		return HTMLHelper::_('date', $date, $date_format);
	}
	
	//get permissions for user groups
	public static function getPermissions($permission = null) {
		$db 			= Factory::getDbo();
		$query			= $db->getQuery(true);
		$user 			= Factory::getUser();
		$app			= Factory::getApplication();
		$params	 		= $app->isClient('site') ? $app->getParams() : new Registry;
		$param_cat 		= $params->get('ShowFromCategories');
		$view	 		= Factory::getApplication()->input->get('view', '','cmd');
		$permissions    = array();
		
		// Get the columns of groups as default permissions
		static $group_columns;
		
		if (!isset($group_columns)) {
			$group_columns = $db->getTableColumns('#__rsfeedback_groups');
		}
		
		foreach (array_keys($group_columns) as $col) {
			$permissions[$col] = 0;
		}

		// Get the user`s groups
		$joomla_groups = Access::getGroupsByUser($user->id);

		// Remove the public permission
		if (!$user->guest) {
			foreach ($joomla_groups as $i => $group)
				if ($group == 1) unset($joomla_groups[$i]);
		}

		// Get all RSFeedback Groups
		static $rsfeedback_group_acl;
		
		if (!isset($rsfeedback_group_acl)) {
			$query->clear();
			$query->select('*')->from($db->qn('#__rsfeedback_groups'))->order($db->qn('id').' ASC');
			$db->setQuery($query);
			$rsfeedback_group_acl = $db->loadObjectList();
		}

		foreach($rsfeedback_group_acl as $group) {
			if (!is_array($group->group_acl)) {
				$registry = new Registry;
				$registry->loadString($group->group_acl);
				$group->group_acl = $registry->toArray();
			}

			$groups_intersect 	= array_intersect($group->group_acl, $joomla_groups);
			if (!empty($groups_intersect)) {
				$permissions['name'] .= ' '.$group->name;
				foreach ($group as $property => $value) 
					if ($value == '1') 
						$permissions[$property] = $value;
			}
		}

		// get category id 
		if (isset($param_cat) && !empty($param_cat)) $cat_id = $params->get('ShowFromCategories');
		elseif ($view == 'category') 				 $cat_id = Factory::getApplication()->input->get('id', 0,'int');
		else 						 				 $cat_id = Factory::getApplication()->input->get('cat_id', 0,'int');
		
		if (is_array($cat_id)) {
			$cat_id = array_map('intval', $cat_id);
		} else {
			$cat_id = $cat_id ? array($cat_id) : array();
		}
		
		$allowed_categories = RSFeedbackHelper::getAllowedCategories();

		// overwrite feedback_add permission whith the category setting
		if ($cat_id && $user->guest) {
			$query->clear()
				->select('MAX('.$db->qn('anonymous_feedbacks').')')
				->from($db->qn('#__rsfeedback_categories'))
				->where($db->qn('id').' IN ('.implode(',', $cat_id).')');
			$db->setQuery($query);
			$permissions['feedback_add'] = (int) $db->loadResult();
		}

		// overwrite feedback_add permission if guest viewing all feedbacks			
		if (!$cat_id && $user->guest && !empty($allowed_categories)) 
			$permissions['feedback_add'] = 1;

		return is_null($permission) ? $permissions : (isset($permissions[$permission]) ? $permissions[$permission] : false);
	}

	public static function DisplayComments($id) {
		$comments = new stdClass();
		$config	  = RSFeedbackHelper::getConfig();
		$id		  = (int) $id;

		$feedback_model   = BaseDatabaseModel::getInstance('Feedback','RSFeedbackModel');
		$feedback		  = $feedback_model->getItem($id);
		$statuses 		  = RSFeedbackHelper::getStatuses();

		switch ($config->feedback_commenting) {
			case '0':
				$comments->listing 	= '';
				$comments->form		= '';
			break;

			case '1':
                require_once JPATH_BASE .'/components/com_rsfeedback/helpers/comments.php';
                $comments->listing 	= RSFeedbackComments::showComments($id);
                $comments->form 	= '';
                if ((bool) RSFeedbackHelper::getPermissions('feedback_comment') && $statuses[$feedback->status_id]->permissions->allow_commenting == 1) {
                    $comments->form 	= RSFeedbackComments::showForm($id);
                }
			break;

			case '2' : 
				$allow_commenting = $statuses[$feedback->status_id]->permissions->allow_commenting == 1;
				require_once JPATH_BASE .'/components/com_rscomments/helpers/rscomments.php';
				
				$hash = md5('com_rsfeedback'.$id);
				
				RSCommentsHelper::loadScripts();
				RSCommentsHelper::loadRecaptcha($hash);
				RSCommentsHelper::loadhCaptcha($hash);

				$comments->listing  = RSCommentsHelper::initScripts('com_rsfeedback', $id);
				$comments->listing 	.= '<div class="rscomments">';
				$comments->listing 	.= '<div class="rscomments-comments-list">';
				$comments->listing 	.= RSCommentsHelper::showComments('com_rsfeedback', $id, null, null, false);
				$comments->listing 	.= '</div><!-- end .rscomments-comments-list -->';
				
				$comments->form		= '<div id="rscomments-comment-form">';
				$comments->form		.= RSCommentsHelper::displayForm('com_rsfeedback', $id, false);
				$comments->form		.= '</div> <!-- end #rscomments-comment-form -->';
				
				if ($allow_commenting)
					$comments->form 	.= '</div><!-- end .rscomments -->';
				else 
					$comments->listing 	.= '</div><!-- end .rscomments -->';
			break;

			case '3' : 
				require_once JPATH_BASE .'/components/com_jcomments/jcomments.php';
				$comments->listing  = JComments::show($id, 'com_rsfeedback', $feedback->title);
				$comments->form		= '';
			break;

			case '4' : 
				// JomComment not supported anymore
				$comments->listing 	= '';
				$comments->form		= '';
			break;

			case '5' :
                $comments->listing  = Komento::commentify('com_rsfeedback', $feedback);
                $comments->form     = '';
			break;
		}

		return $comments;
	}

	public static function getFeedbackCommentsCount($id) {
		$id 		= (int) $id;
		$config		= RSFeedbackHelper::getConfig();

		switch ($config->feedback_commenting)
		{
			case '0': 
				$comments = 0;
			break;

			case '1':
				$comm_model = BaseDatabaseModel::getInstance('Comments','RSFeedbackModel');
				$comments 	= $comm_model->getTotalComments($id);
			break;

			case '2' : 
				require_once (JPATH_BASE .'/components/com_rscomments/helpers/rscomments.php');
				$comments = RSCommentsHelper::getCommentsNumber($id,false,'com_rsfeedback');
			break;

			case '3' : 
				require_once ( JPATH_BASE .'/components/com_jcomments/jcomments.php' );
				$comments = JComments::getCommentsCount($id, 'com_rsfeedback');
			break;

			case '4' : 
				// JomComment not supported anymore
				$comments = 0;
			break;

            case '5' :
				$commentsModel	= Komento::getModel( 'comments' );
				$comments       = $commentsModel->getCount('com_rsfeedback', $id);
            break;
		}

		return (int) $comments;
	}
	
	public static function getFlagNames() {
		$db 	= Factory::getDbo();	
		$query 	= $db->getQuery(true);

		$query->select('*')
			->from($db->qn('#__rsfeedback_flags'))
			->where($db->qn('published') .' = '.$db->q('1'))
			->order($db->qn('ordering'), 'ASC');

		$db->setQuery($query);
		return $db->loadObjectList();
	}

	public static function getStatuses() {
		static $statuses;
		
		if (!isset($statuses)) {
			$db 		= Factory::getDbo();	
			$query 		= $db->getQuery(true);
			$statuses	= array();

			$query->select('*')
				->from($db->qn('#__rsfeedback_statuses'))
				->where($db->qn('published') .' = '.$db->q('1'))
				->order($db->qn('ordering') .' ASC');
			$db->setQuery($query);
			if ($tmp_statuses = $db->loadObjectList()) {			
				foreach ($tmp_statuses as $stat) {
					$registry 			 = new Registry;
					$registry 			 = $registry->loadString($stat->permissions);
					$stat->permissions 	 = $registry->toObject();
					$statuses[$stat->id] = $stat;
				}
			}
		}

		return $statuses;
	}

	public static function getCategoryNames() {
		static $names;
		
		if (!isset($names)) {
			$db 	= Factory::getDbo();
			$query 	= $db->getQuery(true);

			$query->select($db->qn('id').', '.$db->qn('name').', '.$db->qn('anonymous_feedbacks'))
				->from($db->qn('#__rsfeedback_categories'))
				->where($db->qn('published') .' = '.$db->q('1'))
				->order($db->qn('ordering') .' ASC');

			$db->setQuery($query);
			$names = $db->loadObjectList();
		}
		
		return $names;
	}

	public static function getAllowedCategories() {
		$all_categories = self::getCategoryNames();
		$allowed_categories = array();

		if (Factory::getUser()->guest) {
			foreach ($all_categories as $category) 
				if ($category->anonymous_feedbacks == '1') 
					$allowed_categories[] = $category;
		} else {
			$allowed_categories = $all_categories;
		}
		
		return $allowed_categories;
	}

	public static function getCategoryDetails($cat_id) {
		$category = array();

		if (!empty($cat_id)) {
			$model = BaseDatabaseModel::getInstance('Category', 'RSFeedbackModel', array(
				'option' => 'com_rsfeedback',
				'table_path' => JPATH_ADMINISTRATOR.'/components/com_rsfeedback/tables'
			));
			$category = $model->getItem((int) $cat_id);
		}

		return $category;
	}

	public static function getTranslation($string, $prefix) {
		return static::getTranslationObject($string, $prefix)->translation;
	}
	
	public static function getTranslationObject($string, $prefix) {
		$lang 	= Factory::getLanguage();
		$return = new stdClass();
		$return->key 	 	 = strtoupper('COM_RSFEEDBACK_'.$prefix.'_'.str_replace(array(' ','-'), '_', $string));
		$return->translation = $string;

		if ($lang->hasKey($return->key)) 
			$return->translation = Text::_($return->key);

		return $return;
	}
	
	public static function qi($array) {
		$db = Factory::getDbo();

		if (is_array($array)) {
			$quoted = array();
			foreach ($array as $value) {
				$quoted[] = $db->q($value);
			}
			return implode(',', $quoted);
		}

		return $array;
	}

	public static function verifyAuthorship($feedback_id) {
		$feedback_id = (int) $feedback_id;
		$user		 = Factory::getUser();
		$db			 = Factory::getDbo();
		$query		 = $db->getQuery(true);
		$result		 = false;

		if (!$user->guest) {
			// count id where id and user_id
			$query->select('COUNT(`id`) as count')->from($db->qn('#__rsfeedback_feedbacks'))->where($db->qn('id').' = '.$db->q($feedback_id))->where($db->qn('user_id').' = '.$db->q($user->id));

			$db->setQuery($query);
			$result = (bool) $db->loadResult();
		}

		return $result;
	}
	
	public static function renderCaptcha($input) {
		static $instances = array();

		$hash = md5(serialize($input['name']));

		if (!isset($instances[$hash])) {
            $html 	  = array();
            $doc	  = Factory::getDocument();
            $config	  = RSFeedbackHelper::getConfig();
            $size	  = isset($input['element']['size']) ? ' size="' . (int) $input['element']['size'] . '"' : '';
            $class    = isset($input['element']['class']) ? ' class="' . (string) $input['element']['class'] . '"' : '';


            switch ($config->captcha) {
                case 1:
                    // reCAPTCHA
                    if (!class_exists('JReCAPTCHA'))
                        require_once JPATH_SITE.'/components/com_rsfeedback/helpers/recaptcha/recaptchalib.php';

                    $html[] = JReCAPTCHA::getHTML();
                    $html[] = '<span id="rsfe_recaptcha">&nbsp;</span>';
                break;
                case 2:
                    // reCAPTCHA V2
                    $doc->addScriptDeclaration("
                        RSFeedback.loaders.push(function() {
                            grecaptcha.render('g-recaptcha-" . $input['id'] . "', {
                                'sitekey' : '" . $config->rec_public . "',
                                'type' 	  : '" . $config->recv2_type . "',
                                'theme'   : '" . $config->recv2_theme . "'
                            });
                        });
                    ");

                    $html[] = '<div id="g-recaptcha-'.$input['id'].'"></div>';
                break;
                case 3:
                case 4:
                    // Joomla! CAPTCHA Plugin
                    $recaptcha_plugin = $config->captcha == 3 ? 'recaptcha' : 'recaptcha_invisible';

                    if (PluginHelper::isEnabled('captcha', $recaptcha_plugin)) {
						$captcha = Captcha::getInstance($recaptcha_plugin, array('namespace' => $input['id']));
                        $html[] = $captcha->display($input['name'], $input['id']);
                    } else
                        $html[] = '<div class="alert alert-danger"><h4>'.Text::_('COM_RSFEEDBACK_JOOMLA_RECAPTCHA_ERROR_NOT_ENABLED_TITLE').'</h4>'. Text::sprintf('COM_RSFEEDBACK_JOOMLA_RECAPTCHA_ERROR_NOT_ENABLED_MESSAGE', Text::_('COM_RSFEEDBACK_JOOMLA_'.strtoupper($recaptcha_plugin))).'</div>';
                break;
                default:
                    $html[] = '<div class="'.RSFeedbackAdapterGrid::column(5).'">
                                    <img id="'.$input['id'].'image" src="'.Route::_('index.php?option=com_rsfeedback&task=captcha&rand='.rand()).'" onclick="RSFeedback.ResetCaptcha(\''.$input['id'].'\');" title="'.Text::_('COM_RSFEEDBACK_REFRESH_CAPTCHA').'" class="hasTooltip" /> <br /> 
                                   <input type="text" name="jform[captcha]" id="'.$input['id'].'"' . ' value="" ' . $class . $size . '/>
                               </div>
                               ';

                    $html[] = $config->captcha_cases ? Text::_('COM_RSFEEDBACK_CASE_SENSITIVE') : '';
                break;
            }

            $instances[$hash] = $html;
        }

        return implode("\n",$instances[$hash]);
	}
	
	// Clean the cache
	public static function cleanCache() {
		Factory::getCache('com_rsfeedback')->clean();
		return true;
	}
	
	public static function getFeedbackTitle($id) {
		$id 	= (int) $id;
		$db 	= Factory::getDbo();
		$query 	= $db->getQuery(true);

		$query->select($db->qn('title'))
			->from($db->qn('#__rsfeedback_feedbacks'))
			->where($db->qn('id').' = '.$db->q($id));
		$db->setQuery($query);

		return $db->loadResult();
	}

	protected static function getFakeData() {
        // Let's create a fake email & fake username
        $fake_email     = UserHelper::genRandomPassword(mt_rand(10, 16)) . '@' . UserHelper::genRandomPassword(mt_rand(10, 16));
        $fake_username  = UserHelper::genRandomPassword(mt_rand(10, 16));

        $fake_text      = Text::_('COM_RSFEEDBACK_DATA_HAS_BEEN_ANONYMISED');
        $fake_ip        = '0.0.0.0';

        return array($fake_email, $fake_username, $fake_text, $fake_ip);
    }

	public static function anonymiseComments($email) {
        list($fake_email, $fake_username, $fake_text, $fake_ip) = self::getFakeData();

        $db = Factory::getDbo();
        // Anonymize user's comments
        $query = $db->getQuery(true)
            ->update($db->qn('#__rsfeedback_comments'))
            ->set($db->qn('name') . ' = ' . $db->q($fake_username))
            ->set($db->qn('email') . ' = ' . $db->q($fake_email))
            ->set($db->qn('text') . ' = ' . $db->q($fake_text))
            ->set($db->qn('published') . ' = ' . $db->q(0))
            ->where($db->qn('email') . ' = ' . $db->q($email) );
        $db->setQuery($query)->execute();
    }

    public static function anonymiseSubscriptions($email) {
        $db = Factory::getDbo();
        // Anonymize user's subscriptions
        $query = $db->getQuery(true)
            ->delete($db->qn('#__rsfeedback_subscriptions'))
            ->where($db->qn('email') . ' = ' . $db->q($email));
        $db->setQuery($query)->execute();
    }

    public static function anonymise($id, $anonymiseJoomlaData = null) {
        $db         = Factory::getDbo();
        $query      = $db->getQuery(true);
        $user       = Factory::getUser($id);

        list($fake_email, $fake_username, $fake_text, $fake_ip) = self::getFakeData();

        if ($anonymiseJoomlaData === null) {
            $anonymiseJoomlaData = RSFeedbackHelper::getConfig('anonymise_joomla_data');
        }

        // Anonymize Joomla! user data
        if ($anonymiseJoomlaData) {
            // Make sure this email is free
            $query->clear()
                ->select($db->qn('id'))
                ->from($db->qn('#__users'))
                ->where($db->qn('email') . ' = ' . $db->q($fake_email));
            while ($db->setQuery($query)->loadResult()) {
                $fake_email .= UserHelper::genRandomPassword(mt_rand(1, 2));
                $query->clear()
                    ->select($db->qn('id'))
                    ->from($db->qn('#__users'))
                    ->where($db->qn('email') . ' = ' . $db->q($fake_email));
            }

            // Make sure this username is free
            $query->clear()
                ->select($db->qn('id'))
                ->from($db->qn('#__users'))
                ->where($db->qn('username') . ' = ' . $db->q($fake_username));
            while ($db->setQuery($query)->loadResult()) {
                $fake_username .= UserHelper::genRandomPassword(mt_rand(1, 2));
                $query->clear()
                    ->select($db->qn('id'))
                    ->from($db->qn('#__users'))
                    ->where($db->qn('username') . ' = ' . $db->q($fake_username));
            }

            // #__users data
            $query->clear()
                ->update($db->qn('#__users'))
                ->set($db->qn('name') . ' = ' . $db->q($fake_username))
                ->set($db->qn('username') . ' = ' . $db->q($fake_username))
                ->set($db->qn('email') . ' = ' . $db->q($fake_email))
                ->set($db->qn('password') . ' = ' . $db->q(UserHelper::hashPassword(UserHelper::genRandomPassword(20))))
                ->where($db->qn('id') . ' = ' . $db->q($id));
            $db->setQuery($query)->execute();
        }

        // Anonymize user's feedbacks
        $query->clear()
            ->update($db->qn('#__rsfeedback_feedbacks'))
            ->set($db->qn('title') . ' = ' . $db->q($fake_text))
            ->set($db->qn('text') . ' = ' . $db->q($fake_text))
            ->set($db->qn('published') . ' = ' . $db->q(0))
            ->where($db->qn('user_id') . ' = ' . $db->q($id) );
        $db->setQuery($query)->execute();

        // Anonymize user's comments
        self::anonymiseComments($user->email);

        // Anonymize user's subscriptions
        self::anonymiseSubscriptions($user->email);

        // Anonymize user's flags
        $query->clear()
            ->update($db->qn('#__rsfeedback_user_flags'))
            ->set($db->qn('comment') . ' = ' . $db->q($fake_text))
            ->where($db->qn('user_id') . ' = ' . $db->q($id) );
        $db->setQuery($query)->execute();

        // Anonymize user's votes
        $query->clear()
            ->update($db->qn('#__rsfeedback_user_votes'))
            ->set($db->qn('ip') . ' = ' . $db->q($fake_ip))
            ->where($db->qn('user_id') . ' = ' . $db->q($id) );
        $db->setQuery($query)->execute();
    }
}

Anon7 - 2022
AnonSec Team