diff options
Diffstat (limited to 'mod')
4 files changed, 193 insertions, 46 deletions
diff --git a/mod/notifications/groups.php b/mod/notifications/groups.php new file mode 100644 index 000000000..3223ec81d --- /dev/null +++ b/mod/notifications/groups.php @@ -0,0 +1,47 @@ +<?php
+
+ /**
+ * Elgg notifications plugin group index
+ *
+ * @package ElggNotifications
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd
+ * @copyright Curverider Ltd 2008-2009
+ * @link http://elgg.com/
+ */
+
+ // Load Elgg framework
+ require_once(dirname(dirname(dirname(__FILE__))) . '/engine/start.php');
+
+ // Ensure only logged-in users can see this page
+ gatekeeper();
+
+ // Set the context to settings
+ set_context('settings');
+
+ // Get the form
+ global $SESSION;
+ $people = array();
+ if ($groups_ents = get_entities_from_relationship('notify',$SESSION['user']->guid,false,'group','',0,'',99999)) {
+ foreach($groups_ents as $ent)
+ $groups[] = $ent->guid;
+ }
+
+ $groupmemberships = get_entities_from_relationship('member',$_SESSION['user']->guid,false,'group','',0,'',9999);
+
+ $body = elgg_view('input/form',array(
+ 'body' => elgg_view('notifications/subscriptions/groupsform',array(
+ 'groupsubs' => $groups,
+ 'groups' => $groupmemberships
+ )),
+ 'method' => 'post',
+ 'action' => ''
+ ));
+
+ // Insert it into the correct canvas layout
+ $body = elgg_view_layout('two_column_left_sidebar','',$body);
+
+ // Draw the page
+ echo page_draw(elgg_echo('notifications:subscriptions:groups'),$body);
+
+?>
\ No newline at end of file diff --git a/mod/notifications/views/default/notifications/subscriptions/forminternals.php b/mod/notifications/views/default/notifications/subscriptions/forminternals.php index fa00059b9..ca28fc72a 100644 --- a/mod/notifications/views/default/notifications/subscriptions/forminternals.php +++ b/mod/notifications/views/default/notifications/subscriptions/forminternals.php @@ -135,55 +135,11 @@ <?php } - -?> -<script type="text/javascript"> - -$(document).ready(function () {
-<?php
- foreach($NOTIFICATION_HANDLERS as $method => $foo) {
-?> - $('input[@type=checkbox]:checked').parent("a.<?php echo $method; ?>toggleOff").each(function(){ - $(this).removeClass('<?php echo $method; ?>toggleOff').addClass('<?php echo $method; ?>toggleOn'); - });
-
-<?php
- }
-?>
- -}); -<?php
- foreach($NOTIFICATION_HANDLERS as $method => $foo) {
-?>
-function adjust<?php echo $method; ?>(linkId) {
- var obj = $(this).prev("a");
-
- if (obj.className == "<?php echo $method; ?>toggleOff") {
- obj.className = "<?php echo $method; ?>toggleOn";
- } else {
- obj.className = "<?php echo $method; ?>toggleOff";
- }
- return false;
-}
-function adjust<?php echo $method; ?>_alt(linkId) {
- var obj = document.getElementById(linkId);
-
- if (obj.className == "<?php echo $method; ?>toggleOff") {
- obj.className = "<?php echo $method; ?>toggleOn";
- $('#' + linkId).children("INPUT[type='checkbox']").attr('checked', true);
- } else {
- obj.className = "<?php echo $method; ?>toggleOff";
- $('#' + linkId).children("INPUT[type='checkbox']").attr('checked', false);
- }
- return false;
-}
-<?php
- }
+ echo elgg_view('notifications/subscriptions/jsfuncs',$vars);
+ ?> -</script> - <div class="friendsPicker_wrapper"> <div id="friendsPicker<?php echo $friendspicker; ?>"> diff --git a/mod/notifications/views/default/notifications/subscriptions/groupsform.php b/mod/notifications/views/default/notifications/subscriptions/groupsform.php new file mode 100644 index 000000000..5c0ee1057 --- /dev/null +++ b/mod/notifications/views/default/notifications/subscriptions/groupsform.php @@ -0,0 +1,92 @@ +<?php
+
+ global $NOTIFICATION_HANDLERS;
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+ $subsbig[$method] = get_entities_from_relationship('notify' . $method,$vars['user']->guid,false,'group','',0,'',99999);
+ }
+
+?>
+
+<div class="settings_form">
+ <div class="notification_methods">
+
+ <?php
+ echo elgg_view('notifications/subscriptions/jsfuncs',$vars);
+ ?>
+ <?php echo elgg_view_title(elgg_echo('notifications:subscriptions:groups')); ?>
+ <p>
+ <?php
+
+ echo elgg_echo('notifications:subscriptions:groups:description');
+
+ ?>
+ </p>
+<?php
+
+ if (isset($vars['groups']) && !empty($vars['groups'])) {
+
+?>
+<table id="notificationstable" cellspacing="0" cellpadding="4" border="1" width="100%">
+ <tr>
+ <td> </td>
+<?php
+ global $NOTIFICATION_HANDLERS;
+ $i = 0;
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+ if ($i > 0)
+ echo "<td class=\"spacercolumn\"> </td>";
+?>
+ <td class="<?php echo $method; ?>togglefield"><?php echo elgg_echo('notification:method:'.$method); ?></td>
+<?php
+ $i++;
+ }
+?>
+ <td> </td>
+ </tr>
+<?php
+ foreach($vars['groups'] as $group) {
+
+ $fields = '';
+ $i = 0;
+
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+ if (in_array($group->guid,$subs[$method])) {
+ $checked[$method] = 'checked="checked"';
+ } else {
+ $checked[$method] = '';
+ }
+ if ($i > 0) $fields .= "<td class=\"spacercolumn\"> </td>";
+ $fields .= <<< END
+ <td class="{$method}togglefield">
+ <a href="#" border="0" id="{$method}{$group->guid}" class="{$method}toggleOff" onclick="adjust{$method}_alt('{$method}{$group->guid}');">
+ <input type="checkbox" name="{$method}subscriptions[]" id="{$method}checkbox" onclick="adjust{$method}('{$method}{$group->guid}');" value="{$group->guid}" {$checked[$method]} /></a></td>
+END;
+ $i++;
+ }
+
+?>
+ <tr>
+ <td class="namefield">
+ <p>
+ <?php echo $group->name; ?>
+ </p>
+ </td>
+<?php
+ echo $fields;
+?>
+ <td> </td>
+ </tr>
+<?php
+
+
+ }
+?>
+</table>
+<?php
+ }
+
+?>
+
+ <input type="submit" value="<?php echo elgg_echo('save'); ?>" />
+ </div>
+</div>
\ No newline at end of file diff --git a/mod/notifications/views/default/notifications/subscriptions/jsfuncs.php b/mod/notifications/views/default/notifications/subscriptions/jsfuncs.php new file mode 100644 index 000000000..5d8e6c101 --- /dev/null +++ b/mod/notifications/views/default/notifications/subscriptions/jsfuncs.php @@ -0,0 +1,52 @@ +<?php
+
+ global $NOTIFICATION_HANDLERS;
+
+?>
+
+<script type="text/javascript">
+
+$(document).ready(function () {
+<?php
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+?>
+ $('input[@type=checkbox]:checked').parent("a.<?php echo $method; ?>toggleOff").each(function(){
+ $(this).removeClass('<?php echo $method; ?>toggleOff').addClass('<?php echo $method; ?>toggleOn');
+ });
+
+<?php
+ }
+?>
+
+});
+
+<?php
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+?>
+function adjust<?php echo $method; ?>(linkId) {
+ var obj = $(this).prev("a");
+
+ if (obj.className == "<?php echo $method; ?>toggleOff") {
+ obj.className = "<?php echo $method; ?>toggleOn";
+ } else {
+ obj.className = "<?php echo $method; ?>toggleOff";
+ }
+ return false;
+}
+function adjust<?php echo $method; ?>_alt(linkId) {
+ var obj = document.getElementById(linkId);
+
+ if (obj.className == "<?php echo $method; ?>toggleOff") {
+ obj.className = "<?php echo $method; ?>toggleOn";
+ $('#' + linkId).children("INPUT[type='checkbox']").attr('checked', true);
+ } else {
+ obj.className = "<?php echo $method; ?>toggleOff";
+ $('#' + linkId).children("INPUT[type='checkbox']").attr('checked', false);
+ }
+ return false;
+}
+<?php
+ }
+?>
+
+</script>
\ No newline at end of file |