Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * Page callback: Affiche les utilisateurs gold
  5. *
  6. * @return string
  7. */
  8. function gold_users_page() {
  9. // Récupération des rôles pouvant voir le contenu gold
  10. $query = db_select('role_permission', 'rp')
  11. ->fields('rp', array('rid'))
  12. ->condition('permission', GOLD_PERMISSION_VIEW)
  13. ->execute();
  14. //drupal_set_message((string) $query);
  15. $rids = $query
  16. ->fetchCol();
  17.  
  18.  
  19. $header = array(
  20. array('data' => 'Identifiant', 'field' => 'uid', 'sort' => 'asc'),
  21. array('data' => 'Nom', 'field' => 'name', 'sort' => 'asc'),
  22. 'Profil'
  23. );
  24.  
  25. // Récupération des utilisateur ayant le role
  26. $query = db_select('users_roles', 'ur')
  27. ->fields('u', array('uid', 'name'))
  28. ->condition('rid', $rids);
  29. $query->innerJoin('users', 'u', 'u.uid = ur.uid');
  30. $uids = $query
  31. ->extend('PagerDefault')
  32. ->limit(30)
  33. // Add table sort extender.
  34. ->extend('TableSort')
  35. // Add order by headers.
  36. ->orderByHeader($header)
  37. ->execute()
  38. ->fetchAllKeyed();
  39.  
  40. //dsm($rids);
  41. //dsm($uids);
  42.  
  43. $accounts = user_load_multiple(array_keys($uids));
  44. //dsm($accounts);
  45. $rows = array();
  46.  
  47. foreach ($accounts as $account) {
  48. $row = array();
  49. $row[] = $account->uid;
  50. $row[] = $account->name;
  51. $row[] = l("Profil", 'gold/user/' . $account->uid);
  52.  
  53. $rows[] = $row;
  54. }
  55. //dsm($rows);
  56.  
  57. $build['intro'] = array(
  58. '#markup' => "Ceci est la liste des utilisateurs premium",
  59. );
  60. $build['table'] = array(
  61. '#theme' => 'table',
  62. '#header' => $header,
  63. '#rows' => $rows,
  64. '#empty' => t('Your table is empty'),
  65. );
  66. $build['pager'] = array(
  67. '#theme' => 'pager',
  68. );
  69. return $build;
  70. }
  71.  
  72. /**
  73. * Page callback: affiche si 'lutilisateur passé en paramètre est gold
  74. *
  75. * @param $account
  76. * @return string
  77. */
  78. function gold_user_page($account) {
  79. if (user_access(GOLD_PERMISSION_VIEW, $account)) {
  80. return "C'est un utilisateur gold";
  81. }
  82. return "Ce n'est pas un utilisateur gold";
  83. }
  84.  
  85. /**
  86. * Form callback: formulaire de configuration de Gold
  87. */
  88. function gold_admin_form() {
  89. $form['types'] = array(
  90. '#type' => 'checkboxes',
  91. '#title' => "Types pour lesquels la fonctionnalité Gold est activée",
  92. '#options' => node_type_get_names(),
  93. '#default_value' => variable_get('gold_types', array()),
  94. );
  95. $form['submit'] = array(
  96. '#type' => 'submit',
  97. '#value' => t('Submit'),
  98. );
  99. return $form;
  100. }
  101.  
  102. function gold_admin_form_validate($form, &$form_state) {
  103. if (!empty($form_state['values']['types']['page'])) {
  104. form_set_error('types', "Le type de contenu page ne peut pas porter la fonctionnalité Gold");
  105. }
  106. }
  107.  
  108. function gold_admin_form_submit($form, &$form_state) {
  109. variable_set('gold_types', $form_state['values']['types']);
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement