require_once getcwd().'/include/forum/lib/languages.php';
require_once getcwd().'/include/forum/lib/urls.php';
require_once getcwd().'/include/forum/lib/mysql.php';
require_once getcwd().'/include/forum/lib/models.php';
require_once getcwd().'/include/forum/lib/helper.php';
require_once getcwd().'/include/forum/api/forum.php';
include_once getcwd().'/include/version.php';
if(empty($version) || !in_array($version[0], array(2, 3))) {
trigger_error('Cannot determine SocialEngine version number', E_USER_ERROR);
}
define('SEP_Forum_SE_Version', $version[0]); // 3|2
$smarty->assign('SEP_Forum_SE_Version', SEP_Forum_SE_Version);
$SEPFLG = new SEP_Forum_Language();
$smarty->register_object('SEPFLG', $SEPFLG, null, false);
$SEPFSQL = SEP_Forum_Mysql::getInstance();
$SEPFSQL->printQuery(false);
$SEPFSQL->setResource(null);
$SEPFSQL->setModelMap(array('User' => 'se_users',
'Profile' => 'se_profiles',
'Profilevalue' => 'se_profilevalues',
'Profilefield' => 'se_profilefields',
'Profilecat' => 'se_profilecats',
'Level' => 'se_levels',
'Subnet' => 'se_subnets',
'Languagevar' => 'se_languagevars',
'Languagevar2' => 'se_languagevars',
'EmailQueue' => 'se_forum_email_queue'));
// IF YOU DO YOU OWN TRANSLATIONS FOR SOCIALENGINE VERSION 2
// ADD YOUR LANGUAGE TO THIS LIST!
$languages_map_v2 = array(
'english' => 'en',
'german' => 'de'
);
// @INFO: interface
// $language_code = en|de|...
if(SEP_Forum_SE_Version == 3) {
$_language = SE_Language::info();
$language_code = $_language['language_code'];
if(empty($language_code)) {
$language_code = SE_Language::info('language_code');
}
}
else {
$language_code = $languages_map_v2[$global_lang];
}
define('SEP_Forum_language_code', $language_code);
$_language_info = $SEPFSQL->query("SELECT language_id FROM se_languages WHERE (language_code='".mysql_real_escape_string($language_code)."') LIMIT 1");
$language_id = $_language_info['language_id'];
define('SEP_Forum_language_id', $language_id);
$SEPFLG->init(getcwd().'/locale', 'forum', $language_code);
$_menu_settings = SEP_Forum_Models::get_forum_setting('show_in_my_apps', 'show_in_main_menu');
$show_in_my_apps = $_menu_settings['show_in_my_apps'];
$show_in_main_menu = $_menu_settings['show_in_main_menu'];
$url_style = SEP_Forum_Models::get_forum_setting('url_style'); // default|mod_rewrite
$number_of_instances = $SEPFSQL->find('count', array('model' => 'Instance'));
$multi_instances = $number_of_instances > 1;
$SEPFURL = new SEP_Forum_Urls($multi_instances, null, $url_style);
$smarty->register_object('SEPFURL', $SEPFURL, null, false);
if($multi_instances) {
// get all forum instances
$instances = $SEPFSQL->find('all', array('model' => 'Instance', 'fields' => array('id', 'name'), 'conditions' => array('mode=?', array('forum')), 'order' => 'position ASC'));
$smarty->assign('sep_forum_instances', $instances);
// first instance_id for default forum home
$instance_id = $instances[0]['Instance']['id'];
}
else {
// forum is running in forum mode only
$first_instance = $SEPFSQL->find('first', array('model' => 'Instance', 'fields' => array('id'), 'order' => 'position ASC'));
$instance_id = $first_instance['Instance']['id']; // if multi_instances == false, set to default forum instance_id
$smarty->assign('sep_forum_instance', $instance_id);
}
$global_instance_id = &$instance_id; // set to default, if no instance_id was set per $_GET for forum home
if(SEP_Forum_SE_Version == 3) {
$smarty->assign('sep_forum_show_menu_item', true);
$smarty->assign('sep_forum_multiinstances', $multi_instances);
SE_Language::_preload(18001005);
if($show_in_my_apps) {
$plugin_vars = !empty($plugin_vars) ? $plugin_vars : array();
$plugin_vars['menu_user'] = array();
$plugin_vars['menu_user']['file'] = $SEPFURL->url_for_forum_home($instance_id, $url_style);
$plugin_vars['menu_user']['icon'] = '../forum/icon_navbar_main.gif';
$plugin_vars['menu_user']['title'] = 18001005;
}
if($show_in_main_menu) {
$plugin_vars['menu_main'] = Array('file' => $SEPFURL->url_for_forum_home($instance_id, $url_style), 'title' => 18001005);
}
} else {
// se v2
if($show_in_my_apps) {
$smarty->assign('sep_v2_user_menu_url', $SEPFURL->url_for_forum_home($instance_id, $url_style));
$smarty->assign('sep_v2_user_menu_img', '../forum/icon_navbar_main.gif');
$smarty->assign('sep_v2_user_menu_lang', 'Forum');
$smarty->assign('sep_v2_user_menu_show', true);
}
else {
$smarty->assign('sep_v2_user_menu_show', false);
}
}
// register function to decode post string
$smarty->register_function('sep_forum_text_decode', array('SEP_Forum_Helper', 'text_decode'));
$smarty->register_function('sep_forum_display_name', array('SEP_Forum_Helper', 'display_name'));
$smarty->register_function('sep_forum_get_rating', array('SEP_Forum_Helper', 'get_rating'));
$smarty->register_function('sep_forum_get_small_pagination_for_topic', array('SEP_Forum_Helper', 'small_pagination_for_topic'));
$smarty->register_function('sep_forum_parse_additional_table_fields', array('SEP_Forum_Helper', 'parse_additional_table_fields'));
$smarty->register_modifier('sep_forum_is_in_list', array('SEP_Forum_Helper', 'is_id_in_list'));
global $params;
$params = array();
if($page == "profile") {
// Connect to API on profile page
require_once getcwd().'/include/forum/api/impl/profile.php';
}
// set login before last login
if(empty($_COOKIE['SEP_Forum_before_last_login_date'])) {
setcookie("SEP_Forum_before_last_login_date", $user->user_info['user_lastlogindate'], time()+3600*24*90, "/");
}
elseif($_COOKIE['SEP_Forum_last_login_date'] != $user->user_info['user_lastlogindate'] && $_COOKIE['SEP_Forum_last_login_date'] != $_COOKIE['SEP_Forum_before_last_login_date']) {
setcookie("SEP_Forum_before_last_login_date", $_COOKIE['SEP_Forum_last_login_date'], time()+3600*24*90, "/");
SEP_Forum_Helper::reset_topic_reads();
}
// set last login
if(empty($_COOKIE['SEP_Forum_last_login_date']) || $_COOKIE['SEP_Forum_last_login_date'] < $user->user_info['user_lastlogindate']) {
setcookie("SEP_Forum_last_login_date", $user->user_info['user_lastlogindate'], time()+3600*24*90, "/");
}
// delete attachments
$delete_attachments = $SEPFSQL->find('all', array('model' => 'Attachment',
'fields' => array('Attachment.user_id', 'Attachment.post_id', 'Attachment.id', 'Attachment.filename'),
'conditions' => 'is_deleted=1',
'limit' => 5));
$_delete_attachments_ids = array();
foreach($delete_attachments as $attachment) {
@unlink(getcwd().'/uploads_forum/'.$attachment['user_id'].'/'.$attachment['post_id'].'/'.$attachment['filename']);
if(!empty($attachment['id'])) {
$_delete_attachments_ids[] = $attachment['id'];
}
}
if(!empty($_delete_attachments_ids) && is_array($_delete_attachments_ids) && count($_delete_attachments_ids) > 0) {
$SEPFSQL->raw_query('DELETE FROM se_forum_attachments WHERE id IN ('.implode(',', $_delete_attachments_ids).') LIMIT 5');
}
unset($delete_attachments); unset($_delete_attachments_ids);
// TRIGGER EMAIL QUEUE
$forum_settings = SEP_Forum_Models::get_forum_setting('email_queue_send_limit', 'email_queue_delay', 'email_queue_last_sent');
if(empty($forum_settings['email_queue_last_sent']) || strtotime($forum_settings['email_queue_last_sent']) < time()-($forum_settings['email_queue_delay']*60)) {
$emails = $SEPFSQL->find('all', array('model' => 'EmailQueue',
'limit' => $forum_settings['email_queue_send_limit'],
'order' => 'priority DESC'));
if(!empty($emails[0]['EmailQueue'])) {
$delete_ids = array();
foreach($emails as $email) {
$delete_ids[] = $email['EmailQueue']['id'];
SEP_Forum_Helper::send_raw_email($email['EmailQueue']['email'], $email['EmailQueue']['subject'], $email['EmailQueue']['body']);
}
if(!empty($delete_ids[0])) {
$delete_ids = implode(',', $delete_ids);
$SEPFSQL->raw_query("DELETE FROM se_forum_email_queue WHERE id IN ($delete_ids)");
}
}
$SEPFSQL->update('Setting', array('value' => 'CURRENT_TIMESTAMP()'), array('id=?', array('email_queue_last_sent')));
}
unset($delete_ids); unset($emails); unset($forum_settings);
// number of items per page setting
define('sep_forum_items_per_page', SEP_Forum_Models::get_forum_setting('items_per_page'));
/**
* Global method to determine if a multidimensional array is really empty
* @return true, if array is empty
* @param array $array array to check
*/
function sepf_aempty($array) {
if ( empty($array)) {
return true;
}
if (count($array, COUNT_RECURSIVE) === 0) {
return true;
}
return false;
}
if(SEP_Forum_SE_Version == 3) {
// add stats to "NETWORK STATISTICS" in home.tpl
SE_Hook::register('se_site_statistics', array('SEP_Forum_Helper', 'get_forum_stats_for_home'));
}
?>
Healthy Friendships - Contact Us
If you want to ask us a question directly, please submit your message with the following form.
|
|