array( 'title' => t('Access default users list'), 'description' => t('Access default users list.'), ), 'access default UC roles expiration list' => array( 'title' => t('access default UC roles expiration list'), 'description' => t('access default UC roles expiration list.'), ), 'access duplicate mails list' => array( 'title' => t('access duplicate mails list'), 'description' => t('access duplicate mails list.'), ), ); } /** * Implements hook_menu(). */ function materio_admin_menu() { $items['admin/users/duplicatemails'] = array( 'title' => "Duplicate mails", 'page callback' => 'materio_duplicatemails', 'access callback' => 'user_access', 'access arguments' => array('access duplicate mails list'), 'type' => MENU_LOCAL_TASK ); if(module_exists('simplenews')){ $cats = simplenews_category_list(); // dsm($cats, 'cats'); foreach ($cats as $tid => $name) { // $items['node/%node/simplenews'] = array( // 'title' => 'Newsletter', // 'type' => MENU_LOCAL_TASK, // 'access callback' => 'simplenews_node_tab_access', // 'access arguments' => array(1), // 'page callback' => 'simplenews_node_tab_page', // 'page arguments' => array(1), // 'context' => MENU_LOCAL_TASK, // 'file' => 'includes/simplenews.admin.inc', // 'weight' => 2, // ); $items['node/add/simplenews/'.$tid] = array( 'title' => $name, 'title callback' => 'check_plain', 'page callback' => 'node_add', 'page arguments' => array('simplenews'), 'access callback' => 'node_access', 'access arguments' => array('create', 'simplenews'), 'file path' => drupal_get_path('module', 'node'), 'file' => 'node.pages.inc', ); } } return $items; } function materio_duplicatemails(){ $mails = db_query('SELECT mail FROM {users} GROUP BY mail HAVING count(mail) > 1')->fetchCol(); // Bail out early if there are no duplicates. if (!$mails) { return t('All accounts have unique email addresses.'); } // Grab all the user data for accounts with addresses identified as // duplicates. This is a little convoluted, but it lets us grab all the user // data in one shot. $uids = db_select('users', 'u') ->fields('u', array('uid')) ->condition('mail', $mails, 'IN') ->orderBy('access', 'DESC') ->execute() ->fetchCol(); $duplicate_users = user_load_multiple($uids); $duplicate_mails = array(); foreach ($duplicate_users as $duplicate_user) { $duplicate_mails[$duplicate_user->mail][] = $duplicate_user; } // Turn the data we've got into markup. $output = t('Accounts with duplicate email address:') . '
'; $output = ""; return $output; } /** * Implements hook_menu_alter(). */ function materio_admin_menu_alter(&$items){ // dsm($items, 'menu alter items'); if(isset($items['admin/people'])){ $items['admin/people']['access arguments'] = array('access default users list'); // dsm($items['admin/people']); } if(isset($items['admin/people/expiration'])){ $items['admin/people/expiration']['access arguments'] = array('access default UC roles expiration list'); // dsm($items['admin/people/expiration']); } # deactivate default home page $items['node']['access callback'] = FALSE; // if(isset($items['admin/content/add/simplenews'])){ // delete($items['admin/content/add/simplenews']); // $cats = simplenews_category_list(); // dsm($cats, 'cats'); // foreach ($cats as $tid => $name) { // $items['admin/content/add/simplenews/'.$tid] // } // } } /** * Implements hook_menu_local_tasks_alter(). */ function materio_admin_menu_local_tasks_alter(&$data, $router_item, $root_path) { if ($root_path == 'admin/people/simplenews') { $item = menu_get_item('admin/content/simplenews'); if ($item['access']) { $item['title'] = 'Go to '.$item['title']; $data['actions']['output'][] = array( '#theme' => 'menu_local_task', '#link' => $item, ); } } if ($root_path == 'admin/content/simplenews') { $cats = simplenews_category_list(); foreach ($cats as $tid => $name) { $item = menu_get_item('node/add/simplenews/'.$tid); $item['title'] = 'Add new '.$name; if ($item['access']) { $data['actions']['output'][] = array( '#theme' => 'menu_local_task', '#link' => $item, ); } } $item = menu_get_item('admin/people/simplenews'); if ($item['access']) { $item['title'] = 'Go to '.$item['title']; $data['actions']['output'][] = array( '#theme' => 'menu_local_task', '#link' => $item, ); } } } /** * Implements hook_form_alter(). */ function materio_admin_form_simplenews_node_form_alter(&$form, &$form_state, $form_id) { // dsm($form_id, '$form_id'); // dsm($form_state, '$form_state'); // dsm($form, '$form'); // dsm($_GET, 'GET'); if(!$form['nid']['#value']){ $cats = simplenews_category_list(); $cats_tids = array_keys($cats); $q = parse_url($_GET['q']); $cat = array_pop(explode('/', $q['path'])); // dsm($cat, 'cat'); if(in_array($cat, $cats_tids)){ // prepopulate type of news $form['field_simplenews_term']['und']['#default_value'] = $cat; $form['field_simplenews_term']['und']['#disabled'] = true; // change default template regarding type of news $form['body']['und'][0]['#default_value'] = materio_admin_getSimplenewsNodeBodyTemplate($cat); } }else{ $form['field_simplenews_term']['und']['#disabled'] = true; } $form['body']['und'][0]['#rows'] = 50; } function materio_admin_getSimplenewsNodeBodyTemplate($cat){ return file_get_contents(drupal_get_path('module', 'materio_admin').'/templates/simplenews_'.$cat.'_node.html'); } // http://stackoverflow.com/questions/19202449/change-drupal-7-compiled-css-and-js-includes-to-use-https-as-opposed-to-http function materio_admin_process_html(&$vars){ foreach (array('head', 'styles', 'scripts') as $replace) { if (!isset($vars[$replace])) { continue; } $vars[$replace] = preg_replace('/(src|href|@import )(url\(|=)(")http(s?):/', '$1$2$3', $vars[$replace]); } }