<?php /** * Elgg friends picker * Lists the friends picker * * @package Elgg * @subpackage Core * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 * @author Curverider Ltd * @copyright Curverider Ltd 2008 * @link http://elgg.org/ * * @uses $vars['entities'] The array of ElggUser objects */ // Initialise internalname if (!isset($vars['internalname'])) { $internalname = "friend"; } else { $internalname = $vars['internalname']; } // Initialise values if (!isset($vars['value'])) { $vars['value'] = array(); } else { if (!is_array($vars['value'])) { $vars['value'] = (int) $vars['value']; $vars['value'] = array($vars['value']); } } // We need to count the number of friends pickers on the page. global $friendspicker; if (!isset($friendspicker)) $friendspicker = 0; $friendspicker++; $users = array(); $activeletters = array(); // Sort users by letter if (is_array($vars['entities']) && sizeof($vars['entities'])) foreach($vars['entities'] as $user) { $letter = strtoupper(substr($user->name,0,1)); if ($letter >= "0" && $letter <= "9") { $letter = "0"; } if (!isset($users[$letter])) { $users[$letter] = array(); } $users[$letter][$user->name] = $user; } ?> <div class="friends_picker"> <div class="friendsPicker_wrapper"> <div id="friendsPicker<?php echo $friendspicker; ?>"> <div class="friendsPicker_container"> <?php // Initialise letters $letter = 'A'; while (1 == 1) { ?> <div class="panel" title="<?php echo $letter; ?>"> <div class="wrapper"> <h3><?php echo $letter; ?></h3> <?php if (isset($users[$letter])) { ksort($users[$letter]); echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; $col = 0; foreach($users[$letter] as $friend) { if ($col == 0) echo "<tr>"; //echo "<p>" . $user->name . "</p>"; $label = elgg_view("profile/icon",array('entity' => $friend, 'size' => 'tiny')); $options[$label] = $friend->getGUID(); if (in_array($friend->getGUID(),$vars['value'])) { $checked = "checked = \"checked\""; if (!in_array($letter,$activeletters)) $activeletters[] = $letter; } else { $checked = ""; } ?> <td> <input type="checkbox" <?php echo $checked; ?> name="<?php echo $internalname; ?>[]" value="<?php echo $options[$label]; ?>" /> </td> <td > <div style="width: 25px; margin-bottom: 15px;"> <?php echo $label; ?> </div> </td> <td style="width: 300px; padding: 5px;"> <?php echo $friend->name; ?> </td> <?php $col++; if ($col == 3) echo "</tr>"; } if ($col < 3) echo "</tr>"; echo "</table>"; } ?> </div> </div> <?php if ($letter == 'Z') break; $letter++; } ?> </div> </div> </div> </div> <script type="text/javascript"> //jQuery(window).bind("load", function() { $(document).ready(function () { // initialise picker $("div#friendsPicker<?php echo $friendspicker; ?>").friendsPicker(); }); </script> <script> //jQuery(window).bind("load", function() { $(document).ready(function () { // manually add class to corresponding tab for panels that have content - needs to be automated eventually <?php if (sizeof($activeletters) > 0) $chararray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; foreach($activeletters as $letter) { $tab = strpos($chararray, $letter) + 1; ?> $("div#friendsPickerNavigation<?php echo $friendspicker - 1; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent"); <?php } ?> }); </script>