PageRenderTime 44ms CodeModel.GetById 12ms RepoModel.GetById 1ms app.codeStats 0ms

/views/members/index.php

https://github.com/Ramir1/esoTalk
PHP | 113 lines | 72 code | 30 blank | 11 comment | 16 complexity | 0e9852eaf46cc67194675a5c2cde9cfd MD5 | raw file
Possible License(s): GPL-2.0
  1. <?php
  2. // Copyright 2011 Toby Zerner, Simon Zerner
  3. // This file is part of esoTalk. Please see the included license file for usage information.
  4. if (!defined("IN_ESOTALK")) exit;
  5. /**
  6. * Displays the member list page, including the filter bar, the letter scrubber, and the list.
  7. *
  8. * @package esoTalk
  9. */
  10. global $orderBy;
  11. $orderBy = $data["orderBy"];
  12. // Shortcut function to construct a URL to a member list page, while retaining the same orderBy.
  13. function makeURL($startFrom = 0, $searchString = "")
  14. {
  15. global $orderBy;
  16. $urlParts = array("members", $orderBy);
  17. if ($startFrom > 0 or $startFrom[0] == "p" or $searchString) $urlParts[] = $startFrom;
  18. if ($searchString) $urlParts[] = "?search=$searchString";
  19. return implode("/", $urlParts);
  20. }
  21. ?>
  22. <!-- Member List Filter -->
  23. <div id='memberListFilter' class='bodyHeader'>
  24. <h1><?php echo T("Member List"); ?></h1>
  25. <ul id='memberListOrderBy' class='tabs'>
  26. <li><span><?php echo T("Order By:"); ?></span></li>
  27. <?php foreach ($data["orders"] as $k => $v): ?>
  28. <li<?php if ($data["orderBy"] == $k): ?> class='selected'<?php endif; ?>><a href='<?php echo URL("members/$k/".($data["searchString"] ? "?search=".$data["searchString"] : "")); ?>'><?php echo T($v[0]); ?></a></li>
  29. <?php endforeach; ?>
  30. </ul>
  31. <?php if (ET::$session->isAdmin()): ?>
  32. <a href='<?php echo URL("members/create"); ?>' class='button' id='createMemberLink'><span class='icon-add'></span> <?php echo T("Create Member"); ?></a>
  33. <?php endif; ?>
  34. <form class='search big' id='memberSearch' action='<?php echo URL(makeURL()); ?>' method='get'>
  35. <fieldset>
  36. <input name='search' type='text' class='text' value='<?php echo $data["searchString"]; ?>' spellcheck='false' placeholder='<?php echo T("Filter by name or group..."); ?>'/>
  37. <?php if ($data["searchString"]): ?><a class='control-reset' href='<?php echo URL(makeURL()); ?>'>x</a><?php endif; ?>
  38. </fieldset>
  39. </form>
  40. </div>
  41. <!-- Member List Body -->
  42. <div id='memberListBody' class='hasScrubber clearfix'>
  43. <?php // If we're searching but there are no search results, show an error.
  44. if ($data["searchString"] and !count($data["members"])): ?>
  45. <div class='area noResults help'>
  46. <h4><?php echo T("message.noSearchResultsMembers"); ?></h4>
  47. </div>
  48. <?php else: ?>
  49. <div class='scrubberColumn'>
  50. <div class='scrubberContent'>
  51. <?php if (!$data["searchString"] and $data["orderBy"] == "name"): ?>
  52. <!-- Letter scrubber -->
  53. <ul class='scrubber letterScrubber'>
  54. <?php
  55. // Construct an array of letters, and "#" as the item for special characters and numbers.
  56. $letters = range("a", "z");
  57. array_unshift($letters, "#");
  58. // Work out what letter we are currently viewing by looking at the name of the first member in the results.
  59. $currentLetter = strtolower($data["members"][0]["username"][0]);
  60. if (!in_array($currentLetter, $letters)) $currentLetter = "#";
  61. // Output the letter scrubber items.
  62. foreach ($letters as $letter) {
  63. $selected = ($currentLetter == $letter) ? " selected" : "";
  64. $id = $letter == "#" ? 0 : $letter;
  65. echo "<li class='scrubber-$id$selected' data-index='$id'><a href='".URL("members/name/$id")."'>".strtoupper($letter)."</a></li>";
  66. }
  67. ?>
  68. </ul>
  69. <?php endif; ?>
  70. </div>
  71. </div>
  72. <!-- Members -->
  73. <ul id='memberList' class='list memberList'>
  74. <?php if ($data["startFrom"] > 0): ?>
  75. <li class='scrubberMore scrubberPrevious'><a href='<?php echo URL(makeURL("p".(ceil($data["startFrom"] / C("esoTalk.members.membersPerPage") + 1) - 1), $data["searchString"])); ?>'>&lsaquo; <?php echo T("Previous"); ?></a></li>
  76. <?php endif; ?>
  77. <?php $this->renderView("members/list", $data); ?>
  78. <?php if ($data["startFrom"] + C("esoTalk.members.membersPerPage") < $data["countMembers"]): ?>
  79. <li class='scrubberMore scrubberNext'><a href='<?php echo URL(makeURL("p".(floor($data["startFrom"] / C("esoTalk.members.membersPerPage") + 1) + 1), $data["searchString"])); ?>'><?php echo T("Next"); ?> &rsaquo;</a></li>
  80. <?php endif; ?>
  81. </ul>
  82. <?php endif; ?>
  83. </div>