AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.111
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/nice/administrator/components/com_community/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/nice/administrator/components/com_community/installer.updater.php
<?php
    /**
     * @copyright (C) 2013 iJoomla, Inc. - All rights reserved.
     * @license GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html)
     * @author iJoomla.com <webmaster@ijoomla.com>
     * @url https://www.jomsocial.com/license-agreement
     * The PHP code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript *are NOT GPL, and are released under the IJOOMLA Proprietary Use License v1.0
     * More info at https://www.jomsocial.com/license-agreement
     */

use Joomla\CMS\Factory;
use Joomla\Filesystem\File;
use Joomla\Registry\Registry;

// Disallow direct access to this file
    defined('_JEXEC') or die('Restricted access');

    require_once JPATH_ROOT . '/administrator/components/com_community/models/configuration.php';
    require_once JPATH_ROOT . '/components/com_community/libraries/parameter.php';

    abstract class communityInstallerUpdate
    {
        /**
         * Method to check if column exitst
         * @param $tablename
         * @param $columname
         * @return true/false
         */

        private static function _isExistTableColumn($tablename, $columname)
        {
            $db = Factory::getDBO();

            $query = 'SHOW FIELDS FROM ' . $db->quoteName($tablename);
            $db->setQuery($query);

            $resutl = $db->loadObjectList();

            foreach ($resutl as $_result) {
                if ($_result->Field == $columname) {
                    return false;
                }
            }

            return true;
        }

        /**
         * Method to check if Menu is exist
         * @return true/false
         */

        private static function _isExistMenu()
        {
            $db = Factory::getDBO();

            $query = 'SELECT COUNT(*) FROM ' . $db->quoteName('#__menu_types') . ' WHERE ';
            $query .= $db->quoteName('menutype') . '=' . $db->Quote('jomsocial');

            $db->setQuery($query);

            return $db->loadResult() > 0;
        }

        /**
         * Get Current Used template
         * @return [string] [return template name]
         */
        private static function _getCurrentTemplate()
        {
            $configuration = new CommunityModelConfiguration();
            $config = $configuration->getParams();

            return $config->get('template');
        }

        /**
         * Method Update DbVersion
         * @param $dbversion
         */

        public static function updateDBVersion($dbversion)
        {
            $db = Factory::getDBO();

            $query = 'UPDATE ' . $db->quoteName('#__community_config') . 'SET ';
            $query .= $db->quoteName('params') . ' = ' . $db->quote($dbversion) . ' WHERE ';
            $query .= $db->quoteName('name') . ' = ' . $db->quote('dbversion');

            $db->setQuery($query);
            $db->execute();
        }

        /**
         * Method to insert Db Version
         * @param $dbversion
         */

        public static function insertDBVersion($dbversion)
        {
            $db =& Factory::getDBO();

            $query = 'INSERT INTO ' . $db->quoteName('#__community_config')
                . '(' . $db->quoteName('name') . ', ' . $db->quoteName('params') . ')'
                . 'VALUES(' . $db->quote('dbversion') . ', ' . $db->quote($dbversion) . ')';

            $db->setQuery($query);
            $db->execute();
        }

        /**
         * Method to insert Basic Config
         *
         * */

        public static function insertBasicConfig()
        {
            $db =& Factory::getDBO();

            $query = 'INSERT INTO ' . $db->quoteName('#__community_config')
                . '(' . $db->quoteName('name') . ', ' . $db->quoteName('params') . ')'
                . 'VALUES(' . $db->quote('config') . ', "")';

            $db->setQuery($query);
            $db->execute();
        }

        public static function update_11()
        {
            $db = Factory::getDBO();

            // Update Event Table
            if (self::_isExistTableColumn('#__community_events', 'allday')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_events') . ' ADD ' . $db->quoteName('allday') . ' TINYINT( 11 ) NOT NULL DEFAULT ' . $db->quote(0);
                $query .= ' , ADD ' . $db->quoteName('repeat') . ' VARCHAR( 50 ) DEFAULT NULL COMMENT ' . $db->Quote('null,daily,weekly,monthly');
                $query .= ' , ADD ' . $db->quoteName('repeatend') . ' DATE NOT NULL';
                $query .= ' , ADD ' . $db->quoteName('parent') . ' INT( 11 ) NOT NULL COMMENT ' . $db->Quote('parent for recurring event') . ' AFTER ' . $db->quoteName('id');
                $query .= ' , ADD KEY `idx_catid` (`catid`)';
                $query .= ' , ADD KEY `idx_published` (`published`)';

                $db->setQuery($query);
                $db->execute();
            }

            //Update Community Profile table
            if (self::_isExistTableColumn('#__community_profiles', 'profile_lock')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_profiles')
                    . ' ADD ' . $db->quoteName('profile_lock')
                    . ' TINYINT (1) NULL DEFAULT ' . $db->quote(0)
                    . ' AFTER ' . $db->quoteName('create_events');

                $db->setQuery($query);
                $db->execute();

            }

            //Update Community Groups Discussion table
            if (self::_isExistTableColumn('#__community_groups_discuss', 'params')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_groups_discuss') . ' ADD ' . $db->quoteName('params') . ' TEXT NOT NULL ';

                $db->setQuery($query);
                $db->execute();
            }

            //Update Community Groups Bulletins Table
            if (self::_isExistTableColumn('#__community_groups_bulletins', 'params')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_groups_bulletins') . ' ADD ' . $db->quoteName('params') . ' TEXT NOT NULL ';

                $db->setQuery($query);
                $db->execute();
            }

            //Update Community Register table
            if (self::_isExistTableColumn('#__community_register', 'ip')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_register') . ' CHANGE ' . $db->quoteName('ip') . ' ' . $db->quoteName('ip') . ' VARCHAR( 39 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL; ';

                $db->setQuery($query);
                $db->execute();
            }

            //Update Community Register Auth token table
            if (self::_isExistTableColumn('#__community_register_auth_token', 'ip')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_register_auth_token') . ' CHANGE ' . $db->quoteName('ip') . ' ' . $db->quoteName('ip') . ' VARCHAR( 39 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL; ';

                $db->setQuery($query);
                $db->execute();
            }

            // Update Menu link to mygroup
            if (self::_isExistMenu()) {
                $query = 'UPDATE ' . $db->quoteName('#__menu') . ' SET ' . $db->quoteName('link') . ' = ' . $db->quote('index.php?option=com_community&view=groups&task=mygroupupdate');
                $query .= ' WHERE ' . $db->quoteName('menutype') . ' = ' . $db->quote('jomsocial');
                $query .= ' AND  ' . $db->quoteName('link') . ' = ' . $db->quote('index.php?option=com_community&view=groups&task=mygroups');
                $query .= ' AND  ' . $db->quoteName('alias') . ' = ' . $db->quote('groups');

                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_12()
        {
            $db = Factory::getDBO();

            if (self::_isExistTableColumn('#__community_photos', 'params')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_photos') . ' ADD ' . $db->quoteName('params') . ' TEXT NOT NULL ';

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_photos_albums', 'params')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_photos_albums') . ' ADD ' . $db->quoteName('params') . ' TEXT NOT NULL ';

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_videos', 'params')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_videos') . ' ADD ' . $db->quoteName('params') . ' TEXT NOT NULL ';

                $db->setQuery($query);
                $db->execute();
            }

            $query = 'ALTER TABLE ' . $db->quoteName('#__community_register_auth_token') . ' CHANGE ' . $db->quoteName('ip') . ' ' . $db->quoteName('ip') . ' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL; ';

            $db->setQuery($query);
            $db->execute();

            $query = 'DELETE FROM  ' . $db->quoteName('#__community_activities') . ' WHERE ' . $db->quoteName('title') . ' LIKE ' . $db->quote('%{multiple}%');

            $db->setQuery($query);
            $db->execute();

            if (self::_getCurrentTemplate() == 'blackout') {
                $configuration = new CommunityModelConfiguration();
                $configuration->updateTemplate('default');
            }

            $query = 'UPDATE ' . $db->quoteName('#__community_activities') . 'SET ' . $db->quoteName('app') . ' = ' . $db->quote('albums.featured')
                . ' WHERE ' . $db->quoteName('app') . ' = ' . $db->quote('photos.featured');

            $db->setQuery($query);
            $db->execute();

            if (self::_isExistTableColumn('#__community_activities', 'actors')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_activities') . ' ADD ' . $db->quoteName('actors') . ' TEXT NOT NULL ';

                $db->setQuery($query);
                $db->execute();
            }

            // Delete old app activity string
            $query = 'DELETE FROM ' . $db->quoteName('#__community_activities') . ' WHERE ' . $db->quoteName('app') . '=' . $db->quote('feed') . ' OR ' . $db->quoteName('app') . '=' . $db->quote('friendslocation') . ' OR ' . $db->quoteName('app') . '=' . $db->quote('kunena') . '
				 OR ' . $db->quoteName('app') . '=' . $db->quote('latestphoto') . ' OR ' . $db->quoteName('app') . '=' . $db->quote('myarticles') . ' OR ' . $db->quoteName('app') . '=' . $db->quote('mycontacts') . ' OR ' . $db->quoteName('app') . '=' . $db->quote('mygoogleads') . '
				 OR ' . $db->quoteName('app') . '=' . $db->quote('mytaggedvideos') . ' OR ' . $db->quoteName('app') . '=' . $db->quote('twitter') . ' OR ' . $db->quoteName('app') . '=' . $db->quote('wall');

            $db->setQuery($query);
            $db->execute();

            //Delete old profile avatar string
            $query = 'DELETE FROM  ' . $db->quoteName('#__community_activities') . ' WHERE ' . $db->quoteName('app') . ' LIKE ' . $db->quote('profile') . ' AND ' . $db->quoteName('comment_type') . ' LIKE ' . $db->quote('profile.avatar.upload');

            $db->setQuery($query);
            $db->execute();

            //Delete old groups updated stream
            $query = 'DELETE FROM  ' . $db->quoteName('#__community_activities') . ' WHERE ' . $db->quoteName('app') . ' LIKE ' . $db->quote('groups') . ' AND ' . $db->quoteName('app') . ' LIKE ' . $db->quote('%updated group%');

            $db->setQuery($query);
            $db->execute();

        }

        public static function update_13()
        {
            $db = Factory::getDBO();

            if (self::_isExistTableColumn('#__community_users', 'cover')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_users') . ' ADD ' . $db->quoteName('cover') . ' TEXT NOT NULL AFTER ' . $db->quoteName('thumb');

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_groups', 'cover')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_groups') . ' ADD ' . $db->quoteName('cover') . ' TEXT NOT NULL AFTER ' . $db->quoteName('thumb');

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_events', 'cover')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_events') . ' ADD ' . $db->quoteName('cover') . ' TEXT NOT NULL AFTER ' . $db->quoteName('thumb');

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_groups', 'hits')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_groups') . ' ADD ' . $db->quoteName('hits') . ' INT NOT NULL';

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_photos_albums', 'eventid')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_photos_albums') . ' ADD ' . $db->quoteName('eventid') . ' INT NOT NULL AFTER ' . $db->quoteName('groupid');

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistMenu()) {
                $query = 'UPDATE ' . $db->quoteName('#__menu') . ' SET ' . $db->quoteName('link') . ' = ' . $db->quote('index.php?option=com_community&view=groups&task=mygroups')
                    . ' WHERE ' . $db->quoteName('menutype') . ' = ' . $db->quote('jomsocial')
                    . ' AND  ' . $db->quoteName('link') . ' = ' . $db->quote('index.php?option=com_community&view=groups&task=mygroupupdate')
                    . ' AND  ' . $db->quoteName('alias') . ' = ' . $db->quote('groups');
                $db->setQuery($query);
                $db->execute();
            }

            //remove backend double toolbar
            $file = JPATH_ROOT . '/administrator/components/com_community/toolbar.community.php';

            if (is_file($file)) {
                File::delete($file);
            }

            //Use default template
            $configuration = new CommunityModelConfiguration();
            $configuration->updateTemplate('default');
        }

        public static function update_14()
        {
            $db = Factory::getDBO();

            if (self::_isExistTableColumn('#__community_events', 'params')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_events') . ' ADD ' . $db->quoteName('params') . ' TEXT NOT NULL';

                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_15()
        {
            $db = Factory::getDBO();

            if (self::_isExistTableColumn('#__community_wall', 'params')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_wall') . ' ADD ' . $db->quoteName('params') . ' TEXT NOT NULL';

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_blocklist', 'type')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_blocklist') . ' ADD ' . $db->quoteName('type') . ' VARCHAR(50) NOT NULL';

                $db->setQuery($query);
                $db->execute();
            }

            $query = 'SHOW INDEX FROM ' . $db->quoteName('#__community_config');
            $db->setQuery($query);
            $result = $db->loadAssoc();
            if (!isset($result['Column_name']) || empty($result['Column_name'])) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_config') . ' ADD PRIMARY KEY ( ' . $db->quoteName('name') . ' )';
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_16()
        {
            $db = Factory::getDBO();

            // add alias to community_user table
            $query = 'ALTER TABLE ' . $db->quoteName('#__community_users') . ' ADD INDEX ( ' . $db->quoteName('alias') . ')';
            $db->setQuery($query);
            $db->execute();

            // add moods table
            $query = 'CREATE TABLE IF NOT EXISTS' . $db->quoteName('#__community_moods') . ' (
          ' . $db->quoteName('id') . ' int(11) NOT NULL AUTO_INCREMENT,
          ' . $db->quoteName('title') . ' varchar(128) NOT NULL,
          ' . $db->quoteName('description') . ' varchar(128) NOT NULL,
          ' . $db->quoteName('image') . 'varchar(256) DEFAULT NULL,
          ' . $db->quoteName('custom') . ' tinyint(4) NOT NULL,
          ' . $db->quoteName('published') . ' tinyint(4) NOT NULL DEFAULT ' . $db->quote(1) . ',
          ' . $db->quoteName('allowcustomtext') . ' tinyint(4) NOT NULL DEFAULT ' . $db->quote(0) . ',
          ' . $db->quoteName('ordering') . ' int(11) NOT NULL DEFAULT ' . $db->quote(0) . ',
          PRIMARY KEY (' . $db->quoteName('id') . ')
        ) ENGINE=InnoDB  DEFAULT CHARSET=utf8';

            $db->setQuery($query);
            $db->execute();

            // preset mood ordering by id
            $query = 'UPDATE ' . $db->quoteName('#__community_moods') . ' SET ' .
                $db->quoteName('ordering') . ' = ' . $db->quoteName('id');

            $db->setQuery($query);
            $db->execute();

            // populate preset moods
            $query = 'INSERT IGNORE INTO ' . $db->quoteName('#__community_moods') .
                ' (' . $db->quoteName('id') .
                ', ' . $db->quoteName('title') .
                ', ' . $db->quoteName('description') .
                ', ' . $db->quoteName('image') .
                ', ' . $db->quoteName('custom') .
                ', ' . $db->quoteName('published') .
                ', ' . $db->quoteName('allowcustomtext') . ') VALUES
            (1, ' . $db->quoteName('happy') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_HAPPY') . ', NULL, 0, 1, 0),
              (2, ' . $db->quoteName('meh') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_MEH') . ', NULL, 0, 1, 0),
              (3, ' . $db->quoteName('sad') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SAD') . ', NULL, 0, 1, 0),
              (4, ' . $db->quoteName('loved') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_LOVED') . ', NULL, 0, 1, 0),
              (5, ' . $db->quoteName('excited') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_EXCITED') . ', NULL, 0, 1, 0),
              (6, ' . $db->quoteName('pretty') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_PRETTY') . ', NULL, 0, 1, 0),
              (7, ' . $db->quoteName('tired') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_TIRED') . ', NULL, 0, 1, 0),
              (8, ' . $db->quoteName('angry') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_ANGRY') . ', NULL, 0, 1, 0),
              (9, ' . $db->quoteName('speachless') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SPEACHLESS') . ', NULL, 0, 1, 0),
              (10, ' . $db->quoteName('shocked') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SHOCKED') . ', NULL, 0, 1, 0),
              (11, ' . $db->quoteName('irretated') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_IRRETATED') . ', NULL, 0, 1, 0),
              (12, ' . $db->quoteName('sick') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SICK') . ', NULL, 0, 1, 0),
              (13, ' . $db->quoteName('annoyed') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_ANNOYED') . ', NULL, 0, 1, 0),
              (14, ' . $db->quoteName('relieved') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_RELIEVED') . ', NULL, 0, 1, 0),
              (15, ' . $db->quoteName('blessed') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_BLESSED') . ', NULL, 0, 1, 0),
              (16, ' . $db->quoteName('bored') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_BORED') . ', NULL, 0, 1, 0),
              (19, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_HAPPY') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_HAPPY') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (20, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_SAD') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SAD') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (21, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_COOL') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_COOL') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (22, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_IRRITATED') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_IRRITATED') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (23, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_ANNOYED') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_ANNOYED') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (24, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_SHOCKED') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SHOCKED') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (25, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_AMUSED') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_AMUSED') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (26, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_SPEECHLESS') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SPEECHLESS') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (27, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_RICH') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_RICH') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (28, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_CHEEKY') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_CHEEKY') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (29, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_ANGRY') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_ANGRY') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (30, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_HUNGRY') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_HUNGRY') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (31, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_FESTIVE') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_FESTIVE') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (32, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_ROYAL') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_ROYAL') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (33, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_LOVE') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_LOVE') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (34, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_AFRAID') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_AFRAID') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (35, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_POWERFUL') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_POWERFUL') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (36, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_INVISIBLE') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_INVISIBLE') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (37, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_SWEET') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SWEET') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (38, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_THIRSTY') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_THIRSTY') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (39, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_CLEAN') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_CLEAN') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (40, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_WATCHING') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_WATCHING') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (41, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_BORED') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_BORED') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (42, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_BUMMED') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_BUMMED') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (43, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_INNOVATIVE') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_INNOVATIVE') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (44, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_LUCKY') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_LUCKY') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (45, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_FOCUSED') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_FOCUSED') . ', ' . $db->quoteName('png') . ', 1, 1, 0),
              (46, ' . $db->quoteName('COM_COMMUNITY_MOOD_SHORT_SURFING') . ', ' . $db->quoteName('COM_COMMUNITY_MOOD_SURFING') . ', ' . $db->quoteName('png') . ', 1, 1, 0)';


            $db->setQuery($query);
            try {
                $db->execute();
            } catch (Exception $e) {
            }


            // create badges table
            $query = 'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_badges') . ' (
              ' . $db->quoteName('id') . ' varchar(64) NOT NULL,
              ' . $db->quoteName('points') . ' int(11) NOT NULL DEFAULT ' . $db->quote(0) . ',
              ' . $db->quoteName('image') . ' varchar(256) NOT NULL,
              ' . $db->quoteName('published') . ' tinyint(4) NOT NULL DEFAULT ' . $db->quote(0) . ',
              PRIMARY KEY (' . $db->quoteName('id') . ')
            )ENGINE=InnoDB DEFAULT CHARSET=utf8 ';

            $db->setQuery($query);
            $db->execute();

            // If badges table is empty, inject defaults based on old karma config
            $query = 'SELECT * FROM '. $db->quoteName('#__community_badges');
            $db->setQuery( $query );
            $result = $db->loadObject();

            if(empty($result)) {
                $config = CFactory::getConfig();
                $usedPoints=array();

                // grab config for 0,1,2,3,4,5
                for($i=0;$i<6;$i++) {

                    $configKey = 'point'.$i;
                    $configPoints = $config->get($configKey);

                    // Add 1 if there is a duplicate
                    while(in_array($configPoints, $usedPoints)) $configPoints++;

                    // default the first item to zero
                    if($i==0) $configPoints = 0;

                    $query = 'INSERT INTO '. $db->quoteName('#__community_badges')
                        . ' ( '
                        .  $db->quoteName('title')
                        . ', '.$db->quoteName('points')
                        . ', '.$db->quoteName('image')
                        . ', '.$db->quoteName('published')
                        . ') VALUES ('
                        . $db->quote($configPoints)
                        . ', '.$db->quote($configPoints)
                        . ', '.$db->quote('png')
                        . ', '.$db->quote(1)
                        . ')';

                    $db->setQuery($query);
                    $db->execute();

                    //grab ID and copy the old karma file to a new badge file
                    $oldFile=JPATH_ROOT."/components/com_community/assets/karma{$i}.png";
                    $newFile=JPATH_ROOT."/components/com_community/assets/badge_".$db->insertid().".png";

                    File::copy($oldFile,$newFile);
                }

            }

            // create theme table
            $query =    'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_theme') . ' (
                ' . $db->quoteName('id') . ' int(11) NOT NULL AUTO_INCREMENT,
                ' . $db->quoteName('key') . ' varchar(32) NOT NULL,
                ' . $db->quoteName('value') . ' text NOT NULL,
                PRIMARY KEY (' . $db->quoteName('id') . '),
                UNIQUE KEY ' . $db->quoteName('key') . ' (' . $db->quoteName('key') . ')
            )';

            $db->setQuery($query);
            $db->execute();

            //for default theme scss
            $query = 'REPLACE INTO ' . $db->quoteName('#__community_theme')
                . '(' . $db->quoteName('key') . ', ' . $db->quoteName('value') . ')'
                . 'VALUES(' . $db->quote('scss-default') . ', ' . $db->quote('{"colors":{"scss-color-primary":"5677FC","scss-color-secondary":"259B24","scss-color-neutral":"ECF0F1","scss-color-important":"E74C3C","scss-color-info":"E67E22","scss-color-background":"ECF0F1","scss-color-toolbar":"F5F7F7","scss-color-focus-background":"FFFFFF","scss-color-postbox":"FFFFFF","scss-color-postbox-tab":"F5F5F5","scss-color-module-background":"FFFFFF","scss-color-moduletab-background":"E0E7E8","scss-color-dropdown-background":"FFFFFF","scss-color-dropdown-border":"E3E5E7"},"general":{"scss-stream-position":"right","scss-button-style":"flat","scss-avatar-shape":"circle","scss-avatar-style":"bordered"}}') . ')';
            $db->setQuery($query);
            try {
                $db->execute();
            } catch (Exception $e) {
            }

            //for s3 storage
            $query = 'ALTER TABLE ' . $db->quoteName('#__community_events') . ' ADD  ' . $db->quoteName('storage') . ' VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' . $db->quote('file');
            $db->setQuery($query);
            try {
                $db->execute();
            } catch (Exception $e) {
            }

            //Add primary key to Fb table
            $query = 'ALTER TABLE ' . $db->quoteName('#__community_connect_users') . ' ADD PRIMARY KEY( ' . $db->quote('connectid') . ')';
            $db->setQuery($query);
            try {
                $db->execute();
            } catch (Exception $e) {
            }

            $query = 'ALTER TABLE ' . $db->quoteName('#__community_events') . ' ADD ' . $db->quoteName('unlisted') . ' TINYINT NOT NULL';
            $db->setQuery($query);
            try {
                $db->execute();
            } catch (Exception $e) {
            }

            //Update default template to jomsocial
            $query = 'SELECT ' . $db->quoteName('params') . ' FROM ' . $db->quoteName('#__community_config') . ' WHERE ' . $db->quoteName('name') . ' = ' . $db->quote('config');
            $db->setQuery($query);
            $params = $db->loadResult();

            $params = new Registry($params);
            $params->set('template', 'jomsocial');
            $params = $params->toString();

            $query = 'UPDATE ' . $db->quoteName('#__community_config') . ' SET ' . $db->quoteName('params') . ' = ' . $db->quote($params)
                . ' WHERE ' . $db->quoteName('name') . ' = ' . $db->quote('config');
            $db->setQuery($query);
            $db->execute();

            //hashtag table
            $query = 'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_hashtag') . ' (
                  ' . $db->quoteName('id') . ' int(11) NOT NULL AUTO_INCREMENT,
                  ' . $db->quoteName('tag') . ' varchar(128) CHARACTER SET utf8 NOT NULL,
                  ' . $db->quoteName('params') . ' text CHARACTER SET utf8 NOT NULL,
                  ' . $db->quoteName('created_at') . ' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
                  PRIMARY KEY (' . $db->quoteName('id') . '),
                  UNIQUE KEY ' . $db->quoteName('tag') . ' (' . $db->quoteName('tag') . ')
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1';
            $db->setQuery($query);
            $db->execute();

            //migrate previous hashtag in activity to hashtag table
            $query = 'SELECT ' . $db->quoteName('id') . ',' . $db->quoteName('title') . ',' . $db->quoteName('content') . ' FROM ' . $db->quoteName('#__community_activities') . ' order by id desc LIMIT 1000';

            $db->setQuery($query);
            $results = $db->loadObjectList();

            $matches = null;
            $hashtaglist = array();
            foreach ($results as $result) {
                preg_match_all('(#\w+)', $result->content . ' ' . $result->title, $matches);
                if (!empty($matches[0])) {
                    foreach ($matches[0] as $match) {
                        if ($match != '#eee') { // videos content image src might have #eee as inline css, escape this
                            $hashtaglist[$match][] = $result->id;
                        }
                    }
                }
            }

            if (count($hashtaglist) > 0) {
                foreach ($hashtaglist as $hash => $activityIds) {
                    $param = new Registry();
                    $param->set('activity_id', $activityIds);

                    $query = 'REPLACE INTO ' . $db->quoteName('#__community_hashtag')
                        . '(' . $db->quoteName('tag') . ', ' . $db->quoteName('params') . ')'
                        . 'VALUES(' . $db->quote($hash) . ', ' . $db->quote($param->toString()) . ')';

                    $db->setQuery($query);
                    $db->execute();
                }
            }

            // update activity table
            $query = 'ALTER TABLE  ' . $db->quoteName('#__community_activities') . ' ADD  ' . $db->quoteName('updated_at') . ' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP';
            $db->setQuery($query);
            try {
                $db->execute();
            } catch (Exception $e) {
            }

            //update group table
            $query = 'ALTER TABLE ' . $db->quoteName('#__community_groups') . ' ADD ' . $db->quoteName('summary') . ' TEXT NOT NULL';
            $db->setQuery($query);
            try {
                $db->execute();
            } catch (Exception $e) {
            }

            $query = 'ALTER TABLE ' . $db->quoteName('#__community_groups') . ' ADD ' . $db->quoteName('unlisted') . ' TINYINT NOT NULL';
            $db->setQuery($query);
            try {
                $db->execute();
            } catch (Exception $e) {
            }

            $query = 'DELETE FROM '.$db->quoteName('#__community_userpoints').' WHERE '.$db->quoteName('action_string').' = '.$db->quote('profile.avatar.uploads');
            $db->setQuery($query);
            $db->execute();
        }

        public static function update_17(){
            $db = Factory::getDBO();

            if (self::_isExistTableColumn('#__community_videos', 'eventid')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_videos') . ' ADD ' . $db->quoteName('eventid') . ' INT( 11 ) NOT NULL AFTER '
                    . $db->quoteName('groupid');

                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_featured', 'target_id')) {

                $query = 'ALTER TABLE '. $db->quoteName('#__community_featured') .' ADD '.$db->quoteName('target_id').' INT(11) NOT NULL AFTER '.$db->quoteName('created_by');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_files', 'messageid')) {

                $query = 'ALTER TABLE '. $db->quoteName('#__community_files') .' ADD '.$db->quoteName('messageid').' INT(11) NOT NULL AFTER '.$db->quoteName('profileid');
                $db->setQuery($query);
                $db->execute();
            }

            $query = 'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_profile_stats') . ' (
                      ' . $db->quoteName('id') . ' int(11) NOT NULL AUTO_INCREMENT,
                      ' . $db->quoteName('uid') . ' int(11) NOT NULL,
                      ' . $db->quoteName('type') . ' varchar(255) NOT NULL,
                      ' . $db->quoteName('count') . ' int(11) NOT NULL,
                      ' . $db->quoteName('date') . ' date NOT NULL,
                      ' . $db->quoteName('params') . ' text NOT NULL,
                      ' . $db->quoteName('created_at') . ' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
                      PRIMARY KEY (' . $db->quoteName('id') . ')
                    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1';
            $db->setQuery($query);
            $db->execute();
        }

        public static function update_18(){
            $db = Factory::getDbo();

            $query = 'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_photo_stats') . ' (
                      ' . $db->quoteName('id') . ' int(11) NOT NULL AUTO_INCREMENT,
                      ' . $db->quoteName('pid') . ' int(11) NOT NULL,
                      ' . $db->quoteName('type') . ' varchar(255) NOT NULL,
                      ' . $db->quoteName('count') . ' int(11) NOT NULL,
                      ' . $db->quoteName('date') . ' date NOT NULL,
                      ' . $db->quoteName('params') . ' text NOT NULL,
                      ' . $db->quoteName('created_at') . ' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
                      PRIMARY KEY (' . $db->quoteName('id') . ')
                    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1';
            $db->setQuery($query);
            $db->execute();

            $query = 'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_video_stats') . ' (
                      ' . $db->quoteName('id') . ' int(11) NOT NULL AUTO_INCREMENT,
                      ' . $db->quoteName('vid') . ' int(11) NOT NULL,
                      ' . $db->quoteName('type') . ' varchar(255) NOT NULL,
                      ' . $db->quoteName('count') . ' int(11) NOT NULL,
                      ' . $db->quoteName('date') . ' date NOT NULL,
                      ' . $db->quoteName('params') . ' text NOT NULL,
                      ' . $db->quoteName('created_at') . ' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
                      PRIMARY KEY (' . $db->quoteName('id') . ')
                    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1';
            $db->setQuery($query);
            $db->execute();

            $query = 'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_group_stats') . ' (
                      ' . $db->quoteName('id') . ' int(11) NOT NULL AUTO_INCREMENT,
                      ' . $db->quoteName('gid') . ' int(11) NOT NULL,
                      ' . $db->quoteName('type') . ' varchar(255) NOT NULL,
                      ' . $db->quoteName('count') . ' int(11) NOT NULL,
                      ' . $db->quoteName('date') . ' date NOT NULL,
                      ' . $db->quoteName('params') . ' text NOT NULL,
                      ' . $db->quoteName('created_at') . ' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
                      PRIMARY KEY (' . $db->quoteName('id') . ')
                    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1';
            $db->setQuery($query);
            $db->execute();

            $query = 'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_event_stats') . ' (
                      ' . $db->quoteName('id') . ' int(11) NOT NULL AUTO_INCREMENT,
                      ' . $db->quoteName('eid') . ' int(11) NOT NULL,
                      ' . $db->quoteName('type') . ' varchar(255) NOT NULL,
                      ' . $db->quoteName('count') . ' int(11) NOT NULL,
                      ' . $db->quoteName('date') . ' date NOT NULL,
                      ' . $db->quoteName('params') . ' text NOT NULL,
                      ' . $db->quoteName('created_at') . ' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
                      PRIMARY KEY (' . $db->quoteName('id') . ')
                    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1';
            $db->setQuery($query);
            $db->execute();

        }

        public static function update_19(){
            $db = Factory::getDbo();

            $query = 'CREATE TABLE IF NOT EXISTS ' . $db->quoteName('#__community_digest_email') . ' (
                      ' . $db->quoteName('user_id') . ' int(11) NOT NULL,
                      ' . $db->quoteName('last_sent') . ' TIMESTAMP NOT NULL,
                      ' . $db->quoteName('total_sent') . ' int(11) NOT NULL,
                      PRIMARY KEY (' . $db->quoteName('user_id') . ')
                    ) ENGINE=MyISAM';
            $db->setQuery($query);
            $db->execute();

            if (self::_isExistTableColumn('#__community_fields_values', 'params')) {
                $query = 'ALTER TABLE ' . $db->quoteName('#__community_fields_values')
                    . ' ADD ' . $db->quoteName('params') . ' text NOT NULL';
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_20(){
            $db = Factory::getDbo();

            $query = "CREATE TABLE IF NOT EXISTS ".$db->quoteName('#__community_thirdparty_wall_options')." (
                      ".$db->quoteName('name')." varchar(255) NOT NULL PRIMARY KEY,
                      ".$db->quoteName('notification_cmd')." varchar(255) NOT NULL,
                      ".$db->quoteName('object_name')." varchar(255) NOT NULL,
                      ".$db->quoteName('params')." text NOT NULL
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8";
            $db->setQuery($query);
            $db->execute();

            if (self::_isExistTableColumn('#__community_users', 'default_avatar')) {
                $query = "ALTER TABLE " . $db->quoteName('#__community_users') . " ADD " . $db->quoteName('default_avatar') . " BOOLEAN NOT NULL DEFAULT TRUE ;";
            }
            $db->setQuery($query);
            $db->execute();
        }

        public static function update_21(){
            $db = Factory::getDbo();

            //single chat tables
            $query = "CREATE TABLE IF NOT EXISTS ".$db->quoteName('#__community_chat')." (
                      ".$db->quoteName('id')." int(11) NOT NULL AUTO_INCREMENT,
                      ".$db->quoteName('type')." CHAR(50) NOT NULL,
                      ".$db->quoteName('name')." VARCHAR(250) NOT NULL,
                      ".$db->quoteName('last_msg')." INT(11) NOT NULL,
                      PRIMARY KEY (".$db->quoteName('id').")
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
            $db->setQuery($query);
            $db->execute();

            $query = "CREATE TABLE IF NOT EXISTS ".$db->quoteName('#__community_chat_activity')." (
                      ".$db->quoteName('id')." int(11) NOT NULL AUTO_INCREMENT,
                      ".$db->quoteName('chat_id')." int(11) NOT NULL,
                      ".$db->quoteName('user_id')." int(11) NOT NULL,
                      ".$db->quoteName('action')." CHAR(50) NOT NULL,
                      ".$db->quoteName('content')." TEXT NOT NULL DEFAULT '',
                      ".$db->quoteName('params')." TEXT NOT NULL DEFAULT '',
                      ".$db->quoteName('created_at')." DATETIME NOT NULL,
                      PRIMARY KEY (".$db->quoteName('id').")
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
            $db->setQuery($query);
            $db->execute();

            $query = "CREATE TABLE IF NOT EXISTS ".$db->quoteName('#__community_chat_participants')." (
                    ".$db->quoteName('id')." int(11) NOT NULL AUTO_INCREMENT,
                    ".$db->quoteName('chat_id')." int(11) NOT NULL,
                    ".$db->quoteName('user_id')." int(11) NOT NULL,
                    ".$db->quoteName('enabled')." int(11) NOT NULL DEFAULT '1',
                    ".$db->quoteName('mute')." int(1) NOT NULL DEFAULT '0',
                      PRIMARY KEY (".$db->quoteName('id').")
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
            $db->setQuery($query);
            $db->execute();
           
            if (self::_isExistTableColumn('#__community_profiles', 'params')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_profiles') .' ADD '.$db->quoteName('params').' TEXT NULL AFTER '.$db->quoteName('ordering');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_users', 'usergroup')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_users') .' ADD '.$db->quoteName('usergroup').' TINYTEXT NULL AFTER '.$db->quoteName('default_avatar');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_msg', 'migrated')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_msg') .' ADD '.$db->quoteName('migrated').' INT NULL AFTER '.$db->quoteName('body');
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_22(){
            $db = Factory::getDbo();

            try {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_badges') .' DROP INDEX '.$db->quoteName('points');
                $db->setQuery($query);
                $db->execute();   
            } catch (Exception $e) {
                // do nothing
            }
        }

        public static function update_23(){
            $db = Factory::getDbo();

            try {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_badges') .' DROP INDEX '.$db->quoteName('points');
                $db->setQuery($query);
                $db->execute();   
            } catch (Exception $e) {
                // do nothing
            }
            
            // Add index at chat table
            try {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_chat_participants') .' ADD INDEX '. $db->quoteName('idx_chat_id') . ' ( ' . $db->quoteName('chat_id') . ')';
                $db->setQuery($query);
                $db->execute();
            } catch (Exception $e) {
                // do nothing
            }

            try {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_chat_participants') .' ADD INDEX '. $db->quoteName('idx_user_id') . ' ( ' . $db->quoteName('user_id') . ')';
                $db->setQuery($query);
                $db->execute();
            } catch (Exception $e) {
                // do nothing
            }

            try {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_chat_activity') .' ADD INDEX '. $db->quoteName('idx_chat_id') . ' ( ' . $db->quoteName('chat_id') . ')';
                $db->setQuery($query);
                $db->execute();
            } catch (Exception $e) {
                // do nothing
            }

            try {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_chat_activity') .' ADD INDEX '. $db->quoteName('idx_user_id') . ' ( ' . $db->quoteName('user_id') . ')';
                $db->setQuery($query);
                $db->execute();
            } catch (Exception $e) {
                // do nothing
            }
        }

        public static function update_24(){
            $db = Factory::getDbo();
            
            if (self::_isExistTableColumn('#__community_chat', 'params')) {
                $query = "ALTER TABLE ". $db->quoteName('#__community_chat') ." ADD ".$db->quoteName('params')." TEXT NOT NULL DEFAULT '' AFTER ".$db->quoteName('last_msg');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_chat_participants', 'params')) {
                $query = "ALTER TABLE ". $db->quoteName('#__community_chat_participants') ." ADD ".$db->quoteName('params')." TEXT NOT NULL DEFAULT '' AFTER ".$db->quoteName('mute');
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_25(){
            $db = Factory::getDbo();
            
            if (self::_isExistTableColumn('#__community_files', 'actid')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_files') .' ADD '.$db->quoteName('actid').' INT NULL AFTER '.$db->quoteName('messageid');
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_26(){
            $db = Factory::getDbo();
            
            // Set default rules
            $query = "UPDATE #__assets SET rules=".$db->Quote('{"community.profileedit":{"6":1},"community.profileeditstate":{"6":1},"community.groupcreate":{"6":1,"2":1},"community.groupdelete":{"6":1},"community.groupedit":{"6":1},"community.groupeditstate":{"6":1},"community.eventcreate":{"6":1,"2":1},"community.eventdelete":{"6":1},"community.eventedit":{"6":1},"community.eventeditstate":{"6":1},"community.photocreate":{"6":1,"2":1},"community.photodelete":{"6":1},"community.photoedit":{"6":1},"community.photoeditstate":{"6":1},"community.videocreate":{"6":1,"2":1},"community.videodelete":{"6":1},"community.videoedit":{"6":1},"community.videoeditstate":{"6":1},"community.postcommentcreate":{"6":1,"2":1},"community.postcommentdelete":{"6":1},"community.postcommentedit":{"6":1},"core.manage":{"6":1},"core.admin":{"7":1,"6":1},"community.friendrequest":{"6":1,"2":1},"community.filesharingcreate":{"6":1,"2":1},"community.pollcreate":{"6":1,"2":1},"community.polldelete":{"6":1},"community.polledit":{"6":1},"community.polleditstate":{"6":1}}')." WHERE name=".$db->Quote('com_community');
            $db->setQuery($query);
            $db->query();
        }

        public static function update_27(){
            $db = Factory::getDbo();
            
            if (self::_isExistTableColumn('#__community_likes', 'reaction_ids')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_likes') .' ADD '.$db->quoteName('reaction_ids').' TEXT NOT NULL AFTER '.$db->quoteName('dislike');
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_28(){
            $db = Factory::getDbo();
            
            $query = 'UPDATE ' . $db->quoteName('#__community_polls') . ' SET ' . $db->quoteName('groupid') . ' = ' . $db->quote(0) . ' WHERE ' . $db->quoteName('groupid') . ' IS NULL';
            $db->setQuery($query);
            $db->execute();

            $query = 'UPDATE ' . $db->quoteName('#__community_polls') . ' SET ' . $db->quoteName('eventid') . ' = ' . $db->quote(0) . ' WHERE ' . $db->quoteName('eventid') . ' IS NULL';
            $db->setQuery($query);
            $db->execute();
        }

        public static function update_29(){
            $db = Factory::getDbo();
            
            // Set default rules
            $query = "UPDATE #__assets SET rules=".$db->Quote('{"community.profileedit":{"6":1},"community.profileeditstate":{"6":1},"community.groupcreate":{"6":1,"2":1},"community.groupdelete":{"6":1},"community.groupedit":{"6":1},"community.groupeditstate":{"6":1},"community.eventcreate":{"6":1,"2":1},"community.eventdelete":{"6":1},"community.eventedit":{"6":1},"community.eventeditstate":{"6":1},"community.photocreate":{"6":1,"2":1},"community.photodelete":{"6":1},"community.photoedit":{"6":1},"community.photoeditstate":{"6":1},"community.videocreate":{"6":1,"2":1},"community.videodelete":{"6":1},"community.videoedit":{"6":1},"community.videoeditstate":{"6":1},"community.postcommentcreate":{"6":1,"2":1},"community.postcommentdelete":{"6":1},"community.postcommentedit":{"6":1},"core.manage":{"6":1},"core.admin":{"7":1,"6":1},"community.friendrequest":{"6":1,"2":1},"community.filesharingcreate":{"6":1,"2":1},"community.pollcreate":{"6":1,"2":1},"community.polldelete":{"6":1},"community.polledit":{"6":1},"community.polleditstate":{"6":1},"community.pagecreate":{"6":1,"2":1},"community.pagedelete":{"6":1},"community.pageedit":{"6":1},"community.pageeditstate":{"6":1}}')." WHERE name=".$db->Quote('com_community');
            $db->setQuery($query);
            $db->query();
            
            if (self::_isExistTableColumn('#__community_activities', 'page_access')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_activities') .' ADD '.$db->quoteName('page_access').' TINYINT(4) NOT NULL DEFAULT 0 AFTER '.$db->quoteName('eventid');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_activities', 'pageid')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_activities') .' ADD '.$db->quoteName('pageid').' INT(10) NULL AFTER '.$db->quoteName('cid');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_photos_albums', 'pageid')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_photos_albums') .' ADD '.$db->quoteName('pageid').' INT(11) NOT NULL DEFAULT 0 AFTER '.$db->quoteName('type');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_videos', 'pageid')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_videos') .' ADD '.$db->quoteName('pageid').' INT(11) NOT NULL DEFAULT 0 AFTER '.$db->quoteName('path');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_polls', 'pageid')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_polls') .' ADD '.$db->quoteName('pageid').' INT(11) NULL AFTER '.$db->quoteName('type');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_files', 'pageid')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_files') .' ADD '.$db->quoteName('pageid').' INT(11) NULL AFTER '.$db->quoteName('name');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_users', 'pages')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_users') .' ADD '.$db->quoteName('pages').' TEXT NOT NULL AFTER '.$db->quoteName('friends');
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_30(){
            $db = Factory::getDbo();
            
            if (self::_isExistTableColumn('#__community_users', 'pages')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_users') .' ADD '.$db->quoteName('pages').' TEXT NOT NULL AFTER '.$db->quoteName('friends');
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_31()
        {
            $db = Factory::getDBO();

            // Update Gender Field Value
            if (self::_isExistMenu()) {
                $query = 'UPDATE ' . $db->quoteName('#__community_fields') . ' SET ' . $db->quoteName('options') . ' = ' . $db->quote("COM_COMMUNITY_MALE" . "\n" . "COM_COMMUNITY_FEMALE" . "\n" . "COM_COMMUNITY_NOT_SPECIFIED");
                $query .= ' WHERE ' . $db->quoteName('type') . ' = ' . $db->quote('gender');

                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_32(){
            $db = Factory::getDbo();

            $query = 'ALTER TABLE '. $db->quoteName('#__community_connect_users') .' CHANGE '.$db->quoteName('connectid'). ' ' . $db->quoteName('connectid') .' VARCHAR(100) NOT NULL';
            $db->setQuery($query);
            $db->execute();
        }

        public static function update_33(){
            $db = Factory::getDbo();

            if (self::_isExistTableColumn('#__community_groups', 'alias')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_groups') .' ADD '.$db->quoteName('alias').' VARCHAR(100) NULL AFTER '.$db->quoteName('storage');
                $db->setQuery($query);
                $db->execute();
            }

            if (self::_isExistTableColumn('#__community_pages', 'alias')) {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_pages') .' ADD '.$db->quoteName('alias').' VARCHAR(100) NULL AFTER '.$db->quoteName('storage');
                $db->setQuery($query);
                $db->execute();
            }
        }

        public static function update_34() {
            $db = Factory::getDbo();

            try {
                $query = 'ALTER TABLE '. $db->quoteName('#__community_users') .' ADD INDEX '. $db->quoteName('idx_alias') . ' ( ' . $db->quoteName('alias') . ')';
                $db->setQuery($query);
                $db->execute();
            } catch (Exception $e) {
                // do nothing
            }
        }
    }

Anon7 - 2022
AnonSec Team