<?php // $Id$ /** * @file * CTools primary module file. * * Most of the CTools tools are in their own .inc files. This contains * nothing more than a few convenience functions and some hooks that * must be implemented in the module file. */ /** * Include ctools .inc files as necessary. */ function ctools_include($file) { static $used = array(); if (!isset($used[$file])) { require_once './' . drupal_get_path('module', 'ctools') . "/includes/$file.inc"; } $used[$file] = TRUE; } /** * Provide the proper path to a CTools image */ function ctools_image_path($image) { return drupal_get_path('module', 'ctools') . '/images/' . $image; } /** * Include views .css files. */ function ctools_add_css($file) { drupal_add_css(drupal_get_path('module', 'ctools') . "/css/$file.css"); } /** * Include views .js files. */ function ctools_add_js($file) { drupal_add_js(drupal_get_path('module', 'ctools') . "/js/$file.js"); } /** * Provide a hook passthrough to included files. * * To organize things neatly, each CTools tool gets its own toolname.$type.inc * file. If it exists, it's loaded and ctools_$tool_$type() is executed. * To save time we pass the $items array in so we don't need to do array * addition. It modifies the array by reference and doesn't need to return it. */ function _ctools_passthrough(&$items, $type = 'theme') { $files = drupal_system_listing('.' . $type . '.inc$', drupal_get_path('module', 'ctools') . '/includes', 'name', 0); foreach ($files as $file) { require_once './' . $file->filename; list($tool) = explode('.', $file->name, 2); $function = 'ctools_' . $tool . '_' . $type; if (function_exists($function)) { $function($items); } } } /** * Implementation of hook_theme(). */ function ctools_theme() { $items = array(); _ctools_passthrough($items, 'theme'); return $items; } /** * Implementation of hook_menu(). */ function ctools_menu() { $items = array(); _ctools_passthrough($items, 'menu'); return $items; } /** * Implementation of hook_ctools_plugin_dierctory() to let the system know * we implement task and task_handler plugins. */ function ctools_ctools_plugin_directory($module, $plugin) { if ($module == 'ctools') { return 'plugins/' . $plugin; } } /** * Get a list of roles in the system. */ function ctools_get_roles() { static $roles = NULL; if (!isset($roles)) { $roles = array(); $result = db_query("SELECT r.rid, r.name FROM {role} r ORDER BY r.name"); while ($obj = db_fetch_object($result)) { $roles[$obj->rid] = $obj->name; } } return $roles; }