View source
<?php
function linkedin_insights_tag_permission() {
return array(
'administer linkedin insights tag' => array(
'title' => t('Administer the LinkedIn Insight Tag'),
'description' => t('Perform maintenance tasks for the LinkedIn Insight Tag.'),
),
);
}
function linkedin_insights_tag_menu() {
$items['admin/config/system/linkedin_insights_tag'] = array(
'title' => 'LinkedIn Insight Tag',
'description' => 'Configure tracking behavior for the LinkedIn Insight Tag.',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'linkedin_insights_tag_admin_settings_form',
),
'access arguments' => array(
'administer linkedin insights tag',
),
'type' => MENU_NORMAL_ITEM,
'file' => 'linkedin_insights_tag.admin.inc',
);
return $items;
}
function linkedin_insights_tag_page_build(&$page) {
global $user;
$partner_id = check_plain(variable_get('linkedin_insights_tag__partner_id', ''));
$noscript = (bool) check_plain(variable_get('linkedin_insights_tag__image_only', 0));
if (preg_match('/^\\d+$/', $partner_id) && linkedin_insights_tag_role_tracking($user)) {
if (!$noscript) {
$path = drupal_get_path('module', 'linkedin_insights_tag');
$attached =& $page['page_bottom']['linkedin_insights_tag']['#attached'];
$attached['js'][] = array(
'type' => 'setting',
'data' => array(
'linkedinInsightsTag' => array(
'partnerId' => $partner_id,
),
),
);
$attached['js'][$path . '/js/linkedin_insights_tag.js'] = array(
'type' => 'file',
'scope' => 'footer',
);
$attached['js'][] = array(
'type' => 'external',
'data' => 'https://snap.licdn.com/li.lms-analytics/insight.min.js',
'scope' => 'footer',
'weight' => 1,
);
}
$noscript = [
'#theme' => 'html_tag',
'#tag' => 'noscript',
'#value' => '<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=' . $partner_id . '&fmt=gif" />',
];
$page['page_bottom']['noscript'] = [
'#weight' => 3,
'#markup' => render($noscript),
];
}
}
function linkedin_insights_tag_role_tracking($account) {
$enabled = FALSE;
$roles = variable_get('linkedin_insights_tag__roles', array());
if (array_sum($roles) > 0) {
foreach (array_keys($account->roles) as $rid) {
if (isset($roles[$rid]) && $rid == $roles[$rid]) {
$enabled = TRUE;
break;
}
}
}
else {
$enabled = TRUE;
}
return $enabled;
}