'textfield', '#title' => t('Maximum number of block agenda'), '#default_value' => variable_get('agenda_block_max_list_count', 3), '#description' => t('The maximum number of items listed in the agenda block'), '#required' => FALSE, '#weight' => 0 ); return $form; } function agenda_help($section) { switch ($section) { case 'admin/modules#description': return t('Enables the creation of agenda pages '); case 'node/add#agenda': return t('Un évènement. Ajouter un évènement à la page.'); } } function agenda_perm() { return array('Ajouter évènement', 'éditer évènement'); } function agenda_access($op, $node) { global $user; if ($op == 'create') { return user_access('create agenda'); } else if ($op == 'view') { return user_access('access content'); } else if ($op == 'update' || $op == 'delete') { if($user->uid == $node->uid || user_access('edit agenda')) { return true; } else { return false; } } else { return false; } } function agenda_menu($may_cache) { $items = array(); if ($may_cache) { $items[] = array('path' => 'agenda/add', 'title' => t('Add a new agenda'), 'access' => node_access('create', 'agenda'), 'type' => MENU_CALLBACK, 'callback arguments' => array('agenda'), 'callback' => 'node_add'); $items[] = array('path' => 'agenda', 'title' => t('agenda'), 'access' => user_access('access content'), 'type' => MENU_CALLBACK, 'callback' => 'agenda_all'); $items[] = array('path' => 'agenda_datevenement', 'title' => t('datevenement du depute'), 'access' => user_access('access content'), 'type' => MENU_CALLBACK, 'callback' => 'agenda_datevenement'); $items[] = array('path' => 'agenda_lieu', 'title' => t('lieu du depute'), 'access' => user_access('access content'), 'type' => MENU_CALLBACK, 'callback' => 'agenda_lieu'); } else { if(is_numeric(arg(1))) { $node = node_load(arg(1)); $items[] = array('path' => 'agenda/' . arg(1), 'title' => t('View an agenda'), 'access' => node_access('view', $node), 'type' => MENU_CALLBACK, 'callback' => 'node_page'); $items[] = array('path' => 'agenda/' . arg(1) . '/view', 'title' => t('View an agenda'), 'access' => node_access('view', $node), 'type' => MENU_CALLBACK, 'callback' => 'node_page'); $items[] = array('path' => 'agenda/' . arg(1) . '/edit', 'title' => t('Edit an agenda'), 'access' => node_access('edit', $node), 'type' => MENU_CALLBACK, 'callback' => 'node_page'); $items[] = array('path' => 'agenda/' . arg(1) . '/delete', 'access' => node_access('delete', $node), 'type' => MENU_CALLBACK, 'callback' => 'node_delete_confirm'); } } return $items; } function agenda_link($type, $node = NULL, $teaser = FALSE) { global $user; $links = array(); if($type == 'node' && $node->type == 'agenda') { if (node_access('create', 'agenda')) { $links[] = l(t('Add'), "node/add/agenda", array('title' => t('Add a new agenda'))); } if (node_access('update', $node)) { $links[] = l(t('Edit'), "agenda/$node->nid/edit", array('title' => t('Edit agenda ') . $node->title)); $links[] = l(t('Delete'), "agenda/$node->nid/delete", array('title' => t('Delete agenda ') . $node->title)); } } return $links; } function agenda_form(&$node) { $form['title'] = array('#type' => 'textfield', '#title' => t('title'), '#default_value' => $node->title, '#description' => t('nom du évènement'), '#required' => TRUE, '#weight' => 1 ); $form['datevenement'] = array('#type' => 'textfield', '#title' => t('datevenement'), '#default_value' => $node->datevenement, '#description' => t('datevenement du évènement'), '#required' => TRUE, '#weight' => 2 ); $form['lieu'] = array('#type' => 'textfield', '#title' => t('lieu'), '#default_value' => $node->lieu, '#description' => t('lieu du évènement'), '#required' => TRUE, '#weight' => 3 ); $form['body'] = array('#type' => 'textarea', '#title' => t('body'), '#default_value' => $node->body, '#description' => t('Contenu de la page du évènement!'), '#required' => TRUE, '#weight' => 10 ); return $form; } function agenda_load(&$node) { $additions = db_fetch_object(db_query('SELECT * FROM {agenda} ' . 'WHERE nid = %d', $node->nid)); return $additions; } function agenda_insert($node) { db_query("INSERT INTO {agenda} (nid, title, datevenement, lieu, body) ". "VALUES (%s, '%s', '%s', '%s', '%s')", $node->nid, $node->title, $node->datevenement, $node->lieu, $node->body); } function agenda_update($node) { $sql .= 'UPDATE agenda SET nid = '; $sql .= $node->nid; $sql .= ', title = \''; $sql .= strtr($node->title, "'", "\'"); $sql .= '\', datevenement = \''; $sql .= $node->datevenement; $sql .= '\', lieu = \''; $sql .= strtr($node->lieu, "'", "\'"); $sql .= '\', body = \''; $sql .= strtr($node->body, "'", "\'"); $sql .= '\' WHERE agenda.nid ='; $sql .= $node->nid; $sql .= ' LIMIT 1' ; db_query($sql); } function agenda_delete($node) { db_query('DELETE FROM {agenda} WHERE nid = %d', $node->nid); } function agenda_cron() { $queryResult = db_query("update {node} AS n INNER JOIN {agenda} AS a " . "ON n.nid = a.nid SET n.status = 0 WHERE n.type='agenda' "); } function agenda_nodeapi(&$node, $op) { switch ($op) { case 'update index': if ($node->type == 'agenda') { $text = ''; $q = db_query('SELECT a.title, a.datevenement, a.lieu FROM node n LEFT JOIN agenda a ' . 'ON n.nid = a.nid WHERE n.nid = %d', $node->nid); if ($r = db_fetch_object($q)) { $text = $r->title . ', '; $text = $r->datevenement . ', '; $text = $r->lieu . ','; $text = $r->body; } return $text; } } } function agenda_node_info() { return array('agenda' => array('name' => 'agenda', 'base' => 'agenda')); } //page évènement function agenda_all() { $sql .= 'SELECT d.nid, d.title, d.datevenement, d.lieu, d.body, f.filepath '; $sql .= 'FROM agenda d, files f, image_attach ia '; $sql .= 'WHERE d.nid = ia.nid '; $sql .= '&& ia.iid = f.nid '; $sql .= 'GROUP BY nid '; $sql .= 'ORDER BY d.title ASC '; $tags = ""; $limit = 3; //éléments par pages $element = 0; $result = pager_query($sql, $limit, $element, 'SELECT COUNT(nid) FROM {agenda}'); while ($items = db_fetch_object($result)) { $rows[] = array( $items->nid, $items->title, $items->datevenement, $items->lieu, $items->body, $items->filepath ); } drupal_set_title(check_plain($node->title)); $output .= '
'), $limit, $element, 1, NULL));
$output .= '
'), $limit, $element, 1, NULL));
$output .= '
'), $limit, $element, 1, NULL));
$output .= '
'), $limit, $element, 1, NULL));
$output .= '