You are here

function fboauth_action_load in Facebook OAuth (FBOAuth) 7

Same name and namespace in other branches
  1. 6 fboauth.module \fboauth_action_load()
  2. 7.2 fboauth.module \fboauth_action_load()

Load a Facebook OAuth action.

This function searches available actions provided by hook_fboauth_actions().

3 calls to fboauth_action_load()
fboauth_action_display in ./fboauth.module
Output a Facebook link.
fboauth_action_invoke in includes/fboauth.fboauth.inc
Invoke an action specified through hook_fboauth_action_info().
fboauth_action_link_properties in ./fboauth.module
Return a set of properties suitable for use to a url() call.

File

./fboauth.module, line 195

Code

function fboauth_action_load($action_name) {
  static $actions;

  // Build the list of all available actions.
  if (!isset($actions)) {
    $actions = array();
    module_load_include('inc', 'fboauth', 'includes/fboauth.fboauth');
    foreach (module_implements('fboauth_actions') as $module) {
      if ($module_actions = module_invoke($module, 'fboauth_actions')) {
        foreach ($module_actions as $module_action_name => $module_action) {
          $module_action['name'] = $module_action_name;
          $module_action['module'] = $module;
          $module_action['file path'] = isset($module_action['file path']) ? $module_action['file path'] : drupal_get_path('module', $module);
          $module_action['properties'] = isset($module_action['properties']) ? $module_action['properties'] : array();
          $module_action['connections'] = isset($module_action['connections']) ? $module_action['connections'] : array();
          $module_action['permissions'] = isset($module_action['permissions']) ? $module_action['permissions'] : array();
          $actions[$module_action_name] = $module_action;
        }
      }
    }
    drupal_alter('fboauth_actions', $actions);
  }
  $action = isset($actions[$action_name]) ? $actions[$action_name] : FALSE;

  // Include any necessary includes for the file.
  if ($action) {
    if (isset($action['file'])) {
      $file = './' . $action['file path'] . '/' . $action['file'];
      if (file_exists($file)) {
        include_once $file;
      }
    }
  }
  return $action;
}