uikit_views.module in UIkit Components 8
Same filename and directory in other branches
UIkit Views.
Companion module to the UIkit base theme to provide Views plugins.
File
uikit_views/uikit_views.moduleView source
<?php
use Drupal\Core\Url;
use Drupal\uikit_views\UIkitViews;
use Drupal\views\ViewExecutable;
/**
* @file
* UIkit Views.
*
* Companion module to the UIkit base theme to provide Views plugins.
*/
/**
* Implements hook_help().
*/
function uikit_views_help($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match) {
$output = '';
// Setup translatable string arguments.
$t_args = [
':uikit_drupal' => Url::fromUri('https://www.drupal.org/project/uikit'),
':grid' => Url::fromUri('https://getuikit.com/v2/docs/grid.html'),
':list' => Url::fromUri('https://getuikit.com/v2/docs/list.html'),
':table' => Url::fromUri('https://getuikit.com/v2/docs/table.html'),
// @todo Future plugin style components.
':accordion' => Url::fromUri('https://getuikit.com/v2/docs/accordion.html'),
':block' => Url::fromUri('https://getuikit.com/v2/docs/block.html'),
':cover' => Url::fromUri('https://getuikit.com/v2/docs/cover.html'),
':nav' => Url::fromUri('https://getuikit.com/v2/docs/nav.html'),
':panel' => Url::fromUri('https://getuikit.com/v2/docs/panel.html'),
':slideshow' => Url::fromUri('https://getuikit.com/v2/docs/slideshow.html'),
':subnav' => Url::fromUri('https://getuikit.com/v2/docs/subnav.html'),
];
switch ($route_name) {
case 'help.page.uikit_views':
$output = '<p>' . t('The UIkit Views module provides Views plugins for the <a href=":uikit_drupal" target="_blank">UIkit theme</a>.', $t_args) . '</p>';
$output .= '<h3>' . t('Views plugins') . '</h3>';
$output .= '<p>' . t('UIkit Views style plugins control how a view is displayed. For the most part they are object wrappers around theme templates. Styles UIkit Views provides:') . '</p>';
$output .= '<ul>';
$output .= '<li>' . t('<a href=":grid" target="_blank">Grid</a>', $t_args) . '</li>';
$output .= '<li>' . t('<a href=":list" target="_blank">List</a>', $t_args) . '</li>';
$output .= '<li>' . t('<a href=":table" target="_blank">Table</a>', $t_args) . '</li>';
$output .= '</ul>';
$output .= '<p>' . t('<strong>Note</strong>: The 8.x-2.x branch of the UIkit theme is the only supported branch at this time. Once YOOtheme releases a fully-stable version for UIkit 3 we will provide views styles for the UIkit 8.x-3.x branch.') . '</p>';
break;
}
return $output;
}
/**
* Implements hook_theme().
*/
function uikit_views_theme($existing, $type, $theme, $path) {
return UIkitViews::getThemeHooks();
}
/**
* Implements hook_theme_registry_alter().
*/
function uikit_views_theme_registry_alter(&$theme_registry) {
$module_path = drupal_get_path('module', 'uikit_views');
// Alter the path so we can put templates into separate directories.
$theme_registry['uikit_view_grid']['path'] = $module_path . '/templates/views';
$theme_registry['uikit_view_list']['path'] = $module_path . '/templates/views';
$theme_registry['uikit_view_slideshow']['path'] = $module_path . '/templates/views';
$theme_registry['uikit_view_table']['path'] = $module_path . '/templates/views';
}
/**
* Implements hook_views_preview_info_alter().
*/
function uikit_views_views_preview_info_alter(array &$rows, ViewExecutable $view) {
$style = $view
->getStyle();
$plugin_id = $style
->getPluginId();
// UIkit Components views plugin styles.
$uikit_plugins = [
'uikit_view_grid',
'uikit_view_list',
'uikit_view_table',
];
if (in_array($plugin_id, $uikit_plugins)) {
// Attach the UIkit library so views previews are styled correctly.
$view->element['#attached']['library'][] = "uikit_views/uikit";
}
}
Functions
Name | Description |
---|---|
uikit_views_help | Implements hook_help(). |
uikit_views_theme | Implements hook_theme(). |
uikit_views_theme_registry_alter | Implements hook_theme_registry_alter(). |
uikit_views_views_preview_info_alter | Implements hook_views_preview_info_alter(). |