HEX
Server: Apache/2.4.59 (Debian)
System: Linux skycube.cz 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64
User: ilya (534)
PHP: 7.3.31-1~deb10u7
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/ilya/data/www/kamforum.ru/sources/sql/mysql_queries.php
<?php

/*
+--------------------------------------------------------------------------
|   Invision Power Board v2.1.5
|   =============================================
|   by Matthew Mecham
|   (c) 2001 - 2005 Invision Power Services, Inc.
|   http://www.invisionpower.com
|   =============================================
|   Web: http://www.invisionboard.com
|   Time: Wed, 04 Jan 2006 19:53:17 GMT
|   Release: 2d174325a5cb8288fdab03b953f0e659
|   Licence Info: http://www.invisionboard.com/?license
+---------------------------------------------------------------------------
|   > $Date: 2005-12-30 23:02:19 +0000 (Fri, 30 Dec 2005) $
|   > $Revision: 109 $
|   > $Author: bfarber $
+---------------------------------------------------------------------------
|
|   > MySQL DB Queries abstraction module
|   > Module written by Matt Mecham
|   > Date started: 26th November 2003
|
|	> Module Version Number: 1.0.0
+--------------------------------------------------------------------------
*/



class sql_queries extends db_driver
{

     var $db  = "";
     var $tbl = "";
     
    /*========================================================================*/
    // Set up...             
    /*========================================================================*/  
                   
    function sql_queries( &$obj )
    {
    	$this->db = &$obj;
    	
    	if ( ! $this->db->obj['sql_tbl_prefix'] )
    	{
    		$this->db->obj['sql_tbl_prefix'] = 'ibf_';
    	}
    	
    	$this->tbl = $this->db->obj['sql_tbl_prefix'];
    }
    
    /*========================================================================*/
    
    # NEW: 2.1 (a5)
    function general_get_by_display_name( $a )
    {
    	return "SELECT id, members_display_name, name, email, mgroup, member_login_key, ip_address, login_anonymous
				FROM ".SQL_PREFIX."members
				WHERE LOWER(members_display_name)='{$a['members_display_name']}'";
    }
    
    function forums_get_active_users( $a )
    {
    	# forums.php
    	
    	return "SELECT s.member_id, s.member_name, s.member_group, s.id, s.login_type, s.location, s.running_time, t.forum_id
				FROM ".SQL_PREFIX."sessions s
				 LEFT JOIN ".SQL_PREFIX."topics t ON ( t.tid=s.location_1_id)
				WHERE s.location_2_type='forum' AND (s.location_2_id={$a['fid']} OR t.forum_id={$a['fid']})
				AND s.running_time > {$a['time']}
				AND s.in_error=0";
    }
    
    function forums_get_replied_topics( $a )
    {
    	return  "SELECT COUNT(DISTINCT(p.topic_id)) as max FROM ".SQL_PREFIX."topics t
				  LEFT JOIN ".SQL_PREFIX."posts p ON (p.topic_id=t.tid)
				 WHERE t.forum_id={$a['fid']} AND p.author_id={$a['mid']} AND p.new_topic=0
				 {$a['approved']} {$a['prune_filter']}";
    }
    
    function forums_get_replied_topics_actual( $a )
    {
    	return  "SELECT DISTINCT(p.author_id), t.* FROM ".SQL_PREFIX."topics t
				  LEFT JOIN ".SQL_PREFIX."posts p ON (p.topic_id=t.tid AND p.author_id={$a['mid']})
				 WHERE t.forum_id={$a['fid']} 
				 AND {$a['query']}  AND p.new_topic=0
				 ORDER BY t.pinned desc,{$a['topic_sort']} {$a['sort_key']} {$a['r_sort_by']}
				 LIMIT {$a['limit_a']}, {$a['limit_b']}";
    }
    
    function topics_check_for_mod( $a )
    {
    	# topics.php
    	
    	return "SELECT * FROM ".SQL_PREFIX."moderators WHERE forum_id={$a['fid']} AND (member_id={$a['mid']} OR (is_group=1 AND group_id={$a['gid']}))";
    	
    }
    
    
    function topics_get_posts( $a )
    {
    	# topics.php
    	
    	return "SELECT p.*,
				m.id,m.awards_img,m.awards_dig,m.name,m.mgroup,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title,m.hide_email, m.warn_level, m.warn_lastwarn,
				me.msnname,me.aim_name,me.icq_number,me.signature, me.website,me.yahoo,me.location, me.avatar_location, me.avatar_type, me.avatar_size, m.members_display_name, m.reputation
				FROM ".SQL_PREFIX."posts p
				  LEFT JOIN ".SQL_PREFIX."members m ON (p.author_id=m.id)
				  LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
				WHERE p.pid IN(".implode(',', $a['pids']).") ORDER BY {$a['scol']} {$a['sord']}";
    	
    }
    
    function topics_get_posts_with_join( $a )
    {
    	# topics.php
    	
    	return "SELECT p.*,
				m.id,m.awards_img,m.awards_dig,m.name,m.mgroup,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title,m.hide_email, m.warn_level, m.warn_lastwarn,
				me.msnname,me.aim_name,me.icq_number,me.signature, me.website,me.yahoo,me.location, me.avatar_location, me.avatar_type, me.avatar_size, m.members_display_name, m.reputation,
				pc.*
				FROM ".SQL_PREFIX."posts p
				  LEFT JOIN ".SQL_PREFIX."members m ON (p.author_id=m.id)
				  LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
				  LEFT JOIN ".SQL_PREFIX."pfields_content pc ON (pc.member_id=p.author_id)
				WHERE p.pid IN(".implode(',', $a['pids']).") ORDER BY {$a['scol']} {$a['sord']}";
    	
    }
    
    function topics_get_active_users( $a )
    {
    	# topics.php
    	
    	return "SELECT s.member_id, s.member_name, s.member_group, s.id, s.login_type, s.location, s.running_time
				FROM ".SQL_PREFIX."sessions s
				WHERE s.location_1_type='topic' AND s.location_1_id={$a['tid']}
				AND s.running_time > {$a['time']}
				AND s.in_error=0";
	}

	# Deleted			
	function topics_replace_topic_read( $a )
	{
		# topics.php
		# Not got REPLACE INTO? Use delete from .. where, then insert into ... set...
		
		return "REPLACE INTO ".SQL_PREFIX."topics_read SET read_tid={$a['tid']},read_mid={$a['mid']},read_date={$a['date']}";	
	}

	
	function post_topic_tracker( $a )
	{
		#post
		
		return "SELECT tr.trid, tr.topic_id, m.name, m.email, m.id, m.email_full, m.language, m.org_perm_id, m.mgroup, m.mgroup_others, m.last_activity, t.title, t.forum_id, t.approved
				FROM ".SQL_PREFIX."tracker tr, ".SQL_PREFIX."topics t,".SQL_PREFIX."members m
				WHERE tr.topic_id='{$a['tid']}'
				AND tr.member_id=m.id
				AND m.id <> {$a['mid']}
				AND t.tid=tr.topic_id
				AND ( ( tr.topic_track_type='delayed' AND m.last_activity > {$a['last_post']} ) OR tr.topic_track_type='immediate' )";
	
	}
	
	#REMOVED
	/*function post_forum_tracker( $a )
	{
		#post
		
		return "SELECT tr.frid, m.name, m.email, m.id, m.language, m.last_activity, m.org_perm_id, g.g_perm_id
				FROM ".SQL_PREFIX."forum_tracker tr,".SQL_PREFIX."members m, ".SQL_PREFIX."groups g
				WHERE tr.forum_id={$a['fid']}
				AND tr.member_id=m.id
				AND m.mgroup=g.g_id
				AND m.id <> {$a['mid']}
				AND ( ( tr.forum_track_type='delayed' AND m.last_activity < {$a['last_post']} ) OR tr.forum_track_type='immediate' )";
	}*/
	
	
	function post_get_quoted( $a )
	{
		return "select p.*,t.forum_id FROM ".SQL_PREFIX."posts p LEFT JOIN ".SQL_PREFIX."topics t ON (t.tid=p.topic_id)
				WHERE pid IN (".implode(",", $a['quoted_pids']).")";
	
	}
	
	function msg_get_msg_poster( $a )
	{
		return "SELECT m.*, g.* FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g WHERE m.id={$a['mid']} AND g.g_id=m.mgroup";
	}
	
	function msg_get_msg_archive( $a )
	{
		return "SELECT m.id,m.name, m.members_disable_pm, m.mgroup,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title,m.hide_email, m.warn_level, m.warn_lastwarn,
				g.g_id, g.g_title, g.g_icon, g.g_dohtml, m.members_display_name, 
				me.msnname,me.aim_name,me.icq_number,me.signature, me.website,me.yahoo,me.location, me.avatar_location, me.avatar_type, me.avatar_size,
				mt.*, msg.*
				FROM ".SQL_PREFIX."message_topics mt
				 LEFT JOIN ".SQL_PREFIX."message_text msg ON (mt.mt_msg_id=msg.msg_id)
				 LEFT JOIN ".SQL_PREFIX."members m ON (mt.mt_from_id=m.id)
				 LEFT JOIN ".SQL_PREFIX."groups g ON (g.g_id=m.mgroup)
				 LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
				WHERE mt.mt_owner_id={$a['mid']} AND mt.mt_date {$a['older_newer']} {$a['time_cut']} {$a['folder_query']}
				LIMIT 0, {$a['limit_b']}";
	}
	
	function msg_get_msg_to_show( $a )
	{
		return "SELECT m.id,m.name,m.members_disable_pm,m.mgroup,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title,m.hide_email, m.warn_level, m.warn_lastwarn,
				g.g_id, g.g_title, g.g_icon, g.g_dohtml, m.members_display_name,
				me.msnname,me.aim_name,me.icq_number,me.signature, me.website,me.yahoo,me.location, me.avatar_location, me.avatar_type, me.avatar_size,
				mt.*, msg.*
				FROM ".SQL_PREFIX."message_topics mt
				 LEFT JOIN ".SQL_PREFIX."message_text msg ON (mt.mt_msg_id=msg.msg_id)
				 LEFT JOIN ".SQL_PREFIX."members m ON (mt.mt_from_id=m.id)
				 LEFT JOIN ".SQL_PREFIX."groups g ON (g.g_id=m.mgroup)
				 LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
				WHERE mt.mt_id={$a['msgid']} AND mt.mt_owner_id={$a['mid']}";
	}
	
	function msg_get_saved_msg( $a )
	{
		return "SELECT m.id, m.name, m.members_display_name, m.members_disable_pm, mt.*, msg.*
				FROM ".SQL_PREFIX."message_topics mt
				 LEFT JOIN ".SQL_PREFIX."message_text msg ON (mt.mt_msg_id=msg.msg_id)
				 LEFT JOIN ".SQL_PREFIX."members m ON (mt.mt_to_id=m.id)
				WHERE mt.mt_id={$a['msgid']} AND mt.mt_owner_id={$a['mid']}";
	}
	#IPB 2.1: Changed m.members_display_name AND LOWER(m.members_display_name)
    function msg_get_cc_users( $a )
    {

            return "SELECT m.mgroup_others, m.id, m.name, m.members_disable_pm, m.members_display_name, m.msg_total, m.view_pop, m.email_pm, m.language, m.email, me.vdirs, g.g_max_messages, g.g_use_pm FROM ".SQL_PREFIX."members m
                    INNER JOIN ".SQL_PREFIX."groups g ON (m.mgroup=g.g_id)
                    LEFT JOIN ".SQL_PREFIX."member_extra me ON (m.id=me.id)
                       WHERE LOWER(m.members_display_name) IN (".implode(",",$a['name_array']).")";


    }
	
	function msg_get_cc_blocked( $a )
	{
	
		return "SELECT m.name, m.members_display_name, m.members_disable_pm, c.allow_msg
				FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."contacts c
				WHERE contact_id={$a['mid']}
				AND member_id IN (".implode(",",$a['cc_array']).") AND m.id=c.member_id";
	
	}
	
	# Changed: mem.members_display_name as from_name
	function msg_get_sent_list( $a )
	{
		return "SELECT mem.members_display_name as from_name, mem.id as from_id, mt.*, msg.msg_id, msg.msg_cc_users
				 FROM ".SQL_PREFIX."message_topics mt
				 LEFT JOIN ".SQL_PREFIX."members mem ON ( mt.mt_to_id=mem.id )
				 LEFT JOIN ".SQL_PREFIX."message_text msg ON ( mt.mt_msg_id=msg.msg_id )
				WHERE mt.mt_owner_id={$a['mid']} AND (mt.mt_from_id={$a['mid']} OR mt.mt_to_id={$a['mid']}) AND mt.mt_vid_folder='{$a['vid']}'
				ORDER BY {$a['sort']} LIMIT {$a['limita']}, {$a['limitb']}";
	}
	
	# Changed: mem.members_display_name as from_name
	function msg_get_folder_list( $a )
	{
	
		return "SELECT mt.*,mem.members_display_name as from_name, mem.id as from_id
				 FROM ".SQL_PREFIX."message_topics mt
				 LEFT JOIN ".SQL_PREFIX."members mem ON ( mt.mt_from_id=mem.id )
				WHERE mt.mt_owner_id={$a['mid']} AND mt.mt_to_id={$a['mid']}  AND mt.mt_vid_folder='{$a['vid']}'
				ORDER BY {$a['sort']} LIMIT {$a['limita']}, {$a['limitb']}";
	}
	
	# Changed: mp.members_display_name as to_name
	function msg_get_tracking( $a )
	{
		return "SELECT msg.*, mt.*, mp.members_display_name as to_name, mp.id as memid
				 FROM ".SQL_PREFIX."message_topics mt
				  LEFT JOIN ".SQL_PREFIX."message_text msg ON ( mt.mt_msg_id=msg.msg_id )
				  LEFT JOIN ".SQL_PREFIX."members mp ON (mt.mt_to_id=mp.id)
				WHERE mt.mt_from_id={$a['mid']} AND mt.mt_tracking=1";
	
	}
	
	# Updated (msg_get_new_pm_notification) in v2.1 [changed LIMIT ADDED m.members_display_name ]
	function msg_get_new_pm_notification( $a )
	{
		return "SELECT m.id,m.name,m.mgroup,m.email,m.joined,m.posts, m.last_visit, m.last_activity,
				 m.warn_level, m.warn_lastwarn, m.members_display_name,
				 me.*,
				g.g_id, g.g_title, g.g_icon, g.g_dohtml, mt.*, msg.*
				FROM ".SQL_PREFIX."message_topics mt
				 LEFT JOIN ".SQL_PREFIX."message_text msg ON (mt.mt_msg_id=msg.msg_id)
				 LEFT JOIN ".SQL_PREFIX."members m ON (mt.mt_from_id=m.id)
				 LEFT JOIN ".SQL_PREFIX."member_extra me ON (mt.mt_from_id=me.id)
				 LEFT JOIN ".SQL_PREFIX."groups g ON (g.g_id=m.mgroup)
				WHERE mt.mt_owner_id={$a['mid']} AND mt.mt_vid_folder='in' ORDER BY mt_date DESC LIMIT {$a['limit_a']},1";
	}
	
	function ucp_tracker_prune( $a )
	{
		return "SELECT tr.trid FROM ".SQL_PREFIX."tracker tr, ".SQL_PREFIX."topics t WHERE t.tid=tr.topic_id AND t.last_post < {$a['time']}";
	}
	# Changed
	function profile_get_all( $a )
	{
		return "SELECT m.*, me.*, s.location_1_id, s.location_2_id, s.location_1_type, s.location_2_type, s.running_time, s.location as sesslocation FROM ".SQL_PREFIX."members m
					LEFT JOIN ".SQL_PREFIX."sessions s ON (s.member_id=m.id)
					LEFT JOIN ".SQL_PREFIX."member_extra me ON ( me.id=m.id )
				WHERE m.id={$a['mid']}";
	}
	
	function profile_get_favourite( $a )
	{
		return "SELECT t.forum_id, COUNT(p.author_id) as f_posts
    				FROM ".SQL_PREFIX."posts p
    				  LEFT JOIN ".SQL_PREFIX."topics t ON ( p.topic_id=t.tid AND t.forum_id IN (".implode(",",$a['fid_array']).") )
    			    WHERE p.author_id={$a['mid']} AND t.tid IS NOT NULL
    			    GROUP BY t.forum_id
    			    ORDER BY f_posts DESC";
	}
	
	function attach_get_perms( $a )
	{
		return "SELECT p.pid, p.topic_id, t.forum_id
    				FROM ".SQL_PREFIX."posts p
    				  LEFT JOIN ".SQL_PREFIX."topics t ON ( p.topic_id=t.tid )
    			    WHERE p.pid={$a['apid']}";
	}
	
	
	function usercp_get_attachments( $a )
	{
		return "SELECT a.*, t.*, p.topic_id
				 FROM ".SQL_PREFIX."attachments a
				  LEFT JOIN ".SQL_PREFIX."posts p ON ( a.attach_pid=p.pid )
				  LEFT JOIN ".SQL_PREFIX."topics t ON ( t.tid=p.topic_id )
				 WHERE a.attach_member_id={$a['mid']}
				 ORDER BY {$a['order']}
				 LIMIT {$a['limit_a']}, {$a['limit_b']}";
	
	}
	
	function usercp_get_to_delete( $a )
	{
		return "SELECT a.*, p.topic_id, p.pid
				 FROM ".SQL_PREFIX."attachments a
				  LEFT JOIN ".SQL_PREFIX."posts p ON ( a.attach_pid=p.pid )
				 WHERE a.attach_id IN (".implode(",",$a['aid_array']).")
				 AND attach_member_id={$a['mid']}";
	
	}
	
	
	
	function stats_get_all_members( $a )
	{
		return "SELECT m.*, me.*
    			 FROM ".SQL_PREFIX."members m
    				LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
    			 WHERE m.id IN(".implode(',', $a['member_ids']).")
    			 ORDER BY m.members_display_name";
	}
	
	function stats_get_all_members_groups( $a )
	{
		return "SELECT m.*, me.*
    			 FROM ".SQL_PREFIX."members m
    				LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
    			 WHERE m.mgroup IN (".implode( ',', $a['group_ids'] ).")
    			 ORDER BY m.members_display_name";
	}
	
	function stats_get_todays_posters( $a )
	{
		return "SELECT COUNT(*) as tpost, m.id, m.name, m.members_display_name, m.joined, m.posts
				 FROM ".SQL_PREFIX."posts p
					LEFT JOIN ".SQL_PREFIX."members m ON (m.id=p.author_id )
					LEFT JOIN ".SQL_PREFIX."topics t ON (t.tid=p.topic_id)
				WHERE t.forum_id in(".implode(",", $a['ids']).") and post_date > {$a['time_low']}
				GROUP BY p.author_id
				ORDER BY tpost DESC LIMIT 0,10";
	}
	
	function ucp_mod_ip_tool_one( $a )
	{
		return "SELECT p.pid, t.forum_id
				FROM ".SQL_PREFIX."posts p
				LEFT JOIN ".SQL_PREFIX."topics t ON(t.tid=p.topic_id)
				WHERE t.forum_id IN({$a['the_forums']}) AND {$a['sql']}";
	}
	
	# Changed: added m.members_display_name
	function ucp_get_all_announcements( $a )
	{
		return "SELECT a.*, m.id, m.name, m.members_display_name
				 FROM ".SQL_PREFIX."announcements a
				  LEFT JOIN ".SQL_PREFIX."members m on (a.announce_member_id=m.id)
				 ORDER BY announce_end DESC";
	}
	
	function ucp_get_all_announcements_byid( $a )
	{
		return "SELECT a.*, m.*, me.*
				 FROM ".SQL_PREFIX."announcements a
				  LEFT JOIN ".SQL_PREFIX."members m on (a.announce_member_id=m.id)
				  LEFT JOIN ".SQL_PREFIX."member_extra me on (me.id=m.id)
				 WHERE a.announce_id={$a['id']}";
	}
	
	function ucp_get_forum_tracker( $a )
	{
		return "SELECT t.*, f.*
				FROM ".SQL_PREFIX."forum_tracker t
				 LEFT JOIN ".SQL_PREFIX."forums f ON (t.forum_id=f.id)
				WHERE t.member_id={$a['mid']}
				ORDER BY f.position";
	}
	
	function ucp_get_topic_tracker( $a )
	{
		return "SELECT s.topic_track_type, s.trid, s.member_id, s.topic_id, s.last_sent, s.start_date as track_started, t.*, f.id as forum_id, f.name as forum_name
				FROM ".SQL_PREFIX."tracker s, ".SQL_PREFIX."topics t, ".SQL_PREFIX."forums f
				WHERE s.member_id={$a['mid']} AND t.tid=s.topic_id AND f.id=t.forum_id {$a['date_query']}
				ORDER BY f.id, t.last_post DESC";
	}
	
	# Changed, removed group stuff
	function mlist_count( $a )
	{
		# Attempt to optimize on the fly...
		
		$query_bit_1 = '';
		$query_bit_2 = '';
		
		if ( strstr( $a['query'], 'p.field_' ) )
		{
			$query_bit_2 = "LEFT JOIN ".SQL_PREFIX."pfields_content p ON (p.member_id=m.id)";
		}
		
		if ( strstr( $a['query'], 'me.' ) )
		{
			$query_bit_1 = "LEFT JOIN ".SQL_PREFIX."member_extra me ON me.id=m.id";
		}
		
		if ( $a['query'] )
		{
			$a['query'] = 'WHERE '.$a['query'];
		}
		
		return "SELECT COUNT(*) as total_members FROM ".SQL_PREFIX."members m
				{$query_bit_1}
				{$query_bit_2}
				{$a['query']}";
	}
	
	# Changed, removed group stuff
	function mlist_get_members( $a )
	{
		if ( $a['query'] )
		{
			$a['query'] = 'WHERE '.$a['query'];
		}
		
		return "SELECT m.*,me.*,p.* FROM ".SQL_PREFIX."members m
				LEFT JOIN ".SQL_PREFIX."member_extra me ON me.id=m.id
				LEFT JOIN ".SQL_PREFIX."pfields_content p ON (p.member_id=m.id)
				{$a['query']}
				ORDER BY m.{$a['sort']} {$a['order']}
				LIMIT {$a['limit_a']}, {$a['limit_b']}";
	}
	
	function forum_get_attachments( $a )
	{
		return "SELECT a.*, t.*, p.topic_id, p.pid
				 FROM ".SQL_PREFIX."attachments a
				  LEFT JOIN ".SQL_PREFIX."posts p ON ( a.attach_pid=p.pid )
				  LEFT JOIN ".SQL_PREFIX."topics t ON ( t.tid=p.topic_id )
				 WHERE a.attach_pid != 0 AND p.topic_id={$a['tid']}
				 ORDER BY a.attach_date";
	
	}
	
	function buddy_posts_last_visit( $a )
	{
		return "SELECT COUNT(*) as posts 
				FROM ".SQL_PREFIX."posts p USE INDEX (topic_id)
				 LEFT JOIN ".SQL_PREFIX."topics t ON (p.topic_id=t.tid)		 
				 WHERE t.forum_id IN({$a['forum_string']})
				AND p.queued=0 AND p.post_date > {$a['last_visit']}";
 	}
	
	function generic_get_all_member( $a )
	{
		return "SELECT g.*, m.*, me.*
				FROM ".SQL_PREFIX."members m
				 LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
				 LEFT JOIN ".SQL_PREFIX."groups g ON (g.g_id=m.mgroup)
				WHERE m.id={$a['mid']}";
	}
	
	function moderate_get_topics( $a )
	{
		return "SELECT p.*,t.forum_id FROM ".SQL_PREFIX."posts p LEFT JOIN ".SQL_PREFIX."topics t ON (t.tid=p.topic_id) WHERE pid IN (".implode(",", $a['pids']).")";
	}
	
	function moderate_concat_title( $a )
	{
		return "UPDATE ".SQL_PREFIX."topics SET title=CONCAT('{$a['pre']}', title, '{$a['end']}') WHERE tid IN(".implode( ",", $a['tids'] ).")";
	}
	
	# UPDATE 2.1
	function mod_func_get_last_post( $a )
	{
		return "SELECT p.post_date, p.topic_id, p.author_id, p.author_name, p.pid, t.forum_id, m.id, m.members_display_name
				FROM ".SQL_PREFIX."posts p
				 LEFT JOIN ".SQL_PREFIX."topics t ON (p.topic_id=t.tid)
				 LEFT JOIN ".SQL_PREFIX."members m ON (p.author_id=m.id)
				WHERE topic_id={$a['tid']} and queued=0
				ORDER BY pid DESC LIMIT 0,1";
	}
	
	function mod_func_get_attach_count( $a )
	{
		return "SELECT COUNT(*) as count FROM ".SQL_PREFIX."attachments a
			     LEFT JOIN ".SQL_PREFIX."posts p on (a.attach_pid=p.pid)
			    WHERE p.topic_id={$a['tid']}";
	
	}
	
	function mod_func_get_topic_tracker( $a )
	{
		return "SELECT tr.*, m.id, m.mgroup, m.org_perm_id, t.tid, t.forum_id, g.g_id, g.g_perm_id
				 FROM ".SQL_PREFIX."tracker tr
				 LEFT JOIN ".SQL_PREFIX."topics t ON (tr.topic_id=t.tid)
				 LEFT JOIN ".SQL_PREFIX."members m on (m.id=tr.member_id)
				 LEFT JOIN ".SQL_PREFIX."groups g on (g.g_id=m.mgroup)
				WHERE tr.topic_id".$a['tid'];
	}
	
	function register_get_dead_validating( $a )
	{
		return "SELECT v.vid, v.member_id, m.posts
				   FROM ".SQL_PREFIX."validating v
				 LEFT JOIN ".SQL_PREFIX."members m ON (v.member_id=m.id)
				WHERE v.new_reg=1
				AND v.coppa_user <> 1
				AND v.entry_date < {$a['less_than']}
				AND v.lost_pass <> 1";
	}
	
	function search_get_all_user_count( $a )
	{
		return "SELECT count(*) as count
				FROM ".SQL_PREFIX."posts p
				 LEFT JOIN ".SQL_PREFIX."topics t ON (p.topic_id=t.tid AND t.approved=1)
				WHERE p.queued=0 AND t.forum_id IN({$a['forums']}) AND p.author_id={$a['mid']}";
	}
	
	function search_get_all_user_query( $a )
	{
		return "SELECT p.*, t.*, t.posts as topic_posts, t.title as topic_title, m.*, me.*
				FROM ".SQL_PREFIX."posts p
				 LEFT JOIN ".SQL_PREFIX."topics t ON (p.topic_id=t.tid AND t.approved=1)
				 LEFT JOIN ".SQL_PREFIX."members m ON (m.id=p.author_id)
				 LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=p.author_id)
				WHERE p.queued=0 AND t.forum_id IN({$a['forums']}) AND p.author_id={$a['mid']}
				ORDER BY post_date DESC";
	}
	
	function search_get_last_ten( $a )
	{
		return "SELECT p.*, t.*, t.posts as topic_posts, t.title as topic_title, m.*, me.*
				FROM ".SQL_PREFIX."posts p
				 LEFT JOIN ".SQL_PREFIX."topics t ON (p.topic_id=t.tid)
				 LEFT JOIN ".SQL_PREFIX."members m ON (m.id=p.author_id)
				 LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=p.author_id)
				WHERE p.queued=0 AND t.forum_id IN({$a['forums']}) AND p.author_id={$a['mid']}
				ORDER BY post_date DESC
				LIMIT 0,10";
	}
	
	function search_main_in_titles( $a )
	{
		return "SELECT t.*, t.posts as topic_posts, t.title as topic_title, p.pid, p.author_id, p.author_name, p.post_date, p.post, m.*, me.*
				FROM ".SQL_PREFIX."topics t
				  LEFT JOIN ".SQL_PREFIX."posts p ON (t.tid=p.topic_id AND p.new_topic=1)
				  LEFT JOIN ".SQL_PREFIX."members m ON (m.id=p.author_id)
				  LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=p.author_id)
				WHERE t.tid IN({$a['topics']})
				ORDER BY p.post_date DESC
				LIMIT {$a['limit_a']},25";
	}
	
	function search_main_in_posts( $a )
	{
		return "SELECT t.*, t.posts as topic_posts, t.title as topic_title, p.pid, p.author_id, p.author_name, p.post_date, p.post, p.post_htmlstate, m.*, me.*
				FROM ".SQL_PREFIX."posts p
				  LEFT JOIN ".SQL_PREFIX."topics t ON (t.tid=p.topic_id)
				  LEFT JOIN ".SQL_PREFIX."members m ON (m.id=p.author_id)
				  LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=p.author_id)
				WHERE p.pid IN({$a['posts']})
				ORDER BY p.post_date DESC
				LIMIT {$a['limit_a']},25";
	}
	
	function poll_get_poll_with_topic( $a )
	{
		return "SELECT f.allow_pollbump, t.*, p.pid as poll_id,p.choices,p.starter_id,p.votes
				FROM ".SQL_PREFIX."polls p, ".SQL_PREFIX."topics t, ".SQL_PREFIX."forums f
				WHERE t.tid={$a['tid']} and p.tid=t.tid and t.forum_id=f.id";
	}
	
	/**
	* contact_member_report_get_mods
	* Changed: 2.1.0.BETA4
	*	Added: m.members_disable_pm
	*
	*/
	function contact_member_report_get_mods( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.members_disable_pm, m.email, m.mgroup, moderator.member_id, moderator.group_id
				FROM ".SQL_PREFIX."moderators moderator, ".SQL_PREFIX."members m
				WHERE moderator.forum_id={$a['fid']}
				AND (moderator.member_id=m.id OR moderator.group_id=m.mgroup)";
	}
	
	/**
	* contact_member_report_get_cpaccess
	* Changed: 2.1.0.BETA4
	*	Added: m.members_disable_pm
	*
	*/
	function contact_member_report_get_cpaccess( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g WHERE g.g_access_cp=1 AND m.mgroup=g.g_id";
	}
	
	/**
	* contact_member_report_get_supmod
	* Changed: 2.1.0.BETA4
	*	Added: m.members_disable_pm
	*
	*/
	function contact_member_report_get_supmod( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g WHERE g.g_is_supmod=1 AND m.mgroup=g.g_id";
	}
	
	
	
	function print_page_get_members( $a )
	{
		return "SELECT g.*, m.* FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g WHERE m.id in ({$a['mem_ids']}) AND m.mgroup=g.g_id";
	}
	
	function stats_who_posted( $a )
	{
		return "SELECT COUNT(p.pid) as pcount, p.author_id, p.author_name FROM ".SQL_PREFIX."posts p
 				WHERE p.topic_id={$a['tid']} AND queued=0 GROUP BY p.author_id ORDER BY pcount DESC";
	}
	
	function warn_get_data( $a )
	{
		return "SELECT l.*,  p.id as punisher_id, p.members_display_name as punisher_name
				 FROM ".SQL_PREFIX."warn_logs l
				  LEFT JOIN ".SQL_PREFIX."members p ON ( p.id=l.wlog_addedby )
				WHERE l.wlog_mid={$a['mid']} ORDER BY l.wlog_date DESC LIMIT {$a['limit_a']}, {$a['limit_b']}";
	}
	
	function warn_get_forum( $a )
	{
		return "SELECT t.tid, t.title, f.id, f.name FROM ".SQL_PREFIX."topics t, ".SQL_PREFIX."forums f WHERE tid={$a['tid']} AND t.forum_id=f.id";
	}
	
	function portal_get_poll_join( $a )
	{
		return "SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted
				FROM ".SQL_PREFIX."topics t, ".SQL_PREFIX."polls p
				LEFT JOIN ".SQL_PREFIX."voters v ON (v.member_id={$a['mid']} and v.tid=t.tid)
				WHERE t.tid={$a['tid']} AND p.tid=t.tid";
	}
	
	function portal_get_monster_bitch( $a )
	{
		return "SELECT t.*, p.*, me.avatar_location, m.view_avs, me.avatar_size, me.avatar_type,
				m.id as member_id, m.members_display_name as member_name, m.mgroup
				FROM ".SQL_PREFIX."topics t
				 LEFT JOIN ".SQL_PREFIX."members m ON (t.starter_id=m.id)
				 LEFT JOIN ".SQL_PREFIX."member_extra me on (m.id=me.id)
				 LEFT JOIN ".SQL_PREFIX."posts p ON (t.topic_firstpost=p.pid)
				WHERE t.forum_id IN (-1{$a['csite_article_forum']}) {$a['qe']}
				AND t.approved=1 AND (t.moved_to IS NULL or t.moved_to='')
				ORDER BY t.pinned DESC, t.start_date DESC
				LIMIT 0,{$a['limit']}";
	}
	
	function help_search( $a )
	{
		return "SELECT id, title, description
				 FROM ".SQL_PREFIX."faq
				WHERE LOWER(title) LIKE '%{$a['search_string']}%' or LOWER(text) LIKE '%{$a['search_string']}%'
				ORDER BY title";
	}
	
	#-- NEW FOR RC1 --#
	
	function login_getmember( $a )
	{
		return "select id, name, members_display_name, members_created_remote, email, mgroup, member_login_key, ip_address, login_anonymous
				from ".SQL_PREFIX."members
				where LOWER(name)='{$a['username']}'";
	}
	
	
	
	function post_get_topic_review( $a )
	{
		return "SELECT p.*, m.members_display_name, m.mgroup
				 FROM ".SQL_PREFIX."posts p
				 LEFT JOIN ".SQL_PREFIX."members m ON (m.id=p.author_id)
				WHERE topic_id={$a['tid']} and queued=0
				ORDER BY pid DESC
				LIMIT 0,10";
	}
	
	# REMOVED
	/*function post_forum_tracker_all( $a )
	{
		#post
		
		return "SELECT m.name, m.email, m.id, m.language, m.last_activity, m.org_perm_id, g.g_perm_id
				FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g
				WHERE m.mgroup IN ({$a['groups']})
				AND m.mgroup=g.g_id
				AND m.id <> {$a['mid']}
				AND m.allow_admin_mails=1
				AND m.last_activity < {$a['last_post']}";
	}*/
	
    
	function member_awards_edit( $a )
	{
		#awards.php
		return "SELECT m.members_display_name, m.id, ai.title, a.reason, a.awards_id, a.mname
				FROM ".SQL_PREFIX."awards a
				 LEFT JOIN ".SQL_PREFIX."awards_info ai ON (ai.id=a.awards_id)
				 LEFT JOIN ".SQL_PREFIX."members m ON (m.id=a.mid)
				WHERE a.aid={$a['aid']}";
	}

	function get_member_award( $a )
	{
		#awards.php
		return "SELECT a.*, ai.*, m.members_display_name
				FROM ".SQL_PREFIX."awards_info a
				 LEFT JOIN ".SQL_PREFIX."awards ai ON (ai.mid={$a['mid']})
				 LEFT JOIN ".SQL_PREFIX."members m ON (m.id={$a['mid']})
				WHERE a.id=ai.awards_id";
	}

	function delet_member_award( $a )
	{
		#awards.php
		return "SELECT m.id, m.members_display_name, m.awards_img, a.aid, ai.title, ai.img 
				FROM ".SQL_PREFIX."awards a
                           LEFT JOIN ".SQL_PREFIX."members m ON (m.id=a.mid)
                           LEFT JOIN ".SQL_PREFIX."awards_info ai ON (ai.id=a.awards_id)
                        WHERE a.aid='{$a['aid']}'";
	}
	
	
} // end class


?>