DLE Teşekkür Modulü - Beğeni Eklentisi

Konu sahibi son olarak 441 gün önce görüldü
Merhabalar sevgili arkadaşlar bugünkü konumuzda siz değerli kullanıcılarımıza DLE Teşekkür Modülü ve DLE Beğeni Eklentisi kurulumu hakkında ve modülün kendisi hakkında bilgi vermeye çalışacağım.

Modül Özellikleri :

1 ) AJAX kullanılmış - sayfayı yeniden yüklemeden teşekkür edebilir yada beğenebilirsiniz.

2 ) Makale yazarı kendi konusuna beğeni yada teşekkür edemez.

3 ) Misafir olarak sitenize giriş yapanlar teşekkür veya beğeni düğmesini kullanamazlar.

4 ) Önbellekleme yapmanızı tavsiye ederiz.

5 ) Teşekkür edenleri listeleme imkanına sahipsiniz.Yani; teşekkür eden herkesi görebilme imkanına sahipsiniz.

6 ) Profilinizde ne kadar teşekkür aldığınızı ve ne kadar teşekkür ettiğinizi de gösterme şansına sahipsiniz.

Modül Kurulumu:

Bir SQL Sorgusu oluşturuyoruz.

SQL Sorgu Kodu:

Kod:
CREATE TABLE `dle_thanks_post` (
  `id` int(12) NOT NULL auto_increment,
  `post_id` int(11) NOT NULL default '0',
  `post_author` varchar(40) NOT NULL default '',
  `user_id` int(11) NOT NULL default '0',
  `user_name` varchar(40) NOT NULL default '',
  `user_ip` varchar(16) NOT NULL default '',
  `time` int(15) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE `user` (`post_id`, `user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;

daha sonra;

engine/modules dosyasında thanks.php adında bir dosya oluşturuyoruz.Bu dosya içerisine aşağıdaki kodu ekliyoruz.

thanks.php kodu

Kod:
<?php
/*
============================================================
 Modul Turkcelestirme: http://ircforumlari.com.tr
============================================================
 Yazar : YaRGuCi
============================================================
*/

#****** Begenme/Tesekkur Etme Modulu ******#
if( $allow == "нет" ) {

#****** Begeni Modulu ******#
} elseif($short) {
	$echo = file_get_contents( ENGINE_DIR . "/cache/thanks/post/{$news_id}.tmp" );
	preg_match("#<!--num:(.+?)-->#ie", $echo, $n);
	$num = ($n[1]) ? $n[1] : 0;
	echo "Begenenler: {$num}"; 

#****** Profil c?k?s? ******#
} elseif($profile) {
	$uid = $db->super_query("SELECT user_id FROM " . USERPREFIX . "_users WHERE name='{$profile}'");
	$echo = file_get_contents( ENGINE_DIR . "/cache/thanks/user/{$uid['user_id']}.tmp" );
	if($echo) {
		$num = explode("|", $echo);
		if($show=="set") echo $num[0];
		else echo $num[1];
	} else {
		$set = $db->super_query("SELECT COUNT(id) AS num FROM " . PREFIX . "_thanks_post WHERE user_name='{$profile}'");
		$get = $db->super_query("SELECT COUNT(id) AS num FROM " . PREFIX . "_thanks_post WHERE post_author='{$profile}'");
		file_put_contents( ENGINE_DIR . "/cache/thanks/user/{$uid['user_id']}.tmp", "{$set['num']}|{$get['num']}", LOCK_EX );
		if($show=="set") echo $set['num'];
		else echo $get['num'];
	}

#****** Tesekkur Modulu ******#
} else {
	#****** Tum Haberler ******#
	if(!defined('DATALIFEENGINE')) die("Hacking attempt!");
	$button = "";

	if($is_logged AND $member_id["name"]!=$login AND $ajaxThanks==false) {
		$check = $db->super_query("SELECT id FROM " . PREFIX . "_thanks_post WHERE user_id='{$member_id['user_id']}' AND post_id='{$news_id}'");
		if(!$check['id']) {
$button = <<<HTML
<script type="text/javascript">
<!--
function tanksForNews(nid) {
	ShowLoading('');
	$.post(dle_root + "engine/ajax/thanks.php",
		{thanks:'tanksForNews', news_id:nid},
		function(data){
			HideLoading('');
			$('#thx').html(data).fadeIn(200);
		}
	);
}
//-->
</script>

HTML;
		}
	}

	$echo = file_get_contents( ENGINE_DIR . "/cache/thanks/post/{$news_id}.tmp" );
	if(!$echo) {
		$user = array();
		$sql = $db->query("SELECT t.user_name, u.user_group FROM " . PREFIX . "_thanks_post AS t, " . USERPREFIX . "_users AS u WHERE t.user_name=u.name AND t.post_id='{$news_id}' ORDER by t.id ASC");
		while ($row = $db->get_row($sql)) {
			#****** Kontrol ******#
			if( $config['allow_alt_url'] == "yes" ) {
				$url = "/user/".urlencode($row['user_name']);
			} else {
				$url = "/index.php?subaction=userinfo&user=".urlencode($row['user_name']);
			}
			#****** Mini Profil ******#
			if(intval($config['version_id']) >= 9) {
				$group_prefix = $user_group[$row['user_group']]['group_prefix'];
				$group_suffix = $user_group[$row['user_group']]['group_suffix'];
				$miniprof = " onclick=\"ShowProfile('".urlencode($row['user_name'])."', '{$url}', '{$user_group[$member_id['user_group']]['admin_editusers']}'); return false;\"";
			} else {
				$group_prefix = "";
				$group_suffix = "";
				$miniprof = "";
			}
			$user[] = "<a href=\"{$url}\"{$miniprof}>".$group_prefix.$row['user_name'].$group_suffix."</a>";
		}

		$numUsers = $db->num_rows($sql);

		$user_list = ($numUsers>0) ? implode(', ',$user) :  "Henuz Bu Makaleyi Begenen Olmadi :(";

$echo = <<<HTML
<!--num:{$numUsers}-->
<div class="title_spoiler"><img id="image-thanks" style="border:medium none;vertical-align:middle;" alt="" src="/templates/{$config['skin']}/dleimages/spoiler-plus.gif" />&nbsp;<a href="javascript:ShowOrHide('thanks')"><i class="fa fa-thumbs-up" aria-hidden="true"></i> Begen: {$numUsers}</a></div>
<div id="thanks" class="text_spoiler" style="display:none;">{$user_list}</div>
HTML;
		file_put_contents(ENGINE_DIR . "/cache/thanks/post/{$news_id}.tmp", $echo, LOCK_EX);
	}
	echo "<div id=\"thx\">".$button.$echo."</div>";
}
?>

daha sonra;

engine/cache dosyasına girip; thanks adında bir klasör oluşturup CHAMOD değerini 777 yapıyoruz.Daha sonra;

engine/ajax klasörüne girip thanks.php adında bir dosya oluşturuyoruz ve aşağıda vermiş olduğum kodu ekliyoruz.

thanks.php kodu:

Kod:
<?php
/*
============================================================
 Modul Turkcelestirme: http://ircforumlari.com.tr
============================================================
 Yazar : YaRGuCi
============================================================
*/

if($_POST['thanks']=='tanksForNews') {
	#****** AJAX *** start ******#
	@session_start();
	@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
	@ini_set ( 'display_errors', true );
	@ini_set ( 'html_errors', false );
	@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );

	define('DATALIFEENGINE', true);
	define('ROOT_DIR', substr(dirname( __FILE__ ), 0, -12));
	define('ENGINE_DIR', ROOT_DIR . '/engine');

	include ENGINE_DIR . '/data/config.php';
	if( $config['http_home_url'] == "" ) {
		$config['http_home_url'] = explode( "engine/ajax/thanks.php", $_SERVER['PHP_SELF'] );
		$config['http_home_url'] = reset( $config['http_home_url'] );
		$config['http_home_url'] = "http://" . $_SERVER['HTTP_HOST'] . $config['http_home_url'];
	}

	require_once ENGINE_DIR . '/classes/mysql.php';
	require_once ENGINE_DIR . '/data/dbconfig.php';
	require_once ENGINE_DIR . '/modules/functions.php';

	include_once ROOT_DIR . '/language/' . $config['langs'] . '/website.lng';

	$config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];
	@header( "Content-type: text/html; charset=" . $config['charset'] );

	$user_group = get_vars( "usergroup" );
	if( !$user_group ) {
		$user_group = array ();
		$db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );
		while ( $row = $db->get_row() ) {
			$user_group[$row['id']] = array ();
			foreach ( $row as $key => $value ) {
				$user_group[$row['id']][$key] = stripslashes($value);
			}
		}
		set_vars( "usergroup", $user_group );
		$db->free();
	}
	require_once ENGINE_DIR . '/modules/sitelogin.php';
	if( !$is_logged ) $member_id['user_group'] = 5;
	#****** AJAX *** stop  ******#

	$time = time()+($config['date_adjust']*60);
	if($member_id['user_group'] == 5) die("Tesekkur edebilmeniz icin uye olmalisiniz.");

	$news_id = intval($_POST['news_id']);
	if($news_id<=0) die("Hata, sayfayi yenileyin ve tekrar deneyin.");

	#****** Yazarin kendisine tesekkur yasagi konulamaz ******#
	$autor = $db->super_query("SELECT p.autor, u.user_id FROM " . PREFIX . "_post AS p, " . USERPREFIX . "_users AS u WHERE p.autor=u.name AND p.id='{$news_id}'");
	if($autor['autor']==$member_id['name']) die("<br/><b>Hile denemesi yapildi!</b><br/>");

	#****** IP ile hile kontrolu yapin*** start ******#
	$time_ip = $time-86400;
	$user_ip = $db->safesql($_SERVER["REMOTE_ADDR"]);
	$check_ip = $db->super_query("SELECT id FROM " . PREFIX . "_thanks_post WHERE post_id='{$news_id}' AND user_ip='{$user_ip}' AND time>='{$time_ip}'");
	if($check_ip['id']) die("<br/><b>IP'niz, son 24 saat icinde zaten tesekkur edildi!</b><br/>");
	#****** IP ile hile kontrolu yap?n *** stop  ******#

	#****** Kullanicinin oy verip vermedigini kontrol edin ******#
	$check_user = $db->super_query("SELECT id FROM " . PREFIX . "_thanks_post WHERE post_id='{$news_id}' AND user_id='{$member_id['user_id']}'");
	if($check_user['id']) die("<br/><b>Hile denemesi yap?ld?!</b><br/>");

	$db->query("INSERT INTO " . PREFIX . "_thanks_post (`post_id`,`post_author`,`user_id`,`user_name`,`user_ip`,`time`) VALUES ('{$news_id}','{$autor['autor']}','{$member_id['user_id']}','{$member_id['name']}','{$user_ip}','{$time}')");
	@unlink( ENGINE_DIR . "/cache/thanks/post/{$news_id}.tmp" );
	@unlink( ENGINE_DIR . "/cache/thanks/user/{$autor['user_id']}.tmp" );

	$ajaxThanks = true;
	include_once ENGINE_DIR . '/modules/thanks.php';
}
?>

daha sonra;

templates/temaisminiz/fullstory.tpl dosyasını açıp uygun bir alana aşağıda vermiş olduğum kodu ekleyiniz.

Kod:
{include file="engine/modules/thanks.php?news_id={news-id}&login={login}&allow=[xfvalue_thanks]"}

templates/temaisminiz/shortstory.tpl dosyasını açıp uygun bir alana aşağıda vermiş olduğum kodu ekleyiniz.

Kod:
{include file="engine/modules/thanks.php?news_id={news-id}&allow=[xfvalue_thanks]&short=1"}

templates/temaisminiz/userinfo.tpl dosyasını açıp uygun bir alana aşağıda vermiş olduğum kodları ekleyiniz.

Kod:
<li><span class="grey2"><i class="fa fa-thumbs-up" aria-hidden="true"></i></span> Toplam Verdiğim Beğeni: {include file="engine/modules/thanks.php?profile={usertitle}&show=set"}</li>
<li><span class="grey2"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i></span> Toplam Aldığım Beğeni: {include file="engine/modules/thanks.php?profile={usertitle}&show=get"}</li>

eklemeniz yeterli olacaktır.Kurulum aşaması bitmiştir.Güle güle kullanınız.
 
Geri