DLE Arkadaşlık Modulü

FORUMSAL.NET YENİDEN ERİŞİME AÇILDI ForumSAL · Bilgilendirme

Yaşanan süreçte sabır gösteren ve yanımızda olan tüm üyelerimize teşekkür ederiz. Alternatif adreslerimiz üzerinden de bize ulaşabilirsiniz.

Alternatif erişim adreslerimiz
⚪ Konu yazarı en son 575 gün önce aktifti
Merhabalar arkadaşlar bu makalemizde sizlere arkadaşlık modulü kurulumu ve kullanımı hakkında detaylı bir şekilde bilgi vermeye çalışacağım.

Desteklenen DLE Sürüm : 12.1 ve üzeri

Modül Versiyonu : 1.6

Modül Kurulumu :

uploads.zip indir klasörü içerisindeki tüm dosyaları ilgili yerlere aktarınız.

Daha sonra;

/engine/data/friends_config.php CHMOD değerini 666 yapınız.

bir SQL Sorgusu oluşturup aşağıda vermiş olduğum kodu yazınız.

Kod:
CREATE TABLE `dle_friends` (
`id` mediumint(8) NOT NULL auto_increment,
`user` varchar(40) NOT NULL default '',
`friend` varchar(40) NOT NULL default '',
`date` varchar(30) NOT NULL default '',
PRIMARY KEY  (`id`)
);

ALTER TABLE `dle_users` ADD `friends` text NOT NULL DEFAULT '';
ALTER TABLE `dle_users` ADD `friends_temp` text NOT NULL DEFAULT '';
ALTER TABLE `dle_users` ADD `friends_settings` varchar(7) NOT NULL DEFAULT '1|1|1|0';

INSERT INTO `dle_email` values ('', 'friends', 'itibar {%username%}, size bilgi veriyoruz {%who%} seni arkadaş olarak eklemek istiyor.\r\n\r\nArkadaş olduğunuzu onaylayabilir veya reddedebilirsiniz.\r\n{%url%}\r\n\r\nС selamlar,\r\nyönetim http://127.0.0.1', '0');
INSERT INTO `dle_email` values ('', 'fr_fail', 'itibar {%username%}, size bilgi veriyoruz {%who%} arkadas istegini redetti\r\n\r\nС selamlar,\r\nyönetim http://127.0.0.1', '0');
INSERT INTO `dle_email` values ('', 'fr_add', 'itibar {%username%}, size bilgi veriyoruz {%who%} arkadaş isteğini kabul et\r\n\r\nС selamlar,\r\nyönetim http://127.0.0.1', '0');
INSERT INTO `dle_email` values ('', 'fr_delete', 'itibar {%username%}, size bilgi veriyoruz {%who%} seni arkadaş listenden çıkardı\r\n\r\nС selamlar,\r\nyönetim http://127.0.0.1', '0');

INSERT INTO `dle_email` values ('', 'friends_m', 'itibar {%username%}, size bilgi veriyoruz {%who%} seni arkadaş olarak eklemek istiyor.\r\n\r\nArkadaş olduğunuzu onaylayabilir veya reddedebilirsiniz.\r\n{%url%}\r\n\r\nС selamlar,\r\nyönetim http://127.0.0.1', '0');
INSERT INTO `dle_email` values ('', 'fr_fail_m', 'itibar {%username%}, size bilgi veriyoruz {%who%} arkadas istegini redetti\r\n\r\nС selamlar,\r\nyönetim http://127.0.0.1', '0');
INSERT INTO `dle_email` values ('', 'fr_add_m', 'itibar {%username%}, size bilgi veriyoruz {%who%} arkadaş isteğini kabul et\r\n\r\nС selamlar,\r\nyönetim http://127.0.0.1', '0');
INSERT INTO `dle_email` values ('', 'fr_del_m', 'itibar {%username%}, size bilgi veriyoruz {%who%} seni arkadaş listenden çıkardı\r\n\r\nС selamlar,\r\nyönetim http://127.0.0.1', '0');

INSERT INTO `dle_admin_sections` (`name`, `title`, `descr`, `icon`, `allow_groups`) VALUES ('friends', 'arkadas', 'Bu modül, sitede arkadaşlık sistemidir, yani herhangi bir kullanıcı başka bir kullanıcıya arkadaş ekleyebilir.', 'friends.jpg', '1');

sorgumuzu yaptıktan sonra /engine/classes/js/dle_js.js dosyasını açıp, aşağıda vermiş olduğum kodu sonuna ekliyoruz.

HTML:
function doFriends(friend,event,type){$('#random_f-'+friend).html("<p style='color:green;'>istek başarıyla gönderildi!</p>");if(event=="delete"){var b={};b['iptal']=function(){$(this).dialog('close')};b['arkadas listesinden kaldır']=function(){ShowLoading('');$.get(dle_root+"engine/ajax/friends.php",{friend_id:friend,action:event,skin:dle_skin,type:type,hash:dle_login_hash},function(data){HideLoading('');$('#dlepopup').dialog('close');$('#dlepopup').remove();if(type=="list"){$("#friend-list-"+friend).html(data)}else if(type=="pop"){$("#dofriend-"+friend).replaceWith(data)}else{$("#dofriend").replaceWith(data)}})};$('#dlepopup').remove();$('body').append("<div id='dlepopup' title='Уkullanıcıyı arkadaş listesinden kaldır?' style='display:none'><br />kullanıcıyı gerçekten arkadaş listenden kaldırmak istiyor musun?<br /><br /></div>");$('#dlepopup').dialog({autoOpen:true,width:400,buttons:b})}else{ShowLoading('');$.get(dle_root+"engine/ajax/friends.php",{friend_id:friend,action:event,skin:dle_skin,type:type,hash:dle_login_hash},function(data){HideLoading('');if(event=="activate"||event=="delete_req"){$("#friend-list-"+friend).html(data)}else if(type=="pop"){$("#dofriend-"+friend).replaceWith(data)}else if(type=="list"){$("#friend-list-"+friend).html(data)}else{$("#dofriend").replaceWith(data)}})}};$(function(){$('.feed_loader').click(function(){var f=$(this);var c=f.attr("rel");var n=(c*1)+1;if(f.attr("rel")!="stop"){f.attr("rel","stop").html("yükle...");$.get(dle_root+"engine/ajax/friends_feed.php",{count:c,skin:dle_skin},function(data){if(data=="no"){f.removeClass("f_active").html("Gösterilecek haber yok")}else{f.attr("rel",n).html("Önceki haberleri göster ↓");$("#friends_feed").append(data)}})}})});

/engine/engine.php açıp

Kod:
case "deletenews" :
	include ENGINE_DIR . '/modules/deletenews.php';
	break;

kodunu bulup helen altına

Kod:
// DLE Friends v1.6
	case "friends" :
		if ($user) include ENGINE_DIR . '/modules/friends_list.php';
		else msgbox ( $lang['all_err_1'], $lang['news_err_27'] );
		break;
	
	case "friendsfeed" :
		if ($is_logged) include ENGINE_DIR . '/modules/friends_feed.php';
		else msgbox ( $lang['all_err_1'], $lang['news_err_27'] );
		break;
// DLE Friends v1.6

ekliyoruz.Daha sonra aşağıdaki kodu buluyoruz.

Kod:
elseif ($do == 'stats') $nam_e = $lang['title_stats'];

hemen altına;

Kod:
// DLE Friends v1.6
elseif ($do == "friends") {
	if (! $subaction) $nam_e = $lang['fr_friends'];
	elseif ($subaction == "common") $nam_e = $url_user . $lang['fr_common'];
	elseif ($subaction == "requests") $nam_e = $lang['fr_activate_title'];
	elseif ($subaction == "suggestions") $nam_e = $lang['fr_suggestions'];
}
elseif ($do == "friendsfeed") $nam_e = $lang['fr_feed_title'];
// DLE Friends v1.6

ekliyoruz.Aynı dosya içinden devam ediyoruz.

Kod:
$s_navigation = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"{$config['http_home_url']}\" itemprop=\"url\"><span itemprop=\"title\">" . $config['short_title'] . "</span></a></span>"

hemen sonra;

Kod:
// DLE Friends v1.6
	if ($do == "friends") {
		if( $config['allow_alt_url'] ) $url_user = "<a href=\"" . $config['http_home_url'] . "user/" . urlencode( $user ) . "/\">" . stripslashes( $user ) . "</a>";
		else $url_user = "<a href=\"$PHP_SELF?subaction=userinfo&user=" . urlencode( $user ) . "\">" . stripslashes( $user ) . "</a>";
		
		$s_navigation .= " » " . $url_user;
	}
// DLE Friends v1.6

ekliyoruz.

engine/init.php dosyasını açıyoruz.

Kod:
$tpl->set( '{all-pm}', $member_id['pm_all'] );

kodunu bulup hemen altına;

Kod:
// DLE Friends v1.6
if( $member_id['friends_temp'] ) $tpl->set( '{request-count}', "(" . count(explode("," ,$member_id['friends_temp'])) . ")" );
else $tpl->set( '{request-count}', "" );

if( $config['allow_alt_url'] ) {
	$tpl->set( '{friends-link}', $config['http_home_url'] . "friends/" . urlencode( $member_id['name'] ) );
	$tpl->set( '{feed-link}', $config['http_home_url'] . "friendsfeed/" );
} else {
	$tpl->set( '{friends-link}', $PHP_SELF . "?do=friends&user=" . urlencode( $member_id['name'] ) );
	$tpl->set( '{feed-link}', $PHP_SELF . "?do=friendsfeed" );
}
// DLE Friends v1.6

ekliyoruz.

engine/modules/profile.php açıyoruz.

Kod:
$filecontents = '';

hemen sonra;

Kod:
// DLE Friends v1.6 
$friends_status_f  = isset($_POST['friends_status_f']) ?  intval($_POST['friends_status_f']) : 0; // Arkadaşlık isteklerini al [0]		
$friends_info_mail  = isset($_POST['friends_info_mail']) ?  intval($_POST['friends_info_mail']) : 0; // E-posta bildirimleri alın [1]
$friends_info_pm  = isset($_POST['friends_info_pm']) ?  intval($_POST['friends_info_pm']) : 0; // Bilgi alın [2]
$friends_pm  = isset($_POST['friends_pm']) ?  intval($_POST['friends_pm']) : 0; // Sadece arkadaşlardan özel mesaj al [3]

$friends_settings = $friends_status_f . "|" . $friends_info_mail . "|" . $friends_info_pm . "|" . $friends_pm;
// DLE Friends v1.6

ekliyoruz.

daha sonra;

Kod:
allow_mail='$allow_mail',

kodunu bulup altına;

Kod:
friends_settings='$friends_settings',

ekliyoruz.

daha sonra;

Kod:
$tpl->set( '{lastdate}', langdate( "j F Y H:i", $row['lastdate'] ) );

altına;

Kod:
// DLE Friends v1.6
include_once ENGINE_DIR . '/modules/friends_profile.php';
// DLE Friends v1.6

ekliyoruz.

engine/ajax/profile.php dosyasını açıyoruz.

Kod:
$tpl->set( '{rate}', userrating( $row['user_id'] ) );

kodunu bulup altına;

Kod:
// DLE Friends v1.6
    require_once ENGINE_DIR . '/data/friends_config.php';
    
    if ($is_logged and $member_id['user_id'] != $row['user_id'] and $friends_config['status']) {
        $friends_settings = explode("|", $row['friends_settings']);
        $friends_arr      = explode(',', $member_id['friends']);
        $temp_friends_arr = explode(',', $row['friends_temp']);
        
        if (!in_array($row['user_id'], $friends_arr) && !in_array($member_id['user_id'], $temp_friends_arr)) {
            if ($friends_settings[0]) {
                $tpl->set('{dofriends}', "<a id=\"dofriend-" . $row['user_id'] . "\" href=\"#\" onclick=\"doFriends('" . $row['user_id'] . "', 'add', 'pop'); return false;\">" . $lang['fr_add'] . "</a>");
            } else {
                $tpl->set('{dofriends}', "");
            }
        } elseif (in_array($row['user_id'], $friends_arr)) {
            $tpl->set('{dofriends}', "<a id=\"dofriend-" . $row['user_id'] . "\" href=\"#\" onclick=\"doFriends('" . $row['user_id'] . "', 'delete', 'pop'); return false;\">" . $lang['fr_del_do'] . "</a>");
        } else
            $tpl->set('{dofriends}', $lang['fr_req_sent']);
        
    } else
        $tpl->set('{dofriends}', "");
// DLE Friends v1.6

ekliyoruz.

engine/modules/pm.php aşağıdaki kodu buluyoruz.

Kod:
$db->query( "SELECT email, name, user_id, pm_all, user_group FROM " . USERPREFIX . "_users WHERE name = '{$name}'" );
		
		if( !$db->num_rows() ) $stop .= $lang['pm_err_4'];
		
		$row = $db->get_row();

bu kodu bulduktan sonra aşağıdaki kod ile değiştiriyoruz.

Kod:
$db->query( "SELECT email, name, user_id, pm_all, user_group, friends_settings FROM " . USERPREFIX . "_users WHERE name = '$name'" );
	
	if( !$db->num_rows() ) $stop .= $lang['pm_err_4'];
	
	$row = $db->get_row();
	
	$friends_settings = explode( "|", $row['friends_settings'] );
	
	if( $friends_settings[3] ) {
	
	$my_temp_arr = explode( ',', $member_id['friends'] );
	
		if( $member_id['user_id'] != 1 and !in_array( $row['user_id'], $my_temp_arr )) {	
	
			$stop .= "<li>".$lang['fr_pm_er']."</li>";
		
		}
	}

daha sonra;

sitemizin ana dizininden .htaccess dosyasında;

Kod:
# 
RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L

altına;

Kod:
# DLE Friends v1.6
RewriteRule ^friends/([^/]*)(/?)+$ index.php?do=friends&user=$1 [L]
RewriteRule ^friends/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=friends&user=$1&cstart=$2 [L]
RewriteRule ^friends/([^/]*)/common(/?)+$ index.php?do=friends&subaction=common&user=$1 [L]
RewriteRule ^friends/([^/]*)/common/page/([0-9]+)(/?)+$ index.php?do=friends&subaction=common&user=$1&cstart=$2 [L]
RewriteRule ^friends/([^/]*)/requests(/?)+$ index.php?do=friends&subaction=requests&user=$1 [L]
RewriteRule ^friends/([^/]*)/requests/page/([0-9]+)(/?)+$ index.php?do=friends&subaction=requests&user=$1&cstart=$2 [L]
RewriteRule ^friends/([^/]*)/suggestions(/?)+$ index.php?do=friends&subaction=suggestions&user=$1 [L]
RewriteRule ^friendsfeed(/?)+$ index.php?do=friendsfeed [L]

yukardaki kodu ekliyoruz.

/Language/Turkish/website.lng dosyasını açıyoruz.

Kod:
'wysiwyg_language'	=>  "TR",

hemen altına;

Kod:
# DLE Friends v1.6
'fr_status' => "Modül Yönetici tarafından devre dışı bırakıldı",
'fr_friends' => "Arkadaşlar",
'fr_done' => "Tarafından Yapılan",
'fr_add_succes' => "Kullanıcı {user} arkadaş olarak başarıyla eklendi!",
'fr_del_succes' => "Kullanıcı {user} arkadaş listesinden kaldırıldı!",
'fr_del_act' => "istegi sil",
'fr_del_req_succes' => "istek silindi!",
'fr_del_do' => "Arkadaşlardan kaldır",
'fr_del_pm' => "Arkadaş listesinden çıktın",
'fr_send_pm' => "Mesaj yaz",
'fr_send_mail' => "E-posta gönder",
'fr_activate' => "Onayla",
'fr_activate_title' => "Arkadaşlık istekleri",
'fr_activate_fail_pm' => "Arkadaşlık isteği reddedildi",
'fr_activate_ok_pm' => "Arkadaşlık isteğin kabul edildi",
'fr_no_friends' => "Henüz hiç arkadaşın yok",
'fr_no_req_friends' => "Henüz yeni istek yok",
'fr_user_no_friends' => "{user} adlı kullanıcının henüz bir arkadaşı yok",
'fr_req' => "Arkadaşlık isteği",
'fr_add' => "Arkadaş olarak ekle",
'fr_req_sent' => "Başvuru gönderildi",
'fr_feed_off' => "Modül geçici olarak devre dışı",
'fr_feed_load' => "Önceki haberleri göster ↓",
'fr_feed_error' => "Bu bölüm sadece kayıtlı kullanıcılar tarafından kullanılabilir",
'fr_nofeed' => "Arkadaşların henüz bir şey yayınlamadı",
'fr_timeago' => "bir saat, iki saat, üç saat, dört saat, beş saat, altı saat, saniye önce, dakika önce, geri, bugün, dün",
'fr_pm_er' => "Bu kullanıcı yalnızca arkadaşlardan mesaj alabilir.!",
'fr_no_sugg' => "Henüz bir arkadaş bulunamadı!",
'fr_common' => "Ortak Arkadaşlar",
'fr_suggestions' => "Arkadaşlar",
'fr_feed_title' => "Arkadaşlarının makaleleri",
'fr_nopage' => "Ne yazık ki, bu sayfa sizin için uygun değil!",

templates/temanız/style/style.css dosyasını açıp sonuna aşağıdaki kodu ekleyin;

Kod:
/* DLE Friends v1.6 */
#no-friends { padding: 6px; border: 1px solid #C0D4DE; background-color: #F3F7F9; color: #507D98; margin: 10px 0; }

.friends { margin-bottom: 10px; }
.friends ul, .prof-list { margin-top: 10px; }
.friends li { width: 100px; text-align: center; float: left; margin-right: 10px; }
.friends img { display: block; margin: 0 auto; width: 100px; height: 100px; }

.friends_table h3 { margin-bottom: 6px; font-size: 14px; line-height: 14px; font-weight: bold; }
.friends_table h3 a span { font-size: 12px; font-weight: normal; color: #6C838E; }
.friends_table h3 a span:hover { text-decoration: underline; }
.friends_table ul { list-style: none; margin: 0; padding: 0; }
.friends_table td { padding: 10px; border-bottom: 1px solid #EEE; font-size:12px; vertical-align: top; }
.friends_table .active { background-color: #F8F8F8; }
.contact_friends { width: 140px; }
.contact_friends a, .contact_friends span { display: block; padding: 6px; margin-bottom: 4px; line-height: 11px; }
.contact_friends a:hover { background-color: #DAE7ED; text-decoration: none; }

#allfriends .rcol { margin-top: 4px; }
#allfriends h2.lcol a { text-decoration: underline; }
#allfriends h2.lcol a:hover { text-decoration: none; }

#friends_feed { margin: 0 15px; }
#friends_feed table { width: 100%; border-collapse: collapse; border-spacing: 0; margin-bottom: 25px; }
#friends_feed td { vertical-align: top; text-align: left; }
#friends_feed td.f_avatar, #friends_feed td.f_author { border: 1px solid; border-color: #ACCCDA #E2EDF2 #E2EDF2; vertical-align: middle; background-color: #F4F8FA; }
#friends_feed td.f_avatar { width: 50px; border-spacing: 10px; padding: 2px; border-right-width: 0; }
#friends_feed td.f_avatar img { width: 50px; height: 50px; }
#friends_feed td.f_author { padding: 0 10px; border-left-width: 0; border-style: solid; font-size: 11px; }
#friends_feed td.f_author h3 { fonst-size: 14px; font-weight: bold; margin-bottom: 4px; }
#friends_feed td.f_story { padding: 15px 0; }
#friends_feed .f_cover { width: 104px; max-height: 104px; overflow: hidden; margin-right: 10px; float: left; border: 1px solid #E2EDF2; background-color: #F4F8FA; }
#friends_feed .f_cover img { width: 100px; padding: 2px; }
#friends_feed td.f_det { border-top: 1px solid #E2EDF2; padding: 5px 0; }

.feed_loader { padding: 10px; text-align: center; border-top: 1px solid #E2EDF2; color: #284B5A; margin-bottom: 20px; }
.f_active:hover { border-color: #ACCCDA; background-color: #F4F8FA; cursor: pointer; }

/templates/temanız/userinfo.tpl açıyoruz ve aşağıdaki kodu buluyoruz.

Kod:
<li>{pm}</li>

bir alt satırına aşağıdaki kodu ekliyoruz.

Kod:
<li>{dofriends}</li>

aynı dosya içerisinde;

Kod:
</div>
[not-logged]
<div class="tab-pane" id="user2">

buluyoruz ve altına aşağıdaki kodu ekliyoruz.

Kod:
[friends]
<div class="friends ussep">
		<span class="grey">Arkadaşlarım ({friends-count}) [friends-link]Tüm arkadaşlar[/friends-link] [requests]{requests-count} Onay Bekleyen istekler[/requests]</span>
		{friends}
		<div class="clr"></div>
</div>
[/friends]
[common-friends]
<div class="friends ussep">
		<span class="grey">Ortak Arkadaşlar ({common-count}) [common-link]Tüm Ortak Arkadaşlar[/common-link]</span>
		{common-friends}
		<div class="clr"></div>
</div>
[/common-friends]

ekliyoruz.

Daha sonra;

Kod:
<li class="form-group">
	<label for="land">Bulunduğunuz Yer</label>
	<input type="text" name="land" id="land" value="{land}" class="wide">
</li>

kodunu bulup aşağıdaki kodu ekliyoruz.

Kod:
<tr>
  <td class="label">Arkadaşlar:</td>
  <td>
  <div class="checkbox">{friends_status_f} <label for="friends_status_f">Arkadaş davetiyelerine izin ver</label></div>
  <div class="checkbox">{friends_info_mail} <label for="friends_info_mail">Arkadaş isteklerinin bildirimlerini E-posta ile al</label></div>
  <div class="checkbox">{friends_info_pm} <label for="friends_info_pm">Arkadaşlık teklifleri hakkında bildirim al</label></div>
  <div class="checkbox">{friends_pm} <label for="friends_pm">Sadece <strong>Arkadaş Listemdeki Kişilerden</strong> Özel Mesaj Al</label></div>
  </td>
</tr>


NOT : Ben bu kısmı uygun gördüm.Siz istediğiniz, uygun gördüğünüz yere ekleyebilirsiniz.

/templates/temanız/login.tpl dosyasına girip aşağıdaki kodu buluyoruz.

Kod:
<li><a href="{profile-link}">Profilim</a></li>

altına;

Kod:
<li><a href="{friends-link}">Arkadaşlarım {request-count}</a></li>
<li><a href="{feed-link}">Arkadaşlarımın Makaleleri</a></li>

ekliyoruz.

/templates/temanız/profile_popup.tpl dosyasını açıp; aşağıdaki kodu buluyoruz.

Kod:
<li><span class="grey">Açıklama:</span> <b>{comm-num} [ {comments} ]</b></li>

altına;

Kod:
<li>{dofriends}</li>

ekliyoruz.

Ana sayfa yada blogunuzun her hangi bir yerinde göstermek istiyorsanız eğer arkadaş listenizi; aşağıdaki kodu uygun bir yere yerleştirmeniz yeterli olacaktır.

Kod:
{include file="engine/modules/friends_random.php"}

aklınıza takılan her hangi bir sorun olursa veya modülü kurmada problem yaşayan arkadaşlar bu başlık altında sorunlarını dile getirebilirler.Herkese keyifli günler dilerim.
 
Geri