skinr_test.module in Skinr 8.2
Skinr testing module.
Other modules should be able to place their Skinr support/integration code into a conditionally loaded $module.skinr.inc file, so this .module file only exists, because Drupal requires a .module file to exist.
File
tests/modules/skinr_test/skinr_test.moduleView source
<?php
/**
* @file
* Skinr testing module.
*
* Other modules should be able to place their Skinr support/integration code
* into a conditionally loaded $module.skinr.inc file, so this .module file
* only exists, because Drupal requires a .module file to exist.
*/
/**
* Implements hook_menu().
*/
function skinr_test_menu() {
$items['skinr-test/current-theme-default'] = array(
'title' => 'Test skinr_current_theme()',
'page callback' => 'skinr_test_skinr_current_theme',
'access arguments' => array(
'access content',
),
);
$items['skinr-test/current-theme-callback'] = array(
'title' => 'Test skinr_current_theme() with \'theme callback\'',
'page callback' => 'skinr_test_skinr_current_theme',
'access arguments' => array(
'access content',
),
'theme callback' => 'skinr_test_skinr_current_theme_callback',
);
$items['skinr-test/current-theme-hook-custom-theme'] = array(
'title' => 'Test skinr_current_theme() with hook_custom_theme()',
'page callback' => 'skinr_test_skinr_current_theme',
'access arguments' => array(
'access content',
),
);
$items['admin/skinr-test/current-theme-admin'] = array(
'title' => 'Test skinr_current_theme() for admin theme',
'page callback' => 'skinr_test_skinr_current_theme',
'access arguments' => array(
'access content',
),
);
$items['admin/skinr-test/current-theme-admin-exclude'] = array(
'title' => 'Test skinr_current_theme() excluding admin theme',
'page callback' => 'skinr_test_skinr_current_theme_admin_exclude',
'access arguments' => array(
'access content',
),
);
$items['skinr-test/hook-dynamic-loading'] = array(
'title' => 'Test hook dynamic loading (skinr_hook)',
'page callback' => 'skinr_test_hook_dynamic_loading',
'access arguments' => array(
'access content',
),
);
$items['skinr-test/skinr-implements-api'] = array(
'title' => 'Test skinr_implements_api()',
'page callback' => 'skinr_test_skinr_implements_api',
'access arguments' => array(
'access content',
),
);
return $items;
}
/**
* Page callback for default 'skinr_current_theme' test.
*
* Displays the current theme.
*/
function skinr_test_skinr_current_theme() {
return 'Current theme is ' . skinr_current_theme() . '.';
}
/**
* Theme callback for skinr-test/current-theme-hook-custom-theme.
*/
function skinr_test_skinr_current_theme_callback() {
return 'garland';
}
/**
* Implements hook_custom_theme().
*/
function skinr_test_custom_theme() {
if (\Drupal\Core\Url::fromRoute("<current>")
->toString() == 'skinr-test/current-theme-hook-custom-theme') {
return 'garland';
}
}
/**
* Page callback for 'skinr_current_theme' test.
*
* Displays the current theme.
*/
function skinr_test_skinr_current_theme_admin_exclude() {
return 'Current theme is ' . skinr_current_theme(TRUE) . '.';
}
/**
* Page callback for 'hook dynamic loading' test.
*
* If the hook is dynamically loaded correctly, the menu callback should
* return 'success!'.
*/
function skinr_test_hook_dynamic_loading() {
if (skinr_hook('skinr_test', 'skinr_group_info') && function_exists('skinr_test_skinr_group_info')) {
return 'success!';
}
return 'failed!';
}
/**
* Page callback for 'skinr_implements_api' test.
*
* If the hook is dynamically loaded correctly, the menu callback should
* return a list of extensions.
*/
function skinr_test_skinr_implements_api() {
$extensions = skinr_implements_api();
$output = '';
foreach ($extensions as $extension_name => $extension) {
$output .= $extension_name . '<br />';
}
return $output;
}
/**
* Implements hook_system_theme_info().
*
* @see http://drupal.org/node/953336
*/
function skinr_test_system_theme_info() {
$path = drupal_get_path('module', 'skinr_test');
$test_themes = array(
'basetheme',
'subtheme',
'basetheme_other',
'subtheme_other',
);
foreach ($test_themes as $theme) {
$themes["skinr_test_{$theme}"] = $path . "/themes/skinr_test_{$theme}/skinr_test_{$theme}.info";
}
return $themes;
}
//
// Presave hooks
//
/**
* Implements hook_skinr_skin_presave().
*/
function skinr_test_skinr_skin_presave() {
$_SESSION['skinr_test'][] = __FUNCTION__ . ' called';
}
//
// Insert hooks
//
/**
* Implements hook_skinr_skin_insert().
*/
function skinr_test_skinr_skin_insert() {
$_SESSION['skinr_test'][] = __FUNCTION__ . ' called';
}
//
// Load hooks
//
/**
* Implements hook_entity_load().
*/
function skinr_test_entity_load(array $entities, $entity_type_id) {
if ($entity_type_id !== 'skin') {
return;
}
$_SESSION['skinr_test'][] = __FUNCTION__ . ' called';
}
//
// Update hooks
//
/**
* Implements hook_skinr_skin_update().
*/
function skinr_test_skinr_skin_update() {
$_SESSION['skinr_test'][] = __FUNCTION__ . ' called';
}
//
// Delete hooks
//
/**
* Implements hook_entity_delete().
*/
function skinr_test_entity_delete(Drupal\Core\Entity\EntityInterface $entity) {
if ($entity
->getEntityTypeId() !== 'skin') {
return;
}
$_SESSION['skinr_test'][] = __FUNCTION__ . ' called';
}
Functions
Name | Description |
---|---|
skinr_test_custom_theme | Implements hook_custom_theme(). |
skinr_test_entity_delete | Implements hook_entity_delete(). |
skinr_test_entity_load | Implements hook_entity_load(). |
skinr_test_hook_dynamic_loading | Page callback for 'hook dynamic loading' test. |
skinr_test_menu | Implements hook_menu(). |
skinr_test_skinr_current_theme | Page callback for default 'skinr_current_theme' test. |
skinr_test_skinr_current_theme_admin_exclude | Page callback for 'skinr_current_theme' test. |
skinr_test_skinr_current_theme_callback | Theme callback for skinr-test/current-theme-hook-custom-theme. |
skinr_test_skinr_implements_api | Page callback for 'skinr_implements_api' test. |
skinr_test_skinr_skin_insert | Implements hook_skinr_skin_insert(). |
skinr_test_skinr_skin_presave | Implements hook_skinr_skin_presave(). |
skinr_test_skinr_skin_update | Implements hook_skinr_skin_update(). |
skinr_test_system_theme_info | Implements hook_system_theme_info(). |