<?php

/**
 * @file
 * Define some plugin systems to test CTools plugin includes.
 */

/**
 * Implementation of hook_ctools_plugin_directory().
 */
function ctools_plugin_test_ctools_plugin_directory($module, $plugin) {
  if ($module == 'ctools_plugin_test') {
    return 'plugins/' . $plugin;
  }
}

/**
 * Implements hook_ctools_plugin_type().
 */
function ctools_plugin_test_ctools_plugin_type() {
  return array(
    'extra_defaults' => array(
      'defaults' => array(
        'bool' => TRUE,
        'string' => 'string',
        'array' => array('some value'),
      ),
    ),
    'cached' => array(
      'cache' => TRUE,
      'classes' => array(
        'handler',
      ),
    ),
    'not_cached' => array(
      'cache' => FALSE,
      'classes' => array(
        'handler',
      ),
    ),
    'big_hook_cached' => array(
      'cache' => TRUE,
      'use hooks' => TRUE,
      'classes' => array(
        'handler',
      ),
    ),
    'big_hook_not_cached' => array(
      'cache' => FALSE,
      'use hooks' => TRUE,
      'classes' => array(
        'handler',
      ),
    ),
  );
}

/**
 * Plugin callback.
 *
 * @see ctools_plugin_test_ctools_plugin_type()
 */
function ctools_plugin_test_ctools_plugin_test_big_hook_cached() {
  return array(
    'test1' => array(
      'function' => 'ctools_plugin_test_hook_cached_test',
      'handler' => 'class1',
    ),
  );
}

/**
 * Plugin callback.
 *
 * @see ctools_plugin_test_ctools_plugin_type()
 */
function ctools_plugin_test_ctools_plugin_test_big_hook_not_cached() {
  return array(
    'test1' => array(
      'function' => 'ctools_plugin_test_hook_not_cached_test',
      'class' => 'class1',
    ),
  );
}

/**
 * Callback for the big_hook_cached plugin.
 *
 * @see ctools_plugin_test_ctools_plugin_test_big_hook_cached
 */
function ctools_plugin_test_hook_cached_test() {
}

/**
 * Callback for the big_hook_not_cached plugin.
 *
 * @see ctools_plugin_test_ctools_plugin_test_big_hook_not_cached()
 */
function ctools_plugin_test_hook_not_cached_test() {
}
