tra('Shoutbox'), 'description' => tra('The shoutbox is a quick messaging tool. Messages reload each time the page changes. Anyone with the right permission can see all messages. Another permission allows messages to be sent..'), 'prefs' => ['feature_shoutbox'], 'documentation' => 'Module shoutbox', 'params' => [ 'tooltip' => [ 'name' => tra('Tooltip'), 'description' => tra('If set to "1", displays message post dates and times as tooltips instead of showing directly in the module content.') . " " . tr('Default:') . '"0".', 'filter' => 'word' ], 'buttontext' => [ 'name' => tra('Button label'), 'description' => tra('Label on the button to post a message.') . ' ' . tra('Default:') . ' ' . tra('Post') ], 'waittext' => [ 'name' => tra('Wait label'), 'description' => tra('Label on the button to post a message when the message is being posted if AJAX is enabled.') . ' ' . tra('Default:') . ' ' . tra('Please wait...') ], 'maxrows' => [ 'name' => tra('Maximum messages shown'), 'description' => tra('Number of messages to display.') . ' ' . tra('Default:') . ' 5.', 'filter' => 'int' ], 'tweet' => [ 'name' => tra('Tweet'), 'description' => tra('If set to "1" and the user has authorized us to tweet messages with Twitter, the user can decide, if he wants to shout via Twitter.'), 'filter' => 'word' ], 'facebook' => [ 'name' => tra('Facebook'), 'description' => tra('If set to "1" and the user has authorized us with Facebook, the user can decide, if he wants to add the shout to his Facebook wall.'), 'filter' => 'word' ] ] ]; } /** * @param $inFormValues */ function doProcessShout($inFormValues) { global $shoutboxlib, $user, $prefs; $captchalib = TikiLib::lib('captcha'); $smarty = TikiLib::lib('smarty'); // $smarty->assign('tweet',$inFormValues['tweet']); if (array_key_exists('shout_msg', $inFormValues) && strlen($inFormValues['shout_msg']) > 2) { if (empty($user) && $prefs['feature_antibot'] == 'y' && (! $captchalib->validate())) { $smarty->assign('shout_error', $captchalib->getErrors()); $smarty->assign_by_ref('shout_msg', $inFormValues['shout_msg']); } else { $shoutboxlib->replace_shoutbox(0, $user, $inFormValues['shout_msg'], ($inFormValues['shout_tweet'] == 1), ($inFormValues['shout_facebook'] == 1)); } } } /** * @param $mod_reference * @param $module_params */ function module_shoutbox($mod_reference, $module_params) { global $shoutboxlib, $prefs, $user, $tiki_p_view_shoutbox; global $tiki_p_admin_shoutbox, $tiki_p_post_shoutbox, $base_url; $access = TikiLib::lib('access'); $smarty = TikiLib::lib('smarty'); $tikilib = TikiLib::lib('tiki'); include_once('lib/shoutbox/shoutboxlib.php'); if ($tiki_p_view_shoutbox == 'y') { if (isset($_REQUEST['shout_remove'])) { $info = $shoutboxlib->get_shoutbox($_REQUEST['shout_remove']); if ($tiki_p_admin_shoutbox == 'y' || $info['user'] == $user) { $access->check_authenticity(); $shoutboxlib->remove_shoutbox($_REQUEST["shout_remove"]); } } if ($tiki_p_post_shoutbox == 'y') { if (isset($_REQUEST['shout_send'])) { doProcessShout($_REQUEST); } } $maxrows = isset($module_params['maxrows']) ? $module_params['maxrows'] : 5; $shout_msgs = $shoutboxlib->list_shoutbox(0, $maxrows, 'timestamp_desc', ''); $smarty->assign('shout_msgs', $shout_msgs['data']); // Subst module parameters $smarty->assign('tooltip', isset($module_params['tooltip']) ? $module_params['tooltip'] : 0); $smarty->assign('buttontext', isset($module_params['buttontext']) ? $module_params['buttontext'] : tra('Post')); $smarty->assign('waittext', isset($module_params['waittext']) ? $module_params['waittext'] : tra('Please wait...')); $smarty->assign( 'tweet', isset($module_params['tweet']) && ($tikilib->get_user_preference($user, 'twitter_token') != '') ? $module_params['tweet'] : '0' ); $smarty->assign( 'facebook', isset($module_params['facebook']) && ($tikilib->get_user_preference($user, 'facebook_token') != '') ? $module_params['facebook'] : '0' ); } }