Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

[ФИЧА] Рассказать друзьям о сообществе


Рекомендуемые сообщения

Описание: эта фича позволит рассказать о сообществе у себя на стене(как в вк)

 

Скриншоты: в архиве

 

Скачать: https://yadi.sk/d/V_JEvyGSUYDpD

Ссылка на комментарий
Поделиться на другие сайты

  • 2 года спустя...
  • 5 лет спустя...

 

Немного доработал "фичу")

Теперь учитываются гендер пользователя и обложка группы.

Установка такая же:

1. В profile.js после "var groups = {" вставляем:

Спойлер

    //Поделиться сообществом
    wall_tell_g: function(id){
        $('#invitemsg').addClass('public_invite_text');
        $('#invitemsg').show("slow").text('Ваши друзья увидят ссылку на это сообщество в своих новостных лентах.');
        $.post('/index.php?go=groups&act=wall_tell_g', {id: id}, function(data){
            if(data == 1)
                addAllErr(lang_wall_tell_tes);
        });
    },



2. В groups.php добавляем после
 case "deladmin"
...
break; :

 

Спойлер

        //################### Рассказать друзьям о сообществе ###################//
        case "wall_tell_g":
            NoAjaxQuery();
            $rid = intval($_POST['id']);

            
            $row1 = $db->super_query("SELECT title, descr, photo, cover FROM `".PREFIX."_communities` WHERE id = '{$rid}'");
            $genderrow = $db->super_query("SELECT user_sex FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
            if ($genderrow['user_sex'] == 2) {
              $gendertext = 'поделилась сообществом';  
            } else {
                $gendertext = 'поделился сообществом';
            }
            if($row1['photo']){
            $rava = '/uploads/groups/'.$rid.'/'.$row1['photo'];
            }else{
            $rava = '{theme}/images/no_ava.gif';
            }
            if ($row1['cover']) {
                $coverimg = '/uploads/groups/'.$rid.'/'.$row1['cover'];
            }
            if($row1){
                if ($row1['cover']) {
                    //Вставляем себе на стену (если у сообщества есть обложка)
                    $db->query("INSERT INTO `".PREFIX."_wall` SET author_user_id = '{$user_id}', for_user_id = '{$user_id}', text = '<a href=\"/public{$rid}\" onclick=\"Page.Go(this.href); return false;\"><img src=\"{$coverimg}\" style=\"max-width: 330px;\"><div class=\"public_ava_rep_normal\"><img src=\"{$rava}\" style=\"width: 100px;\"><div class=\"public_text_rep\">{$row1['title']}</div></div></a>', add_date = '{$server_time}', fast_comm_id = 0, type = '{$gendertext}'");
                    $dbid = $db->insert_id();
                    $db->query("UPDATE `".PREFIX."_users` SET user_wall_num = user_wall_num+1 WHERE user_id = '{$user_id}'");

                    //Вставляем в ленту новостей
                    $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 1, action_text = '<a href=\"/public{$rid}\" onclick=\"Page.Go(this.href); return false;\"><img src=\"{$coverimg}\" style=\"max-width: 330px;\"><div class=\"public_ava_rep_normal\"><img src=\"{$rava}\" style=\"width: 100px;\"><div class=\"public_text_rep\">{$row1['title']}</div></div></a>', obj_id = '{$dbid}', action_time = '{$server_time}'");

                    //Чистим кеш
                    mozg_clear_cache_file("user_{$user_id}/profile_{$user_id}");
                } else {
                    //Вставляем себе на стену (если у сообщества нет обложки)
                    $db->query("INSERT INTO `".PREFIX."_wall` SET author_user_id = '{$user_id}', for_user_id = '{$user_id}', text = '<a href=\"/public{$rid}\" onclick=\"Page.Go(this.href); return false;\"><div class=\"public_ava_rep_noobl\"><img src=\"{$rava}\" style=\"width: 100px;\"><div class=\"public_text_rep\">{$row1['title']}</div></div></a>', add_date = '{$server_time}', fast_comm_id = 0, type = '{$gendertext}'");
                    $dbid = $db->insert_id();
                    $db->query("UPDATE `".PREFIX."_users` SET user_wall_num = user_wall_num+1 WHERE user_id = '{$user_id}'");

                    //Вставляем в ленту новостей
                    $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 1, action_text = '<a href=\"/public{$rid}\" onclick=\"Page.Go(this.href); return false;\"><div class=\"public_ava_rep_noobl\"><img src=\"{$rava}\" style=\"width: 100px;\"><div class=\"public_text_rep\">{$row1['title']}</div></div></a>', obj_id = '{$dbid}', action_time = '{$server_time}'");

                    //Чистим кеш
                    mozg_clear_cache_file("user_{$user_id}/profile_{$user_id}");
                }
            } else {
                echo 1;
            }
            die();
        break; 

 

3. В style.css добавляем в удобное место:

 

Спойлер

.group_share, .event_share, .group_checkin {padding-top: 5px;}

.group_share .photo, .event_share .photo {width: 75px;height: 75px;padding: 3px 0 0;overflow: hidden;}

.group_share .photo img, .event_share .photo img {
    width: 75px;
    border-radius: 60px;
    -moz-border-radius: 60px;
    -webkit-border-radius: 60px;
}

.group_share .info, .event_share .info {overflow: hidden;padding: 5px 10px;}

.group_share .title, .event_share .title, .group_checkin .title {font-weight: bold;}

.group_share .desc {color: #777;padding: 5px 0 0;line-height: 140%;}

.group_tell_img {
    
    background: url(../images/transp.png) no-repeat -33px -279px;
    width: 11px;
    height: 11px;
    margin-top: 2px;
}

.public_invite_text {
    font-family: 'Montserrat Medium', sans-serif;
    font-size: 12px;
    color: #00cc00;
    margin-top: 5px;
    cursor: default;
}

.public_text_rep {
    margin-left: 109px;
    margin-top: -25px;
    margin-bottom: 10px;
    font-family: 'Montserrat Medium',sans-serif;
    font-size: 14px;
    max-width: 150px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.public_ava_rep_normal {
    margin-top: -75px;
    margin-left: 10px;
    max-width: 310px;
}

.public_ava_rep_noobl {
    margin-top: 10px;
    margin-left: 10px;
    max-width: 310px;
    float:left;
}

.public_ava_rep_normal img,
.public_ava_rep_noobl img{
    box-shadow: 0px 1px 2px rgb(0 0 0 / 35%);
    -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.345);
    -webkit-box-shadow: 0px 1px 2px rgb(0 0 0 / 35%);
}


4. И в /templates/вашшаблон/public/main.tpl после <a> с текстом "Пригласить друзей" вставляем:

 

Спойлер

  <div id="invitemsg" class=""><a href="/public{id}" onClick="groups.wall_tell_g('{id}'); return false"><div class="group_tell_img" style="opacity:1;float: left;margin-left: 2px;margin-right: 9px;"></div>Рассказать друзьям</a></div>


Стили подправьте плиз сами)

Результат (скрины в спойлере):
 

Спойлер

image.png.963ed830ba702c7a70648c2927b64b9c.png

image.png.e14511fdc8195a498df98612a52b4258.png

image.png.1a29d83634ece93c74ebb7dbfecea011.png

 

 

 

 

Изменено пользователем SSapeRR
случайно нажал на ctrl =)
  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...