View source
<?php
include_once 'commons_polls.features.inc';
function commons_polls_strongarm_alter(&$items) {
foreach (array(
'commons_radioactivity_entity_types',
'commons_groups_entity_types',
) as $key) {
if (isset($items[$key])) {
$items[$key]->value['node']['poll'] = 1;
}
}
}
function commons_polls_form_node_form_alter(&$form, &$form_state, $form_id) {
$node = $form['#node'];
list(, , $bundle) = entity_extract_ids('node', $node);
if ($bundle == 'poll' && empty($node->nid)) {
drupal_set_title(t('Create a poll'));
}
}
function commons_polls_form_commons_bw_partial_node_form_alter(&$form, &$form_state) {
if (empty($form['#entity']) || $form['#entity']->type != 'poll') {
return;
}
$form['title']['#markup'] = t('Create a poll');
$language = $form['body']['#language'];
$form['body'][$language][0]['#title_display'] = 'invisible';
$form['body'][$language][0]['#required'] = TRUE;
$form['body'][$language][0]['#placeholder'] = t('Enter a question, e.g. "What is your favorite color?"');
$form['body'][$language][0]['#resizable'] = FALSE;
$form['body']['#attributes']['class'][] = 'trigger-field';
foreach (array(
'field_media',
'field_image',
'og_group_ref',
'choice_wrapper',
'actions',
) as $field) {
if (isset($form[$field])) {
$form[$field]['#attributes']['class'][] = 'hideable-field';
}
}
$form['choice_wrapper'] = array(
'#tree' => FALSE,
'#weight' => -4,
'#prefix' => '<div class="hideable-field clearfix" id="poll-choice-wrapper">',
'#suffix' => '</div>',
);
$form['choice_wrapper']['choice'] = array(
'#prefix' => '<div id="poll-choices">',
'#suffix' => '</div>',
'#theme' => 'poll_choices',
);
for ($delta = 0; $delta < 10; $delta++) {
$form['choice_wrapper']['choice'][$delta] = _poll_choice_form($delta, NULL, '', 0, $delta);
if ($delta >= 2) {
$form['choice_wrapper']['choice'][$delta]['#attributes'] = array(
'class' => array(
'hidden',
),
);
}
}
$form['choice_wrapper']['add_choice'] = array(
'#markup' => '<a href="#" id="add-choice">' . t('Add more choices') . '</a>',
);
$form['#attached']['js'][] = drupal_get_path('module', 'commons_polls') . '/js/commons_polls_partial_form.js';
$form['actions']['submit']['#value'] = t('Create');
$form['#pre_render'][] = 'commons_polls_form_commons_bw_partial_node_form_after_build';
array_unshift($form['#submit'], 'commons_polls_form_commons_bw_partial_node_form_submit');
}
function commons_polls_form_commons_bw_partial_node_form_submit(&$form, &$form_state) {
$node = $form['#entity'];
$node->choice = $form_state['values']['choice'];
$node->runtime = 0;
$node->active = TRUE;
}
function commons_polls_form_commons_bw_partial_node_form_after_build($form) {
$language = $form['body']['#language'];
$form['body'][$language][0]['#pre_render'] = array();
$form['body'][$language][0]['format']['#access'] = FALSE;
$form['body'][$language][0]['value']['#rows'] = 3;
return $form;
}
function commons_polls_views_pre_render(&$view) {
if (empty($view->args[0]) && $view->name == 'commons_bw_polls') {
$view->display_handler->handlers['empty']['area']->options['content'] = t('No polls have been created.');
}
}