123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- /**
- * @file
- * Creates a location context.
- */
- /**
- * Implement hook_[context_name]_ctools_contexts().
- */
- function location_location_ctools_contexts() {
- return array(
- 'title' => t('Location'),
- 'description' => t('Location'),
- 'context' => 'location_context_create_location',
- 'context name' => 'location',
- 'settings form' => 'location_context_location_settings_form',
- 'keyword' => 'location',
- 'context name' => 'location',
- 'convert list' => 'location_context_location_convert_list',
- 'convert' => 'location_context_location_convert',
- );
- }
- /**
- * Create a context, either from configuration or an argument on the URL.
- *
- * @param $empty
- * If true, just return an empty context.
- * @param $data
- * If from settings form, a form values array. If from argument, a string.
- * @param $conf
- * TRUE if the $data is coming from admin configuration, FALSE if it's
- * from a URL arg.
- *
- * @return
- * a Context object
- */
- function location_context_create_location($empty, $data = NULL, $conf = FALSE) {
- $context = new ctools_context('location');
- $context->plugin = 'location';
- if ($empty) {
- return $context;
- }
- if ($conf) {
- $lid = is_array($data) && isset($data['lid']) ? $data['lid'] : (is_object($data) ? $data->lid : 0);
- if (is_array($data) || !empty($reload)) {
- $nid = $data['nid'];
- $data = location_load_location($lid);
- $data['nid'] = $nid;
- }
- }
- if (!empty($data)) {
- $context->data = $data;
- $context->title = $data['city'];
- $context->argument = $data['lid'];
- return $context;
- }
- }
- function location_settings_form($conf, $external = FALSE) {
- return array();
- }
- /**
- * Provide a list of ways that this context can be converted to a string.
- */
- function location_context_location_convert_list() {
- $fields = location_field_names();
- $fields['country_name'] = t('Country name');
- $fields['province_name'] = t('State/Province name');
- return $fields;
- }
- /**
- * Convert a context into a string.
- */
- function location_context_location_convert($context, $type) {
- switch ($type) {
- case 'name':
- case 'street':
- case 'additional':
- case 'city':
- case 'province':
- case 'postal_code':
- case 'country':
- case 'latitude':
- case 'longitude':
- case 'province_name':
- case 'country_name':
- if (isset($context->data[$type])) {
- return check_plain($context->data[$type]);
- }
- default:
- return t('Unknown location keyword');
- }
- }
|