المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : هاك تحميل بعدد معين كل يوم


kwety
23-12-2005, 02:08 PM
السلام عليكم

هاك تحميل بعدد معين كل يوم

طريقة التركيب

---الملفات التي ستتأثر بالتعديل ----
details.php
download.php
admin/settings.php
includes/db_field_definitions.php
includes/page_header.php
includes/sessions.php
lang/<your language>/admin.php
lang/<your language>/main.php
templates/<your template>/details.html


الخطوة الأولى:

افتح من الجذر ملف details.php

ابحث عن:

show_image($image_row, $mode, 0, 1, 1);

مباشرة فوقها اضف ما يلي:

/*
هاك تحديد التحميل
*/
if ($msg_error = $site_sess->get_session_var("msg_error"))
{
$msg .= ((empty($msg)) ? "" : "<br />").stripslashes($msg_error);
$site_sess->drop_session_var("msg_error");
}

الخطوة الثانية:

افتح ملف download.php من الجذر
ابحث عن:

function get_remote_file($url) {


ومباشرة فوقه اضف ما يلي:

/*
MOD DOWNLOAD LIMIT
BEGIN INSERT
*/
$dl = 0;
function check_dl_limit($dl)
{
global $user_info, $config;
if ($user_info['user_level'] != ADMIN && $user_info['user_dl_limit'] != -1 && $user_info['user_dl_limit'] && time() - $user_info['user_dl_time'] <= 60*60*$config['user_dl_time'] && $user_info['user_dl_count'] + $dl >= $user_info['user_dl_limit'])
{
return false;
}
elseif ($user_info['user_level'] != ADMIN && $user_info['user_dl_limit'] != -1 && $user_info['user_dl_limit'] && time() - $user_info['user_dl_time'] > 60*60*$config['user_dl_time'] && $dl >= $user_info['user_dl_limit'])
{
return false;
}
return true;
}
function update_dl_limit($dl)
{
global $user_info, $site_db, $site_sess, $config;
if ($user_info['user_level'] == ADMIN) return;
$time = time();
if (!$user_info['user_dl_time'] || $time - $user_info['user_dl_time'] > 60*60*$config['user_dl_time'])
{
$time_sql = ", user_dl_time = ".$time;
$user_info['user_dl_count'] = $dl;
$user_info['user_dl_time'] = $time;
}
else
{
$time_sql = "";
$user_info['user_dl_count'] += $dl;
}
if ($user_info['user_level'] > GUEST)
{
$sql = "UPDATE ".USERS_TABLE."
SET user_dl_count = ".$user_info['user_dl_count'].$time_sql."
WHERE user_id = ".$user_info['user_id'];
$site_db->query($sql);
}
$site_sess->set_cookie_data('data', base64_encode($user_info['user_dl_count']." ".$user_info['user_dl_time']), 1, 60*60*$config['user_dl_time']);
}
/*
MOD DOWNLOAD LIMIT
END INSERT
*/

وايضا بنفس الملف ابحث عن:

while ($image_row = $site_db->fetch_array($result)) {

مباشرة اسفل الكود اضف ما يلي:

if (!check_dl_limit($dl)) break;

وايضا من نفس الملف ابحث عن:

$file_added = 1;

مباشرة فوقه اضف ما يلي:

$dl++;

وما زلنا بنفس الملف ابحث عن

$file['file_size'] = strlen($file['file_data']);
}
else {
header("Location: ".$site_sess->url($url, "&"));

امسح الكود واستبدله بالتالي:

/*
MOD DOWNLOAD LIMIT
BEGIN ORIGINAL CODE BLOCK
*/
/*
$file['file_size'] = strlen($file['file_data']);
}
else {
header("Location: ".$site_sess->url($url, "&"));
*/
/*
MOD DOWNLOAD LIMIT
END ORIGINAL CODE BLOCK
*/

/*
MOD DOWNLOAD LIMIT
BEGIN REPLACE
*/
$file['file_size'] = strlen($file['file_data']);
}
else {
if (!check_dl_limit(0))
{
$site_sess->set_session_var("msg_error", addslashes($lang['dl_limit_reached']));
}
header("Location: ".$site_sess->url($url, "&"));
/*
MOD DOWNLOAD LIMIT
END REPLACE
*/

وايضا من نفس الملف ابحث عن

$remote_url = 0;

مباشرة فوقه اضف

/*
MOD DOWNLOAD LIMIT
BEGIN INSERT
*/
if (!check_dl_limit(0))
{
$site_sess->set_session_var("msg_error", addslashes($lang['dl_limit_reached']));
header("Location: ".$site_sess->url($url, "&"));
exit;
}
/*
MOD DOWNLOAD LIMIT
BEGIN INSERT
*/

وابحث عن:

if (!empty($file['file_path'])) {

اضف فوقه مباشرة

$dl++;

وابحث عن:

if ($remote_url) {

واضف تحتها مباشرة:

update_dl_limit($dl);

وابحث عن:

if (!empty($file['file_data'])) {

واضف تخحته مباشرة

update_dl_limit($dl);

الخطوة الثالثة:


افتح ملف settings.php من مجلد admin

ابحث عن:

show_form_footer($lang['save_changes'], "", 2);

مباشرة فوقه اضف

show_table_separator($setting_group[XX], 2, "#setting_group_XX");
show_setting_row("user_dl_limit");
show_setting_row("user_dl_time");

ملاحظة:

xx هو رقم شوف ما هو اخر رقم عندك بالمجموعات فرضا كان 8 الرقم يجب ان يكون 9 بدل ال xx

الخطوة الرابعة:

افتح ملف db_field_definitions.php من مجلد includes

اخر الملف قبل وسم الإغلاق ?>

اضف التالي:

$additional_user_fields['user_dl_limit'] = array(&$lang['user_dl_limit'], "text", 0);
$additional_user_fields['user_dl_time'] = array($lang['user_dl_time'], "text", 0);
$additional_user_fields['user_dl_count'] = array($lang['user_dl_count'], "text", 0);

الخطوة الخامسة:

افتح ملف page_header.php من مجلد includes
ابحث عن (ستجد الكود بأكثر من مكان, أول مدخل هو المطلوب يعني اول نتيجة بحث):

$site_template->register_vars(array(

واضف مباشرة فوقها

/*
MOD DOWNLOAD LIMIT
BEGIN INSERT
*/
if ($user_info['user_dl_limit'] == -1)
{
$dl_limit = $lang['user_dl_limit_unlimited'];
}
else
{
$t = ($config['user_dl_time']*60*60) - (time() - $user_info['user_dl_time']);
$left = "";
if ($t > 0)
{
$years = floor($t/31536000);
$days = floor(($t %= 31536000)/86400);
$hours = floor(($t %= 86400)/3600);
$minutes = floor(($t %= 3600)/60);
$seconds = $t %= 60;
$t = array($years, $days, $hours, $minutes, $seconds);
$s = 0;
for ($i = 0; $i < 5; $i++) {
if ($t[$i]) {
$left .= $t[$i]." ".$lang['dates_short'][($t[$i] != 1)][$i];
$s++;
$c = 0;
for ($j = $i + 1; $j < 5; $j++) {
if ($t[$j]) $c++;
}
$left .= " ";
}
}
$left = trim ($left, " ");
}
if ($user_info['user_dl_limit'] > $user_info['user_dl_count'] || !$left)
{
$dl_limit = preg_replace("/".$site_template->start."dlcount".$site_template->end."/siU", $user_info['user_dl_count'], preg_replace("/".$site_template->start."dltottal".$site_template->end."/siU", $user_info['user_dl_limit'], preg_replace("/".$site_template->start."dltime".$site_template->end."/siU", $left, $lang['user_dl_limit_status'])));
}
else
{
$dl_limit = preg_replace("/".$site_template->start."dltime".$site_template->end."/siU", $left, $lang['user_dl_limit_reached']);
}
}
$site_template->register_vars(array(
"user_dl_count" => ($user_info['user_dl_limit'] == -1) ? 0 : $user_info['user_dl_count'],
"user_dl_time" => $left,
"user_dl_limit" => $dl_limit
));
/*
MOD DOWNLOAD LIMIT
END INSERT
*/

الخطوة السادسه:

افتح ملف sessions.php من مجلد includes
ابحث عن :

$this->delete_old_sessions();
}
}

وضع مباشرة تحته ما يلي:

/*
MOD DOWNLOAD LIMIT
BEGIN INSERT
*/
global $config;
if ($this->user_info['user_level'] > GUEST)
{
if (!$this->user_info['user_dl_limit'] && $this->user_info['user_dl_limit'] != -1)
{
$this->user_info['user_dl_limit'] = $config['user_dl_limit'];
}
if (!$this->user_info['user_dl_time'])
{
$this->user_info['user_dl_time'] = 0;
}
}

if ($dl = $this->read_cookie_data('data'))
{
$dl = explode(" ", base64_decode($dl));
if (isset($dl[1]) && $dl[1] && $config['user_dl_time']*60*60 > (time() - $dl[1]))
{
$this->user_info['user_dl_time'] = $dl[1];
$this->user_info['user_dl_count'] = (isset($dl[0]) && $dl[0]) ? $dl[0] : 0;
}
else
{
$this->user_info['user_dl_time'] = 0;
$this->user_info['user_dl_count'] = 0;
}
}
elseif ($this->user_info['user_level'] == GUEST)
{
$this->user_info['user_dl_count'] = 0;
$this->user_info['user_dl_time'] = 0;
}
if ($this->user_info['user_level'] == GUEST)
{
$this->user_info['user_dl_limit'] = $config['user_dl_limit'];
}
/*
MOD DOWNLOAD LIMIT
END INSERT
*/

الخطوة السابعة:
افتح ملف admin من داخل مجلد arabic من مجلد lang
وقبل وسم النهاية ؟> اضف ما يلي:

$setting_group[XX]="تحديد التحميل للأعضاء";
$setting['user_dl_limit'] = "تحديد التحميل اجعلها صفر اذا كنت لا تريد تحديد التحميل";
$setting['user_dl_time'] = "Reset time<span class=\"smalltext\"><br />(in hours)</span>";
$lang['user_dl_limit'] = "Download limit<span class=\"smalltext\"><br />set to <font color=red><b>0</b></font> to use global settings<br>or <font color=red><b>-1</b></font> for unlimited</span>";
$lang['user_dl_time'] = "Start time";
$lang['user_dl_count'] = "Download count";

تذكر: xx هو الرقم نفسه من الخطوة رقم 3

الخطوة الثامنة:

افتح ملف main.php من مجلد arabic من مجلد lang
قبل وسم النهاية ?> اضف ما يلي:

$lang['user_dl_limit'] = "حد التحميل";
$lang['user_dl_time'] = "وقت التحميل";
$lang['user_dl_count'] = "عد التحميل";
$lang['user_dl_limit_reached'] = "Your download quota per ".$config['user_dl_time']." hours has been reached. You won't be able download for next {dltime}";
$lang['user_dl_limit_unlimited'] = "Your download quota is unlimited";
$lang['user_dl_limit_status'] = "You have downloaded {dlcount} of {dltottal} files, allowed per ".$config['user_dl_time']." hours";
$lang['dl_limit_reached'] = "Sorry, you've reached the download limit per ".$config['user_dl_time']." hours";
$lang['dates_short'] = array(
array("yr", "day", "hr", "min", "sec"),
array("yrs", "days", "hrs", "min", "sec")
);

الخطوة العاشرة:

افتح ملف details.html من مجلد templates من داخل المجلد الافتراضي الذي تستخدمه كستايل
اضف ما يلي بالمكان الذي تريد:
{user_dl_limit}

الخطوة الأخير تجد مرفقا ملف مضغوط
حمل الملف ومن ثم ستجد ملف dl_limit_install.php
حمله على الجذر ومن ثم ادخل على مسار موقعك
فرضا:
http://dantq8.com/gallery/dl_limit_install.php

تذكر بأن تعمل باك اب لقاعدة البيانات وكل الملفات التي سيتم التعديل عليها

الهاك منقول ومترجم كاتب الهاك الأصلي هو vano

وشكرا