You are here

pardot.module in Pardot Integration 7.2

Same filename and directory in other branches
  1. 8 pardot.module
  2. 6 pardot.module
  3. 7 pardot.module
  4. 2.x pardot.module

Pardot integration module.

File

pardot.module
View source
<?php

/**
 * @file
 * Pardot integration module.
 */

/**
 * Implements hook_automate_tracking().
 */
function pardot_automate_tracking() {

  // Add Pardot JavaScript.
  pardot_js();
  drupal_add_js(drupal_get_path('module', 'pardot') . '/pardot.js', array(
    'scope' => 'footer',
  ));
}

/**
 * Implements hook_theme().
 */
function pardot_theme($existing, $type, $theme, $path) {
  return array(
    'pardot_admin_scoring' => array(
      'render element' => 'form',
      'file' => 'pardot.admin-scoring.inc',
    ),
    'pardot_admin_campaign' => array(
      'render element' => 'form',
      'file' => 'pardot.admin-campaign.inc',
    ),
  );
}

/**
 * Implements hook_menu().
 */
function pardot_menu() {
  $items['admin/config/services/pardot'] = array(
    'title' => 'Pardot',
    'description' => 'Create and edit Pardot settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'pardot_admin_form',
    ),
    'access arguments' => array(
      'administer pardot',
    ),
    'type' => MENU_NORMAL_ITEM,
    // 'weight' => -1,
    'file' => 'pardot.admin.inc',
  );
  $items['admin/config/services/pardot/general'] = array(
    'title' => 'Settings',
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'weight' => -10,
  );
  $items['admin/config/services/pardot/scoring'] = array(
    'title' => 'Scoring',
    'description' => 'Create and edit Pardot scoring settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'pardot_admin_scoring',
    ),
    'access arguments' => array(
      'administer pardot',
    ),
    'type' => MENU_LOCAL_TASK,
    'file' => 'pardot.admin-scoring.inc',
  );
  $items['admin/config/services/pardot/scoring/%pardot_scoring/edit'] = array(
    'title' => 'Scoring',
    'description' => 'Create and edit Pardot scoring settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'pardot_admin_scoring_edit',
      5,
    ),
    'access arguments' => array(
      'administer pardot',
    ),
    'type' => MENU_CALLBACK,
    'file' => 'pardot.admin-scoring.inc',
  );
  $items['admin/config/services/pardot/scoring/%pardot_scoring/delete'] = array(
    'title' => 'Scoring',
    'description' => 'Create and edit Pardot scoring settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'pardot_admin_scoring_delete',
      5,
    ),
    'access arguments' => array(
      'administer pardot',
    ),
    'type' => MENU_CALLBACK,
    'file' => 'pardot.admin-scoring.inc',
  );
  $items['admin/config/services/pardot/campaign'] = array(
    'title' => 'Campaigns',
    'description' => 'Create and edit Pardot campaign settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'pardot_admin_campaign',
    ),
    'access arguments' => array(
      'administer pardot',
    ),
    'type' => MENU_LOCAL_TASK,
    'file' => 'pardot.admin-campaign.inc',
  );
  $items['admin/config/services/pardot/campaign/%pardot_campaign/edit'] = array(
    'title' => 'Campaign',
    'description' => 'Create and edit Pardot campaign settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'pardot_admin_campaign_edit',
      5,
    ),
    'access arguments' => array(
      'administer pardot',
    ),
    'type' => MENU_CALLBACK,
    'file' => 'pardot.admin-campaign.inc',
  );
  $items['admin/config/services/pardot/campaign/%pardot_campaign/delete'] = array(
    'title' => 'Campaign',
    'description' => 'Create and edit Pardot campaign settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'pardot_admin_campaign_delete',
      5,
    ),
    'access arguments' => array(
      'administer pardot',
    ),
    'type' => MENU_CALLBACK,
    'file' => 'pardot.admin-campaign.inc',
  );
  return $items;
}

/**
 * Implements hook_permission().
 */
function pardot_permission() {
  return array(
    'administer pardot' => array(
      'title' => t('Administer pardot'),
      'description' => t('Administer pardot'),
    ),
  );
}

/**
 * Implements hook_help().
 */
function pardot_help($path, $arg) {
  switch ($path) {
    case 'admin/config/services/pardot':
      return t('For help finding tracking code, follow the !instructions found on the Pardot help site', array(
        '!instructions' => l(t('instructions'), 'http://help.pardot.com/faqs/campaigns/tracking-code'),
      ));
  }
}

/**
 * Processes pardot_js() variables and adds settings.
 *
 * @group themeable
 */
function pardot_js() {
  $settings['pardot_a_id'] = check_plain(variable_get('pardot_a_id', ''));

  // Compare with the internal and path alias (if any) to find any special campaigns.
  $results = db_query('SELECT campaign_id, paths FROM {pardot_campaign}');
  foreach ($results as $row) {
    $path = drupal_get_path_alias($_GET['q']);

    // Compare with the internal and path alias (if any).
    $page_match = drupal_match_path($path, $row->paths);
    if ($path != $_GET['q']) {
      $page_match = $page_match || drupal_match_path($_GET['q'], $row->paths);
    }
    if ($page_match) {
      $settings['pardot_c_id'] = check_plain($row->campaign_id);
      break;
    }
  }
  if (!isset($settings['pardot_c_id'])) {
    $settings['pardot_c_id'] = check_plain(variable_get('pardot_c_id', ''));
  }

  // Compare with the internal and path alias (if any) and add scoring.
  $path = drupal_get_path_alias($_GET['q']);
  $score = db_query("SELECT score FROM {pardot_scoring} WHERE path = :path", array(
    ':path' => $path,
  ))
    ->fetchField();
  if (!$score) {
    $score = db_query("SELECT score FROM {pardot_scoring} WHERE path = :path", array(
      ':path' => $_GET['q'],
    ))
      ->fetchField();
  }
  $settings['score'] = check_plain($score);
  drupal_add_js(array(
    'pardot' => $settings,
  ), 'setting');
}

/**
 * Loads a Pardot scoring object.
 *
 * @param int $scoring_id
 *   The scoring object ID.
 */
function pardot_scoring_load($scoring_id) {
  return db_query('SELECT * FROM {pardot_scoring} WHERE scoring_id = :scoring_id', array(
    ':scoring_id' => $scoring_id,
  ))
    ->fetchObject();
}

/**
 * Loads a Pardot campaign object.
 *
 * @param int $campaign
 *   The campaign ID.
 */
function pardot_campaign_load($campaign) {
  return db_query('SELECT * FROM {pardot_campaign} WHERE campaign_id = :campaign_id', array(
    ':campaign_id' => $campaign,
  ))
    ->fetchObject();
}

Functions

Namesort descending Description
pardot_automate_tracking Implements hook_automate_tracking().
pardot_campaign_load Loads a Pardot campaign object.
pardot_help Implements hook_help().
pardot_js Processes pardot_js() variables and adds settings.
pardot_menu Implements hook_menu().
pardot_permission Implements hook_permission().
pardot_scoring_load Loads a Pardot scoring object.
pardot_theme Implements hook_theme().