diff options
author | ben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-07-25 11:21:03 +0000 |
---|---|---|
committer | ben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-07-25 11:21:03 +0000 |
commit | 1894d4e19fe7acb5fcd042b25abc2de9d8ee57fa (patch) | |
tree | 81df285c312bc86c05ad5bfe4b2d5d5e820acb80 /views/default | |
parent | ed6238f72c00f27b5df94f478d4ff70ab91982a2 (diff) | |
download | elgg-1894d4e19fe7acb5fcd042b25abc2de9d8ee57fa.tar.gz elgg-1894d4e19fe7acb5fcd042b25abc2de9d8ee57fa.tar.bz2 |
Improved friend picker.
git-svn-id: https://code.elgg.org/elgg/trunk@1526 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'views/default')
-rw-r--r-- | views/default/friends/collection.php | 7 | ||||
-rw-r--r-- | views/default/friends/picker.php | 28 |
2 files changed, 26 insertions, 9 deletions
diff --git a/views/default/friends/collection.php b/views/default/friends/collection.php index 4d08e5b06..b42b4467a 100644 --- a/views/default/friends/collection.php +++ b/views/default/friends/collection.php @@ -19,7 +19,7 @@ $coll = $vars['collection'];
if (is_array($vars['collection']->entities)) {
- $count = sizeof($vars['collection']->entities);
+ $count = sizeof($vars['collection']->members);
} else {
$count = 0;
}
@@ -35,8 +35,9 @@ echo " ({$count}) </h2>";
// Ben - this is where the friends picker view needs to go
- if($members = $vars['collection']->entities){
- echo elgg_view('friends/picker',array('entities' => $members));
+ if($friends = $vars['collection']->entities){
+ $members = $vars['collection']->members;
+ echo elgg_view('friends/picker',array('entities' => $friends, 'value' => $members));
}
// close friends_picker div and the accordian list item
diff --git a/views/default/friends/picker.php b/views/default/friends/picker.php index a226f24e1..4be60b12e 100644 --- a/views/default/friends/picker.php +++ b/views/default/friends/picker.php @@ -20,6 +20,16 @@ } 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;
@@ -27,6 +37,7 @@ $friendspicker++;
$users = array();
+ $activeletters = array();
// Sort users by letter
if (is_array($vars['entities']) && sizeof($vars['entities']))
@@ -73,12 +84,19 @@ //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" name="<?php echo $internalname; ?>[]" value="<?php echo $options[$label]; ?>" />
+ <input type="checkbox" <?php echo $checked; ?> name="<?php echo $internalname; ?>[]" value="<?php echo $options[$label]; ?>" />
</td>
@@ -135,15 +153,13 @@ jQuery(window).bind("load", function() {
// manually add class to corresponding tab for panels that have content - needs to be automated eventually
<?php
- if (sizeof($users) > 0)
+ if (sizeof($activeletters) > 0)
$chararray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- foreach($users as $letter => $gumph) {
+ foreach($activeletters as $letter) {
$tab = strpos($chararray, $letter) + 1;
- if (is_array($gumph) && sizeof($gumph)) {
?>
$("div#friendsPickerNavigation<?php echo $friendspicker - 1; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent");
-<?php
- }
+<?php
}
?>
|