acquia_commercemanager-8.x-1.122/modules/acm_promotion/js/acm_promotion_marketing_link.js

modules/acm_promotion/js/acm_promotion_marketing_link.js
/**
 * @file
 * Provides the marketing link feature for the promotion module.
 *
 * Checks for promo codes provided as a url parameter as well as redirects the
 * browser if attempting to load a promotion node page.
 */

(function ($, Drupal) {
  Drupal.behaviors.acm_promotion_marketing_link = {
    /**
     * Checks for query parameters and redirects.
     */
    attach: function (context, settings) {
      $('body', context).once('acm_promotion_marketing_link').each(function (){
        Drupal.behaviors.acm_promotion_marketing_link.init(settings);
      });
    },

    /**
     * Checks for query parameters and redirects.
     *
     * Checks for a promotion in the url parameter and will save it to
     * sessionStorage. Provides redirect if attempting to load a promotion node
     * page.
     *
     * @param {object} settings
     *   This is the drupalSettings object.
     */
    init: function (settings) {
      // Add promos found in query string.
      var coupon = Drupal.behaviors.acm_promotion_marketing_link.getQueryParam('promo');
      if (coupon !== "") {
        Drupal.behaviors.acm_promotion.setCoupon(coupon);
      }

      // No need to continue if there is no data to work with.
      if (typeof settings.acm_promotion.marketing_link === 'undefined') {
        return;
      }

      var url = settings.acm_promotion.marketing_link.callback;
      var promo = settings.acm_promotion.marketing_link.promo;

      Drupal.behaviors.acm_promotion.addPromotionData([promo]);

      window.location.href = url;
    },

    /**
     * Gets url parameters by name.
     *
     * @param {string} name
     *   Name of the query parameter to be retrieved.
     *
     * @return
     *   String value of the named parameter.
     */
    getQueryParam: function (name) {
      var url = window.location.href;
      name = name.replace(/[\[\]]/g, "\\$&");
      var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)");
      var results = regex.exec(url);

      if (!results) {
        return "";
      }

      if (!results[2]) {
        return "";
      }

      return decodeURIComponent(results[2].replace(/\+/g, " "));
    }
  };
})(jQuery, Drupal);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc