Current Path : /var/www/html/clients/rebirth.e-nk.ru/sources/action_public/ |
Current File : /var/www/html/clients/rebirth.e-nk.ru/sources/action_public/browsebuddy.php |
<?php /* +-------------------------------------------------------------------------- | Invision Power Board | ============================================= | by Matthew Mecham | (c) 2001 - 2006 Invision Power Services, Inc. | Nullified by Terabyte | ============================================= | | +--------------------------------------------------------------------------- | > $Date: 2006-09-22 06:28:54 -0400 (Fri, 22 Sep 2006) $ | > $Revision: 567 $ | > $Author: matt $ +--------------------------------------------------------------------------- | | > Browse Buddy Module | > Module written by Matt Mecham | > Date started: 2nd July 2002 | | > Module Version Number: 1.0.0 | > DBA Checked: Wed 19 May 2004 | > Quality Checked: Wed 15 Sept. 2004 +-------------------------------------------------------------------------- */ if ( ! defined( 'IN_IPB' ) ) { print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files."; exit(); } class assistant { # Classes var $ipsclass; # Others var $output = ""; var $page_title = ""; var $nav = array(); var $html = ""; var $ajaxml = 0; /*-------------------------------------------------------------------------*/ // AUTO RUN /*-------------------------------------------------------------------------*/ function auto_run() { //----------------------------------------- // Ajax request? //----------------------------------------- $this->ajaxml = intval( $this->ipsclass->input['xml'] ); //----------------------------------------- // Require the HTML and language modules //----------------------------------------- $this->ipsclass->load_language('lang_buddy'); $this->ipsclass->load_template('skin_buddy'); //----------------------------------------- // What to do? //----------------------------------------- switch($this->ipsclass->input['code']) { default: $this->ajaxml ? $this->xml_splash() : $this->splash(); break; } //----------------------------------------- // If we have any HTML to print, do so... //----------------------------------------- $this->output = str_replace( "<!--CLOSE.LINK-->", $this->ipsclass->compiled_templates['skin_buddy']->closelink(), $this->output ); if ( ! $this->ajaxml ) { $this->ipsclass->print->pop_up_window($this->ipsclass->lang['page_title'], $this->ipsclass->compiled_templates['skin_buddy']->buddy_js().$this->output); } else { @header( "Content-type: text/plain;charset={$this->ipsclass->vars['gb_char_set']}" ); print $this->output; exit(); } } /*-------------------------------------------------------------------------*/ // Build menu tree /*-------------------------------------------------------------------------*/ function xml_build_tabs() { $this->ipsclass->input['tab'] = $this->ipsclass->input['tab'] ? $this->ipsclass->input['tab'] : 'info'; $onoff['info'] = 'pp-taboff'; $onoff['posts'] = 'pp-taboff'; $onoff['search'] = 'pp-taboff'; $onoff['pms'] = 'pp-taboff'; $onoff['newpms'] = 'pp-taboff'; $onoff[ $this->ipsclass->input['tab'] ] = 'pp-tabon'; return $this->ipsclass->compiled_templates['skin_buddy']->xml_tabs( $onoff ); } /*-------------------------------------------------------------------------*/ // XML: SPLASH /*-------------------------------------------------------------------------*/ function xml_splash() { //----------------------------------------- // Is this a guest? If so, get 'em to log in. //----------------------------------------- if ( ! $this->ipsclass->member['id'] ) { //$this->output = $this->ipsclass->compiled_templates['skin_buddy']->login(); return; } //----------------------------------------- // What tab? //----------------------------------------- switch( $this->ipsclass->input['tab'] ) { case 'posts': $this->xml_get_posts(); break; case 'search': $this->xml_get_search(); break; case 'newpms': $this->xml_get_new_pms(); break; case 'pms': $this->xml_get_unread_pms(); break; default: $this->xml_get_info(); break; } $this->output = $this->ipsclass->compiled_templates['skin_buddy']->xml_wrap( $this->xml_build_tabs() . $this->output ); } /*-------------------------------------------------------------------------*/ // XML GET: UNREAD PMS /*-------------------------------------------------------------------------*/ function xml_get_unread_pms() { //----------------------------------------- // Check... //----------------------------------------- if ( ! $this->ipsclass->member['g_use_pm'] OR $this->ipsclass->member['members_disable_pm'] ) { return; } //----------------------------------------- // Get XML class //----------------------------------------- require_once( ROOT_PATH.'sources/action_public/xmlout.php' ); $xmlout = new xmlout(); $xmlout->ipsclass =& $this->ipsclass; $this->output = $xmlout->get_new_messages( 1 ); } /*-------------------------------------------------------------------------*/ // XML GET: PMS /*-------------------------------------------------------------------------*/ function xml_get_new_pms() { //----------------------------------------- // INIT //----------------------------------------- $limit = intval( $_REQUEST['limit'] ); //----------------------------------------- // Check... //----------------------------------------- if ( ! $this->ipsclass->member['g_use_pm'] OR $this->ipsclass->member['members_disable_pm'] ) { return; } //----------------------------------------- // Couldn't be easier.... //----------------------------------------- if ( $this->ipsclass->member['new_msg'] ) { $this->output = $this->ipsclass->get_new_pm_notification( $limit, 1 ); } else { $this->output = $this->ipsclass->compiled_templates['skin_buddy']->xml_nonewpms(); } } /*-------------------------------------------------------------------------*/ // XML GET: INFO /*-------------------------------------------------------------------------*/ function xml_get_info() { $this->output = $this->ipsclass->compiled_templates['skin_buddy']->xml_showme(); } /*-------------------------------------------------------------------------*/ // XML GET: SEARCH /*-------------------------------------------------------------------------*/ function xml_get_search() { $this->output = $this->ipsclass->compiled_templates['skin_buddy']->xml_search(); } /*-------------------------------------------------------------------------*/ // XML GET: POSTS /*-------------------------------------------------------------------------*/ function xml_get_posts() { //----------------------------------------- // Get XML class //----------------------------------------- require_once( ROOT_PATH.'sources/action_public/xmlout.php' ); $xmlout = new xmlout(); $xmlout->ipsclass =& $this->ipsclass; $this->output = $xmlout->get_new_posts( 1 ); } /*-------------------------------------------------------------------------*/ // SPLASH /*-------------------------------------------------------------------------*/ function splash() { //----------------------------------------- // Is this a guest? If so, get 'em to log in. //----------------------------------------- if ( ! $this->ipsclass->member['id'] ) { $this->output = $this->ipsclass->compiled_templates['skin_buddy']->login(); return; } else { //----------------------------------------- // Get the forums we're allowed to search in //----------------------------------------- $allow_forums = array(); $allow_forums[] = '0'; foreach( $this->ipsclass->forums->forum_by_id as $data ) { $allow_forums[] = $data['id']; } $forum_string = implode( ",", $allow_forums ); //----------------------------------------- // Get the number of posts since the last visit. //----------------------------------------- if ( ! $this->ipsclass->member['last_visit'] ) { $this->ipsclass->member['last_visit'] = time() - 3600; } if ( $this->ipsclass->forum_read[0] > $this->ipsclass->member['last_visit'] ) { $this->ipsclass->member['last_visit'] = $this->ipsclass->forum_read[0]; } $this->ipsclass->DB->cache_add_query( 'buddy_posts_last_visit', array( 'last_visit' => $this->ipsclass->member['last_visit'], 'forum_string' => $forum_string ) ); $this->ipsclass->DB->cache_exec_query(); $posts = $this->ipsclass->DB->fetch_row(); $posts_total = intval($posts['posts']); //----------------------------------------- // Get the number of posts since the last visit to topics we've started. //----------------------------------------- $this->ipsclass->DB->simple_construct( array( 'select' => 'count(*) as replies', 'from' => 'topics', 'where' => "last_post > {$this->ipsclass->member['last_visit']} AND approved=1 AND forum_id IN($forum_string) AND posts > 0 AND starter_id={$this->ipsclass->member['id']}" ) ); $this->ipsclass->DB->simple_exec(); $topic = $this->ipsclass->DB->fetch_row(); $topics_total = ($topic['replies'] < 1) ? ucfirst($this->ipsclass->lang['none']) : $topic['replies']; $text = $this->ipsclass->lang['no_new_posts']; if ($posts_total > 0) { $this->ipsclass->lang['new_posts'] = sprintf($this->ipsclass->lang['new_posts'] , $posts_total ); $this->ipsclass->lang['my_replies'] = sprintf($this->ipsclass->lang['my_replies'], $topics_total ); $this->ipsclass->lang['new_posts'] .= $this->ipsclass->compiled_templates['skin_buddy']->append_view("&act=Search&CODE=getnew"); if ($topic['replies'] > 0) { $this->ipsclass->lang['my_replies'] .= $this->ipsclass->compiled_templates['skin_buddy']->append_view("&act=Search&CODE=getreplied"); } $text = $this->ipsclass->compiled_templates['skin_buddy']->build_away_msg(); } $this->output = $this->ipsclass->compiled_templates['skin_buddy']->main($text); } } } ?>