You are here

function availability_calendars_get_settings in Availability Calendars 6.2

Same name and namespace in other branches
  1. 7.2 availability_calendars.inc \availability_calendars_get_settings()

Utility function to get settings related to nodes or administration.

Parameters

string $scope type of settings to get: node or system:

int|NULL $arg nid:

Return value

object An object with all settings for the given scope

7 calls to availability_calendars_get_settings()
availability_calendars_admin_settings in ./availability_calendars.admin.inc
Retrieve form callback for the admin/settings/availability-calendars/settings page.
availability_calendars_admin_settings_submit in ./availability_calendars.admin.inc
Form submit callback for the admin_settings form
availability_calendars_edit_calendar in ./availability_calendars.node.inc
Show the availability calendar. (callback for path availability-calendars/%)
availability_calendars_handler_filter_availability::query_available in ./availability_calendars_handler_filter_availability.inc
* Add where clauses to the query to filter on availability.
availability_calendars_node_edit_form_alter in ./availability_calendars.node.inc
Alters the form for node edit forms for supported content types.

... See full list

File

./availability_calendars.inc, line 71
General helper methods for Availability Calendars, like database access and settings.

Code

function availability_calendars_get_settings($scope = NULL, $arg = NULL) {

  // Default settings
  $firststatus = reset(availability_calendars_get_states());
  $settings = array(
    'startofweek' => 1,
    'showteaser' => 1,
    'showkey' => 1,
    'showweeknotes' => 1,
    'firstletter' => 0,
    'hideold' => 0,
    'defaultstatus' => $firststatus['class'],
    'monthcount' => 12,
    'editormonthcount' => 18,
    'splitday' => 0,
    'nodeview' => variable_get('availability_calendars_settings_system_nodeview', 1),
    'pernodeoverride' => variable_get('availability_calendars_settings_system_pernodeoverride', 0),
  );

  // Override and extend with system wide settings.
  $settings = array_merge($settings, variable_get('availability_calendars_settings_system', array()));
  $settings['contenttypes'] = variable_get('availability_calendars_settings_content_types', array());

  // Override with node specific settings if we are in an existing node scope and allow to override per node.
  if ($settings['pernodeoverride'] && $scope === 'node' && $arg !== NULL) {
    $settings = array_merge($settings, variable_get('availability_calendars_settings_node_' . $arg, array()));
  }
  return (object) $settings;
}