Add groups ambassador page

The new page enlist the ambassadors and include a lead block for
ambassador program faq. New assets defined by the patch:

groups ambassador module: building blocks
  - profile teaser view mode for user entity
  - groups_ambassador_list view
  - ambassador roles block
  - ambassador selection process block
  - ambassador program faq block

groups ambassador page module: landing pages
  - ambassador program main menu
  - ambassador program page

Change-Id: I0e2d92b74c34baaff7aacb4055e9b6c2f1614e0a
This commit is contained in:
Marton Kiss
2015-08-21 12:35:34 +02:00
parent db39fb91e7
commit b967d01702
20 changed files with 872 additions and 1 deletions

View File

@@ -323,6 +323,19 @@ function groups_update_7116() {
drupal_flush_all_caches();
}
/**
* Enable groups ambassador modules.
*/
function groups_update_7117() {
if (!module_exists('groups_ambassador')) {
module_enable(array('groups_ambassador'));
}
if (!module_exists('groups_ambassador_pages')) {
module_enable(array('groups_ambassador_pages'));
}
drupal_flush_all_caches();
}
/**
* Set language negotiation to URL based.
*/

View File

@@ -307,6 +307,7 @@ function groups_install_additional_modules() {
'groups_pages',
'groups_reports',
'groups_wikis',
'groups_ambassador_pages',
);
// Resolve the dependencies now, so that module_enable() doesn't need
// to do it later for each individual module (which kills performance).

View File

@@ -0,0 +1,96 @@
<?php
/**
* @file
* groups_ambassador.ds.inc
*/
/**
* Implements hook_ds_field_settings_info().
*/
function groups_ambassador_ds_field_settings_info() {
$export = array();
$ds_fieldsetting = new stdClass();
$ds_fieldsetting->api_version = 1;
$ds_fieldsetting->id = 'user|user|profile_teaser';
$ds_fieldsetting->entity_type = 'user';
$ds_fieldsetting->bundle = 'user';
$ds_fieldsetting->view_mode = 'profile_teaser';
$ds_fieldsetting->settings = array(
'name' => array(
'weight' => '1',
'label' => 'hidden',
'format' => 'default',
'formatter_settings' => array(
'link' => '1',
'wrapper' => 'h2',
'class' => '',
),
),
'ds_user_picture' => array(
'weight' => '0',
'label' => 'hidden',
'format' => 'ds_picture_large',
),
);
$export['user|user|profile_teaser'] = $ds_fieldsetting;
return $export;
}
/**
* Implements hook_ds_layout_settings_info().
*/
function groups_ambassador_ds_layout_settings_info() {
$export = array();
$ds_layout = new stdClass();
$ds_layout->api_version = 1;
$ds_layout->id = 'user|user|profile_teaser';
$ds_layout->entity_type = 'user';
$ds_layout->bundle = 'user';
$ds_layout->view_mode = 'profile_teaser';
$ds_layout->layout = 'ds_1col';
$ds_layout->settings = array(
'regions' => array(
'ds_content' => array(
0 => 'ds_user_picture',
1 => 'name',
),
),
'fields' => array(
'ds_user_picture' => 'ds_content',
'name' => 'ds_content',
),
'classes' => array(),
'wrappers' => array(
'ds_content' => 'div',
),
'layout_wrapper' => 'div',
'layout_attributes' => '',
'layout_attributes_merge' => 1,
'layout_link_attribute' => '',
'layout_link_custom' => '',
);
$export['user|user|profile_teaser'] = $ds_layout;
return $export;
}
/**
* Implements hook_ds_view_modes_info().
*/
function groups_ambassador_ds_view_modes_info() {
$export = array();
$ds_view_mode = new stdClass();
$ds_view_mode->api_version = 1;
$ds_view_mode->view_mode = 'profile_teaser';
$ds_view_mode->label = 'Profile teaser';
$ds_view_mode->entities = array(
'user' => 'user',
);
$export['profile_teaser'] = $ds_view_mode;
return $export;
}

View File

@@ -0,0 +1,24 @@
<?php
/**
* @file
* groups_ambassador.features.inc
*/
/**
* Implements hook_ctools_plugin_api().
*/
function groups_ambassador_ctools_plugin_api($module = NULL, $api = NULL) {
if ($module == "ds" && $api == "ds") {
return array("version" => "1");
}
if ($module == "strongarm" && $api == "strongarm") {
return array("version" => "1");
}
}
/**
* Implements hook_views_api().
*/
function groups_ambassador_views_api($module = NULL, $api = NULL) {
return array("api" => "3.0");
}

View File

@@ -0,0 +1,20 @@
name = Groups Ambassador
description = Ambassador related building blocks
core = 7.x
package = Groups - Building Blocks
version = 7.x-1.0
project = groups_ambassador
dependencies[] = ds
dependencies[] = strongarm
dependencies[] = views
features[ctools][] = ds:ds:1
features[ctools][] = strongarm:strongarm:1
features[ctools][] = views:views_default:3.0
features[ds_field_settings][] = user|user|profile_teaser
features[ds_layout_settings][] = user|user|profile_teaser
features[ds_view_modes][] = profile_teaser
features[features_api][] = api:2
features[variable][] = field_bundle_settings_user__user
features[views_view][] = groups_ambassador_list
features_exclude[dependencies][ctools] = ctools
no autodetect = 1

View File

@@ -0,0 +1,85 @@
<?php
/**
* @file
* Code for the Groups Ambassador feature.
*/
include_once 'groups_ambassador.features.inc';
/**
* 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,
);
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'] = 'Role of Ambassadors';
break;
case 'groups_ambassador_selection':
$block['content'] = theme('groups_ambassador_selection', array());
$block['subject'] = 'Selection Process';
break;;
case 'groups_ambassador_faq':
$block['content'] = theme('groups_ambassador_faq', array());
$block['subject'] = 'Frequently Asked 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(),
),
);
}

View File

@@ -0,0 +1,64 @@
<?php
/**
* @file
* groups_ambassador.strongarm.inc
*/
/**
* Implements hook_strongarm().
*/
function groups_ambassador_strongarm() {
$export = array();
$strongarm = new stdClass();
$strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
$strongarm->api_version = 1;
$strongarm->name = 'field_bundle_settings_user__user';
$strongarm->value = array(
'view_modes' => array(
'profile_teaser' => array(
'custom_settings' => TRUE,
),
'full' => array(
'custom_settings' => FALSE,
),
'ical' => array(
'custom_settings' => FALSE,
),
'diff_standard' => array(
'custom_settings' => FALSE,
),
'token' => array(
'custom_settings' => FALSE,
),
),
'extra_fields' => array(
'form' => array(),
'display' => array(
'privatemsg_send_new_message' => array(
'default' => array(
'weight' => '5',
'visible' => TRUE,
),
'profile_teaser' => array(
'weight' => '5',
'visible' => TRUE,
),
),
'summary' => array(
'default' => array(
'weight' => '5',
'visible' => TRUE,
),
'profile_teaser' => array(
'weight' => '5',
'visible' => TRUE,
),
),
),
),
);
$export['field_bundle_settings_user__user'] = $strongarm;
return $export;
}

View File

@@ -0,0 +1,80 @@
<?php
/**
* @file
* groups_ambassador.views_default.inc
*/
/**
* Implements hook_views_default_views().
*/
function groups_ambassador_views_default_views() {
$export = array();
$view = new view();
$view->name = 'groups_ambassador_list';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'users';
$view->human_name = 'Groups Ambassador List';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Ambassadors';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['access']['perm'] = 'access user profiles';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'ds';
$handler->display->display_options['row_options']['view_mode'] = 'profile_teaser';
$handler->display->display_options['row_options']['grouping'] = 0;
$handler->display->display_options['row_options']['advanced'] = 0;
$handler->display->display_options['row_options']['delta_fieldset']['delta_fields'] = array();
$handler->display->display_options['row_options']['grouping_fieldset']['group_field'] = 'users|name';
$handler->display->display_options['row_options']['default_fieldset']['view_mode'] = 'profile_teaser';
/* Field: User: Name */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'users';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['label'] = '';
$handler->display->display_options['fields']['name']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['name']['alter']['ellipsis'] = FALSE;
/* Sort criterion: User: Name */
$handler->display->display_options['sorts']['name']['id'] = 'name';
$handler->display->display_options['sorts']['name']['table'] = 'users';
$handler->display->display_options['sorts']['name']['field'] = 'name';
/* Filter criterion: User: Active */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'users';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = '1';
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: User: Roles */
$handler->display->display_options['filters']['rid']['id'] = 'rid';
$handler->display->display_options['filters']['rid']['table'] = 'users_roles';
$handler->display->display_options['filters']['rid']['field'] = 'rid';
$handler->display->display_options['filters']['rid']['value'] = array(
5 => '5',
);
$translatables['groups_ambassador_list'] = array(
t('Master'),
t('Ambassadors'),
t('more'),
t('Apply'),
t('Reset'),
t('Sort by'),
t('Asc'),
t('Desc'),
);
$export['groups_ambassador_list'] = $view;
return $export;
}

View File

@@ -0,0 +1,24 @@
<h3>When is all this going to happen?</h3>
<p>We hope to have our first tranche of ambassadors entitled by September, so
we can get the program running before the summit. We want to get this done as
soon as manageable, since we expect it to go a long way to solving some
problems that exist right now. </p>
<h3>How much do ambassadors get paid?</h3>
<p>hey are paid in love this is a volunteer position.</p>
<h3>How big will the regions be?</h3>
<p>Initially: big. Were starting with a small number of ambassadors so we can
learn before scaling up. We also want to avoid situations where there are many
ambassadors in one region hence the selection criteria related to geography.
</p>
<h3>How does “Ambassador” relate to “User Group Leader”?</h3>
<p>OpenStack Ambassador and OpenStack User Group leader are two distinct roles, which can of course be fulfilled by one person, but they have distinct responsibilities. The Ambassador may be involved in running their local meetup group, but theyll be chatting to the User Group Leaders in their region about how to best help not taking over!
</p>
<h3>What will the term length be for ambassadors?</h3>
<p>Its a job for life. We believe that the kinds of people who would be eligible to be ambassadors will know when to step down gracefully.
</p>
<h3>How will we manage misuse of the ambassador title?</h3>
<p>This question comes up frequently, but we have faith in our community. Well be applying selection criteria to weed out any undesirables at the beginning, but then keeping in constant contact with the ambassadors to look for early signs things arent going the right way. Community members are also welcome to help us looking out for misuse of the title.
</p>

View File

@@ -0,0 +1,10 @@
<div class="ambassador-page-banner">
<div class="container">
<div class="ambassador-page-title row">
<div class="col-sm-12">
<h1>Ambassador Program</h1>
</div>
</div>
</div>
</div>
<div class="ambassador-banner-image"/>

View File

@@ -0,0 +1,21 @@
<p>Ambassadors will be recognised on the OpenStack website for their
efforts, and provided with support from foundation staff to conduct their
duties. They will also get access to a funding program allowing them to
request funds for activities of impact in their region. Wed also expect
ambassadors to attend the summits, and the Foundation would likely assist
if it wasnt possible for them to be there using their own methods.</p>
<ul>
<li>Act as a liason between multiple user groups, the Foundation, and the
general community, for example:</li>
<ul>
<li>helping to solicit feedback on OpenStack and aggregate it to the global level</li>
<li>promoting key messages into the user communities (eg “ask questions on ask.openstack.org!)</li>
<li>finding people to help localise content</li>
<li>helping onboard new users and contributors</li>
</ul>
<li>Assist in user group best practice from nurturing new groups to cementing the quality of existing ones</li>
<li>Help people find the right people to talk to</li>
<li>Represent the community via speaking and visibility opportunities with the official title</li>
<li>Report on the activities in their region</li>
<li>Be a good leader, wranging activity from others and mobilising the global OpenStack community!</li>
</ul>

View File

@@ -0,0 +1,21 @@
<p>The title is designed to recognise those who are already good leaders
with a proven track record in the community. With the title, new users,
contributors and community members should easily be able to recognize their
Ambassador as a go-to resource. While the role provides inherent
credibility, it also comes with accountability, meaning decisions and
actions made by the Ambassador should benefit the whole community, not just
one person or company.</p>
<p>We believe that the Ambassadors will already be active participants in our community. Think about those people who are already working across multiple user groups, submitting OpenStack mini-events to related conferences, helping onboard new users and contributors, arranging hackfests or just generally going above and beyond in the name of making Openstack great.
</p>
<p>To that end, we intend to ask that potential ambassadors provide some information about themselves, namely:
</p>
<ul><li> Why are you applying to become an OpenStack Ambassador?</li>
<li> How have you participated in the OpenStack Community to date?</li>
<li> What ideas do you have for your community, that you wish you had time or resources to implement?</li></ul>
<p>A small number of ambassadors will then be selected based on a set of criteria:
</p>
<ul>
<li> Community participation track record</li>
<li> Geographical location</li>
<li> Potential impact of selection on community</li>
</ul>

View File

@@ -0,0 +1,14 @@
<?php
/**
* @file
* groups_ambassador_pages.features.inc
*/
/**
* Implements hook_ctools_plugin_api().
*/
function groups_ambassador_pages_ctools_plugin_api($module = NULL, $api = NULL) {
if ($module == "page_manager" && $api == "pages_default") {
return array("version" => "1");
}
}

View File

@@ -0,0 +1,42 @@
<?php
/**
* @file
* groups_ambassador_pages.features.menu_links.inc
*/
/**
* Implements hook_menu_default_menu_links().
*/
function groups_ambassador_pages_menu_default_menu_links() {
$menu_links = array();
// Exported menu link: main-menu_ambassador-program:ambassador-program
$menu_links['main-menu_ambassador-program:ambassador-program'] = array(
'menu_name' => 'main-menu',
'link_path' => 'ambassador-program',
'router_path' => 'ambassador-program',
'link_title' => 'Ambassador Program',
'options' => array(
'attributes' => array(),
'item_attributes' => array(
'id' => '',
'class' => '',
'style' => '',
),
'identifier' => 'main-menu_ambassador-program:ambassador-program',
),
'module' => 'menu',
'hidden' => 0,
'external' => 0,
'has_children' => 0,
'expanded' => 0,
'weight' => 20,
'customized' => 1,
);
// Translatables
// Included for use with string extractors like potx.
t('Ambassador Program');
return $menu_links;
}

View File

@@ -0,0 +1,16 @@
name = Groups Ambassador Pages
description = Provides the panelized Ambassador page feature.
core = 7.x
package = Groups - Landing Pages
version = 7.x-1.0
project = groups_ambassador_pages
dependencies[] = ctools
dependencies[] = features
dependencies[] = groups_ambassador
dependencies[] = groups_homepage
dependencies[] = menu
dependencies[] = page_manager
features[ctools][] = page_manager:pages_default:1
features[features_api][] = api:2
features[menu_links][] = main-menu_ambassador-program:ambassador-program
features[page_manager_pages][] = ambassador_program_page

View File

@@ -0,0 +1,7 @@
<?php
/**
* @file
* Code for the groups_ambassador_pages feature.
*/
include_once 'groups_ambassador_pages.features.inc';

View File

@@ -0,0 +1,213 @@
<?php
/**
* @file
* groups_ambassador_pages.pages_default.inc
*/
/**
* Implements hook_default_page_manager_pages().
*/
function groups_ambassador_pages_default_page_manager_pages() {
$page = new stdClass();
$page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
$page->api_version = 1;
$page->name = 'ambassador_program_page';
$page->task = 'page';
$page->admin_title = 'Ambassador Program Page';
$page->admin_description = '';
$page->path = 'ambassador-program';
$page->access = array();
$page->menu = array(
'type' => 'normal',
'title' => '',
'weight' => '0',
'name' => 'navigation',
'parent' => array(
'type' => 'none',
'title' => '',
'weight' => 0,
'name' => 'navigation',
),
);
$page->arguments = array();
$page->conf = array();
$page->default_handlers = array();
$handler = new stdClass();
$handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
$handler->api_version = 1;
$handler->name = 'page_ambassador_program_page__panel_context_af92c1c7-c287-4b5b-9364-242c0abe81a3';
$handler->task = 'page';
$handler->subtask = 'ambassador_program_page';
$handler->handler = 'panel_context';
$handler->weight = 0;
$handler->conf = array(
'title' => 'Landing page',
'no_blocks' => FALSE,
'pipeline' => 'ipe',
'body_classes_to_remove' => '',
'body_classes_to_add' => '',
'css_id' => '',
'css' => '',
'contexts' => array(),
'relationships' => array(),
);
$display = new panels_display();
$display->layout = 'openstack_front';
$display->layout_settings = array();
$display->panel_settings = array(
'style_settings' => array(
'default' => NULL,
'middle' => NULL,
'os_top' => NULL,
'os_top_left' => NULL,
'os_top_right' => NULL,
'os_left' => NULL,
'os_center' => NULL,
'os_right' => NULL,
'os_middle' => NULL,
'os_bottom_left' => NULL,
'os_bottom_right' => NULL,
'os_bottom' => NULL,
),
);
$display->cache = array();
$display->title = 'Ambassador Program';
$display->uuid = '6ddb52e2-863d-4d7f-a7b5-5976ca341ccd';
$display->content = array();
$display->panels = array();
$pane = new stdClass();
$pane->pid = 'new-43902f5c-ea84-413e-9c25-8e025ad673f0';
$pane->panel = 'os_bottom';
$pane->type = 'block';
$pane->subtype = 'groups_ambassador-groups_ambassador_faq';
$pane->shown = TRUE;
$pane->access = array();
$pane->configuration = array(
'override_title' => 0,
'override_title_text' => '',
'override_title_heading' => 'h2',
);
$pane->cache = array();
$pane->style = array(
'settings' => NULL,
);
$pane->css = array();
$pane->extras = array();
$pane->position = 0;
$pane->locks = array();
$pane->uuid = '43902f5c-ea84-413e-9c25-8e025ad673f0';
$display->content['new-43902f5c-ea84-413e-9c25-8e025ad673f0'] = $pane;
$display->panels['os_bottom'][0] = 'new-43902f5c-ea84-413e-9c25-8e025ad673f0';
$pane = new stdClass();
$pane->pid = 'new-4c8a52b1-d3ec-45ee-8950-efd18888858f';
$pane->panel = 'os_middle';
$pane->type = 'views';
$pane->subtype = 'groups_ambassador_list';
$pane->shown = TRUE;
$pane->access = array();
$pane->configuration = array(
'override_pager_settings' => 0,
'use_pager' => 0,
'nodes_per_page' => '0',
'pager_id' => '0',
'offset' => '0',
'more_link' => 0,
'feed_icons' => 0,
'panel_args' => 0,
'link_to_view' => 0,
'args' => '',
'url' => '',
'display' => 'default',
'override_title' => 1,
'override_title_text' => 'Ambassadors',
'override_title_heading' => 'h2',
);
$pane->cache = array();
$pane->style = array(
'settings' => NULL,
);
$pane->css = array();
$pane->extras = array();
$pane->position = 0;
$pane->locks = array();
$pane->uuid = '4c8a52b1-d3ec-45ee-8950-efd18888858f';
$display->content['new-4c8a52b1-d3ec-45ee-8950-efd18888858f'] = $pane;
$display->panels['os_middle'][0] = 'new-4c8a52b1-d3ec-45ee-8950-efd18888858f';
$pane = new stdClass();
$pane->pid = 'new-b014ccc9-fa9c-488b-9a83-6238f145fc53';
$pane->panel = 'os_top';
$pane->type = 'block';
$pane->subtype = 'groups_ambassador-groups_ambassador_page_banner';
$pane->shown = TRUE;
$pane->access = array();
$pane->configuration = array(
'override_title' => 1,
'override_title_text' => '<none>',
'override_title_heading' => 'h2',
);
$pane->cache = array();
$pane->style = array(
'settings' => NULL,
);
$pane->css = array();
$pane->extras = array();
$pane->position = 0;
$pane->locks = array();
$pane->uuid = 'b014ccc9-fa9c-488b-9a83-6238f145fc53';
$display->content['new-b014ccc9-fa9c-488b-9a83-6238f145fc53'] = $pane;
$display->panels['os_top'][0] = 'new-b014ccc9-fa9c-488b-9a83-6238f145fc53';
$pane = new stdClass();
$pane->pid = 'new-16f9cb5c-04fe-4619-a853-8edaa6a3af42';
$pane->panel = 'os_top_left';
$pane->type = 'block';
$pane->subtype = 'groups_ambassador-groups_ambassador_roleof';
$pane->shown = TRUE;
$pane->access = array();
$pane->configuration = array(
'override_title' => 0,
'override_title_text' => '',
'override_title_heading' => 'h2',
);
$pane->cache = array();
$pane->style = array(
'settings' => NULL,
);
$pane->css = array();
$pane->extras = array();
$pane->position = 0;
$pane->locks = array();
$pane->uuid = '16f9cb5c-04fe-4619-a853-8edaa6a3af42';
$display->content['new-16f9cb5c-04fe-4619-a853-8edaa6a3af42'] = $pane;
$display->panels['os_top_left'][0] = 'new-16f9cb5c-04fe-4619-a853-8edaa6a3af42';
$pane = new stdClass();
$pane->pid = 'new-429e267d-dffb-46aa-bfe4-26892f2b3943';
$pane->panel = 'os_top_right';
$pane->type = 'block';
$pane->subtype = 'groups_ambassador-groups_ambassador_selection';
$pane->shown = TRUE;
$pane->access = array();
$pane->configuration = array(
'override_title' => 0,
'override_title_text' => '',
'override_title_heading' => 'h2',
);
$pane->cache = array();
$pane->style = array(
'settings' => NULL,
);
$pane->css = array();
$pane->extras = array();
$pane->position = 0;
$pane->locks = array();
$pane->uuid = '429e267d-dffb-46aa-bfe4-26892f2b3943';
$display->content['new-429e267d-dffb-46aa-bfe4-26892f2b3943'] = $pane;
$display->panels['os_top_right'][0] = 'new-429e267d-dffb-46aa-bfe4-26892f2b3943';
$display->hide_title = PANELS_TITLE_FIXED;
$display->title_pane = '0';
$handler->conf['display'] = $display;
$page->default_handlers[$handler->name] = $handler;
$pages['ambassador_program_page'] = $page;
return $pages;
}

View File

@@ -0,0 +1,117 @@
.pane-groups-ambassador-groups-ambassador-roleof,
.pane-groups-ambassador-groups-ambassador-selection {
p {
line-height: 20px;
margin-top: 5px;
font-size: 16px;
line-height: 1.4;
}
ul {
padding-left: 0px;
list-style: none;
padding-bottom: 1em;
color: #30739C;
li {
padding-bottom: 0.5em;
}
}
ul li:before {
content: "\0BB \020";
}
ul ul li:before {
content: "- \020";
}
ul ul {
padding-left: 20px;
}
}
.view-groups-ambassador-list {
.view-content {
@extend .container;
}
.views-row {
@extend .col-md-4;
@extend .col-lg-3;
@extend .col-xs-6;
}
}
.pane-groups-ambassador-list {
padding-top: 80px;
padding-bottom: 60px;
background: #EDF2F7;
h2.pane-title {
text-align: center;
margin-bottom: 60px;
font-size: 35px;
font-weight: 300;
font-family: "Open Sans",Helvetica,Arial,sans-serif;
color: #445059;
}
h3 {
margin-top: 10px;
margin-bottom: 20px;
a {
color: #2A4E68;
font-family: "Open Sans",Helvetica,Arial,sans-serif;
font-weight: 400;
font-size: 18.2px;
line-height: 20px;
}
}
}
// override of page defaults
.page-ambassador-program {
// reset background color for selection process block
.region-openstack-front-top-second {
background: inherit;
}
// container / row / columns for faq region
.openstack-front-bottom {
@extend .container;
margin-bottom: 70px;
}
// remove original page header
h1.page-header {
display: none;
}
}
// page banner design
.pane-groups-ambassador-groups-ambassador-page-banner {
.ambassador-page-banner {
background: #2A4E68;
}
.ambassador-page-title h1 {
text-align: left;
text-transform: uppercase;
color: #EDF2F7;
font-size: 1em;
padding: 15px;
margin: 0px;
font-family: "Open Sans",Helvetica,Arial,sans-serif;
font-weight: 400;
}
.ambassador-banner-image {
background: url(../images/community-banner.jpg) no-repeat scroll center center / cover transparent;
min-height: 350px;
}
}
.pane-groups-ambassador-groups-ambassador-faq {
h3 {
color: #2A4E68;
font-family: "Open Sans",Helvetica,Arial,sans-serif;
font-weight: 400;
}
p {
margin-bottom: 2em;
}
}

View File

@@ -22,6 +22,7 @@
@import 'partials/event';
@import 'partials/language';
@import 'partials/reports';
@import 'partials/ambassadors';
/* Custom override */

View File

@@ -29,13 +29,15 @@ function openstack_bootstrap_preprocess_page(&$variables) {
*
* Add bleed-margins class to
* - front page
* - ambassador program
*
* and add no-bleed-margins to each other page.
*
* @see html.tpl.php
*/
function openstack_bootstrap_preprocess_html(&$variables) {
if ($variables['is_front']) {
$path_alias = drupal_get_path_alias();
if (($variables['is_front']) || ($path_alias == 'ambassador-program')) {
$variables['classes_array'][] = 'bleed-margins';
} else {
$variables['classes_array'][] = 'no-bleed-margins';