<?php
/**
 * Copyright since 2007 PrestaShop SA and Contributors
 * PrestaShop is an International Registered Trademark & Property of PrestaShop SA
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License version 3.0
 * that is bundled with this package in the file LICENSE.md.
 * It is also available through the world-wide-web at this URL:
 * https://opensource.org/licenses/AFL-3.0
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@prestashop.com so we can send you a copy immediately.
 *
 * @author    PrestaShop SA and Contributors <contact@prestashop.com>
 * @copyright Since 2007 PrestaShop SA and Contributors
 * @license   https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
 */
if (!defined('_PS_VERSION_')) {
    exit;
}
function upgrade_module_1_4_6($module)
{
    $name_module = 'spmreviewsadv';


    $_prefix_review = "r";




    ## ids_groups ##

    $cookie = Context::getContext()->cookie;
    $id_lang =  $cookie->id_lang;


    $ids_groups_array = array();
    foreach(Group::getGroups($id_lang) as $group_item){
        $id_group = $group_item['id_group'];
        $ids_groups_array[] = $id_group;
    }
    $ids_groups = implode(",",$ids_groups_array);


    Configuration::updateValue($name_module.'ids_groups', $ids_groups);
    Configuration::updateValue($name_module.'ids_groupsfb', $ids_groups);

    ## ids_groups ##





    Configuration::updateValue($name_module.'sr_slider', 1);
    Configuration::updateValue($name_module.'sr_sl', 2);

    Configuration::updateValue($name_module.'sr_sliderh', 1);
    Configuration::updateValue($name_module.'sr_slh', 2);

    Configuration::updateValue($name_module.'tlast', 3);





    ### product reviews sliders ###
    Configuration::updateValue($name_module.'sr_sliderr', 1);
    Configuration::updateValue($name_module.'sr_slr', 2);

    Configuration::updateValue($name_module.'sr_sliderhr', 1);
    Configuration::updateValue($name_module.'sr_slhr', 2);

    Configuration::updateValue($name_module.'d_eff_rev', 'flipInX');
    Configuration::updateValue($name_module.'d_eff_rev_my', 'flipInX');
    Configuration::updateValue($name_module.'d_eff_rev_u', 'flipInX');
    Configuration::updateValue($name_module.'d_eff_rev_all', 'flipInX');


    /// user profile ///

    Configuration::updateValue($name_module.'is_proftab', 1);

    // users sliders
    Configuration::updateValue($name_module.'sr_slideru', 1);
    Configuration::updateValue($name_module.'sr_slu', 3);

    Configuration::updateValue($name_module.'sr_sliderhu', 1);
    Configuration::updateValue($name_module.'sr_slhu', 3);

    Configuration::updateValue($name_module.'d_eff_shopu', 'flipInX');


    // filter enable / disable

    Configuration::updateValue($name_module.'is_filterp', 1);
    Configuration::updateValue($name_module.'is_filterall', 1);



    // added fileds in the table ps_spmreviewsadv_review_criterion //
    $list_fields = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'spmreviewsadv_review_criterion`');
    if (is_array($list_fields))
    {
        foreach ($list_fields as $k => $field)
            $list_fields[$k] = $field['Field'];
        if (!in_array('id_product', $list_fields)) {
            if (!Db::getInstance(_PS_USE_SQL_SLAVE_)->Execute('ALTER TABLE `' . _DB_PREFIX_ . 'spmreviewsadv_review_criterion` ADD `id_product` text')) {
                return false;
            }

            if (!Db::getInstance(_PS_USE_SQL_SLAVE_)->Execute('UPDATE `' . _DB_PREFIX_ . 'spmreviewsadv_review_criterion` SET `id_product` = \'\'')) {
                return false;
            }

        }
    }


    $list_fields = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'spmreviewsadv_review_criterion`');
    if (is_array($list_fields))
    {
        foreach ($list_fields as $k => $field)
            $list_fields[$k] = $field['Field'];
        if (!in_array('id_category', $list_fields)) {
            if (!Db::getInstance(_PS_USE_SQL_SLAVE_)->Execute('ALTER TABLE `' . _DB_PREFIX_ . 'spmreviewsadv_review_criterion` ADD `id_category` text')) {
                return false;
            }

        }
    }

    $list_fields = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'spmreviewsadv_review_criterion`');
    if (is_array($list_fields))
    {
        foreach ($list_fields as $k => $field)
            $list_fields[$k] = $field['Field'];
        if (!in_array('is_category', $list_fields)) {
            if (!Db::getInstance(_PS_USE_SQL_SLAVE_)->Execute('ALTER TABLE `' . _DB_PREFIX_ . 'spmreviewsadv_review_criterion` ADD `is_category` int(11) NOT NULL default \'0\'')) {
                return false;
            }

        }
    }
   // added fileds in the table ps_spmreviewsadv_review_criterion //


    Configuration::updateValue($name_module.'is_sortf', 1);
    Configuration::updateValue($name_module.'is_sortfu', 1);
    Configuration::updateValue($name_module.'is_sortallf', 1);



    /* enable/disable emails */

    Configuration::updateValue($name_module.'is_emailreminder', 1);
    Configuration::updateValue($name_module.'is_reminderok'.$_prefix_review, 1);
    Configuration::updateValue($name_module.'is_thankyou'.$_prefix_review, 1);
    Configuration::updateValue($name_module.'is_newrev'.$_prefix_review, 1);
    Configuration::updateValue($name_module.'is_subresem', 1);
    Configuration::updateValue($name_module.'is_modrev'.$_prefix_review, 1);
    Configuration::updateValue($name_module.'is_subpubem', 1);
    Configuration::updateValue($name_module.'is_abuserev'.$_prefix_review, 1);
    Configuration::updateValue($name_module.'is_revvouc'.$_prefix_review, 1);
    Configuration::updateValue($name_module.'is_facvouc'.$_prefix_review, 1);
    Configuration::updateValue($name_module.'is_sugvouc'.$_prefix_review, 1);



    /* enable/disable emails */


    if(version_compare(_PS_VERSION_, '1.7', '>')) {
        $module->registerHook('displayProductButtons');
    }





    Configuration::updateValue($name_module.'perpageu'.$_prefix_review, 5);


    /// clear smarty cache ///

    Tools::clearSmartyCache();

    /// clear smarty cache ///

    return true;
}
?>