-
Notifications
You must be signed in to change notification settings - Fork 0
/
faq_ask.module
86 lines (73 loc) · 2.06 KB
/
faq_ask.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
<?php
/**
* @file
* This module is an add-on to the FAQ module that allows users with the 'ask question'
* permission to create a question which will be queued for an 'expert' to answer.
*/
use Drupal\node\NodeInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Mail\MailInterface;
/**
* Implements hook_permission().
*
* Define the permissions this module uses
*
* @return array
* permissions defined for the faq_ask module
*/
function faq_ask_permission() {
return array(
'ask question' => array(
'title' => t('Ask a question'),
'description' => t('Ask a question to be submitted to an expert.'),
),
'answer question' => array(
'title' => t('Answer a question'),
'description' => t('Answer a question submitted by someone asking.'),
),
);
}
/**
* Implements hook_node_submit()
*
* Handle asking new question and answering.
*
* @param \Drupal\node\NodeInterface $node
* The node entity being updated in response to a form submission.
* @param array $form
* The form being used to edit the node.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The current state of the form.
*/
function faq_ask_node_submit(NodeInterface $node, $form, FormStateInterface $form_state){
$faq_ask_settings = \Drupal::config('faq_ask.settings');
//ask a new question
if(true) {
//register the node as unanswered question
//handle notification to experts
if($faq_ask_settings->get('notify_experts')) {
}
}
//answering the question
else {
//delete the node from unanswered questions
//handle notification to the asker
if($faq_ask_settings->get('notify_asker')) {
}
}
}
/**
* Implements hook_mail().
*
* @param string $key
* An identifier of the mail.
* @param array $message
* An array to be filled in.
* @param array $params
* An array of parameters supplied by the caller of drupal_mail().
*/
function faq_ask_mail($key, &$message, $params) {
// the mail sent when a new quesion is coming in
if ($key == 'newquestion') {
}
}