Приватности для сообщества


Этот модуль вам даст такую возможность что бы вы могли делать открытые и закрытие группы ну и стена будет тоже открываться и закрываться
1 заходим в system/classes/wall.public.php
ишем



$tpl->set('{text}', stripslashes($row_wall['text']));
                        $tpl->set('{name}', $row_wall['title']);

                        
                        $tpl->set('{user-id}', $row_wall['public_id']);

                        if($row_wall['adres']) $tpl->set('{adres-id}', $row_wall['adres']);
                        else $tpl->set('{adres-id}', 'public'.$row_wall['public_id']);

                        
                        megaDate($row_wall['add_date']);

                        
                        if($row_wall['photo'])

                                $tpl->set('{ava}', '/uploads/groups/'.$row_wall['public_id'].'/50_'.$row_wall['photo']);
                        else

                                $tpl->set('{ava}', '{THEME}/images/no_ava_50.png');
                                

                        if($row_wall['view_author']==1 and $row_wall['uid']!=0) $tpl->set('{author_view}', '<div class="wall_signed"><a class="wall_signed_by" href="/id'.$idu.'">'.$rowxxd['user_search_pref'].'</a></div>');
                        else $tpl->set('{author_view}', '');

                        
                        

заменить на

$rowxd = $db->super_query("SELECT user_photo,user_search_pref FROM `".PREFIX."_users` WHERE user_id = '{$row_wall['uid']}'");          
            $tpl->set('{text}', $new_msg);

                        $tpl->set('{text1}', stripslashes($row_wall['text']));
                        $tpl->set('{user-id}', $row_wall['public_id']);

                        megaDate($row_wall['add_date']);
                        if($row_wall['uid']!=0 and $row_wall['ofmessgroup']==0) {

                                if($rowxd['page_name']) $tpl->set('{adres-id}', $rowxd['page_name']);
                                else $tpl->set('{adres-id}', 'u'.$row_wall['uid']);

                                if($rowxd['user_photo'])
                                        $tpl->set('{ava}', '/uploads/users/'.$row_wall['uid'].'/50_'.$rowxd['user_photo']);

                                else
                                        $tpl->set('{ava}', '{THEME}/images/no_ava_50.png');        

                                $tpl->set('{name}', $rowxd['user_search_pref']);
                        } else {

                                if($row_wall['adres']) $tpl->set('{adres-id}', $row_wall['adres']);
                                else $tpl->set('{adres-id}', 'public'.$row_wall['public_id']);

                                if($row_wall['photo'])
                                        $tpl->set('{ava}', '/uploads/groups/'.$row_wall['public_id'].'/50_'.$row_wall['photo']);

                                else
                                        $tpl->set('{ava}', '{THEME}/images/no_ava_50.png');        

                                $tpl->set('{name}', $row_wall['title']);
                        }

                        if($rowxd['user_id']) $page_name_name = $rowxd['user_id'];
                        else $page_name_name = 'u'.$row_wall['uid'];

                        if($row_wall['view_author']==1 and $row_wall['uid']!=0 and $row_wall['ofmessgroup']==1) $tpl->set('{author_view}', '<div id="post_sig"><a href="/'.$page_name_name.'"onclick="Page.Go(this.href); return false"class="wall_author_bl hash_link"><div class="icon-user-6"></div><div class="aname">'.$rowxd['user_search_pref'].'</div><div class="clear"></div></a></div>');
                        else $tpl->set('{author_view}', '');

                        
2 заходим в system/modules/ открыть public.php

ишем


if(stripos($row['admin'], "u{$user_id}|") !== false)
                        $public_admin = true;

                else
                        $public_admin = false;

                        
выше вставить


        $user_privacy_loting = xfieldsdataload($row['privacy']);
                $country_city_name = explode('|', $row['country_city_name']);

                if($user_privacy_loting['val_intog'] == 1) $user_speedbar = "Открытая группа";
                else $user_speedbar = "Закрытая группа";

                
ишем


//Выводим информцию о том кто смотрит страницу для себя

выше вставить


// Приватность
                if($user_privacy_loting['val_wall1'] == 1){

                $tpl->set_block("'\\[wall_privacy\\](.*?)\\[/wall_privacy\\]'si","");
                } else {

                        $tpl->set('[wall_privacy]', '');
                        $tpl->set('[/wall_privacy]', '');

                }
                if($user_privacy_loting['val_wall1'] == 3 and $public_admin == false) {

                    $tpl->set_block("'\\[wall_privacy_admin\\](.*?)\\[/wall_privacy_admin\\]'si","");
                } else {

                        $tpl->set('[wall_privacy_admin]', '');
                        $tpl->set('[/wall_privacy_admin]', '');

                }
                

ищем 

//Проверка подписан юзер или нет
                if(stripos($row['ulist'], "|{$user_id}|") !== false)

                        $tpl->set('{yes}', 'no_display');
                else

                        $tpl->set('{no}', 'no_display');
                        

ниже вставить
                        

            //Проверка открыта группа или нет
                if($user_privacy_loting['val_intog'] == 1){

                $tpl->set('{login}', 'Подписатся');
                } else {

                $tpl->set('{login}', 'Подати заяву');
                }

                
                

3 заходим в system\modules открыть groups.php
ищем



$db->query("INSERT INTO `".PREFIX."_communities` SET title = '{$title}', type = 1, traf = 1, ulist = '|{$user_id}|', date = NOW(), admin = 'u{$user_id}|', real_admin = '{$user_id}', time={$server_time}, comments = 1, privacy = '

после вставить

val_wall1|2||val_intog|1||

ищем

case "wall_send":

ищем там запрос

//Проверка на админа
$row = $db->super_query("SELECT admin, del, ban,


в него вставить

privacy

ищем

if($podpis == 1 and stripos($row['admin'], "u{$user_id}|") !== false) $podpis = 1;
                        else $podpis = 0;

                        if(stripos($row['admin'], "u{$user_id}|") !== false AND isset($wall_text) AND !empty($wall_text) OR isset($attach_files) AND !empty($attach_files) AND $row['del'] == 0 AND $row['ban'] == 0){
                

заменить на

            if(isset($wall_text) AND !empty($wall_text) OR isset($attach_files) AND !empty($attach_files) AND $row['del'] == 0 AND $row['ban'] == 0){
                    $user_privacy_loting = xfieldsdataload($row['privacy']);

                        if(stripos($row['admin'], "u{$user_id}|") !== false or $user_privacy_loting['val_wall1'] == 2){
                        


4 заходим в templates\Default\js открыть profile.js
ищем



var years = $('#years').val();

ниже вставить

var val_wall1=$('#wall1').val();
var val_intog=$('#intog').val();


ищем

$.post('/index.php?go=editpage&act=saveGeneralInfo', {id:id, title: title, adres: adres,

после вставить

val_wall1: val_wall1, val_intog: val_intog,

ищем

var groups = {

после вставить

event: function(event){
     var oi = (event.target) ? event.target.id: ((event.srcElement) ? event.srcElement.id : null); 

     var fast_oi = oi.substring(0, 9);

     if(oi != 'privacyMenu_wall1' && oi!= 'privacyMenu_intog' && oi!= 'privacyMenu_forum' && oi!= 'wall_lnk_wall1' && oi!= 'intog_lnk_wall1' && oi!= 'forum_lnk_wall1')
     $('#privacyMenu_wall1','#privacyMenu_intog','#privacyMenu_forum').fadeOut(120);

     },
         

ищем в этом же коде

edittab_admin: function(id){
                $('#edittab2').show();

                $('#public_editbg_container').animate({scrollLeft: "+820"});
        },

        
ниже вставить


privacyOpen: function(id){
$('.sett_openmenu').hide();

$('#privacyMenu_'+id).show();
},

privacyClose:function(id){
$('#privacyMenu_'+id).fadeOut(120);

},
setPrivacy:function(val_id,mtext,opt,text_id){

$('#'+val_id).val(opt);$('#'+text_id).text(mtext);
$('#selected_p_'+text_id).text(mtext);groups.privacyClose(val_id);

},

5 заходим в templates\Default\epage открыть edit.tpl
ищем



<div class="result_list_shadow" style="width: 60px; margin-top: 250px; "><div class="shadow1"></div><div class="shadow2"></div></div></div></div>
        

после вставить

</div>
<div class="mgclr" style="padding-top:7px;"></div>

<div class="mgclr clear"></div>
  

    <div class="texta_profileedit">Стена</div>
  <div class="sett_privacy" onclick="groups.privacyOpen('wall1')" id="wall_lnk_wall1" style="margin-top: 3px;">{val_wall1_text_wall}</div>

  <div class="sett_openmenu no_display" id="privacyMenu_wall1" style="margin-top: 3px;margin-left: 255px;width: 272px;">
  <div id="selected_p_wall_lnk_wall1" class="sett_selected" onclick="groups.privacyClose('wall1')">{val_wall1_text_wall}</div>

  <div class="sett_hover" onclick="groups.setPrivacy('wall1', 'Выключена', '1', 'wall_lnk_wall1')">Выключена (Не доступна никому)</div>
  <div class="sett_hover" onclick="groups.setPrivacy('wall1', 'Открытая', '2', 'wall_lnk_wall1')">Открытая (На стене писать могут все)</div>

  <div class="sett_hover" onclick="groups.setPrivacy('wall1', 'Закрытая', '3', 'wall_lnk_wall1')">Закрытая (только администраторы сообщества)</div>
  </div>

  
  <input type="hidden" id="wall1" value="{val_wall1_wall}" />

  <div class="mgclr"></div>
  <div class="texta_profileedit">Тип группы:</div>

  <div class="sett_privacy" onclick="groups.privacyOpen('intog')" id="intog_lnk_wall1" style="margin-top: 3px;">{val_intog_text}</div>
  <div class="sett_openmenu no_display" id="privacyMenu_intog" style="margin-top: 3px;margin-left: 255px;width: 272px;">

  <div id="selected_p_wall_lnk_wall1" class="sett_selected" onclick="groups.privacyClose('intog')">{val_intog_text}</div>
  <div class="sett_hover" onclick="groups.setPrivacy('intog', 'Открытая', '1', 'intog_lnk_wall1')">Открытые (Видят все пользователи)</div>

  <div class="sett_hover" onclick="groups.setPrivacy('intog', 'Закрытая', '2', 'intog_lnk_wall1')">Ограниченные (Видят только подписчики)</div>
  </div>

  
  

6  заходим в system\modules открыть editpage.php
ищем



$tpl->set('{pid}', $pid);
$tpl->set('{title}', stripslashes($row['title']));


выше вставить

$rowd = xfieldsdataload($row['privacy']);
                                        $tpl->set('{val_wall1_wall}', $rowd['val_wall1']);

                            $tpl->set('{val_wall1_text_wall}', strtr($rowd['val_wall1'], array('1' => 'Выключена (Не доступна никому)', '2' => 'Открытая (На стене писать могут все)', '3' => 'Закрытая (Только администраторы сообщества)')));
                            $tpl->set('{val_intog}', $rowd['val_intog']);

                            $tpl->set('{val_intog_text}', strtr($rowd['val_intog'], array('1' => 'Открытая (Вступление в сообщество открыто)', '2' => 'Закрытая (Проверять заявки на вступление)')));
                                        

ищем

$years = intval($_POST['years']);

ниже вставить

$val_wall1 = intval($_POST['val_wall1']);
$val_intog = intval($_POST['val_intog']);


ищем

if($links<0 or $links>1) $links = 0;
if($albums<0 or $albums>1) $albums = 0;


выше вставить

if($val_wall1 <= 0 OR $val_wall1 > 3) $val_wall1 = 1;
if($val_intog <= 0 OR $val_intog > 2) $val_intog = 1;


ищем

$privacy = "p_audio|{$audio}||p_contact|{$contact}||p_videos|{$videos}||

после вставить

val_wall1|{$val_wall1}||val_intog|{$val_intog}||


7 заходим в templates\Default\public открыть main.tpl
ищем



<div id="wallpublic">

выше вставить

[wall_privacy]

ищем

[admin_red]<div class="newmes" id="wall_tab" style="border-bottom:0px;margin-bottom:-5px">

заменить [admin_red]

на эта

[wall_privacy_admin]

ищем

</div>[/admin_red]

заменить [/admin_red]

на эта

[/wall_privacy_admin]

ищем

<div id="public_wall_records">{records}</div>

перед ней вставить

[/wall_privacy]


vii engine модуль хак фича
Гость, оставишь комментарий?
Имя:*
E-Mail: