| 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/administrator/components/com_community/models/ |
Upload File : |
<?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\CMS\Language\Text;
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
// Disallow direct access to this file
defined('_JEXEC') or die('Restricted access');
jimport( 'joomla.application.component.model' );
class CommunityModelManualDbUpgrade extends BaseDatabaseModel
{
/**
* Configuration data
*
* @var object
**/
var $_params;
/**
* Configuration for ini path
*
* @var string
**/
// var $_ini = '';
/**
* Configuration for xml path
*
* @var string
**/
var $_xml = '';
/**
* Constructor
*/
public function __construct()
{
$mainframe = Factory::getApplication();
// Call the parents constructor
parent::__construct();
}
public function upgradeEmojiDB(){
//lets do the emoji upgrade here
$db = Factory::getDbo();
$stats = array();
//lets get started with activities first
$queries = array(
//activities
"ALTER TABLE ".$db->quoteName('#__community_activities')." CHANGE ".$db->quoteName('title')." ".$db->quoteName('title')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
"ALTER TABLE ".$db->quoteName('#__community_activities')." CHANGE ".$db->quoteName('content')." ".$db->quoteName('content')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//message
"ALTER TABLE ".$db->quoteName('#__community_msg')." CHANGE ".$db->quoteName('body')." ".$db->quoteName('body')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
"ALTER TABLE ".$db->quoteName('#__community_msg')." CHANGE ".$db->quoteName('subject')." ".$db->quoteName('subject')." TINYTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//walls
"ALTER TABLE ".$db->quoteName('#__community_wall')." CHANGE ".$db->quoteName('comment')." ".$db->quoteName('comment')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;",
//groups
"ALTER TABLE ".$db->quoteName('#__community_groups')." CHANGE ".$db->quoteName('name')." ".$db->quoteName('name')." VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('description')." ".$db->quoteName('description')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('summary')." ".$db->quoteName('summary')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//events
"ALTER TABLE ".$db->quoteName('#__community_events')." CHANGE ".$db->quoteName('title')." ".$db->quoteName('title')." VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('summary')." ".$db->quoteName('summary')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('description')." ".$db->quoteName('description')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//field values
"ALTER TABLE ".$db->quoteName('#__community_fields_values')." CHANGE ".$db->quoteName('value')." ".$db->quoteName('value')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//videos
"ALTER TABLE ".$db->quoteName('#__community_videos')." CHANGE ".$db->quoteName('title')." ".$db->quoteName('title')." VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('description')." ".$db->quoteName('description')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('location')." ".$db->quoteName('location')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//photos
"ALTER TABLE ".$db->quoteName('#__community_photos')." CHANGE ".$db->quoteName('caption')." ".$db->quoteName('caption')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//albums
"ALTER TABLE ".$db->quoteName('#__community_photos_albums')." CHANGE ".$db->quoteName('name')." ".$db->quoteName('name')." VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('description')." ".$db->quoteName('description')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('location')." ".$db->quoteName('location')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//group announcement
"ALTER TABLE ".$db->quoteName('#__community_groups_bulletins')." CHANGE ".$db->quoteName('title')." ".$db->quoteName('title')." VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('message')." ".$db->quoteName('message')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//group discussion
"ALTER TABLE ".$db->quoteName('#__community_groups_discuss')." CHANGE ".$db->quoteName('title')." ".$db->quoteName('title')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('message')." ".$db->quoteName('message')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//mail queue
"ALTER TABLE ".$db->quoteName('#__community_mailq')." CHANGE ".$db->quoteName('subject')." ".$db->quoteName('subject')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('body')." ".$db->quoteName('body')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//notifications
"ALTER TABLE ".$db->quoteName('#__community_notifications')." CHANGE ".$db->quoteName('content')." ".$db->quoteName('content')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, CHANGE ".$db->quoteName('params')." ".$db->quoteName('params')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//profiles
"ALTER TABLE ".$db->quoteName('#__community_profiles')." CHANGE ".$db->quoteName('description')." ".$db->quoteName('description')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
//poll title
"ALTER TABLE ".$db->quoteName('#__community_polls')." CHANGE ".$db->quoteName('title')." ".$db->quoteName('title')." TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL",
);
foreach($queries as $query){
$db->setQuery($query);
$result = $db->execute();
if(!$result){
return false;
}
}
return true;
}
/**
* @since 4.2, to get all the initial stats of the db upgrade on emoji
*/
public function getEmojiInitialDBStats(){
$db = Factory::getDbo();
$stats = array();
$canUpgrade = false;
//check for database version
$mysqlVersion = CAdvanceSearch::getMySQLVersion(); //lets get the version via advance search static method
$sqlCheck = array(
Text::sprintf('COM_COMMUNITY_EMOJI_DB_COMPARISON', $mysqlVersion, '5.5.3')
);
if(version_compare($mysqlVersion, '5.5.3', 'ge')){
$canUpgrade = true;
$sqlCheck[] = Text::_('COM_COMMUNITY_EMOJI_PASSED');
}else{
$sqlCheck[] = Text::_('COM_COMMUNITY_EMOJI_FAILED');
}
$stats[] = $sqlCheck;
//lets check if activities tables are done
$activityCheck = array(Text::_('COM_COMMUNITY_EMOJI_ACTIVITY_STREAM'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_activities');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'title'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $activityCheck;
//check for comments (walls)
$wallCheck = array(Text::_('COM_COMMUNITY_EMOJI_COMMENTS'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_wall');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'comment'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$wallCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$wallCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $wallCheck;
//check for private messaging
$msgCheck = array(Text::_('COM_COMMUNITY_EMOJI_MESSAGE'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_msg');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'subject'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$msgCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$msgCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $msgCheck;
//check for groups
$groupCheck = array(Text::_('COM_COMMUNITY_EMOJI_GROUPS'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_groups');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'summary'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$groupCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$groupCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $groupCheck;
//check for events
$eventCheck = array(Text::_('COM_COMMUNITY_EMOJI_EVENTS'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_events');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'summary'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$eventCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$eventCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $eventCheck;
//check for videos
$videoCheck = array(Text::_('COM_COMMUNITY_EMOJI_VIDEOS'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_videos');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'description'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$videoCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$videoCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $videoCheck;
//check for photos
$photoCheck = array(Text::_('COM_COMMUNITY_EMOJI_PHOTOS'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_photos');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'caption'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$photoCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$photoCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $photoCheck;
//check for fields
$fieldCheck = array(Text::_('COM_COMMUNITY_EMOJI_CUSTOM_FIELDS'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_fields_values');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'value'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$fieldCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$fieldCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $fieldCheck;
//check for mailq
$fieldCheck = array(Text::_('COM_COMMUNITY_EMOJI_EMAIL'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_mailq');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'subject'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$fieldCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$fieldCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $fieldCheck;
//check for poll title
$fieldCheck = array(Text::_('COM_COMMUNITY_EMOJI_EMAIL'));
$query = "SHOW FULL COLUMNS FROM ".$db->quoteName('#__community_polls');
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $result){
if($result->Field == 'title'){
//one result from this table will do because both should be updated at once
if($result->Collation == 'utf8mb4_general_ci'){
$fieldCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_UPGRADED');
}elseif(!$canUpgrade){
$activityCheck[] = Text::_('COM_COMMUNITY_EMOJI_CANNOT_UPGRADE');
}else{
$fieldCheck[] = Text::_('COM_COMMUNITY_EMOJI_UPDATE_READY');
}
}
}
$stats[] = $fieldCheck;
return $stats;
}
}