| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 | <?php/** * Implements hook_permission(). */function materio_admin_permission() {  return array(    'access default users list' =>  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:') . '<br />';  $output = "<ul>";  foreach ($duplicate_mails as $mail => $users) {    $output .= "<li> <strong>$mail</strong> : <br />";    $accounts = array();    foreach ($users as $duplicate_user) {       $accounts[] =  l($duplicate_user->name, "user/{$duplicate_user->uid}") . ' ('. date('Y-m-d', $duplicate_user->access) .')';    }    $output .= implode(', ', $accounts);      $output .= '</li>';  }  $output .= "</ul>";  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');}
 |