Skip to main content

How to create custom rules condition in Drupal 7

hook_rules_condition_info() is used to create custom rules conditions.



/**
 * Implements hook_rules_condition_info()
 */
function custom_rules_rules_condition_info() {
  return array(

    'custom_rules_default_condition_dealer_store' => array(
      'label' => t('Dealer store'),
      'group' => t('Domains'),
      'parameter' => array(
        'operator' => array(
          'type' => 'text',
          'label' => t('Show pricing enabled'),
          'options list' => '__custom_rules_dealer_store_operators',
          'default value' => '0'
        )
      )
    ),
  );
}

/**
 * Custom hook
 * Test domain for matching
 * @param string $operator
 * @return bool
 */
function custom_rules_default_condition_dealer_store($operator) {

  $domain_info = domain_get_domain();
  // returns 0 or 1.
  // 1 means current domain is dealer store.
  // 0 means current domain is portal store.
  $show_pricing = domain_conf_variable_get($domain_info['domain_id'], 'show_pricing');

  switch ($operator) {
    case '1':
      return ($show_pricing == 1)?TRUE:FALSE;
    case '0': default:
      return ($show_pricing == 0)?TRUE:FALSE;
  }
}

/**
 * Get array comparsion operators
 * @return array
 */
function __custom_rules_dealer_store_operators() {
  return array(
    '1'     => t('Yes'),
    '0'     => t('No'),
  );
}


Comments

Popular posts from this blog

Main menu dropdown parent item clickable in Drupal 8 using Bootstrap 4

 Edit menu--main.html.twig template file {# /**  * @file  * Bootstrap Barrio's override to display a menu.  *  * Available variables:  * - menu_name: The machine name of the menu.  * - items: A nested list of menu items. Each menu item contains:  *   - attributes: HTML attributes for the menu item.  *   - below: The menu item child items.  *   - title: The menu link title.  *   - url: The menu link url, instance of \Drupal\Core\Url  *   - localized_options: Menu link localized options.  *   - is_expanded: TRUE if the link has visible children within the current  *     menu tree.  *   - is_collapsed: TRUE if the link has children within the current menu tree  *     that are not currently visible.  *   - in_active_trail: TRUE if the link is in the active trail.  */ #} {% import _self as menus...

Add JS to the bottom of the page in Drupal 7

How to add JS at bottom of a particular page in Drupal 7 Step 1: Get the page id. In case of front page "is_front"  Step 2: In template.php file of your theme add the below code : function illume_preprocess_page(&$variables) { if ($variables['is_front']) { drupal_add_js(path_to_theme().'/js/util.js', array('type' => 'file', 'scope' => 'footer')); drupal_add_js(path_to_theme().'/js/main.js', array('type' => 'file', 'scope' => 'footer')); drupal_add_js(path_to_theme().'/js/slideimage.js', array('type' => 'file', 'scope' => 'footer')); $variables['bottom_scripts'] = drupal_get_js(); } } This way you can add JS file using drupal_add_js() and define scope as footer. Step 3: Now you can use bottom_script variable to the page tpl file where you want to add JS print $bottom_scripts;

Use Case Diagram for Online Book Store