You are here

commerce_sermepa.install in Commerce sermepa 7

Install, update and uninstall functions for the Commerce Sermepa module.

File

commerce_sermepa.install
View source
<?php

/**
 * @file
 * Install, update and uninstall functions for the
 * Commerce Sermepa module.
 */

/**
 * Implements hook_requirements().
 */
function commerce_sermepa_requirements($phase) {
  $requirements = array();
  $t = get_t();
  if ($phase == 'runtime') {
    $library = libraries_detect('sermepa');
    $requirements['commerce_sermepa']['title'] = 'Sermepa/Redsys API';
    if (isset($library['installed']) && version_compare($library['version'], '0.7', '>=')) {
      $requirements['commerce_sermepa']['value'] = $t('Installed');
      $requirements['commerce_sermepa']['severity'] = REQUIREMENT_OK;
    }
    else {
      if (version_compare($library['version'], '0.7', '<')) {
        $requirements['commerce_sermepa']['value'] = $t('Out of date');
      }
      else {
        $requirements['commerce_sermepa']['value'] = $t('Not installed');
      }
      $requirements['commerce_sermepa']['severity'] = REQUIREMENT_ERROR;
      $requirements['commerce_sermepa']['description'] = $t('Please download the last Sermepa/Redsys API release from <a href="@url">@url</a> and place it in a valid libraries directory.', array(
        '@url' => $library['download url'],
      ));
    }
    if (!extension_loaded('mcrypt')) {
      $requirements['mcrypt']['title'] = 'PHP Mcrypt';
      $requirements['mcrypt']['severity'] = REQUIREMENT_ERROR;
      $requirements['mcrypt']['description'] = $t('The Commerce Sermepa/Redsys module requires the <a href="@url">PHP Mcrypt extension</a> be installed on the web server.', array(
        '@url' => 'http://php.net/manual/en/book.mcrypt.php',
      ));
    }
  }
  return $requirements;
}

/**
 * Fix unknown methods name.
 */
function commerce_sermepa_update_7100() {
  $num_updated = db_update('commerce_payment_transaction')
    ->fields(array(
    'payment_method' => 'commerce_sermepa',
  ))
    ->condition('payment_method', 'sermepa')
    ->execute();
}

/**
 * Rename Ds_Merchant_Titular to Ds_MerchantName.
 */
function commerce_sermepa_update_7101() {

  // Update Ds_MerchantName value and save it.
  $rule_config = rules_config_load('commerce_payment_commerce_sermepa');
  foreach ($rule_config
    ->actions() as $action) {
    if ($action->settings['payment_method']['method_id'] == 'commerce_sermepa') {
      $action->settings['payment_method']['settings']['Ds_MerchantName'] = $action->settings['payment_method']['settings']['Ds_Merchant_Titular'];
      unset($action->settings['payment_method']['settings']['Ds_Merchant_Titular']);
    }
  }
  $rule_config
    ->save();

  // Reset payment methods values.
  commerce_payment_methods_reset();

  // Clear rules config cache.
  entity_get_controller('rules_config')
    ->resetCache();
}

/**
 * Clear the cache for the new settings.
 */
function commerce_sermepa_update_7102() {

  // Reset payment methods values.
  commerce_payment_methods_reset();

  // Clear rules config cache.
  entity_get_controller('rules_config')
    ->resetCache();

  // Rebuild menus.
  variable_set('menu_rebuild_needed', TRUE);
}

Functions

Namesort descending Description
commerce_sermepa_requirements Implements hook_requirements().
commerce_sermepa_update_7100 Fix unknown methods name.
commerce_sermepa_update_7101 Rename Ds_Merchant_Titular to Ds_MerchantName.
commerce_sermepa_update_7102 Clear the cache for the new settings.