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
|
<?php
global $gBitSystem, $gBitThemes;
$registerHash = array(
'package_name' => 'boards',
'package_path' => dirname( dirname( __FILE__ ) ).'/',
'homeable' => TRUE,
);
$gBitSystem->registerPackage( $registerHash );
if( $gBitSystem->isPackageActive( 'boards' ) && $gBitUser->hasPermission( 'p_boards_read' )) {
$menuHash = array(
'package_name' => BOARDS_PKG_NAME,
'index_url' => BOARDS_PKG_URL.'index.php',
'menu_template' => 'bitpackage:boards/menu_boards.tpl',
);
$gBitSystem->registerAppMenu( $menuHash );
require_once( BOARDS_PKG_CLASS_PATH.'BitBoard.php' );
require_once( BOARDS_PKG_CLASS_PATH.'BitBoardTopic.php' );
$registerArray = array(
'content_display_function' => 'boards_content_display',
'content_preview_function' => 'boards_content_edit',
'content_edit_function' => 'boards_content_edit',
'content_store_function' => 'boards_content_store',
'content_verify_function' => 'boards_content_verify',
'content_expunge_function' => 'boards_content_expunge',
'comment_store_function' => 'boards_comment_store',
// 'content_view_tpl' => 'bitpackage:boards/service_view_boards.tpl',
'content_icon_tpl' => 'bitpackage:boards/boards_service_icons.tpl',
'content_list_sql_function' => 'boards_content_list_sql',
);
if ( !$gBitSystem->isFeatureActive( 'boards_hide_edit_tpl' ) &&
!$gBitSystem->isFeatureActive( 'boards_link_by_pigeonholes' ) ) {
$registerArray['content_edit_mini_tpl'] = 'bitpackage:boards/boards_edit_mini_inc.tpl';
}
$gLibertySystem->registerService( LIBERTY_SERVICE_FORUMS, BOARDS_PKG_NAME, $registerArray );
function boards_get_topic_comment( $pThreadForwardSequence ) {
return( intval( substr( $pThreadForwardSequence, 0, 9 ) ) );
}
$gBitThemes->loadCss(BOARDS_PKG_PATH.'styles/boards.css');
/**
* load up moderation in case we are using modcomments
* we need to include its bit_setup_inc incase comments gets loaded first
*/
if( file_exists(BIT_ROOT_PATH.'moderation/bit_setup_inc.php') ) {
require_once( BIT_ROOT_PATH.'moderation/bit_setup_inc.php' );
global $gModerationSystem;
if( $gBitSystem->isPackageActive( 'moderation' ) ) {
// Register our event handler
$gModerationSystem->registerModerationObserver(BOARDS_PKG_NAME, 'modcomments', 'board_comments_moderation');
$gModerationSystem->registerModerationObserver(BOARDS_PKG_NAME, 'liberty', 'board_comments_moderation');
// And define the function we use to handle the observation.
function board_comments_moderation($pModerationInfo) {
if( $pModerationInfo['type'] == 'comment_post' ) {
$storeComment = new LibertyComment( NULL, $pModerationInfo['content_id'] );
$storeComment->load();
$comments_return_url = '';
$root_id = $storeComment->mInfo['root_id'];
global $gContent;
$board = new BitBoard(NULL, $root_id);
$board->load();
$boardSync = $board->getPreference('board_sync_list_address');
$code = $storeComment->getPreference('board_confirm_code');
$approved = $board->getPreference('boards_mailing_list_password');
// Possible race. Did we beat the cron?
if( empty($code) ) {
require_once(BOARDS_PKG_INCLUDE_PATH.'admin/boardsync_inc.php');
// Try to pick up the message!
board_sync_run(TRUE);
}
if( !empty($code) && !empty($boardSync) && !empty($approved) ) {
$boardSync = str_replace('@', '-request@', $boardSync);
$code = 'confirm '.$code;
uire_once(KERNEL_PKG_CLASS_PATH.'BitMailer.php');
$mailer = new BitMailer();
if( $pModerationInfo['last_status'] == MODERATION_DELETE ) {
// Send a reject message
$mailer->sendEmail($code, '', $boardSync,
array( 'sender' =>
BitBoard::getBoardSyncInbox() ) );
} else {
// Send an accept message
$mailer->sendEmail($code, '', $boardSync,
array('sender' =>
BitBoard::getBoardSyncInbox(),
'x_headers' =>
array( 'Approved' =>
$approved) ) );
}
}
}
}
}
}
}
?>
|