views_accordion.module in Views Accordion 6
Same filename and directory in other branches
Provide an accordion display style for Views.
This is a placeholder file so drupal will enable the module. All logic is contained in other files located with the module.
File
views_accordion.moduleView source
<?php
/**
* @file
* Provide an accordion display style for Views.
*
* This is a placeholder file so drupal will enable the module. All logic is contained in
* other files located with the module.
*/
/**
* Implementation of hook_help().
*/
function views_accordion_help($path, $arg) {
switch ($path) {
case 'admin/help#views_accordion':
$output = '<p>' . t('The Views Accordion module is a Views style plugin that displays the results in a JQuery accordion style. For more updated information visit the !views_accordion_documentation_page.', array(
'!views_accordion_documentation_page' => l('Views Accordion documentation page', 'http://drupal.org/node/366263', array(
'absolute' => TRUE,
)),
)) . '</p>';
$output .= '<h3>' . t('How to use the plugin') . '</h3>';
$output .= t('<strong>IMPORTANT:</strong> The first field in order of appearance will be the one used as the "header" or "trigger" of the accordion action.') . '<br />';
$output .= '<h4>' . t('Your view must meet these requirements:') . '</h4>';
$output .= '<ul>';
$output .= '<li>' . t('<em>Row style</em> must be set to <em>Fields</em>.') . '</li>';
$output .= '<li>' . t('The header field can not be set to inline.') . '</li>';
$output .= '<li>' . t('If you use a separator for inline fields, be sure to wrap it in a html tag, like a span tag.') . '</li>';
$output .= '</ul>';
$output .= '<h4>' . t('Choose <em>Views Accordion</em> in the <em>Style</em> dialog within your view, which will prompt you to configure:') . '</h4>';
$output .= '<ul>';
$output .= '<li>' . t('<strong>Transition time</strong>: How fast you want the opening and closing of the sections to last for, in seconds. Default is half a second.') . '</li>';
$output .= '<li>' . t('<strong>Start with the first row opened</strong>: Wether or not the first row of the view should start opened when the view is first shown. Uncheck this if you would like the accordion to start closed.') . '</li>';
$output .= '<li>' . t("<strong>Use the module's default styling</strong>: If you disable this, the CSS file in the module's directory (views-accordion.css) will not be loaded. You can uncheck this if you plan on doing your own CSS styling.") . '</li>';
$output .= '</ul>';
$output .= '<h3>' . t('Theming information') . '</h3>';
$output .= t('This module comes with a default style, which you can disable in the options (see above). Files included for your convinence:');
$output .= '<ul><li>' . t('<strong>views-acordion.css</strong> - with how the classes the author thought would be best used, mostly empty.') . '</li>';
$output .= '<li>' . t('<strong>views-view-accordion.tpl.php</strong> - copy/paste into your theme directory - please the comments in this file for requirements/instructions.') . '</li></ul>';
return $output;
}
}
/**
* Implementation of hook_views_api().
*/
function views_accordion_views_api() {
return array(
'api' => 2,
);
}
/**
* Template function for views_accordion style plugin
*
* @param array $vars
* Array of template variables.
*
* The JS file is loaded within render() in views_accordion_style_plugin.inc
*/
function template_preprocess_views_view_accordion(&$vars) {
$view = $vars['view'];
$options = $view->style_plugin->options;
$rows = $vars['rows'];
$vars['classes'] = array();
// Set up striping values.
foreach ($rows as $id => $row) {
$vars['classes'][$id] = 'views-accordion-item accordion-item-' . $id;
$vars['classes'][$id] .= ' accordion-item-' . ($id % 2 ? 'even' : 'odd');
if ($id == 0) {
$vars['classes'][$id] .= ' accordion-item-first';
}
}
$vars['classes'][$id] .= ' accordion-item-last';
$vars['views_accordion_id'] = 'views-accordion-' . $view->name . '-' . $view->current_display;
if ($options['include-style']) {
drupal_add_css(drupal_get_path('module', 'views_accordion') . '/views-accordion.css');
}
}
/**
* Only returns true the first time it's called for an id
*
* @param $id
* A uniqe view id.
*
* @return bool
* TRUE for the first time called for a given $id
* FALSE for each time after that
*/
function theme_views_accordion_display_item($id) {
static $display = array();
if (!isset($display[$id])) {
$display[$id] = FALSE;
}
$output = $display[$id];
if ($display[$id] == FALSE) {
$display[$id] = TRUE;
}
return $output;
}
Functions
Name | Description |
---|---|
template_preprocess_views_view_accordion | Template function for views_accordion style plugin |
theme_views_accordion_display_item | Only returns true the first time it's called for an id |
views_accordion_help | Implementation of hook_help(). |
views_accordion_views_api | Implementation of hook_views_api(). |