HomeHelpTrac

source: tags/6.1/contacts.php @ 10242

Revision 10242, 12.7 KB checked in by Alexander Trofimov, 3 years ago (diff)

dolphin 6.1.5, initial commit

Line 
1<?
2
3/***************************************************************************
4*                            Dolphin Smart Community Builder
5*                              -----------------
6*     begin                : Mon Mar 23 2006
7*     copyright            : (C) 2006 BoonEx Group
8*     website              : http://www.boonex.com/
9* This file is part of Dolphin - Smart Community Builder
10*
11* Dolphin is free software. This work is licensed under a Creative Commons Attribution 3.0 License.
12* http://creativecommons.org/licenses/by/3.0/
13*
14* Dolphin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15* without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16* See the Creative Commons Attribution 3.0 License for more details.
17* You should have received a copy of the Creative Commons Attribution 3.0 License along with Dolphin,
18* see license.txt file; if not, write to marketing@boonex.com
19***************************************************************************/
20
21require_once( 'inc/header.inc.php' );
22require_once( BX_DIRECTORY_PATH_INC . 'design.inc.php' );
23require_once( BX_DIRECTORY_PATH_INC . 'profiles.inc.php' );
24require_once( BX_DIRECTORY_PATH_INC . 'utils.inc.php' );
25
26// --------------- page variables and login
27
28$_page['name_index']    = 129;
29$_page['css_name']      = 'contacts.css';
30
31$logged['member'] = member_auth(0);
32
33$memberID = (int)$_COOKIE['memberID'];
34
35$_page['header'] = _t( "_My Contacts" );
36$_page['header_text'] = _t( "_My Contacts" );
37
38$free_mode = getParam("free_mode") == "on" ? 1 : 0;
39
40$_ni = $_page['name_index'];
41
42
43// do actions
44if( $_POST['HotList_i_del'] )        delFromList( 'HotList',       'ID',     'Profile' );   
45if( $_POST['FriendList_i_del'] )     delFromList( 'FriendList',    'ID',     'Profile' );
46if( $_POST['BlockList_i_del'] )      delFromList( 'BlockList',     'ID',     'Profile' );
47if( $_POST['VKisses_i_del'] )        delFromList( 'VKisses',       'ID',     'Member' );
48if( $_POST['ProfilesTrack_i_del'] )  delFromList( 'ProfilesTrack', 'Member', 'Profile' );
49
50if( $_POST['VKisses_me_del'] )       delFromList( 'VKisses',       'Member',  'ID' );
51if( $_POST['FriendList_me_del'] )    delFromList( 'FriendList',    'Profile', 'ID' );
52if( $_POST['ProfilesTrack_me_del'] ) delFromList( 'ProfilesTrack', 'Profile', 'Member' );
53
54if( $_POST['FriendList__del'] )      delFromList( 'FriendList',    'ID',     'Profile', true );
55
56if( $_POST['HotList_me_add'] )       addToList(   'HotList',       'ID',     'Profile' );
57if( $_POST['BlockList_me_add'] )     addToList(   'BlockList',     'ID',     'Profile' );
58
59if( $_POST['FriendList_me_add'] )    approveFriendInvites();
60
61
62switch( $_GET['show'] )
63{
64    case 'hot':
65        if( $_GET['list'] != 'me' )
66            $ret .= PageCompListMembers( 'i', 'HotList', 'ID', 'Profile' );
67        if( $_GET['list'] != 'i' )
68            $ret .= PageCompListMembers( 'me', 'HotList', 'Profile', 'ID' );
69    break;
70    case 'friends_inv':
71        if( $_GET['list'] != 'me' )
72            $ret .= PageCompListMembers( 'i', 'FriendList', 'ID', 'Profile', '', 'AND `Check`=0' );
73        if( $_GET['list'] != 'i' )
74            $ret .= PageCompListMembers( 'me', 'FriendList', 'Profile', 'ID', '', 'AND `Check`=0' );
75    break;
76    case 'friends':
77        $ret .= PageCompListMembers( '', 'FriendList', 'Profile', 'ID', '', 'AND `Check`=1' );
78    break;
79    case 'block':
80        if( $_GET['list'] != 'me' )
81            $ret .= PageCompListMembers( 'i', 'BlockList', 'ID', 'Profile' );
82        if( $_GET['list'] != 'i' )
83            $ret .= PageCompListMembers( 'me', 'BlockList', 'Profile', 'ID' );
84    break;
85    case 'greet':
86        if( $_GET['list'] != 'me' )
87            $ret .= PageCompListMembers( 'i', 'VKisses', 'ID', 'Member', ', `Arrived`, `Number`', '', '`Arrived` DESC, ' );
88        if( $_GET['list'] != 'i' )
89            $ret .= PageCompListMembers( 'me', 'VKisses', 'Member', 'ID', ', `Arrived`, `Number`, `New`', '', '`Arrived` DESC, ' );
90    break;
91    case 'view':
92        if( $_GET['list'] != 'me' )
93            $ret .= PageCompListMembers( 'i', 'ProfilesTrack', 'Member', 'Profile', ', `Arrived`', '', '`Arrived` DESC, ' );
94        if( $_GET['list'] != 'i' )
95            $ret .= PageCompListMembers( 'me', 'ProfilesTrack', 'Profile', 'Member', ', `Arrived`', '', '`Arrived` DESC, ' );
96    break;
97    case 'all':
98    default:
99        if( $_GET['list'] != 'me' )
100        {
101            $ret .= PageCompListMembers( 'i', 'HotList', 'ID', 'Profile' );
102            $ret .= PageCompListMembers( 'i', 'FriendList', 'ID', 'Profile', '', 'AND `Check`=0' );
103            $ret .= PageCompListMembers( 'i', 'BlockList', 'ID', 'Profile' );
104            $ret .= PageCompListMembers( 'i', 'VKisses', 'ID', 'Member', ', `Arrived`, `Number`', '', '`Arrived` DESC, ' );
105            $ret .= PageCompListMembers( 'i', 'ProfilesTrack', 'Member', 'Profile', ', `Arrived`', '', '`Arrived` DESC, ' );
106        }
107       
108        if( $_GET['list'] != 'i' )
109        {
110            $ret .= PageCompListMembers( 'me', 'HotList', 'Profile', 'ID' );
111            $ret .= PageCompListMembers( 'me', 'FriendList', 'Profile', 'ID', '', 'AND `Check`=0' );
112            $ret .= PageCompListMembers( 'me', 'BlockList', 'Profile', 'ID' );
113            $ret .= PageCompListMembers( 'me', 'VKisses', 'Member', 'ID', ', `Arrived`, `Number`, `New`', '', '`Arrived` DESC, ' );
114            $ret .= PageCompListMembers( 'me', 'ProfilesTrack', 'Profile', 'Member', ', `Arrived`', '', '`Arrived` DESC, ' );
115        }
116       
117        $ret .= PageCompListMembers( '', 'FriendList', 'Profile', 'ID', '', 'AND `Check`=1' );
118}
119
120$_page_cont[$_ni]['page_main_code'] = $ret;
121
122send_headers_page_changed();
123PageCode();
124
125function PageCompListMembers( $list, $table, $sqlWho, $sqlWhom, $sqlSelectAdd = '', $sqlWhereAdd = '', $sqlOrderAdd = '' )
126{
127    global $memberID;
128    global $site;
129    global $tmpl;
130   
131    $form = "{$table}_{$list}";
132   
133    if( $list == '' )
134    {
135        $query = "
136            SELECT
137                IF( `$table`.`$sqlWho` = $memberID, `$table`.`$sqlWhom`, `$table`.`$sqlWho` ) AS `$sqlWhom`,
138                `Profiles`.`NickName`
139                $sqlSelectAdd
140            FROM `$table`
141            LEFT JOIN `Profiles`
142                ON `Profiles`.`ID` = IF( `$table`.`$sqlWho` = $memberID, `$table`.`$sqlWhom`, `$table`.`$sqlWho` )
143            WHERE
144                ( `$table`.`$sqlWho` = $memberID OR `$table`.`$sqlWhom` = $memberID )
145                $sqlWhereAdd
146            ORDER BY $sqlOrderAdd `Profiles`.`NickName` ASC
147        ";
148    }
149    else
150    {
151        $query = "
152            SELECT
153                `$table`.`$sqlWho`,
154                `$table`.`$sqlWhom`,
155                `Profiles`.`NickName`
156                $sqlSelectAdd
157            FROM `$table`
158            LEFT JOIN `Profiles`
159                ON `Profiles`.`ID` = `$table`.`$sqlWhom`
160            WHERE
161                `$table`.`$sqlWho` = $memberID
162                $sqlWhereAdd
163            ORDER BY $sqlOrderAdd `Profiles`.`NickName` ASC
164        ";
165    }
166   
167    $rMembers = db_res( $query );
168    if( $num_res = mysql_num_rows( $rMembers ) )
169    {
170        $sWhole = file_get_contents( BX_DIRECTORY_PATH_ROOT . "templates/tmpl_{$tmpl}/contacts_tmpl.html" );
171       
172        $aMyTmpl = preg_split( "/\{\/?InsertRows\}/", $sWhole );
173        $tmplRow = $aMyTmpl[1];
174        $sWhole  = "{$aMyTmpl[0]}{InsertRows /}{$aMyTmpl[2]}";
175       
176        $InsertRows = '';
177        $tr_class = 'odd';
178        while( $aMember = mysql_fetch_assoc( $rMembers ) )
179        {
180            $aReplace = array();
181           
182            $aReplace['ID']            = $aMember[$sqlWhom];
183            $aReplace['CheckBoxName']  = "mem[{$aMember[$sqlWhom]}]";
184           
185            if( $aMember[$sqlWhom] > 0 )
186            {
187                $aReplace['Thumbnail']     = get_member_icon( $aMember[$sqlWhom], 'left' );
188                $aReplace['NickName']      = "<a href=\"".getProfileLink($aMember[$sqlWhom])."\">{$aMember['NickName']}</a>";
189                $aReplace['SendGreet']     = sendKissPopUp( $aMember[$sqlWhom] );
190
191                $aReplace['SendMsg']       = "
192                  <a href=\"{$site['url']}compose.php?ID={$aMember[$sqlWhom]}\" title=\""._t('_Send Message')."\">
193                    <img src=\"".getTemplateIcon( 'compose.png' )."\" alt=\""._t('_Send Message')."\" />
194                  </a>";
195               
196            }
197            else
198            {
199                $aReplace['Thumbnail']     = '' ;
200                $aReplace['NickName']      = _t( '_Visitor' );
201                $aReplace['SendGreet']     = '';
202                $aReplace['SendMsg']       = '';
203            }
204           
205            $aReplace['Times']         = $aMember['Number'] ? _t( "_N times", $aMember['Number'] ) : '&nbsp;';
206            $aReplace['PicNew']        = $aMember['New'] ? '<img src="'.getTemplateIcon('new.gif').'" class="pic_new" />' : '';
207            $aReplace['Date']          = $aMember['Arrived'] ? $aMember['Arrived'] : '&nbsp;';
208            $aReplace['tr_class']      = $tr_class;
209           
210            $sInsertRow = $tmplRow;
211            foreach( $aReplace as $key => $val )
212                $sInsertRow = str_replace( "{{$key}}", $val, $sInsertRow );
213           
214            $sInsertRows .= $sInsertRow;
215            $tr_class = ( $tr_class == 'odd' ? 'even' : 'odd' );
216        }
217       
218       
219        $aReplace = array();
220       
221        $aReplace['InsertRows /'] = $sInsertRows;
222        $aReplace['Self']         = $_SERVER['PHP_SELF'] . '?show=' . $_GET['show'] . '&amp;list=' . $_GET['list'];
223        $aReplace['FormName']     = "{$form}_form";
224        $aReplace['CheckAll']     = _t('_Check all');
225        $aReplace['UncheckAll']   = _t('_Uncheck all');
226        $aReplace['Actions']      = getButtons( $form );
227       
228        foreach( $aReplace as $key => $val )
229            $sWhole = str_replace( "{{$key}}", $val, $sWhole );
230       
231        // unset "new" flag for kisses
232        if( $table == 'VKisses' and $list == 'me' )
233            db_res( "UPDATE `VKisses` SET `New`='0' WHERE `Member`=$memberID AND `New`='1'" );
234    }
235    else
236    {
237        $sWhole = file_get_contents( BX_DIRECTORY_PATH_ROOT . "templates/tmpl_{$tmpl}/contacts_tmpl_nores.html" );
238        $aReplace = array();
239       
240        $aReplace['NoResults'] = _t('_No members found here');
241       
242        foreach( $aReplace as $key => $val )
243            $sWhole = str_replace( "{{$key}}", $val, $sWhole );
244    }
245   
246    $sWhole = str_replace( '{TableCaption}', getTableName( $form, $num_res ), $sWhole );
247    return $sWhole;
248}
249
250function getTableName( $form, $num_res )
251{
252    switch( $form )
253    {
254        case 'HotList_i':        $ret = _t( '_MEMBERS_YOU_HOTLISTED' ); break;
255        case 'FriendList_i':     $ret = _t( '_MEMBERS_INVITE_YOU_FRIENDLIST' ); break;
256        case 'BlockList_i':      $ret = _t( '_MEMBERS_YOU_BLOCKLISTED' ); break;
257        case 'VKisses_i':        $ret = _t( '_MEMBERS_YOU_KISSED' ); break;
258        case 'ProfilesTrack_i':  $ret = _t( '_MEMBERS_YOU_VIEWED' ); break;
259       
260        case 'HotList_me':       $ret = _t( '_MEMBERS_YOU_HOTLISTED_BY' ); break;
261        case 'FriendList_me':    $ret = _t( '_MEMBERS_YOU_INVITED_FRIENDLIST' ); break;
262        case 'BlockList_me':     $ret = _t( '_MEMBERS_YOU_BLOCKLISTED_BY' ); break;
263        case 'VKisses_me':       $ret = _t( '_MEMBERS_YOU_KISSED_BY' ); break;
264        case 'ProfilesTrack_me': $ret = _t( '_MEMBERS_YOU_VIEWED_BY' ); break;
265       
266        case 'FriendList_':      $ret = _t( '_Friend list' ); break;
267    }
268   
269    if( $num_res )
270        $ret .= ": $num_res";
271   
272    return $ret;
273}
274
275function getButtons( $form )
276{
277    $aButton = array();
278   
279    switch( $form )
280    {
281        case 'HotList_i':        $aButton['del'] = _t('_Delete');      break;
282        case 'FriendList_i':     $aButton['del'] = _t("_Back Invite"); break;
283        case 'BlockList_i':      $aButton['del'] = _t("_Unblock");     break;
284        case 'VKisses_i':        $aButton['del'] = _t('_Delete');      break;
285        case 'ProfilesTrack_i':  $aButton['del'] = _t('_Delete');      break;
286       
287        case 'HotList_me':       $aButton['add'] = _t("_Add to Hot List"); break;
288        case 'FriendList_me':    $aButton['add'] = _t("_Add to Friend List");
289                                 $aButton['del'] = _t("_Reject Invite");   break;
290        case 'BlockList_me':     $aButton['add'] = _t("_Block");           break;
291        case 'VKisses_me':       $aButton['del'] = _t('_Delete');          break;
292        case 'ProfilesTrack_me': $aButton['del'] = _t('_Delete');          break;
293       
294        case 'FriendList_':      $aButton['del'] = _t("_Delete from Friend List"); break;
295    }
296   
297    $ret = '';
298   
299    foreach( $aButton as $sAct => $sTitle )
300        $ret .= " <input type=\"submit\" name=\"{$form}_{$sAct}\" value=\"$sTitle\" disabled=\"disabled\" class=\"submit_button\" /> ";
301   
302    return $ret;
303}
304
305function delFromList( $table, $sqlWho, $sqlWhom, $two_way = false )
306{
307    global $memberID;
308   
309    if( $aMem = $_POST['mem'] and is_array( $aMem ) and !empty( $aMem ) )
310    {
311        foreach( $aMem as $ID => $val )
312        {
313            $ID = (int)$ID;
314            /*if( !$ID or $val != 'on' )
315                continue;*/
316           
317            $query = "DELETE FROM `$table` WHERE `$sqlWho`=$memberID AND `$sqlWhom`=$ID";
318            db_res( $query );
319           
320            if( $two_way )
321            {
322                $query1 = "DELETE FROM `$table` WHERE `$sqlWhom`=$memberID AND `$sqlWho`=$ID";
323                db_res( $query1 );
324            }
325        }
326    }
327}
328
329function addToList( $table, $sqlWho, $sqlWhom )
330{
331    global $memberID;
332   
333    if( $aMem = $_POST['mem'] and is_array( $aMem ) and !empty( $aMem ) )
334    {
335        foreach( $aMem as $ID => $val )
336        {
337            $ID = (int)$ID;
338            if( !$ID or $val != 'on' )
339                continue;
340           
341            $tmpArr = db_arr( "SELECT COUNT(*) FROM `$table` WHERE `$sqlWho`=$memberID AND `$sqlWhom`=$ID" );
342           
343            if( (int)$tmpArr[0] == 0 )
344            {
345                $query = "INSERT INTO `$table` SET `$sqlWho`=$memberID, `$sqlWhom`=$ID";
346                db_res( $query );
347            }
348        }
349    }
350}
351
352function approveFriendInvites() {
353    global $memberID;
354    global $site;
355   
356    if( $aMem = $_POST['mem'] and is_array( $aMem ) and !empty( $aMem ) ) {
357        foreach( $aMem as $ID => $val ) {
358            $ID = (int)$ID;
359            if( !$ID or $val != 'on' )
360                continue;
361
362            $query = "UPDATE `FriendList` SET `Check`='1' WHERE `Profile`=$memberID AND `ID`=$ID";
363            db_res( $query );
364        }
365    }
366    header( "Location:{$site['url']}viewFriends.php?iUser={$memberID}" );
367}
368
369?>
Note: See TracBrowser for help on using the repository browser.