-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInstant Informing.xml
More file actions
124 lines (107 loc) · 7.65 KB
/
Copy pathInstant Informing.xml
File metadata and controls
124 lines (107 loc) · 7.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?xml version="1.0" encoding="UTF-8"?>
<plugin name="Instant Informing" version_long="10004" version_human="1.0.4" author="Sijad aka Mr.Wosi" website="http://skinod..com" update_check="http://skinod.com/updatechk/sodinstantinforming"><hooks><hook type="C" class="\IPS\core\modules\front\system\ajax"><![CDATA[//<?php
class hook44 extends _HOOK_CLASS_
{
public function sodGettingInformed() {
try
{
$result = array( 'result' => 'ok', 'count' => array() );
if(\IPS\Member::loggedIn()->member_id) {
\IPS\Member::loggedIn()->recountNotifications();
$result['count']['notifications'] = \IPS\Member::loggedIn()->notification_cnt;
// \IPS\core\Messenger\Conversation::rebuildMessageCounts( \IPS\Member::loggedIn() );
$result['count']['inbox'] = \IPS\Member::loggedIn()->msg_count_new;
if( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'modcp' ) ) and \IPS\Member::loggedIn()->modPermission('can_view_reports')) {
$result['count']['reports'] = \IPS\Member::loggedIn()->reportCount();
}
}else{
$result['result'] = 'fail';
}
\IPS\Output::i()->json( $result );
}
catch ( \RuntimeException $e )
{
if ( method_exists( get_parent_class(), __FUNCTION__ ) )
{
return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
}
else
{
throw $e;
}
}
}
public function sodGettingInformedOptions() {
try
{
if(!\IPS\Member::loggedIn()->member_id) {
$result = array('result' => 'fail');
}else{
\IPS\Settings::i()->sod_instant_informing_interval = intval(\IPS\Settings::i()->sod_instant_informing_interval);
$result = array( 'result' => 'ok', 'interval' => \IPS\Settings::i()->sod_instant_informing_interval?\IPS\Settings::i()->sod_instant_informing_interval:10 );
}
\IPS\Output::i()->json( $result );
}
catch ( \RuntimeException $e )
{
if ( method_exists( get_parent_class(), __FUNCTION__ ) )
{
return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
}
else
{
throw $e;
}
}
}
}]]></hook></hooks><settings><setting><key>sod_instant_informing_interval</key><default>10</default></setting></settings><settingsCode><![CDATA[//<?php
$form->add( new \IPS\Helpers\Form\Number( 'sod_instant_informing_interval', \IPS\Settings::i()->sod_instant_informing_interval, TRUE, array(), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('seconds') ) );
if ( $values = $form->values() )
{
$form->saveAsSettings();
return TRUE;
}
return $form;]]></settingsCode><htmlFiles/><cssFiles/><jsFiles><js filename="sodInstantInforming.js">LyoqCiAqIEF1dGhvcjogU2lqYWQgYWthIG1yLndvc2kKICogU2l0ZTogaHR0cDovL3NraW5vZC5jb20KICogQ29weXJpZ2h0IChjKSAyMDE1IFNraW5vZCAtIGh0dHA6Ly9za2lub2QuY29tCiAqLwo7KCBmdW5jdGlvbigkLCBfLCB1bmRlZmluZWQpewoJInVzZSBzdHJpY3QiOwoKCXZhciBpbmZvcm1lciA9IGZ1bmN0aW9uKHNjb3BlLCBvcHRpb25zKSB7CgkJdmFyIGRlZmF1bHRzID0gewoJCQlpbnRlcnZhbDogMTAKCQl9OwoKCQl0aGlzLm9wdGlvbnMgPSBfLmRlZmF1bHRzKCBvcHRpb25zLCBkZWZhdWx0cyApOwoJCXRoaXMub3B0aW9ucy5pbnRlcnZhbCAqPSAxMDAwOwoJCXRoaXMuc2NvcGUgPSAkKHNjb3BlKTsKCQl0aGlzLnRpdGxlID0gZG9jdW1lbnQudGl0bGU7CgkJdGhpcy5pbml0KCkKCX0KCglpbmZvcm1lci5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uKCkgewkJCgkJdGhpcy5ub3RpZmljYXRpb25zIAk9IHRoaXMuc2NvcGUuZmluZCgnLmNOb3RpZmljYXRpb25zLmNVc2VyTmF2X2ljb24gPiBhJyk7CgkJdGhpcy5pbmJveCAJCQk9IHRoaXMuc2NvcGUuZmluZCgnLmNJbmJveC5jVXNlck5hdl9pY29uID4gYScpOwoJCXRoaXMucmVwb3J0cyAJCT0gdGhpcy5zY29wZS5maW5kKCcuY1JlcG9ydHMuY1VzZXJOYXZfaWNvbiA+IGEnKTsKCQl0aGlzLnRvdGFsCQkJPSAkKCdbZGF0YS1pcHNkcmF3ZXItZHJhd2VyZWxlbT0iI2VsTW9iaWxlRHJhd2VyIl0nKTsKCQl0aGlzLnRhYkFjdGl2ZSAJCT0gZmFsc2U7CgoJCSQod2luZG93KS5iaW5kKCJmb2N1cyIsICQucHJveHkodGhpcy50aXRsZU9mZiwgdGhpcykpOwoJCSQod2luZG93KS5iaW5kKCJibHVyIiwgJC5wcm94eSh0aGlzLnNldFRhYkFjdGl2ZSwgdGhpcykpOwoKCQl0aGlzLnNldHVwSW50ZXJ2YWwoKTsKCX07CgoJaW5mb3JtZXIucHJvdG90eXBlLnNldHVwSW50ZXJ2YWwgPSBmdW5jdGlvbigpIHsKCQl2YXIgc2VsZiA9IHRoaXM7CgkJc2VsZi5pbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKCQkJaWYoc2VsZi5sYXN0QWpheCkKCQkJCXNlbGYubGFzdEFqYXguYWJvcnQoKTsKCQkJc2VsZi5sYXN0QWpheCA9IGlwcy5nZXRBamF4KCkoIGlwcy5nZXRTZXR0aW5nKCdiYXNlVVJMJykgKyAnP2FwcD1jb3JlJm1vZHVsZT1zeXN0ZW0mY29udHJvbGxlcj1hamF4JmRvPXNvZEdldHRpbmdJbmZvcm1lZCcsIHtieXBhc3NSZWRpcmVjdDogdHJ1ZX0pLmRvbmUoZnVuY3Rpb24oIHJlc3BvbnNlICl7CgkJCQlpZihyZXNwb25zZS5yZXN1bHQgPT0gJ29rJykgewoJCQkJCXZhciB0b3RhbCA9IDA7CgkJCQkJJC5lYWNoKHJlc3BvbnNlLmNvdW50LCBmdW5jdGlvbihrKSB7CgkJCQkJCWlmKHNlbGZba10gIT0gdW5kZWZpbmVkKSB7CgkJCQkJCQlzZWxmW2tdLmZpbmQoJy5pcHNOb3RpZmljYXRpb25Db3VudCcpLnJlbW92ZSgpOwoJCQkJCQkJaWYodGhpcyAhPSAnMCcpIHsKCQkJCQkJCQlzZWxmW2tdLmFwcGVuZChpcHMudGVtcGxhdGVzLnJlbmRlcignc29kLkluc3RhbnRJbmZvcm1pbmcuY291bnQnLCB7Y291bnQ6IHRoaXN9KSk7CgkJCQkJCQkJdG90YWwgKz0gcGFyc2VJbnQodGhpcyk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9KTsKCQkJCQlzZWxmLnRvdGFsLmZpbmQoJy5pcHNOb3RpZmljYXRpb25Db3VudCcpLnJlbW92ZSgpOwoJCQkJCXNlbGYudG90YWwuYXBwZW5kKGlwcy50ZW1wbGF0ZXMucmVuZGVyKCdzb2QuSW5zdGFudEluZm9ybWluZy5jb3VudCcsIHtjb3VudDogdG90YWx9KSk7CgkJCQkJc2VsZi50b3RhbENvdW50ID0gdG90YWw7CgkJCQkJc2VsZi50aXRsZU9uKCk7CgkJCQl9ZWxzZXsKCQkJCQljbGVhckludGVydmFsKHNlbGYuaW50ZXJ2YWwpOwoJCQkJfQoJCQl9KTsKCQl9LCB0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpOwoJfTsKCglpbmZvcm1lci5wcm90b3R5cGUudGl0bGVPbiA9IGZ1bmN0aW9uKCkgewoJCWlmKCF0aGlzLnRhYkFjdGl2ZSAmJiB0aGlzLnRvdGFsQ291bnQgPiAwKSB7CgkJCXRoaXMudGl0bGVPblYgPSB0cnVlOwoJCQlkb2N1bWVudC50aXRsZSA9ICIoIiArIHRoaXMudG90YWxDb3VudCArICIpICIgKyB0aGlzLnRpdGxlOwoJCX0KCX0KCglpbmZvcm1lci5wcm90b3R5cGUudGl0bGVPZmYgPSBmdW5jdGlvbigpIHsKCQl0aGlzLnRhYkFjdGl2ZSA9IHRydWU7CgkJaWYodGhpcy50aXRsZU9uVikgewoJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7ZG9jdW1lbnQudGl0bGUgPSBzZWxmLnRpdGxlO30sIDEwKTsJCQkKCQl9Cgl9CgkKCWluZm9ybWVyLnByb3RvdHlwZS5zZXRUYWJBY3RpdmUgPSBmdW5jdGlvbigpIHsKCQl0aGlzLnRhYkFjdGl2ZSA9IGZhbHNlOwoJfQoKCSQoZnVuY3Rpb24oKSB7CgkJaXBzLmdldEFqYXgoKSggaXBzLmdldFNldHRpbmcoJ2Jhc2VVUkwnKSArICc/YXBwPWNvcmUmbW9kdWxlPXN5c3RlbSZjb250cm9sbGVyPWFqYXgmZG89c29kR2V0dGluZ0luZm9ybWVkT3B0aW9ucycsIHtieXBhc3NSZWRpcmVjdDogdHJ1ZX0pLmFsd2F5cyhmdW5jdGlvbiggcmVzcG9uc2UgKSB7CgkJCWlmKHJlc3BvbnNlLnJlc3VsdCA9PSAnZmFpbCcpCgkJCQlyZXR1cm47CgkJCW5ldyBpbmZvcm1lcigkKCcjZWxVc2VyTmF2JykuYWRkKCcjZWxVc2VyTmF2X21vYmlsZScpLCB7aW50ZXJ2YWw6IHJlc3BvbnNlLmludGVydmFsfSk7CgkJfSk7Cgl9KTsKCn0oalF1ZXJ5LCBfKSk7Cg==</js></jsFiles><resourcesFiles/><lang><word key="sod_instant_informing_interval" js="0">Ajax Interval</word></lang><versions><version long="10003" human="1.0.3"><![CDATA[//<?php
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 1.0.3 Upgrade Code
*/
class ips_plugins_setup_upg_10003
{
/**
* ...
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
\IPS\Db::i()->delete( 'core_members', "name = '' and email = ''");
}
}]]></version><version long="10004" human="1.0.4"><![CDATA[//<?php
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 1.0.4 Upgrade Code
*/
class ips_plugins_setup_upg_10004
{
/**
* ...
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
}
// You can create as many additional methods (step2, step3, etc.) as is necessary.
// Each step will be executed in a new HTTP request
}]]></version></versions></plugin>