|
@@ -163,6 +163,12 @@ function fgcf_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
|
|
|
'#value' => theme('fgcf_thematiques', $cats),
|
|
|
);
|
|
|
|
|
|
+ // Add 'Subscribe' button.
|
|
|
+ $node->content['fgcf_subscribe'] = array(
|
|
|
+ '#value' => drupal_get_form('fgcf_subscribe_form', $node),
|
|
|
+ '#weight' => -100,
|
|
|
+ );
|
|
|
+
|
|
|
$bc = drupal_get_breadcrumb();
|
|
|
$bc[] = l(t('Catalogue formations'), 'fgcf');
|
|
|
$bc[] = l(t('Thématiques'), 'fgcf/thematique');
|
|
@@ -323,6 +329,69 @@ function theme_fgcf_thematiques($terms) {
|
|
|
return $ret;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * Subscribe form displayed on 'formations' nodes.
|
|
|
+ */
|
|
|
+function fgcf_subscribe_form($form_state, $node) {
|
|
|
+ $form['node'] = array(
|
|
|
+ '#type' => 'value',
|
|
|
+ '#value' => $node,
|
|
|
+ );
|
|
|
+ $form['subscribe'] = array(
|
|
|
+ '#type' => 'submit',
|
|
|
+ '#value' => t('Inscrivez-moi'),
|
|
|
+ );
|
|
|
+
|
|
|
+ return $form;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Submit handler for the subscribe form.
|
|
|
+ *
|
|
|
+ * Send an email to site administrators.
|
|
|
+ */
|
|
|
+function fgcf_subscribe_form_submit($form, &$form_state) {
|
|
|
+ global $user;
|
|
|
+
|
|
|
+ // Prevent flooding.
|
|
|
+ if (flood_is_allowed('fgcg_subscribe', 10)) {
|
|
|
+ $to = variable_get('site_mail', ini_get('sendmail_from'));
|
|
|
+ $params = array(
|
|
|
+ 'account' => $user,
|
|
|
+ 'node' => $form_state['values']['node'],
|
|
|
+ );
|
|
|
+
|
|
|
+ $message = drupal_mail('fgcf', 'subscribe', $to, language_default(), $params);
|
|
|
+ if ($message['result']) {
|
|
|
+ drupal_set_message(t("Votre demande a été transmise aux administrateurs du site."));
|
|
|
+ flood_register_event('fgcg_subscribe');
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implemanbtation of hook_mail().
|
|
|
+ */
|
|
|
+function fgcf_mail($key, &$message, $params) {
|
|
|
+ $language = $message['language'];
|
|
|
+
|
|
|
+ switch ($key) {
|
|
|
+ case 'subscribe':
|
|
|
+ // Generate base replacement strings.
|
|
|
+ $variables = user_mail_tokens($params['account'], $language);
|
|
|
+ // Add our own.
|
|
|
+ $node = $params['node'];
|
|
|
+ $variables['@node_title'] = $node->title;
|
|
|
+ $variables['@node_reference'] = $node->field_fgcf_fiche_reference[0]['value'];
|
|
|
+ $variables['!node_uri'] = url('node/' . $node->nid, array('absolute' => TRUE));
|
|
|
+ $variables['!user_ip'] = ip_address();
|
|
|
+
|
|
|
+ $message['subject'] = t('[France-galop] Inscription à une formation', $variables, $language->language);
|
|
|
+ $message['body'][] = t("Formation: @node_reference - @node_title (!node_uri)\nUtilisateur: !username\nMail: !mailto\nIP de connection: !user_ip", $variables, $language->language);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* Shared filter form for course lists.
|
|
|
*
|