سخنی بخوانید :

موقعیت شما : » افزونه لایک پروفایل شیرترانیکس
  • شناسه : 1404
  • ۱۲ام اردیبهشت ۱۳۹۹
  • 189 بازدید
  • 3
  • 0 دانلود
  • آپدیت شد

افزونه لایک پروفایل شیرترانیکس

افزونه لایک پروفایل شیرترانیکس ۱٫ کد زیر را در جدول sql هاست خود ایمپورت کنید : ۲٫ به themes/your theme/css/insid.css خود رفته و کد زیر را به انتهای ان اضافه کنید : ۳٫ به system/class/class_network.php رفته و کد زیر را بیابید : کد زیر را قبل از آن قرار دهید : ۴٫ به system/class/class_user.php رفته […]

افزونه لایک پروفایل شیرترانیکس

۱٫ کد زیر را در جدول sql هاست خود ایمپورت کنید :

CREATE TABLE IF NOT EXISTS `users_liked` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `who` int(10) unsigned NOT NULL,
  `whom` int(10) unsigned NOT NULL,
  `date` int(10) unsigned NOT NULL,
  `whom_from_postid` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `who` (`who`),
  KEY `whom` (`whom`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;
 ALTER TABLE `users` ADD `num_likers` INT( 10 ) UNSIGNED NOT NULL ;
  ALTER TABLE `users` ADD INDEX `num_likers` ( `num_likers` )

۲٫ به themes/your theme/css/insid.css خود رفته و کد زیر را به انتهای ان اضافه کنید :

button.cupid-green{background:#7fbf4d;background:-moz-linear-gradient(top,#7fbf4d 0%,#63a62f 100%);background:-webkit-gradient(linear,0% 0%,0% 100%,from(#7fbf4d),to(#63a62f));border:1px solid #63a62f;border-bottom:1px solid #5b992b;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:inset 0 1px 0 0 #96ca6d;-webkit-box-shadow:inset 0 1px 0 0 #96ca6d;box-shadow:inset 0 1px 0 0 #96ca6d;color:#fff;font:11px tahoma;line-height:1;padding:12px 0 12px 0;text-align:center;text-shadow:0 -1px 0 #4c9021;width:210px;margin:3px 1px 0 0;}
button.cupid-green:hover{background:#76b347;background:-moz-linear-gradient(top,#76b347 0%,#5e9e2e 100%);background:-webkit-gradient(linear,0% 0%,0% 100%,from(#76b347),to(#5e9e2e));-moz-box-shadow:inset 0 1px 0 0 #8dbf67;-webkit-box-shadow:inset 0 1px 0 0 #8dbf67;box-shadow:inset 0 1px 0 0 #8dbf67;cursor:pointer;}
button.clean-gray{background:#eee;background:-moz-linear-gradient(top,#eee 0%,#ccc 100%);background:-webkit-gradient(linear,0% 0%,0% 100%,from(#eee),to(#ccc));border:1px solid #ccc;border-bottom:1px solid #bbb;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;color:#333;font:11px tahoma;line-height:1;padding:12px 0 12px 0;text-align:center;text-shadow:0 1px 0 #eee;width:210px;margin:3px 1px 0 0;}
button.clean-gray:hover{background:#ed3434;background:-moz-linear-gradient(top,#ed1a1a 0%,#c30202 100%);background:-webkit-gradient(linear,0% 0%,0% 100%,from(#ddd),to(#bbb));border:1px solid #880000;border-bottom:1px solid #880000;cursor:pointer;text-shadow:0 1px 0 #880000;color:#ffffff;}
#usr-prf {
    background-color: #EFEFEF;
    border: 3px solid #DBDBDB;
    border-radius: 5px 5px 5px 5px;
            text-align:center; 
}
#usr-prfttl {
    background-color: #EFEFEF;
    border: 1px solid #DBDBDB;
    border-radius: 5px 5px 5px 5px;
    color: #D3D3D3;
    padding: 10px;
}
.drop-menu {
    background: none repeat scroll 0 0 #898989;
    border: 1px solid #F6F0E4;
    border-radius: 5px 5px 5px 5px;
    box-shadow: 0 -5px 0 rgba(0, 0, 0, 0.3) inset;
    color: #FFFFFF;
    display: block;
    font: 11px tahoma;
    height: 20px;
    padding: 10px 15px;
    text-align: center;
    text-decoration: none;
}

۳٫ به system/class/class_network.php رفته و کد زیر را بیابید :

public function get_user_follows($uid, $force_refresh=FALSE)

کد زیر را قبل از آن قرار دهید :

  public function get_user_likes($uid, $force_refresh=FALSE, $type = FALSE)
        {
            if( ! $this->id ) {
                return FALSE;
            }
            $uid    = intval($uid);
            if( 0 == $uid ) {
                return FALSE;
            }
            static $loaded = array();
            $cachekey    = 'n:'.$this->id.',userlikes:'.$uid.($type ? ',type:'.$type : '');
            if( isset($loaded[$cachekey]) && TRUE!=$force_refresh ) {
                return $loaded[$cachekey];
            } 
            $data    = $this->cache->get($cachekey);
            if( FALSE!==$data && TRUE!=$force_refresh ) {
                $loaded[$cachekey] = $data;
                return $data;
            }
            $data    = new stdClass;
            $data->likers        = array();
            $data->like_users    = array();
            if( ($type && $type == 'hislikers') || ($type === FALSE) ){
                $r    = $this->db2->query('SELECT who, whom_from_postid FROM users_liked WHERE whom="'.$uid.'" ORDER BY id DESC', FALSE);
                while($o = $this->db2->fetch_object($r)) {
                    $data->likers[intval($o->who)]    = $o->whom_from_postid;
                }
            }
            if( ($type && $type == 'helikes') || ($type === FALSE) ){
                $r    = $this->db2->query('SELECT whom, whom_from_postid FROM users_liked WHERE who="'.$uid.'" ORDER BY id DESC', FALSE);
                while($o = $this->db2->fetch_object($r)) {
                    $data->like_users[intval($o->whom)]    = $o->whom_from_postid;
                }
            }
            $this->cache->set($cachekey, $data, $GLOBALS['C']->CACHE_EXPIRE);
            $loaded[$cachekey] = $data;
            return $data;
        }

۴٫ به system/class/class_user.php رفته و کد زیر را بیابید :

public function follow($whom_id, $how=TRUE)

قبل از کد بالا کد زیر را قرار دهید :

      public function like($whom_id, $how=TRUE)
        {
            if( ! $this->is_logged ) {
                return FALSE;
            }
            $whom    = $this->network->get_user_by_id($whom_id);
            if( ! $whom ) {
                return FALSE;
            }
            $f    = $this->network->get_user_likes($this->id, TRUE, 'helikes')->like_users;
            if( isset($f[$whom_id]) && $how==TRUE ) {
                return TRUE;
            }
            if( !isset($f[$whom_id]) && $how==FALSE ) {
                return TRUE;
            }
            if( $how == TRUE ) {
                $this->db2->query('INSERT INTO users_liked SET who="'.$this->id.'", whom="'.$whom_id.'", date="'.time().'", whom_from_postid="'.$this->network->get_last_post_id().'" ');
                $this->db2->query('UPDATE users SET num_likers=num_likers+1 WHERE id="'.$whom_id.'" LIMIT 1'); 
                $notif = new notifier();
                $notif->set_notification_obj('user', $whom_id);
                $notif->onLikeUser($whom_id);
            }
            else {
                $this->db2->query('DELETE FROM users_liked WHERE who="'.$this->id.'" AND whom="'.$whom_id.'" ');
                $this->db2->query('UPDATE users SET num_likers=num_likers-1 WHERE id="'.$whom_id.'" LIMIT 1');
                $this->db2->query('DELETE FROM post_userbox WHERE user_id="'.$this->id.'" AND post_id IN(SELECT id FROM posts WHERE user_id="'.$whom_id.'")');
                $this->db2->query('DELETE FROM post_userbox_feeds WHERE user_id="'.$this->id.'" AND post_id IN(SELECT id FROM posts WHERE user_id="'.$whom_id.'")');
            }
            //$this->network->get_user_by_id($whom_id, TRUE);
            $this->network->get_user_likes($whom_id, TRUE);
            $this->network->get_user_likes($whom_id, TRUE, 'hislikers');
            $this->network->get_user_likes($this->id, TRUE);
            $this->network->get_user_likes($this->id, TRUE, 'helikes');
             return TRUE;
        }
         public function if_like_user($user_id)
        {
            if( ! $this->is_logged ) {
                return FALSE;
            }
            $res = $this->db2->fetch_field('SELECT id FROM users_liked WHERE who = '.$this->id.' AND whom = '.$user_id.' LIMIT 1');
            return $res? TRUE : FALSE;
        }
        public function if_user_likes_me($user_id)
        {
            if( ! $this->is_logged ) {
                return FALSE;
            }
            $res = $this->db2->fetch_field('SELECT id FROM users_liked WHERE whom = '.$this->id.' AND who = '.$user_id.' LIMIT 1');
            return $res? TRUE : FALSE;
        }

۵٫ به system/controllers/user.php رفته کد زیر را بیابید :

$D->i_follow_him = $this->user->is_logged ? $this->user->if_follow_user($u->id) : FALSE;

کد زیر را بعد از ان قرار دهید :

$D->i_like_him    = $this->user->is_logged ? $this->user->if_like_user($u->id) : FALSE;

۶٫ به themes/your theme/html/user.php رفته کد زیر را بیابید :


<div style="margin-top:7px; margin-right:7px; margin-left:7px; text-align:justify;"><?= htmlspecialchars($D->usr->about_me) ?>

</div>
</div>

                    <?php } ?>

بعد از ان کد زیر را قرار دهید :

<?php if( $this->user->is_logged ) { ?><?php if( $D->is_my_profile ) { ?><?php } else { ?>
                                                                                        <a href="javascript:;" id="usrpg_btn_like" style="<?= $D->i_like_him?'display:none':'' ?>" onclick="user_like('<?= $D->usr->username ?>',this,'usrpg_btn_unlike','<?= addslashes($this->lang('msg_like_user_on',array('#USERNAME#'=>$D->usr->username))) ?>');" class="usrpg_btn_like" onfocus="this.blur();" onmouseover="userpage_top_tooltip(this.firstChild.innerHTML);" onmouseout="userpage_top_tooltip('');"><button class="cupid-green"><?= $this->lang('usr_toplnks_like',array('#USERNAME#'=>$D->usr->fullname)) ?></button></a>
                            <a href="javascript:;" id="usrpg_btn_unlike" style="<?= $D->i_like_him?'':'display:none' ?>" onclick="user_unlike('<?= $D->usr->username ?>',this,'usrpg_btn_like','<?= addslashes($this->lang('user_unlike_confirm',array('#USERNAME#'=>$D->usr->username))) ?>','<?= addslashes($this->lang('msg_like_user_off',array('#USERNAME#'=>$D->usr->username))) ?>');" class="um_unlike" onfocus="this.blur();" onmouseover="userpage_top_tooltip(this.firstChild.innerHTML);" onmouseout="userpage_top_tooltip('');"><button class="clean-gray"><?= $this->lang('usr_toplnks_unlike',array('#USERNAME#'=>$D->usr->fullname)) ?></button></a>
                            <?php } ?><?php } ?>                           
 
                                                                                    
<div id ="usr-prf" style="margin-top: 4px;">
                        
<div class="drop-menu">
                                توسط <?= htmlspecialchars($D->usr->num_likers) ?> کاربر لایک شده‌
                                                    </div>
</div>

 

۷٫ به themes/your theme/js/smileys.js رفته کد زیر را به انتهای ان اضافه کنید :

function user_like(username, thislink, unlike_linkid, msg_after)
{
    var req = ajax_init(false);
    if( ! req ) { return; }
    req.onreadystatechange    = function() {
        if( req.readyState != 4  ) { return; }
        if( req.responseText != "OK" ) { return; }
        thislink.style.cursor    = "pointer";
        thislink.style.display    = "none";
        if(unlike_linkid) {
            d.getElementById(unlike_linkid).style.display    = "block";
        }
        if(msg_after) {
            slim_msgbox(msg_after);
        }
    }
    req.open("POST", siteurl+"ajax/likeuser/r:"+Math.round(Math.random()*1000), true);
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.send("type=on&username="+encodeURIComponent(username));
    thislink.style.cursor    = "wait";
}
function user_unlike(username, thislink, like_linkid, confirm_msg, msg_after)
{
    var req = ajax_init(false);
    if( ! req ) { return; }
    if( ! confirm(confirm_msg) ) { return; }
    req.onreadystatechange    = function() {
        if( req.readyState != 4  ) { return; }
        if( req.responseText != "OK" ) { return; }
        thislink.style.cursor    = "pointer";
        thislink.style.display    = "none";
        d.getElementById(like_linkid).style.display    = "block";
        if(msg_after) {
            slim_msgbox(msg_after);
        }
    }
    req.open("POST", siteurl+"ajax/likeuser/r:"+Math.round(Math.random()*1000), true);
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.send("type=off&username="+encodeURIComponent(username));
    thislink.style.cursor    = "wait";
}

۸٫ به languages/fa/inside/user.php رفته و کد زیر را به آن اضافه کنید :

'usr_toplnks_like' => 'لایک به کاربر',
  'usr_toplnks_unlike' => 'حذف لایک کاربر',

۹٫ فایل هارا در مسیر خود قرار دهید !

رایگان – خرید

برنامه نویس : امیرحسین طاووسی

برچسب:

نوشته های مشابه