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
وشكرا
هاك تحميل بعدد معين كل يوم
طريقة التركيب
---الملفات التي ستتأثر بالتعديل ----
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
وشكرا