materio_contactops.pages.inc 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. function materio_contactops_materials($current_user){
  3. // dsm($current_user, 'current_user');
  4. global $language;
  5. global $user;
  6. // dsm($user, 'user');
  7. // get user company tag
  8. $company_tid = $current_user->field_company['und'][0]['tid'];
  9. // dsm($company_tid,'company_tid');
  10. # retrieve viewmode and then use it to define the query range
  11. $viewmode = isset($user->data['materiosearchapi_viewmode'])
  12. ? $user->data['materiosearchapi_viewmode']
  13. : variable_get('defaultviewmode', 'full');
  14. $limit = variable_get($viewmode.'_limite', '10');
  15. // dsm($limit, "limit");
  16. $offset = pager_find_page() * $limit; //$page*$limit;//
  17. // dsm($offset, "offset");
  18. // get materials taged with this company
  19. $query = new EntityFieldQuery;
  20. $query
  21. ->entityCondition('entity_type', 'node')
  22. ->propertyCondition('status', 1)
  23. ->entityCondition('bundle', array('materiau'))
  24. // ->fieldCondition('field_company_distrib', 'tid', $company_tid, '=')
  25. ->fieldCondition('field_company_fab', 'tid', $company_tid, '=')
  26. ->propertyOrderBy('created', 'DESC')
  27. ->range($offset,$limit);
  28. $result = $query->execute();
  29. // dsm($result, '$result');
  30. foreach ($result['node'] as $nid => $n) {
  31. $items[] = node_load($nid);
  32. }
  33. $count_query = new EntityFieldQuery;
  34. $count_query
  35. ->entityCondition('entity_type', 'node')
  36. ->propertyCondition('status', 1)
  37. ->entityCondition('bundle', array('materiau'))
  38. // ->fieldCondition('field_company_distrib', 'tid', $company_tid, '=')
  39. ->fieldCondition('field_company_fab', 'tid', $company_tid, '=');
  40. // dsm($count, 'count');
  41. $count = $count_query->count()->execute();
  42. $query = new EntityFieldQuery;
  43. $query
  44. ->entityCondition('entity_type', 'node')
  45. ->propertyCondition('status', 1)
  46. ->entityCondition('bundle', array('materiau'))
  47. ->fieldCondition('field_company_distrib', 'tid', $company_tid, '=')
  48. // ->fieldCondition('field_company_fab', 'tid', $company_tid, '=')
  49. ->propertyOrderBy('created', 'DESC')
  50. ->range($offset,$limit);
  51. $result = $query->execute();
  52. // dsm($result, '$result');
  53. foreach ($result['node'] as $nid => $n) {
  54. $items[] = node_load($nid);
  55. }
  56. $count_query = new EntityFieldQuery;
  57. $count_query
  58. ->entityCondition('entity_type', 'node')
  59. ->propertyCondition('status', 1)
  60. ->entityCondition('bundle', array('materiau'))
  61. // ->fieldCondition('field_company_distrib', 'tid', $company_tid, '=')
  62. ->fieldCondition('field_company_fab', 'tid', $company_tid, '=');
  63. // dsm($count, 'count');
  64. $count += $count_query->count()->execute();
  65. pager_default_initialize($count, $limit);
  66. drupal_set_title(t(''));
  67. return theme('materio_contactops_materials', array(
  68. 'items' => $items,
  69. 'view_mode' => $viewmode,
  70. 'count' => $count,
  71. 'pager' => theme('pager'),
  72. ));
  73. }