beautytips-8.x-1.x-dev/includes/drupal_help.inc
includes/drupal_help.inc
<?php
function beautytips_drupal_help_admin_info() {
$form['beautytips_help'] = [
'#type' => 'fieldset',
'#title' => 'Help Link Tooltips',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
];
$form['beautytips_help']['beautytips_drupal_help'] = [
'#type' => 'checkbox',
'#title' => 'Display Help link popups',
'#default_value' => \Drupal::state()->get('beautytips_drupal_help', FALSE),
];
if (\Drupal::moduleHandler()->moduleExists('advanced_help')) {
$form['beautytips_help']['beautytips_advanced_help'] = [
'#type' => 'checkbox',
'#title' => 'Display Advanced Help link popups',
'#default_value' => \Drupal::state()->get('beautytips_advanced_help', FALSE),
];
}
return $form;
}
/**
* Implementation of hook_menu_alter()
*/
function beautytips_drupal_help_menu_change(&$items) {
if (\Drupal::state()->get('beautytips_drupal_help', FALSE)) {
$items['admin/help']['page callback'] = 'beautytips_drupal_help_main';
$items['admin/help']['file path'] = drupal_get_path('module', 'beautytips') . '/includes';
$items['admin/help']['file'] = 'drupal_help.inc';
}
}
/**
* Menu callback; prints a page listing a glossary of Drupal terminology.
* Beautytips added for the help links
*/
function beautytips_drupal_help_main() {
require_once drupal_get_path('module', 'help') . '/help.admin.inc';
// Add in beautytips on page - admin/help
$options['bt_drupal_help_page'] = [
'cssSelect' => '.help-items li a',
'ajaxPath' => ["$(this).attr('href')", '.content'],
'trigger' => ['mouseover', 'click'],
'width' => 350,
];
beautytips_add_beautytips($options);
return help_main();
}
/**
* Implementation of hook_theme_registry_alter
*/
function beautytips_drupal_help_theme_change(&$theme_registry) {
if (\Drupal::moduleHandler()->moduleExists('help') && \Drupal::state()->get('beautytips_drupal_help', FALSE)) {
// Override theme_more_help_link for more-help stuff
$theme_registry['more_help_link']['function'] = 'theme_beautytips_drupal_help_more_help_link';
$theme_registry['more_help_link']['file'] = drupal_get_path('module', 'beautytips') . '/includes/drupal_help.inc';
}
if (\Drupal::moduleHandler()->moduleExists('advanced_help') && \Drupal::state()->get('beautytips_advanced_help', FALSE)) {
// Override theme_advanced_help_topic for advanced help
$theme_registry['advanced_help_topic']['function'] = 'theme_beautytips_advanced_help_topic';
$theme_registry['advanced_help_topic']['file'] = drupal_get_path('module', 'beautytips') . '/includes/drupal_help.inc';
}
}
/**
* Returns code that emits the 'more help'-link.
* Overrides theme_more_help_link
*/
function theme_beautytips_drupal_help_more_help_link($variables) {
$options = [];
$options['bt_drupal_help'] = [
'cssSelect' => '.more-help-link a',
'ajaxPath' => ["$(this).attr('href')", '#content'],
'trigger' => [0 => 'mouseover', 1 => 'click'],
'width' => 600,
];
beautytips_add_beautytips($options);
return theme_more_help_link($variables);
}
/**
* Display a help icon with a link to view the topic in a popup.
*
* @param $module
* The module that owns this help topic.
* @param $topic
* The identifier for the topic
* @param $type
* - 'icon' to display the question mark icon
* - 'title' to display the topic's title
* - any other text to display the text. Be sure to t() it!
*/
function theme_beautytips_advanced_help_topic(&$variables) {
// Add bt to advanced-help links
$options['bt_advanced_help'] = [
'cssSelect' => 'a.advanced-help-link',
'ajaxPath' => [
"$(this).attr('href')",
'#content-content:not(#content-content.help-navigation)',
],
'trigger' => ['mouseover', 'click'],
'width' => 380,
];
beautytips_add_beautytips($options);
return theme_advanced_help_topic($variables);
}
