-
Notifications
You must be signed in to change notification settings - Fork 0
/
ruc.module
98 lines (88 loc) · 3.06 KB
/
ruc.module
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
/**
* @file
*/
/**
* Implements hook_menu().
*
* @return mixed
*/
function ruc_menu() {
$items['svar/%'] = array(
'title' => 'Svar på spørgsmål',
'type' => MENU_NORMAL_ITEM,
'page callback' => 'ruc_get_ansvar_form',
'page arguments' => array(1),
'access callback' => TRUE,
);
return $items;
}
/**
* Implements hook_form_alter().
*/
function ruc_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'answer_node_form' && arg(0) == 'svar') {
$sql = "SELECT
n.nid, f.field_question_value as question
FROM node n
INNER JOIN field_data_field_question f ON f.entity_type = 'node' AND f.bundle = 'question' AND f.entity_id = n.nid
WHERE n.type = 'question' AND n.status = 1
ORDER BY n.created DESC LIMIT 1";
$result = db_query($sql);
$r = $result->fetchObject();
$form['qtext'] = array(
'#markup' => '<h3>' . $r->question . '</h3><br />',
'#weight' => -101
);
$form['field_answer'][LANGUAGE_NONE][0]['#title'] = '';
$form['field_question_reference'][LANGUAGE_NONE]['#default_value'] = arg(1);
$form['field_question_reference'][LANGUAGE_NONE]['#access'] = FALSE;
$form['additional_settings']['#access'] = FALSE;
$form['revision_information']['#access'] = FALSE;
$form['author']['#access'] = FALSE;
$form['options']['#access'] = FALSE;
$form['field_answer'][LANGUAGE_NONE][0]['#description'] = '<strong>Vær opmærksom på, at dit navn og stilling er synlig på dit svar.</strong>';
$form['actions']['#weight'] = 100;
$form['actions']['submit']['#value'] = 'Indsend svar';
}
elseif ($form_id == 'search_block_form') {
$form['search_block_form']['#title'] = '';
$form['search_block_form']['#attributes']['class'][] = 'search-query';
$form['search_block_form']['#attributes']['placeholder'] = 'Søg';
}
}
/**
* Gets answer form.
*
* @return string
*/
function ruc_get_ansvar_form() {
global $user;
if (empty($user->uid)) {
$o = '<h1>Log ind</h1>';
$o .= '<p>For at svare på dette spørgsmål skal du være logget ind.</p>';
$o .= '<p><a href="' . url('user', array('query' => array('destination' => $_GET['q']))) . '" class="greybtn"><span></span>Log ind</a> <a href="' . url('user/register', array('query' => array('destination' => $_GET['q']))) . '" class="greybtn"><span></span>Opret konto</a> <a href="' . url('user/password', array('query' => array('destination' => $_GET['q']))) . '"><span></span>Glemt mine loginoplysninger</a></p>';
return $o;
}
else {
module_load_include('inc', 'node', 'node.pages');
$form = node_add('answer');
$output = drupal_render($form);
return $output;
}
}
/**
* Gets the current object.
*
* @return mixed
*/
function ruc_get_current_question() {
$sql = "SELECT
n.nid, n.title, f.field_question_value as question
FROM node n
INNER JOIN field_data_field_question f ON f.entity_type = 'node' AND f.bundle = 'question' AND f.entity_id = n.nid
WHERE n.type = 'question' AND n.status = 1
ORDER BY n.created DESC LIMIT 1";
$result = db_query($sql);
return $result->fetchObject();
}