groups/modules/groups/groups_ambassador/groups_ambassador.module
Tom Fifield 8b7a241d51 Fix Ambassador Page wording
Wording tweaks to make the ambassador page more accessible to its
primary audience - user group leaders and community members.

Change-Id: I98481c140c6686ca814780631d4845a2aff5ba17
2015-09-15 17:15:01 +08:00

156 lines
4.5 KiB
Plaintext

<?php
/**
* @file
* Code for the Groups Ambassador feature.
*/
include_once 'groups_ambassador.features.inc';
/**
* Implements hook_menu()
*/
function groups_ambassador_menu() {
$items['ambassador-program/ask'] = array(
'title' => 'Ask the Ambassadors',
'page callback' => 'drupal_get_form',
'page arguments' => array('groups_ambassador_ask_form'),
'access callback' => 'user_is_logged_in',
'file' => 'includes/ask.form.inc',
);
$items['ambassador-program/apply'] = array(
'title' => 'OpenStack Ambassador Application',
'page callback' => 'drupal_get_form',
'page arguments' => array('groups_ambassador_apply_form'),
'access callback' => 'user_is_logged_in',
'file' => 'includes/apply.form.inc',
);
return $items;
}
/**
* Implements hook_block_info()
*/
function groups_ambassador_block_info() {
$blocks['groups_ambassador_page_banner'] = array(
'info' => t('Groups Ambassador Page Banner block'),
'cache' => DRUPAL_CACHE_GLOBAL,
);
$blocks['groups_ambassador_roleof'] = array(
'info' => t('Groups Ambassador Role of Ambassadors block'),
'cache' => DRUPAL_CACHE_GLOBAL,
);
$blocks['groups_ambassador_selection'] = array(
'info' => t('Groups Ambassador Selection Process block'),
'cache' => DRUPAL_CACHE_GLOBAL,
);
$blocks['groups_ambassador_faq'] = array(
'info' => t('Groups Ambassador FAQ block'),
'cache' => DRUPAL_CACHE_GLOBAL,
);
$blocks['groups_ambassador_ask'] = array(
'info' => t('Groups Ambassador Ask Questions'),
'cache' => DRUPAL_CACHE_GLOBAL,
);
return $blocks;
}
/**
* Implements hook_block_view().
*/
function groups_ambassador_block_view($delta='') {
$block = array();
switch ($delta) {
case 'groups_ambassador_page_banner':
$block['content'] = theme('groups_ambassador_page_banner', array());
$block['subject'] = 'Ambassador Program';
break;
case 'groups_ambassador_roleof':
$block['content'] = theme('groups_ambassador_roleof', array());
$block['subject'] = 'Ambassadors are here to help';
break;
case 'groups_ambassador_selection':
$block['content'] = theme('groups_ambassador_selection', array());
$block['subject'] = 'Are you Ambassador material?';
break;
case 'groups_ambassador_faq':
$block['content'] = theme('groups_ambassador_faq', array());
$block['subject'] = 'Frequently Asked Questions';
break;
case 'groups_ambassador_ask':
$block['content'] = theme('groups_ambassador_ask', array());
$block['subject'] = 'Ask Questions';
break;
}
return $block;
}
/**
* Implements hook_theme()
*/
function groups_ambassador_theme() {
$module_path = drupal_get_path('module', 'groups_ambassador');
$base = array(
'path' => "$module_path/templates",
);
return array(
'groups_ambassador_page_banner' => $base + array(
'template' => 'groups_ambassador_page_banner',
'variables' => array(),
),
'groups_ambassador_roleof' => $base + array(
'template' => 'groups_ambassador_roleof',
'variables' => array(),
),
'groups_ambassador_selection' => $base + array(
'template' => 'groups_ambassador_selection',
'variables' => array(),
),
'groups_ambassador_faq' => $base + array(
'template' => 'groups_ambassador_faq',
'variables' => array(),
),
'groups_ambassador_ask' => $base + array(
'template' => 'groups_ambassador_ask',
'variables' => array(),
),
'groups_ambassador_submission' => $base + array(
'template' => 'groups_ambassador_submission',
'variables' => array(),
),
'groups_ambassador_apply_confirm' => $base + array(
'template' => 'groups_ambassador_apply_confirm',
'variables' => array(),
),
);
}
/**
* Return the list of ambassador profiles.
*/
function _groups_ambassador_get_ambassador_list() {
$uids = array();
$ambassador_role = user_role_load_by_name('ambassador');
$query = 'SELECT DISTINCT(ur.uid)
FROM {users_roles} AS ur
WHERE ur.rid = :rid';
$result = db_query($query, array(':rid' => $ambassador_role->rid));
foreach ($result as $row) {
$uids[] = $row->uid;
}
return user_load_multiple($uids);
}
/**
* Convert standard user array into _privatemsg recipient format.
*/
function groups_ambassador_get_privatemsg_recipients($recipient_users) {
$recipients = array();
foreach ($recipient_users as $user) {
$user->type = 'user';
$user->recipient = $user->uid;
$recipients['user_'.$user->uid] = $user;
}
return $recipients;
}