Skip to content

Commit

Permalink
reformatted per psr
Browse files Browse the repository at this point in the history
  • Loading branch information
aklump committed Oct 8, 2016
1 parent 4ddb463 commit d58ffb4
Show file tree
Hide file tree
Showing 8 changed files with 597 additions and 565 deletions.
98 changes: 50 additions & 48 deletions includes/loft_gtm.admin.inc
Expand Up @@ -13,65 +13,67 @@
* @ingroup forms
* @see system_settings_form()
*/
function loft_gtm_admin_settings($form, &$form_state) {
$code = variable_get('loft_gtm_code', LOFT_GTM_CODE);
$form['init'] = array(
'#type' => 'fieldset',
'#title' => t('General Settings'),
'#collapsible' => TRUE,
'#collapsed' => !empty($code),
);
function loft_gtm_admin_settings($form, &$form_state)
{
$code = variable_get('loft_gtm_code', LOFT_GTM_CODE);
$form['init'] = array(
'#type' => 'fieldset',
'#title' => t('General Settings'),
'#collapsible' => true,
'#collapsed' => !empty($code),
);

$form['loft_gtm_enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enable Google event reporting'),
'#default_value' => variable_get('loft_gtm_enabled', LOFT_GTM_ENABLED),
);
$form['loft_gtm_enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enable Google event reporting'),
'#default_value' => variable_get('loft_gtm_enabled', LOFT_GTM_ENABLED),
);

$form['loft_gtm_logging'] = array(
'#type' => 'checkbox',
'#title' => t('Enable Google event logging (dev only)'),
'#default_value' => variable_get('loft_gtm_logging', LOFT_GTM_LOGGING),
);
$form['loft_gtm_logging'] = array(
'#type' => 'checkbox',
'#title' => t('Enable Google event logging (dev only)'),
'#default_value' => variable_get('loft_gtm_logging', LOFT_GTM_LOGGING),
);

$form['init']['loft_gtm_code'] = array(
'#type' => 'textarea',
'#title' => t('Google Tag Manager Code'),
'#description' => t('Enter your code from Google here. To obtain your code or register for an account visit <a href="@url">Google.com</a>.', array(
'@url' => url('http://www.google.com/tagmanager/'),
)),
'#default_value' => $code,
'#required' => TRUE,
'#rows' => 10,
'#resizable' => TRUE,
);
$form['init']['loft_gtm_code'] = array(
'#type' => 'textarea',
'#title' => t('Google Tag Manager Code'),
'#description' => t('Enter your code from Google here. To obtain your code or register for an account visit <a href="@url">Google.com</a>.', array(
'@url' => url('http://www.google.com/tagmanager/'),
)),
'#default_value' => $code,
'#required' => true,
'#rows' => 10,
'#resizable' => true,
);

$form['loft_gtm_injection_mode'] = array(
'#type' => 'radios',
'#title' => t('DataLayer Processing'),
'#default_value' => variable_get('loft_gtm_injection_mode', LOFT_GTM_INJECTION_MODE),
'#options' => array(
1 => t('Written in the HTML'),
2 => t('Processed via AJAX'),
),
);
$form['loft_gtm_injection_mode'] = array(
'#type' => 'radios',
'#title' => t('DataLayer Processing'),
'#default_value' => variable_get('loft_gtm_injection_mode', LOFT_GTM_INJECTION_MODE),
'#options' => array(
1 => t('Written in the HTML'),
2 => t('Processed via AJAX'),
),
);

$form['#validate'][] = 'loft_gtm_admin_settings_validate';
$form['#validate'][] = 'loft_gtm_admin_settings_validate';

return system_settings_form($form);
return system_settings_form($form);
}

/**
* Form validation handler for loft_gtm_admin_settings_validate().
*/
function loft_gtm_admin_settings_validate($form, &$form_state) {
$code = $form_state['values']['loft_gtm_code'];
$passed = 0;
$passed += (int) stripos($code, 'googletagmanager.com') !== FALSE;
$passed += (int) strpos($code, 'DataLayer') !== FALSE;
if ($passed === 0) {
form_set_error('loft_gtm_code', t('Your code seems to be missing key parts to make it valid; please check your code and re-submit.'));
}
function loft_gtm_admin_settings_validate($form, &$form_state)
{
$code = $form_state['values']['loft_gtm_code'];
$passed = 0;
$passed += (int) stripos($code, 'googletagmanager.com') !== false;
$passed += (int) strpos($code, 'DataLayer') !== false;
if ($passed === 0) {
form_set_error('loft_gtm_code', t('Your code seems to be missing key parts to make it valid; please check your code and re-submit.'));
}
}

/** @} */ //end of group loft_gtm1
102 changes: 52 additions & 50 deletions includes/loft_gtm.queue.inc
Expand Up @@ -12,47 +12,48 @@
*
* Ops are: clear, get, process
*/
function _loft_gtm_ajax_handler_queue() {
$args = func_get_args();
$op = array_shift($args);
$type = array_pop($args);
if ($type != 'ajax') {
return MENU_NOT_FOUND;
}
$commands = array();
$ids = isset($_POST['ids']) ? json_decode($_POST['ids']) : array();
switch ($op) {
case 'clear':
loft_gtm_queue_clear($ids);
break;
case 'get':
$queue = loft_gtm_queue_add();
$json = array();
foreach ($queue as $value) {
$json[] = array(
'method' => $value['#method'],
'params' => $value['#params'],
);
}
drupal_json_output(array_values($json));
break;
case 'process':
if (($queue = loft_gtm_queue_add())
&& ($queue = array_intersect_key($queue, array_flip($ids)))
) {
loft_gtm_queue_clear(array_keys($queue));
}
$json = array();
foreach ($queue as $value) {
$json[] = array(
'method' => $value['#method'],
'params' => $value['#params'],
);
}
drupal_json_output(array_values($json));
break;
}
drupal_exit();
function _loft_gtm_ajax_handler_queue()
{
$args = func_get_args();
$op = array_shift($args);
$type = array_pop($args);
if ($type != 'ajax') {
return MENU_NOT_FOUND;
}
$commands = array();
$ids = isset($_POST['ids']) ? json_decode($_POST['ids']) : array();
switch ($op) {
case 'clear':
loft_gtm_queue_clear($ids);
break;
case 'get':
$queue = loft_gtm_queue_add();
$json = array();
foreach ($queue as $value) {
$json[] = array(
'method' => $value['#method'],
'params' => $value['#params'],
);
}
drupal_json_output(array_values($json));
break;
case 'process':
if (($queue = loft_gtm_queue_add())
&& ($queue = array_intersect_key($queue, array_flip($ids)))
) {
loft_gtm_queue_clear(array_keys($queue));
}
$json = array();
foreach ($queue as $value) {
$json[] = array(
'method' => $value['#method'],
'params' => $value['#params'],
);
}
drupal_json_output(array_values($json));
break;
}
drupal_exit();
}

/**
Expand All @@ -66,16 +67,17 @@ function _loft_gtm_ajax_handler_queue() {
*
* @tested
*/
function loft_gtm_queue_clear($ids) {
if (!is_array($ids)) {
$ids = array($ids);
}
if (empty($_SESSION['loft_gtm']['queue'])) {
$_SESSION['loft_gtm']['queue'] = array();
}
$_SESSION['loft_gtm']['queue'] = array_diff_key($_SESSION['loft_gtm']['queue'], array_flip($ids));
function loft_gtm_queue_clear($ids)
{
if (!is_array($ids)) {
$ids = array($ids);
}
if (empty($_SESSION['loft_gtm']['queue'])) {
$_SESSION['loft_gtm']['queue'] = array();
}
$_SESSION['loft_gtm']['queue'] = array_diff_key($_SESSION['loft_gtm']['queue'], array_flip($ids));

return $_SESSION['loft_gtm']['queue'];
return $_SESSION['loft_gtm']['queue'];
}

/** @} */ //end of group: loft_gtm
25 changes: 13 additions & 12 deletions includes/loft_gtm.theme.inc
Expand Up @@ -19,18 +19,19 @@
*
* @ingroup themeable
*/
function theme_loft_gtm_datalayer($vars) {
$event = $vars['event'];
function theme_loft_gtm_datalayer($vars)
{
$event = $vars['event'];

$output = '';
$output .= "if (typeof dataLayer !== 'undefined') {";
if (!empty($event['#method'])) {
$output .= 'dataLayer.' . $event['#method'] . '(' . json_encode($event['#params']) . ');';
}
else {
$output .= 'dataLayer = ' . json_encode($event['#params']) . ';';
}
$output .= '}';
$output = '';
$output .= "if (typeof dataLayer !== 'undefined') {";
if (!empty($event['#method'])) {
$output .= 'dataLayer.' . $event['#method'] . '(' . json_encode($event['#params']) . ');';
}
else {
$output .= 'dataLayer = ' . json_encode($event['#params']) . ';';
}
$output .= '}';

return $output;
return $output;
}
36 changes: 19 additions & 17 deletions loft_gtm.install
Expand Up @@ -10,28 +10,30 @@
/**
* Implements hook_uninstall().
*/
function loft_gtm_uninstall() {
$vars = db_select('variable', 'v')
->fields('v', array('name'))
->condition('name', 'loft_gtm%', 'LIKE')
->execute()->fetchCol();
foreach ($vars as $var) {
variable_del($var);
}
db_delete('block')
->condition('module', 'loft_gtm')
->execute();
db_delete('block_role')
->condition('module', 'loft_gtm')
->execute();
function loft_gtm_uninstall()
{
$vars = db_select('variable', 'v')
->fields('v', array('name'))
->condition('name', 'loft_gtm%', 'LIKE')
->execute()->fetchCol();
foreach ($vars as $var) {
variable_del($var);
}
db_delete('block')
->condition('module', 'loft_gtm')
->execute();
db_delete('block_role')
->condition('module', 'loft_gtm')
->execute();
}

/**
* Implements hook_enable().
*/
function loft_gtm_enable() {
// Message about module settings
drupal_set_message(t('You may adjust settings for Google Tag Manager API by visiting <a href="@url">@url</a>.', array('@url' => url('admin/config/search/loft-gtm'))));
function loft_gtm_enable()
{
// Message about module settings
drupal_set_message(t('You may adjust settings for Google Tag Manager API by visiting <a href="@url">@url</a>.', array('@url' => url('admin/config/search/loft-gtm'))));
}

/** @} */ //end of group loft_gtm

0 comments on commit d58ffb4

Please sign in to comment.