| 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/administrator/components/com_rsfeedback/ |
Upload File : |
<?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\Installer\Installer;
use Joomla\CMS\Language\Text;
use Joomla\Registry\Registry;
use Joomla\Filesystem\File;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Factory;
class com_rsfeedbackInstallerScript
{
protected $defaultConfigJson = '{"global_register_code":"","global_dateformat":"d.m.Y H:i","load_bootstrap":"1","load_fontawesome":"1","enable_html":"0","enable_html_buttons":"0","enable_rss":"1","advanced_sef":"1","store_ip":"1","allow_self_anonymisation":"1","anonymise_joomla_data":"1","feedback_titlemaxlength":"120","user_maxvotes":"12","user_reset_period":"0","display_reset_my_votes":"0","reset_my_votes_condition":"all","permission_show_facebook":"1","permission_show_twitter":"1","permission_show_blogger":"1","permission_show_reddit":"1","permission_show_linkedin":"1","permission_show_pinterest":"1","feedback_commenting":"1","permission_show_subscriptions":"1","permission_show_gravatar":"1","captcha":"0","captcha_chars":5,"captcha_cases":"0","rec_public":"","rec_private":"","rec_themes":"red","recv2_theme":"light","recv2_type":"image","feedback_moderation_emails":"","category_moderation_emails":"","user_display":"0"}';
public function preflight($type, $parent)
{
try
{
$minJoomla = '3.9.0';
if (!class_exists('\\Joomla\\CMS\\Version'))
{
throw new Exception(sprintf('Please upgrade to at least Joomla! %s before continuing!', $minJoomla));
}
$jversion = new \Joomla\CMS\Version;
if (!$jversion->isCompatible($minJoomla))
{
throw new Exception(sprintf('Please upgrade to at least Joomla! %s before continuing!', $minJoomla));
}
}
catch (Exception $e)
{
if (class_exists('\Joomla\CMS\Factory'))
{
$app = \Joomla\CMS\Factory::getApplication();
}
elseif (class_exists('JFactory'))
{
$app = JFactory::getApplication();
}
if (!empty($app))
{
$app->enqueueMessage($e->getMessage(), 'error');
}
return false;
}
return true;
}
public function postflight($type, $parent) {
$db = Factory::getDbo();
$query = $db->getQuery(true);
$source = $parent->getParent()->getPath('source');
$lang = Factory::getLanguage();
$lang->load('com_rsfeedback');
$plugins = array(
'plg_system' => array(
'name' => 'System - RSFeedback!',
'core' => true,
'group' => 'system',
'element' => 'rsfeedback',
'result' => false
),
'plg_installer' => array(
'name' => 'Installer - RSFeedback!',
'core' => true,
'group' => 'installer',
'element' => 'rsfeedback',
'result' => false
),
'plg_privacy' => array(
'name' => 'Privacy - RSFeedback!',
'core' => true,
'group' => 'privacy',
'element' => 'rsfeedback',
'result' => false
)
);
foreach ($plugins as $plugin => $data)
{
$installer = new Installer();
if ($installer->install($source.'/other/' . $plugin))
{
if ($data['core'])
{
$query->clear();
$query->update($db->qn('#__extensions'))
->set($db->qn('enabled').'='.$db->q(1))
->where($db->qn('element').'='.$db->q($data['element']))
->where($db->qn('type').'='.$db->q('plugin'))
->where($db->qn('folder').'='.$db->q($data['group']));
$db->setQuery($query);
$db->execute();
}
$plugins[$plugin]['result'] = true;
}
}
if ($type == 'install') {
$default = $this->defaultConfigJson;
$this->UpdateParamsColumn($default);
}
if ($type == 'install' || $type == 'update') {
// show message
$this->showInstallMessage($plugins);
}
}
public function update($parent) {
$db = Factory::getDbo();
$query = $db->getQuery(true);
$installer = new Installer();
$source = $parent->getParent()->getPath('source');
$tables = $db->getTableList();
/*
// Rev. 5
// delete old configuration table and move parameters to #__extensions->params
// renaming column names
// changing the translastion values of statuses and flags (from RSFE_ to COM_RSFEEDBACK_)
// #__rsfeedback_groups_acl and #__rsfeedback_group_permissions integrated in #__rsfeedback_groups
// the Feedback Button is transformed from system plugin to module
*/
if (in_array($db->getPrefix().'rsfeedback_config', $tables)) {
$default_configuration = $this->defaultConfigJson;
// render the default configuration to an array so it can be merged
$registry = new Registry;
$registry->loadString($default_configuration);
$default_configuration = $registry->toArray();
// get current configuration
$query->select('*')->from($db->qn('#__rsfeedback_config'));
$db->setQuery($query);
$current_configuration = $db->loadObjectList();
$query->clear();
// renaming the paramaters names
$rsfeedback_params = array();
foreach ($current_configuration as $param) {
if ($param->ConfigName == 'feedback.moderation') $rsfeedback_params['feedback_moderation_emails'] = $param->ConfigValue;
elseif ($param->ConfigName == 'category.moderation') $rsfeedback_params['category_moderation_emails'] = $param->ConfigValue;
elseif ($param->ConfigName == 'permission.showtwitter') $rsfeedback_params['permission_show_twitter'] = $param->ConfigValue;
elseif ($param->ConfigName == 'permission.showfacebook') $rsfeedback_params['permission_show_facebook'] = $param->ConfigValue;
elseif ($param->ConfigName == 'permission.showsubscriptions') $rsfeedback_params['permission_show_subscriptions'] = $param->ConfigValue;
elseif ($param->ConfigName == 'category.nrvotes' || $param->ConfigName == 'feedback.layout' || $param->ConfigName == 'permission.feedbackcaptcha' || $param->ConfigName == 'permission.anonymousfeedbacks' || $param->ConfigName == 'permission.anonymousvoting' || $param->ConfigName == 'captcha_group' || $param->ConfigName == 'enable.popup' || $param->ConfigName == 'popup.limit' || $param->ConfigName == 'popup.modal' || $param->ConfigName == 'popup.position' || $param->ConfigName == 'popup.color' || $param->ConfigName == 'popup.text' || $param->ConfigName == 'popup.color.hover')
continue;
else
$rsfeedback_params[str_replace('.','_',$param->ConfigName)] = $param->ConfigValue;
}
// merge the default settings with the current settings
$params = array_merge($default_configuration, $rsfeedback_params);
// transform array to string
$registry->loadArray($default_configuration);
$rsfeedback_config = $registry->toString();
// update extensions-> params
$this->UpdateParamsColumn($rsfeedback_config);
// Remove the config table
$db->setQuery("DROP TABLE IF EXISTS `#__rsfeedback_config`");
$db->execute();
}
// update column names
// rsfeedback_auto_moderation table
$moderation_columns = $db->getTableColumns('#__rsfeedback_auto_moderation');
if (isset($moderation_columns['IdRule'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_auto_moderation').' CHANGE '.$db->qn('IdRule').' '.$db->qn('id').' INT( 11 ) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($moderation_columns['RuleName'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_auto_moderation').' CHANGE '.$db->qn('RuleName').' '.$db->qn('name').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($moderation_columns['RuleLabel'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_auto_moderation').' CHANGE '.$db->qn('RuleLabel').' '.$db->qn('label').' TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($moderation_columns['IdFlag'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_auto_moderation').' CHANGE '.$db->qn('IdFlag').' '.$db->qn('flag_id').' INT( 11 ) NOT NULL');
$db->execute();
}
if (isset($moderation_columns['Limit'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_auto_moderation').' CHANGE '.$db->qn('Limit').' '.$db->qn('limit').' INT( 11 ) NOT NULL');
$db->execute();
}
if (isset($moderation_columns['Action'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_auto_moderation').' CHANGE '.$db->qn('Action').' '.$db->qn('action').' INT( 4 ) NOT NULL');
$db->execute();
}
if (isset($moderation_columns['Target'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_auto_moderation').' CHANGE '.$db->qn('Target').' '.$db->qn('target').' INT( 4 ) NOT NULL');
$db->execute();
}
// rsfeedback_categories table
$categories_columns = $db->getTableColumns('#__rsfeedback_categories');
if (isset($categories_columns['IdCategory'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_categories').' CHANGE '.$db->qn('IdCategory').' '.$db->qn('id').' INT( 11 ) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($categories_columns['CategoryTitle'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_categories').' CHANGE '.$db->qn('CategoryTitle').' '.$db->qn('name').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($categories_columns['CategoryDescription'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_categories').' CHANGE '.$db->qn('CategoryDescription').' '.$db->qn('description').' TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($categories_columns['MaxAllowedVotes'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_categories').' CHANGE '.$db->qn('MaxAllowedVotes').' '.$db->qn('max_votes_allowed').' INT( 11 ) NOT NULL');
$db->execute();
}
if (isset($categories_columns['AnonymousVoting'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_categories').' CHANGE '.$db->qn('AnonymousVoting').' '.$db->qn('anonymous_voting').' TINYINT( 1 ) NOT NULL');
$db->execute();
}
if (isset($categories_columns['AnonymousFeedbacks'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_categories').' CHANGE '.$db->qn('AnonymousFeedbacks').' '.$db->qn('anonymous_feedbacks').' tinyint( 1 ) NOT NULL');
$db->execute();
}
if (isset($categories_columns['VotingCaptcha'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_categories').' DROP `VotingCaptcha`');
$db->execute();
}
if (isset($categories_columns['FeedbackCaptcha'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_categories').' DROP `FeedbackCaptcha`');
$db->execute();
}
// rsfeedback_comments table
$comments_columns = $db->getTableColumns('#__rsfeedback_comments');
if (isset($comments_columns['IdComment'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_comments').' CHANGE '.$db->qn('IdComment').' '.$db->qn('id').' INT( 11 ) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($comments_columns['IdFeedback'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_comments').' CHANGE '.$db->qn('IdFeedback').' '.$db->qn('feedback_id').' INT( 11 ) NOT NULL');
$db->execute();
}
if (isset($comments_columns['CommentName'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_comments').' CHANGE '.$db->qn('CommentName').' '.$db->qn('name').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($comments_columns['CommentEmail'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_comments').' CHANGE '.$db->qn('CommentEmail').' '.$db->qn('email').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($comments_columns['CommentText'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_comments').' CHANGE '.$db->qn('CommentText').' '.$db->qn('text').' TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($comments_columns['CommentDate'])) {
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_comments')." CHANGE ".$db->qn('CommentDate')." ".$db->qn('date')." VARCHAR(255) NOT NULL");
$db->execute();
// convert the date
$query = $db->getQuery(true);
$query->update('#__rsfeedback_comments')
->set($db->qn('date')."=FROM_UNIXTIME(".$db->qn('date').")");
$db->setQuery($query);
$db->execute();
$db->setQuery("UPDATE #__rsfeedback_comments SET `date` = '0000-00-00 00:00:00' WHERE `date` = '1970-01-01 02:00:00'");
$db->execute();
// change the column type
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_comments')." CHANGE ".$db->qn('date')." ".$db->qn('date')." DATETIME NOT NULL");
$db->execute();
}
// rsfeedback_feedbacks table
$feedback_columns = $db->getTableColumns('#__rsfeedback_feedbacks');
if(!isset($feedback_columns['hits'])) {
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_feedbacks')." ADD ".$db->qn('hits')." INT(11) NOT NULL DEFAULT '0'");
$db->execute();
}
if(!isset($feedback_columns['name'])) {
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_feedbacks')." ADD ".$db->qn('name')." VARCHAR(255) NOT NULL DEFAULT ''");
$db->execute();
}
if (isset($feedback_columns['IdFeedback'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_feedbacks').' CHANGE '.$db->qn('IdFeedback').' '.$db->qn('id').' INT( 11 ) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($feedback_columns['IdCategory'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_feedbacks').' CHANGE '.$db->qn('IdCategory').' '.$db->qn('cat_id').' INT( 11 ) NOT NULL');
$db->execute();
}
if (isset($feedback_columns['IdStatus'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_feedbacks').' CHANGE '.$db->qn('IdStatus').' '.$db->qn('status_id').' INT( 11 ) NOT NULL');
$db->execute();
}
if (isset($feedback_columns['IdUser'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_feedbacks').' CHANGE '.$db->qn('IdUser').' '.$db->qn('user_id').' INT( 11 ) NOT NULL');
$db->execute();
}
if (isset($feedback_columns['FeedbackTitle'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_feedbacks').' CHANGE '.$db->qn('FeedbackTitle').' '.$db->qn('title').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($feedback_columns['FeedbackText'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_feedbacks').' CHANGE '.$db->qn('FeedbackText').' '.$db->qn('text').' TEXT NOT NULL');
$db->execute();
}
if (isset($feedback_columns['FeedbackDate'])) {
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_feedbacks')." CHANGE ".$db->qn('FeedbackDate')." ".$db->qn('created')." VARCHAR(255) NOT NULL");
$db->execute();
// convert the date
$query = $db->getQuery(true);
$query->update('#__rsfeedback_feedbacks')
->set($db->qn('created')."=FROM_UNIXTIME(".$db->qn('created').")");
$db->setQuery($query);
$db->execute();
$db->setQuery("UPDATE #__rsfeedback_feedbacks SET `created` = '0000-00-00 00:00:00' WHERE `created` = '1970-01-01 02:00:00'");
$db->execute();
// change the column type
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_feedbacks')." CHANGE ".$db->qn('created')." ".$db->qn('created')." DATETIME NOT NULL");
$db->execute();
}
if (isset($feedback_columns['FeedbackArchive'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_feedbacks').' DROP `FeedbackArchive`');
$db->execute();
}
// rsfeedback_flags table
$flags_columns = $db->getTableColumns('#__rsfeedback_flags');
if (isset($flags_columns['IdFlag'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_flags').' CHANGE '.$db->qn('IdFlag').' '.$db->qn('id').' INT( 11 ) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($flags_columns['FlagName'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_flags').' CHANGE '.$db->qn('FlagName').' '.$db->qn('name').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($flags_columns['Default'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_flags').' CHANGE '.$db->qn('Default').' '.$db->qn('default').' TINYINT(4) NOT NULL');
$db->execute();
}
// rsfeedback_statuses table
$statuses_columns = $db->getTableColumns('#__rsfeedback_statuses');
if (isset($statuses_columns['IdStatus'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_statuses').' CHANGE '.$db->qn('IdStatus').' '.$db->qn('id').' INT( 11 ) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($statuses_columns['StatusName'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_statuses').' CHANGE '.$db->qn('StatusName').' '.$db->qn('name').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
if (isset($statuses_columns['Default'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_statuses').' CHANGE '.$db->qn('Default').' '.$db->qn('default').' TINYINT(4) NOT NULL');
$db->execute();
}
if (!isset($statuses_columns['permissions'])) {
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_statuses')." ADD ".$db->qn('permissions')." TEXT NOT NULL AFTER ".$db->qn('name'));
$db->execute();
// update status permissions
$query->clear();
$query->select('*')->from($db->qn('#__rsfeedback_statuses'))->order($db->qn('id').' ASC');
$db->setQuery($query);
$statuses = $db->loadObjectList();
foreach ($statuses as $status) {
if ( in_array($status->id, array(3,4)) )
$allow_voting = 0;
else
$allow_voting = 1;
$query->clear()->update($db->qn('#__rsfeedback_statuses'))->set($db->qn('permissions').'='.$db->q('{"allow_voting":"'.$allow_voting.'","allow_commenting":"1", "automatically_remove_votes":"0"}'))->where($db->qn('id').'='.$db->q($status->id));
$db->setQuery($query);
$db->execute();
}
}
if (!isset($statuses_columns['icon'])) {
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_statuses')." ADD ".$db->qn('icon')." VARCHAR(32) NOT NULL AFTER ".$db->qn('name'));
$db->execute();
$query->clear();
$query->select('*')->from($db->qn('#__rsfeedback_statuses'))->order($db->qn('id').' ASC');
$db->setQuery($query);
$statuses = $db->loadObjectList();
$status_icons = ['None' => 'clock-o', 'Accepted' => 'thumbs-o-up', 'Declined' => 'thumbs-o-down', 'Completed' => 'check'];
foreach ($statuses as $status) {
$query->clear()->update($db->qn('#__rsfeedback_statuses'))->set($db->qn('icon').'='.$db->q($status_icons[$status->name]))->where($db->qn('id').'='.$db->q($status->id));
$db->setQuery($query);
$db->execute();
}
}
// rsfeedback_subscriptions table
$subscriptions_columns = $db->getTableColumns('#__rsfeedback_subscriptions');
if (isset($subscriptions_columns['IdSubscription'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_subscriptions').' CHANGE '.$db->qn('IdSubscription').' '.$db->qn('id').' INT(11) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($subscriptions_columns['IdFeedback'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_subscriptions').' CHANGE '.$db->qn('IdFeedback').' '.$db->qn('feedback_id').' INT(11) NOT NULL');
$db->execute();
}
// rsfeedback_user_flags table
$user_flags_columns = $db->getTableColumns('#__rsfeedback_user_flags');
if (isset($user_flags_columns['IdUserFlag'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_flags').' CHANGE '.$db->qn('IdUserFlag').' '.$db->qn('id').' INT(11) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($user_flags_columns['IdFeedback'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_flags').' CHANGE '.$db->qn('IdFeedback').' '.$db->qn('feedback_id').' INT(11) NOT NULL');
$db->execute();
}
if (isset($user_flags_columns['IdUser'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_flags').' CHANGE '.$db->qn('IdUser').' '.$db->qn('user_id').' INT(11) NOT NULL');
$db->execute();
}
if (isset($user_flags_columns['IdFlag'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_flags').' CHANGE '.$db->qn('IdFlag').' '.$db->qn('flag_id').' INT(11) NOT NULL');
$db->execute();
}
if (isset($user_flags_columns['Comment'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_flags').' CHANGE '.$db->qn('Comment').' '.$db->qn('comment').' TEXT NOT NULL');
$db->execute();
}
// rsfeedback_user_votes table
$user_votes_columns = $db->getTableColumns('#__rsfeedback_user_votes');
if (isset($user_votes_columns['IdVote'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_votes').' CHANGE '.$db->qn('IdVote').' '.$db->qn('id').' INT(11) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($user_votes_columns['IdFeedback'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_votes').' CHANGE '.$db->qn('IdFeedback').' '.$db->qn('feedback_id').' INT(11) NOT NULL');
$db->execute();
}
if (isset($user_votes_columns['IdUser'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_votes').' CHANGE '.$db->qn('IdUser').' '.$db->qn('user_id').' INT(11) NOT NULL');
$db->execute();
}
if (isset($user_votes_columns['NumberPoints'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_votes').' CHANGE '.$db->qn('NumberPoints').' '.$db->qn('number_points').' INT(11) NOT NULL');
$db->execute();
}
if (isset($user_votes_columns['VoteDate'])) {
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_user_votes')." CHANGE ".$db->qn('VoteDate')." ".$db->qn('date_voted')." VARCHAR(255) NOT NULL");
$db->execute();
// convert the date
$query = $db->getQuery(true);
$query->update('#__rsfeedback_user_votes')
->set($db->qn('date_voted')."=FROM_UNIXTIME(".$db->qn('date_voted').")");
$db->setQuery($query);
$db->execute();
$db->setQuery("UPDATE #__rsfeedback_user_votes SET `date_voted` = '0000-00-00 00:00:00' WHERE `date_voted` = '1970-01-01 02:00:00'");
$db->execute();
// change the column type
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_user_votes')." CHANGE ".$db->qn('date_voted')." ".$db->qn('date_voted')." DATETIME NOT NULL");
$db->execute();
}
if (isset($user_votes_columns['IpAddress'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_user_votes').' CHANGE '.$db->qn('IpAddress').' '.$db->qn('ip').' VARCHAR(50) NOT NULL ');
$db->execute();
}
if (!isset($user_votes_columns['hash'])) {
$db->setQuery("ALTER TABLE ".$db->qn('#__rsfeedback_user_votes')." ADD ".$db->qn('hash')." VARCHAR(32) NOT NULL DEFAULT '' ");
$db->execute();
$db->setQuery("UPDATE ".$db->qn('#__rsfeedback_user_votes')." SET ".$db->qn('hash')." = MD5(".$db->qn('ip').")");
$db->execute();
}
// rsfeedback_groups table
$groups_columns = $db->getTableColumns('#__rsfeedback_groups');
if (isset($groups_columns['IdGroup'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' CHANGE '.$db->qn('IdGroup').' '.$db->qn('id').' INT( 11 ) NOT NULL AUTO_INCREMENT');
$db->execute();
}
if (isset($groups_columns['GroupName'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' CHANGE '.$db->qn('GroupName').' '.$db->qn('name').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL');
$db->execute();
}
// changing column names
if (!isset($groups_columns['group_acl'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').'
ADD '.$db->qn('group_acl').' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER '.$db->qn('name').',
ADD '.$db->qn('feedback_add').' TINYINT(4) NOT NULL AFTER '.$db->qn('group_acl').',
ADD '.$db->qn('feedback_moderation').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_add').',
ADD '.$db->qn('feedback_edit').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_moderation').',
ADD '.$db->qn('feedback_move').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_edit').',
ADD '.$db->qn('feedback_delete').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_move').',
ADD '.$db->qn('feedback_moderate_flags').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_delete').',
ADD '.$db->qn('feedback_update_status').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_moderate_flags').',
ADD '.$db->qn('feedback_comment').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_update_status').',
ADD '.$db->qn('feedback_share').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_comment').',
ADD '.$db->qn('feedback_post_flags').' TINYINT(4) NOT NULL AFTER '.$db->qn('category_delete').',
ADD '.$db->qn('category_moderation').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_share').',
ADD '.$db->qn('category_add').' TINYINT(4) NOT NULL AFTER '.$db->qn('category_moderation').',
ADD '.$db->qn('category_edit').' TINYINT(4) NOT NULL AFTER '.$db->qn('category_add').',
ADD '.$db->qn('category_delete').' TINYINT(4) NOT NULL AFTER '.$db->qn('category_edit').',
ADD '.$db->qn('captcha_feedback').' TINYINT(4) NOT NULL AFTER '.$db->qn('feedback_post_flags').',
ADD '.$db->qn('captcha_category').' TINYINT(4) NOT NULL AFTER '.$db->qn('captcha_feedback').',
ADD '.$db->qn('captcha_flag').' TINYINT(4) NOT NULL AFTER '.$db->qn('captcha_category').',
ADD '.$db->qn('captcha_comment').' TINYINT(4) NOT NULL AFTER '.$db->qn('captcha_flag'));
$db->execute();
// select all groups
$query->clear();
$query->select('*')->from($db->qn('#__rsfeedback_groups'))->order($db->qn('id').' ASC');
$db->setQuery($query);
$groups = $db->loadObjectList();
foreach ($groups as $group) {
// get the group_acl array
$query->clear();
$query->select($db->qn('GroupAcl'))->from($db->qn('#__rsfeedback_groups_acl'))->where($db->qn('IdGroup').' = '.$db->q($group->id));
$db->setQuery($query);
$group_acl = $db->loadColumn();
// group_acl transform from array to param object
$registry = new Registry;
$registry->loadArray($group_acl);
$group_acl = $registry->toString();
// get permissions
$query->clear();
$query->select('*')->from($db->qn('#__rsfeedback_group_permissions'))->where($db->qn('IdGroup').' = '.$db->q($group->id));
$db->setQuery($query);
$group_permissions = $db->loadObjectList();
// update permissions columns where id = $group->id
$query->clear();
$query->update($db->qn('#__rsfeedback_groups'));
if(!empty($group_permissions)) {
foreach ($group_permissions as $permission) {
if ($permission->PermissionName == 'enableFeedbacks') $query->set($db->qn('feedback_add').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'feedbackModeration') $query->set($db->qn('feedback_moderation').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'deleteFeedback') $query->set($db->qn('feedback_delete').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'updateStatus') $query->set($db->qn('feedback_update_status').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'moveFeedback') $query->set($db->qn('feedback_move').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'editFeedback') $query->set($db->qn('feedback_edit').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'moderateFlags') $query->set($db->qn('feedback_moderate_flags').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'captchaGroup') $query->set($db->qn('captcha_feedback').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'createCategory') $query->set($db->qn('category_add').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'categoryModeration') $query->set($db->qn('category_moderation').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'deleteCategory') $query->set($db->qn('category_delete').' = '.$db->q($permission->PermissionValue));
elseif ($permission->PermissionName == 'editCategory') $query->set($db->qn('category_edit').' = '.$db->q($permission->PermissionValue));
}
}
// update group_acl
$query->set($db->qn('group_acl').' = '.$db->q($group_acl));
$query->where($db->qn('id').' = '.$db->q($group->id));
$db->setQuery($query);
$db->execute();
}
// Remove the groups_acl table
$db->setQuery("DROP TABLE IF EXISTS `#__rsfeedback_groups_acl`");
$db->execute();
// Remove the group_permissions table
$db->setQuery("DROP TABLE IF EXISTS `#__rsfeedback_group_permissions`");
$db->execute();
}
// change translation RSFE_ to COM_RSFEEDBACK for statuses, flags
$query->clear();
$query->select('*')->from($db->qn('#__rsfeedback_statuses'));
$db->setQuery($query);
$statuses = $db->loadObjectList();
foreach ($statuses as $status)
if (substr($status->name,0,5) == 'RSFE_') {
$status_name = ucfirst(strtolower(str_replace('RSFE_STATUS_','', $status->name)));
$query->clear();
$query->update($db->qn('#__rsfeedback_statuses'))->set($db->qn('name').' = '.$db->q($status_name))->where($db->qn('id').' = '.$db->q($status->id));
$db->setQuery($query);
$db->execute();
}
$query->clear();
$query->select('*')->from($db->qn('#__rsfeedback_flags'));
$db->setQuery($query);
$flags = $db->loadObjectList();
foreach ($flags as $flag)
if (substr($flag->name,0,5) == 'RSFE_') {
$flag_name = ($flag->name != 'RSFE_FLAG_INNAPROPRIATE' ? ucfirst(strtolower(str_replace('RSFE_FLAG_','', $flag->name))) : 'Inappropriate');
$query->clear();
$query->update($db->qn('#__rsfeedback_flags'))->set($db->qn('name').' = '.$db->q($flag_name))->where($db->qn('id').' = '.$db->q($flag->id));
$db->setQuery($query);
$db->execute();
}
// delete files old files in administrator
if (file_exists(JPATH_ROOT.'/administrator/components/com_rsfeedback/install.rsfeedback.php'))
File::delete(JPATH_ROOT.'/administrator/components/com_rsfeedback/install.rsfeedback.php');
if (file_exists(JPATH_ROOT.'/administrator/components/com_rsfeedback/install.rsfeedback.php'))
File::delete(JPATH_ROOT.'/administrator/components/com_rsfeedback/install.rsfeedback.php');
if (file_exists(JPATH_ROOT.'/administrator/components/com_rsfeedback/install.xml'))
File::delete(JPATH_ROOT.'/administrator/components/com_rsfeedback/install.xml');
if (file_exists(JPATH_ROOT.'/administrator/components/com_rsfeedback/install.rsfeedback.php'))
File::delete(JPATH_ROOT.'/administrator/components/com_rsfeedback/install.rsfeedback.php');
if (file_exists(JPATH_ROOT.'/administrator/components/com_rsfeedback/script.rsfeedback.php'))
File::delete(JPATH_ROOT.'/administrator/components/com_rsfeedback/script.rsfeedback.php');
if (file_exists(JPATH_ROOT.'/administrator/components/com_rsfeedback/uninstall.rsfeedback.php'))
File::delete(JPATH_ROOT.'/administrator/components/com_rsfeedback/uninstall.rsfeedback.php');
if (file_exists(JPATH_ROOT.'/administrator/language/en-GB/en-GB.com_rsfeedback.menu.ini'))
File::delete(JPATH_ROOT.'/administrator/language/en-GB/en-GB.com_rsfeedback.menu.ini');
// delete files old files in front-end
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/addedit.php')) {
// advise to update menu items links
Factory::getApplication()->enqueueMessage(Text::sprintf('COM_RSFEEDBACK_UPDATE_MENU_ITEMS', 'http://www.rsjoomla.com/'));
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/addedit.php');
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/addedit.xml');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/addeditcateg.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/addeditcateg.php');
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/addeditcateg.xml');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/allfeedbacks.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/allfeedbacks.php');
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/allfeedbacks.xml');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/editflags.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/editflags.php');
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/editflags.xml');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/feedback.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/feedback.php');
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/feedback.xml');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/singlecategory.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/singlecategory.php');
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/singlecategory.xml');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/subscriptionform.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/subscriptionform.php');
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/subscriptionform.xml');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/top.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/top.php');
File::delete(JPATH_ROOT.'/components/com_rsfeedback/views/feedbacks/tmpl/top.xml');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/helpers/feedbacks/common.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/helpers/feedbacks/common.php');
}
if (file_exists(JPATH_ROOT.'/components/com_rsfeedback/models/rules/rsfeedbackcaptcha.php')) {
File::delete(JPATH_ROOT.'/components/com_rsfeedback/models/rules/rsfeedbackcaptcha.php');
}
// installing the system plugin
if ($installer->install($source.'/other/plg_system')) {
$query->clear();
$query->update($db->qn('#__extensions'))
->set($db->qn('enabled').' = '.$db->q(1))
->where($db->qn('element').' = '.$db->q('rsfeedback'))
->where($db->qn('type').' = '.$db->q('plugin'))
->where($db->qn('folder').' = '.$db->q('system'));
$db->setQuery($query);
$db->execute();
}
$groups_columns = $db->getTableColumns('#__rsfeedback_groups');
if (isset($groups_columns['captcha_enabled'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' CHANGE '.$db->qn('captcha_enabled').' '.$db->qn('captcha_feedback').' TINYINT( 1 ) NOT NULL');
$db->execute();
}
if (!isset($groups_columns['feedback_post_flags'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' ADD '.$db->qn('feedback_post_flags').' TINYINT(1) NOT NULL');
$db->execute();
$query->clear();
$query->update($db->qn('#__rsfeedback_groups'))->set($db->qn('feedback_post_flags').' = '.$db->q(1));
$db->setQuery($query);
$db->execute();
}
if (!isset($groups_columns['feedback_comment'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' ADD '.$db->qn('feedback_comment').' TINYINT(1) NOT NULL');
$db->execute();
}
if (!isset($groups_columns['feedback_share'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' ADD '.$db->qn('feedback_share').' TINYINT(1) NOT NULL');
$db->execute();
$query->clear();
$query->update($db->qn('#__rsfeedback_groups'))->set($db->qn('feedback_share').' = '.$db->q(1));
$db->setQuery($query);
$db->execute();
}
if (!isset($groups_columns['captcha_category'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' ADD '.$db->qn('captcha_category').' TINYINT(1) NOT NULL');
$db->execute();
}
if (!isset($groups_columns['captcha_flag'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' ADD '.$db->qn('captcha_flag').' TINYINT(1) NOT NULL');
$db->execute();
}
if (!isset($groups_columns['captcha_comment'])) {
$db->setQuery('ALTER TABLE '.$db->qn('#__rsfeedback_groups').' ADD '.$db->qn('captcha_comment').' TINYINT(1) NOT NULL');
$db->execute();
}
// Update the configuration
$query->clear();
$query->select('`params`')->from('`#__extensions`')->where($db->qn('element').' = '.$db->q('com_rsfeedback'))->where($db->qn('type').' = '.$db->q('component'));
$db->setQuery($query);
$componentParams = $db->loadResult();
$registry = new Registry;
$registry->loadString($componentParams);
$new_params = (array) json_decode($this->defaultConfigJson);
foreach ($new_params as $name => $value)
if (is_null($registry->get($name, null)))
$registry->set($name,$value);
$query->clear();
$query->update($db->qn('#__extensions'))->set($db->qn('params').' = '.$db->q($registry->toString()))->where('`element` = '.$db->q('com_rsfeedback'))->where('`type` = '.$db->q('component'));
$db->setQuery($query);
$db->execute();
// INDEX
$db->setQuery("SHOW INDEX FROM #__rsfeedback_feedbacks WHERE Key_name = 'cat_id'");
if (!$db->loadObject()) {
$db->setQuery("ALTER TABLE `#__rsfeedback_feedbacks` ADD INDEX (`cat_id`)");
$db->execute();
}
$db->setQuery("SHOW INDEX FROM #__rsfeedback_feedbacks WHERE Key_name = 'status_id'");
if (!$db->loadObject()) {
$db->setQuery("ALTER TABLE `#__rsfeedback_feedbacks` ADD INDEX (`status_id`)");
$db->execute();
}
$db->setQuery("SHOW INDEX FROM #__rsfeedback_feedbacks WHERE Key_name = 'user_id'");
if (!$db->loadObject()) {
$db->setQuery("ALTER TABLE `#__rsfeedback_feedbacks` ADD INDEX (`user_id`)");
$db->execute();
}
$db->setQuery("SHOW INDEX FROM #__rsfeedback_user_flags WHERE Key_name = 'feedback_id'");
if (!$db->loadObject()) {
$db->setQuery("ALTER TABLE `#__rsfeedback_user_flags` ADD INDEX (`feedback_id`)");
$db->execute();
}
$db->setQuery("SHOW INDEX FROM #__rsfeedback_user_flags WHERE Key_name = 'user_id'");
if (!$db->loadObject()) {
$db->setQuery("ALTER TABLE `#__rsfeedback_user_flags` ADD INDEX (`user_id`)");
$db->execute();
}
$db->setQuery("SHOW INDEX FROM #__rsfeedback_user_flags WHERE Key_name = 'flag_id'");
if (!$db->loadObject()) {
$db->setQuery("ALTER TABLE `#__rsfeedback_user_flags` ADD INDEX (`flag_id`)");
$db->execute();
}
$db->setQuery("SHOW INDEX FROM #__rsfeedback_user_votes WHERE Key_name = 'feedback_id'");
if (!$db->loadObject()) {
$db->setQuery("ALTER TABLE `#__rsfeedback_user_votes` ADD INDEX (`feedback_id`)");
$db->execute();
}
$db->setQuery("SHOW INDEX FROM #__rsfeedback_user_votes WHERE Key_name = 'user_id'");
if (!$db->loadObject()) {
$db->setQuery("ALTER TABLE `#__rsfeedback_user_votes` ADD INDEX (`user_id`)");
$db->execute();
}
}
public function uninstall($parent) {
$db = Factory::getDbo();
$query = $db->getQuery(true);
$plg_installer = new Installer();
// Uninstall System Plugin
$query->select($db->qn('extension_id'))
->from($db->qn('#__extensions'))
->where($db->qn('element').'='.$db->q('rsfeedback'))
->where($db->qn('folder').'='.$db->q('system'))
->where($db->qn('type').'='.$db->q('plugin'));
$db->setQuery($query);
if ($extension_id = $db->loadResult()) {
$plg_installer->uninstall('plugin', $extension_id);
}
// Uninstall Installer Plugin
$query->clear()->select($db->qn('extension_id'))
->from($db->qn('#__extensions'))
->where($db->qn('element').'='.$db->q('rsfeedback'))
->where($db->qn('folder').'='.$db->q('installer'))
->where($db->qn('type').'='.$db->q('plugin'));
$db->setQuery($query);
if ($extension_id = $db->loadResult()) {
$plg_installer->uninstall('plugin', $extension_id);
}
// Uninstall Privacy Plugin
$query->clear()->select($db->qn('extension_id'))
->from($db->qn('#__extensions'))
->where($db->qn('element').'='.$db->q('rsfeedback'))
->where($db->qn('folder').'='.$db->q('privacy'))
->where($db->qn('type').'='.$db->q('plugin'));
$db->setQuery($query);
if ($extension_id = $db->loadResult()) {
$plg_installer->uninstall('plugin', $extension_id);
}
// uninstall testimonials module
$query->clear();
$query->select($db->qn('extension_id'))->from($db->qn('#__extensions'))->where($db->qn('element').'='.$db->q('mod_rsfe_testimonials'))->where($db->qn('client_id').'='.$db->q('0'))->where($db->qn('type').'='.$db->q('module'));
$db->setQuery($query);
if ($extension_id = $db->loadResult()) {
$plg_installer->uninstall('module', $extension_id);
}
// uninstall button module
$query->clear();
$query->select($db->qn('extension_id'))->from($db->qn('#__extensions'))->where($db->qn('element').'='.$db->q('mod_rsfeedback_button'))->where($db->qn('client_id').'='.$db->q('0'))->where($db->qn('type').'='.$db->q('module'));
$db->setQuery($query);
if ($extension_id = $db->loadResult()) {
$plg_installer->uninstall('module', $extension_id);
}
}
public function UpdateParamsColumn($default_params) {
$db = Factory::getDbo();
$query = $db->getQuery(true);
$query->clear();
$query->select('`extension_id`')->from('`#__extensions`')->where('`element` = '.$db->q('com_rsfeedback'))->where('`type` = '.$db->q('component'));
$db->setQuery($query);
$extension_id = $db->loadResult();
if ($extension_id) {
$query->clear();
$query->update('`#__extensions`')->set('`params` = '.$db->q($default_params))->where('`extension_id` = '.(int) $extension_id);
$db->setQuery($query);
$db->execute();
}
}
protected function showInstallMessage($plugins=array()) {
?>
<style type="text/css">
#rsfed-installer-left {
float: left;
width: 18%;
padding: 5px;
}
#rsfed-installer-right {
float: left;
padding: 5px;
width: 70%;
}
.version-history {
margin: 0 0 2em 0;
padding: 0;
list-style-type: none;
}
.version-history > li {
margin: 0 0 0.5em 0;
padding: 0 0 0 4em;
}
.version-new,
.version-fixed,
.version-upgraded {
float: left;
font-size: 0.8em;
margin-left: -4.9em;
width: 4.5em;
color: white;
text-align: center;
font-weight: bold;
text-transform: uppercase;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.version-new {
background: #7dc35b;
}
.version-fixed {
background: #e9a130;
}
.version-upgraded {
background: #61b3de;
}
.install-ok {
background: #7dc35b;
color: #fff;
padding: 3px;
}
.install-not-ok {
background: #E9452F;
color: #fff;
padding: 3px;
}
.com-rsfeedback-button {
display: inline-block;
background: #459300 none repeat scroll 0 0;
color: #fff !important;
cursor: pointer;
margin-bottom: 10px;
padding: 7px;
text-decoration: none !important;
}
</style>
<div id="rsfed-installer-left">
<img src="<?php echo Uri::root(); ?>media/com_rsfeedback/images/admin/rsfeedback_vertical.png" alt="RSFeedback!" />
</div>
<div id="rsfed-installer-right">
<?php foreach ($plugins as $plugin => $data) { ?>
<p><?php echo $data['name']; ?> ...
<?php if ($data['result']) { ?>
<b class="install-ok">Installed</b>
<?php if ($data['core']) { ?>
<b class="install-ok">Published</b>
<?php } ?>
<?php } else { ?>
<b class="install-not-ok">Error installing!</b>
<?php } ?>
</p>
<?php } ?>
<h2>Changelog v1.8.12</h2>
<ul class="version-history">
<li><span class="version-new">Add</span> Native support for Joomla! 5.</li>
</ul>
<a class="com-rsfeedback-button" href="index.php?option=com_rsfeedback">Start using RSFeedback!</a>
<a class="com-rsfeedback-button" href="https://www.rsjoomla.com/support/documentation/rsfeedback.html" target="_blank">Read the RSFeedback! User Guide</a>
<a class="com-rsfeedback-button" href="https://www.rsjoomla.com/support.html" target="_blank">Get Support!</a>
</div>
<div style="clear: both;"></div>
<?php
}
}