function availability_calendars_get_settings in Availability Calendars 7.2
Same name and namespace in other branches
- 6.2 availability_calendars.inc \availability_calendars_get_settings()
Utility function to get settings related to nodes or administration.
Parameters
object|int|NULL $node: A node object or a nid for if you want node specific settings, NULL (default) otherwise.
Return value
object An object with all settings for the given scope.
12 calls to availability_calendars_get_settings()
- ac_update_check_prerequisites in ac_update/
ac_update.module - ac_update_create_field_instances in ac_update/
ac_update.module - AvailabilityCalendarsNodeEditCalendarFormHandler::__construct in ./
availability_calendars.node.inc - availability_calendars_add_js in ./
availability_calendars.module - Adds required js files, script, and settings.
- availability_calendars_admin_settings in ./
availability_calendars.admin.inc - Retrieve form callback for the admin/config/availability-calendars/settings page.
File
- ./
availability_calendars.inc, line 77 - General helper methods for Availability Calendars, like database access and settings.
Code
function availability_calendars_get_settings($node = NULL) {
// Default settings.
$states = availability_calendars_get_states();
$first_state = reset($states);
$settings = array(
'states' => $states,
'startofweek' => 1,
'showteaser' => 1,
'showkey' => 1,
'showeditlink' => 1,
'showweeknotes' => 1,
'firstletter' => 0,
'hideold' => 0,
'defaultstatus' => $first_state['css_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 ($node != NULL) {
if (!is_object($node)) {
$node = node_load($node);
}
$settings['nid'] = $node->nid;
$settings['calendar_id'] = $node->tnid && $node->tnid != $node->nid ? $node->tnid : $node->nid;
$settings = array_merge($settings, variable_get('availability_calendars_settings_node_' . $settings['calendar_id'], array()));
}
return (object) $settings;
}