Приватности для сообщества
Этот модуль вам даст такую возможность что бы вы могли делать открытые и закрытие группы ну и стена будет тоже открываться и закрываться
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 модуль хак фича