Browse Source

updated user export materio module

Bachir Soussi Chiadmi 8 years ago
parent
commit
8def2961ac

+ 1 - 1
sites/all/modules/gui/materiobasemod/materio_user.module

@@ -77,7 +77,7 @@ function materio_user_menu(){
     'access callback' => TRUE,
   );
 
-  $items['materio_user/export'] = $base+array(
+  $items['admin/materio_user/export'] = $base+array(
     'title' => 'Materio base user export',
     'page callback' => 'materio_user_export',
     // 'page arguments' => array(),

+ 98 - 3
sites/all/modules/gui/materiobasemod/materio_user.pages.inc

@@ -58,15 +58,107 @@ function materio_user_login_submit(){
 }
 
 function materio_user_export(){
+  $ret = "";
+
+  // MEMBRE et etudiants
+  $query = db_select('users', 'u');
+  $query->join('users_roles', 'ur', 'u.uid=ur.uid');
+  $query
+    ->fields('u', array('mail', 'uid'))
+    ->condition('u.status', '1')
+    ->condition('ur.rid', array(6, 8, 10), "IN");
+  $results = $query->execute()->fetchall();
+
+  $vals = array();
+  foreach ($results as $rec) {
+    $vals[] = $rec->mail;
+  }
+
+  $num_rows = count($vals);
+  $ret .= "<h1>Liste de tous les user adherents et étudiants ($num_rows)</h1>";
+  $ret .= '<textarea cols="40" rows="30">'.implode($vals, '&#13;&#10;').'</textarea>';
+
+  // MEMBRE sans les aaf
+  $query = db_select('users', 'u');
+  $query->join('users_roles', 'ur', 'u.uid=ur.uid');
+  // $query->join('field_data_field_memo', 'mem', 'u.uid=mem.entity_id');
+  $query
+    ->fields('u', array('mail', 'uid'))
+    ->condition('u.status', '1')
+    ->condition('ur.rid', array(6, 8, 10), "IN");
+    // ->condition('mem.field_memo_value', "%AAF%", "LIKE");
+  $results = $query->execute()->fetchall();
+
+  $vals = array();
+  foreach ($results as $rec) {
+    $aaf_query = db_select('field_data_field_memo', 'mem');
+    $aaf_query
+      ->fields('mem', array("field_memo_value"))
+      ->isNotNull('field_memo_value')
+      ->condition('mem.entity_id', $rec->uid);
+      $aaf_results = $aaf_query->execute()->fetchall();
+
+    $aaf = false;
+    foreach ($aaf_results as $memo) {
+      if(strpos($memo->field_memo_value,'AAF') !== false){
+        $aaf = true;
+        break;
+      }
+    }
+    if(!$aaf)
+      $vals[] = $rec->mail;
+  }
+
+  $num_rows = count($vals);
+  $ret .= "<h1>Liste des user adhérents et étudiants (sans les aaf) ($num_rows)</h1>";
+  $ret .= '<textarea cols="40" rows="30">'.implode($vals, '&#13;&#10;').'</textarea>';
+
+
+  // MEMBRE AAF
+  $query = db_select('users', 'u');
+  $query->join('users_roles', 'ur', 'u.uid=ur.uid');
+  // $query->join('field_data_field_memo', 'mem', 'u.uid=mem.entity_id');
+  $query
+    ->fields('u', array('mail', 'uid'))
+    ->condition('u.status', '1')
+    ->condition('ur.rid', array(6, 8, 10), "IN");
+    // ->condition('mem.field_memo_value', "%AAF%", "LIKE");
+  $results = $query->execute()->fetchall();
+
+  $vals = array();
+  foreach ($results as $rec) {
+    $aaf_query = db_select('field_data_field_memo', 'mem');
+    $aaf_query
+      ->fields('mem', array("field_memo_value"))
+      ->isNotNull('field_memo_value')
+      ->condition('mem.entity_id', $rec->uid);
+      $aaf_results = $aaf_query->execute()->fetchall();
+
+    $aaf = false;
+    foreach ($aaf_results as $memo) {
+      if(strpos($memo->field_memo_value,'AAF') !== false){
+        $aaf = true;
+        break;
+      }
+    }
+    if($aaf)
+      $vals[] = $rec->mail;
+  }
+
+  $num_rows = count($vals);
+  $ret .= "<h1>Liste des user adhérents AAF ($num_rows)</h1>";
+  $ret .= '<textarea cols="40" rows="30">'.implode($vals, '&#13;&#10;').'</textarea>';
+
+
+  // inscrit daily non membre
   $query = db_select('users', 'u');
   $query->join('users_roles', 'ur', 'u.uid=ur.uid');
   $query->join('simplenews_subscriber', 'ssr', 'u.uid=ssr.uid');
   $query->join('simplenews_subscription', 'ssn', 'ssr.snid=ssn.snid');
   $query
-    // ->range(0, 5)
     ->fields('u', array('mail'))
     ->condition('u.status', '1')
-    ->condition('ur.rid', '7')
+    ->condition('ur.rid', array(3, 4, 6, 8, 10), "NOT IN")
     ->condition('ssn.tid', '6374')
     ->condition('ssn.status', '1');
 
@@ -76,8 +168,11 @@ function materio_user_export(){
   foreach ($results as $rec) {
     $vals[] = $rec->mail;
   }
-  $ret = "Liste des user utilisateur inscrits au daily<br />";
+
+  $num_rows = count($vals);
+  $ret .= "<h1>Liste des user non membre inscrits au daily ($num_rows)</h1>";
   $ret .= '<textarea cols="40" rows="30">'.implode($vals, '&#13;&#10;').'</textarea>';
+
   return $ret;
 }