'. t("Provides quick notes support for SuiteDesk") .'

'; break; } return $o; } function stormidea_perm() { return array( 'Storm idea: access', 'Storm idea: add', 'Storm idea: delete all', 'Storm idea: delete own', 'Storm idea: edit all', 'Storm idea: edit own', 'Storm idea: view all', 'Storm idea: view own', ); } function stormidea_access($op, $node, $account = NULL) { if (empty($account)) { global $user; $account = $user; } if ($op == 'create') { return user_access('Storm idea: add'); } if (is_numeric($node)) { $node = node_load($node); } if ($op == 'delete') { if (user_access('Storm idea: delete all')) { return TRUE; } elseif (user_access('Storm idea: delete own') && ($account->uid == $node->uid)) { return TRUE; } } if ($op == 'update') { if (user_access('Storm idea: edit all')) { return TRUE; } elseif (user_access('Storm idea: edit own') && ($account->uid == $node->uid)) { return TRUE; } } if ($op == 'view') { if (user_access('Storm idea: view all')) { return TRUE; } elseif (user_access('Storm idea: view own') && ($account->uid == $node->uid)) { return TRUE; } } return FALSE; } function stormidea_access_sql($sql, $where = array()) { if (!user_access('Storm idea: view all')) { global $user; $cond = ''; if (user_access('Storm idea: view own')) { $cond .= 'n.uid = ' . $user->uid; } $where[] = empty($cond) ? '0 = 1' : $cond; } $where[] = "'storm_access' = 'storm_access'"; return storm_rewrite_sql($sql, $where); } function stormidea_storm_rewrite_where_sql_old($query, $primary_table, $account) { static $conds = array(); if (isset($conds[$primary_table][$account->uid])) { return $conds[$primary_table][$account->uid]; } $cond = ''; if (!preg_match("/'storm_access' = 'storm_access'/", $query)) { if (user_access('Storm idea: view all', $account)) { return ''; } if (user_access('Storm idea: view own', $account)) { $cond .= "${primary_table}.uid = " . $account->uid; } if ($cond) { $cond = " WHEN 'stormidea' THEN (SELECT IF($cond, 1, 0) FROM {stormidea} sno1 WHERE sno1.vid = ${primary_table}.vid) "; } else { $cond = " WHEN 'stormidea' THEN 0 "; } } $conds[$primary_table][$account->uid] = $cond; return $cond; } function stormidea_menu() { $items = array(); $items['ideas'] = array( 'title' => 'Reminders', 'description' => 'SuiteDesk ideas', 'page callback' => 'stormidea_list', 'access arguments' => array('Storm idea: access'), 'type' => MENU_NORMAL_ITEM, 'file' => 'stormidea.admin.inc', 'weight' => 7, ); return $items; } function stormidea_theme() { return array( 'stormidea_list' => array( 'file' => 'stormidea.theme.inc', 'arguments' => array('header', 'ideas'), ), 'stormidea_view' => array( 'file' => 'stormidea.theme.inc', 'arguments' => array('node', 'teaser', 'page'), ), ); } function stormidea_node_info() { return array( 'stormidea' => array( 'name' => t('Idea'), 'module' => 'stormidea', 'description' => t("A quick note for SuiteDesk."), 'has_body' => TRUE, ) ); } function stormidea_form(&$node) { $breadcrumb = array(); $breadcrumb[] = l(t('Home'), ''); $breadcrumb[] = l(t('Reminders'), 'ideas'); drupal_set_breadcrumb($breadcrumb); $type = node_get_types('type', $node); $form['title'] = array( '#type' => 'textfield', '#title' => check_plain($type->title_label), '#required' => TRUE, '#default_value' => $node->title, '#weight' => module_exists('content') ? content_extra_field_weight($node->type, 'title') : -16, ); drupal_add_js('$jq(function(){$("#edit-title-1").focus();});', 'inline', 'footer'); return $form; } function stormidea_form_alter(&$form, $form_state, $form_id) { if (isset($form['#node']) && $form['#node']->type == 'stormidea') { if (isset($form['type']['#value']) && $form['type']['#value'] .'_node_form' == $form_id) { $form['buttons']['preview']['#access'] = FALSE; } } } function stormidea_nodeapi($node, $op, $a3 = NULL, $a4 = NULL) { if ($node->type == 'stormidea' && $op == 'insert') { $_REQUEST['destination'] = $_GET['q']; } } function stormidea_view($node, $teaser = FALSE, $page = FALSE) { $breadcrumb = array(); $breadcrumb[] = l(t('Home'), ''); $breadcrumb[] = l(t('Reminders'), 'ideas'); drupal_set_breadcrumb($breadcrumb); return theme('stormidea_view', $node, $teaser, $page); } function stormidea_views_api() { return array( 'api' => 2, 'path' => drupal_get_path('module', 'stormidea'), ); } function stormidea_storm_dashboard_links($type) { $links = array(); if ($type == 'page' || $type == 'block') { $links[] = array( 'theme' => 'storm_dashboard_link', 'title' => t('Reminders'), 'icon' => 'stormidea-item', 'path' => 'ideas', 'params' => array(), 'access_arguments' => 'Storm idea: access', 'node_type' => 'stormidea', 'add_type' => 'stormidea', 'map' => array(), 'weight' => 90, ); } return $links; }