این هک قبلاٌ برای نسخه های قدیمی منتشر شده بود که چون من برای طراحی یکی از سایت ها نیاز داشتم اصلاحاتی روش انجام دادم و با نسخه 9.7 دیتالایف انجین هماهنگش کردم.
اصلاحات:
- هماهنگی با نسخه 9.7
- شمسی شدن تاریخ
- نمایش ادامه مطلب علاوه بر متن مطلب
- اصلاح اشکالات املایی
سوالات متداول
در فایل engine/inc/addnews.php کد زیر را پیدا کنید.
بعد از آن کد زیر را وارد کنید
کد زیر را پیدا کنید
با کد زیر جایگزین کنید
کد زیر را پیدا کنید
بعد از آن کد زیر را وارد کنید
کد زیر را پیدا کنید
بعد از آن کد زیر را وارد کنید
کد زیر را پیدا کنید
کد زیر را جایگزین آن کنید
خسته نباشید!
دقت کنید فایل باید utf-8 ذخیره شود.
if($member_id['user_group'] < 3 ) $disable_index = "<input type=\"checkbox\" name=\"disable_index\" value=\"1\"> {$lang['add_disable_index']}"; else $disable_index = " ";
بعد از آن کد زیر را وارد کنید
$group_list = get_groups ();
if($member_id['user_group'] == 1){
$allow_newsletter = "<input type=\"checkbox\" name=\"allow_newsletter\" value=\"1\" checked> ارسال خبر انتشار اين مطلب ، به گروه کاربری
<select name=\"empfanger\">
<option value=\"all\">{$lang['edit_all']}</option>
{$group_list}
</select><br><br>";
}
if($member_id['user_group'] == 1){
$allow_newsletter = "<input type=\"checkbox\" name=\"allow_newsletter\" value=\"1\" checked> ارسال خبر انتشار اين مطلب ، به گروه کاربری
<select name=\"empfanger\">
<option value=\"all\">{$lang['edit_all']}</option>
{$group_list}
</select><br><br>";
}
کد زیر را پیدا کنید
<td style="width:200px;"><br /><br /> </td>
با کد زیر جایگزین کنید
<td style="width:400px;"><br />{$allow_newsletter}</td>
کد زیر را پیدا کنید
$allow_br = isset( $_POST['allow_br'] ) ? intval( $_POST['allow_br'] ) : 0;
بعد از آن کد زیر را وارد کنید
$allow_newsletter = isset( $_POST['allow_newsletter'] ) ? intval( $_POST['allow_newsletter'] ) : 0;
کد زیر را پیدا کنید
$db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '1', '{$title}')" );
بعد از آن کد زیر را وارد کنید
if ($allow_newsletter) {
if ($_POST['empfanger'] != "all") $empfanger = intval($_POST['empfanger']);
$start_from = 0;
$a_mail = "";
$interval = 3000;
$limit = intval(20);
$Short_msg = $short_story;
$Full_msg = $full_story;
$Date = jdate( "d-m-Y, H:i:s", $added_time);
$Home_url = "<a target=\"_blank\" title=\"{$config['short_title']}\" href=\"{$config['http_home_url']}\">{$config['home_title']}</a>";
$Title_url = "<a target=\"_blank\" href=\"{$config['http_home_url']}/index.php?newsid={$row}\">{$title}</a>";
$Sub_title = " مطلب جدید در سایت {$config['home_title']} منتشر شد";
$Message = <<<HTML
<html dir="rtl">
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{$Sub_title}</title>
<style>
<!--
.errorwrap {
background: #EAFFFF;
border: 1px solid #992A2A;
border-top: 0;
margin: 5px;
padding: 0;
}
.errorwrap h4 {
background: #009999;
border: 1px solid #992A2A;
border-right: 0;
border-left: 0;
color: #0000;
font-size: 10pt;
font-weight: bold;
margin: 0;
padding: 5px;
}
.errorwrap p {
background: transparent;
border: 0;
color: #000;
margin: 0;
padding: 8px;
font-size: 12pt;
-->
</style>
</head>
<body>
<table border="0" width="100%" cellspacing="0" cellpadding="0" align="center" id="table1" dir="rtl">
<tr>
<td width="100%">
<div class="errorwrap">
<h4><span style="background-position: 0 0" lang="fa"><font face="Tahoma">کاربر گرامی؛
</font></span></h4>
<p><span lang="fa">با سلام<br>یک مطلب جدید در سایت </span><font color="#800000"><b>{$Home_url}</b></font><span lang="fa"> منتشر شده است. </span>
<fieldset style="padding: 2">
<legend><font color="#0000FF"><b>{$Title_url}</b></font></legend>
{$Short_msg}<br><br>{$Full_msg}
<br><br>
<span lang="fa">نویسنده : </span>{$member_id['name']}<br><span lang="fa">تاریخ انتشار: </span>{$Date}</fieldset>
<p><span lang="fa">این رایانامه از طرف سایت </span> <font color="#800000"><b>{$Home_url}</b></font><span lang="fa">
برای تمامی اعضا ارسال شده . </span>
<p align="center"><i><font color="#808080" style="font-size: 9pt"><span lang="fa">این پیام به صورت خودکار
برای شما ارسال شده و نیازی به پاسخ ندارد</span><br><a target="_blank" href="http://datalifeengine.ir">
<span style="text-decoration: none">Powered By
DatalifeEngine.ir</font></a></i></p>
</span></div>
</td>
</tr>
</table>
</body>
</html>
HTML;
include_once ENGINE_DIR.'/classes/mail.class.php';
$mail = new dle_mail ($config, true);
$where = array();
if ($empfanger != "all") $where = " WHERE user_group = '{$empfanger}'";
else $where = "";
if ($config['mail_bcc']) {
$limit = $limit * 6;
$i = 0;
$h_mail = array();
$bcc = array();
$db->query("SELECT email FROM " . USERPREFIX . "_users $where LIMIT ".$limit."");
$db->close();
while($row = $db->get_row())
{
if ($i == 0) { $h_mail[$t] = $row['email'];}
else {$bcc[$t][] = $row['email'];}
$i++;
if ($i == 6) {
$i=0;
$t++;
}
$step++;
}
$db->free();
foreach ($h_mail as $key => $email) {
$mail->bcc = $bcc[$key];
$mail->send ($email, $Sub_title, $Message);
}
}
else
{
$db->query("SELECT email FROM " . USERPREFIX . "_users LIMIT ".$limit."");
$db->close();
while($row = $db->get_row())
{
$mail->send ($row['email'], $Sub_title, $Message);
$step++;
}
$db->free();
}
if ($mail) $Mail_ok = "<br><font color=#008000>خبر انتشار اين مطلب با موفقیت برای کاربران ارسال شد!";
else $Mail_ok ="<br><font color=#FF0000>به علت مشکلی خبر انتشار اين مطلب برای کاربران ارسال نشد!</font>";
}
if ($_POST['empfanger'] != "all") $empfanger = intval($_POST['empfanger']);
$start_from = 0;
$a_mail = "";
$interval = 3000;
$limit = intval(20);
$Short_msg = $short_story;
$Full_msg = $full_story;
$Date = jdate( "d-m-Y, H:i:s", $added_time);
$Home_url = "<a target=\"_blank\" title=\"{$config['short_title']}\" href=\"{$config['http_home_url']}\">{$config['home_title']}</a>";
$Title_url = "<a target=\"_blank\" href=\"{$config['http_home_url']}/index.php?newsid={$row}\">{$title}</a>";
$Sub_title = " مطلب جدید در سایت {$config['home_title']} منتشر شد";
$Message = <<<HTML
<html dir="rtl">
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{$Sub_title}</title>
<style>
<!--
.errorwrap {
background: #EAFFFF;
border: 1px solid #992A2A;
border-top: 0;
margin: 5px;
padding: 0;
}
.errorwrap h4 {
background: #009999;
border: 1px solid #992A2A;
border-right: 0;
border-left: 0;
color: #0000;
font-size: 10pt;
font-weight: bold;
margin: 0;
padding: 5px;
}
.errorwrap p {
background: transparent;
border: 0;
color: #000;
margin: 0;
padding: 8px;
font-size: 12pt;
-->
</style>
</head>
<body>
<table border="0" width="100%" cellspacing="0" cellpadding="0" align="center" id="table1" dir="rtl">
<tr>
<td width="100%">
<div class="errorwrap">
<h4><span style="background-position: 0 0" lang="fa"><font face="Tahoma">کاربر گرامی؛
</font></span></h4>
<p><span lang="fa">با سلام<br>یک مطلب جدید در سایت </span><font color="#800000"><b>{$Home_url}</b></font><span lang="fa"> منتشر شده است. </span>
<fieldset style="padding: 2">
<legend><font color="#0000FF"><b>{$Title_url}</b></font></legend>
{$Short_msg}<br><br>{$Full_msg}
<br><br>
<span lang="fa">نویسنده : </span>{$member_id['name']}<br><span lang="fa">تاریخ انتشار: </span>{$Date}</fieldset>
<p><span lang="fa">این رایانامه از طرف سایت </span> <font color="#800000"><b>{$Home_url}</b></font><span lang="fa">
برای تمامی اعضا ارسال شده . </span>
<p align="center"><i><font color="#808080" style="font-size: 9pt"><span lang="fa">این پیام به صورت خودکار
برای شما ارسال شده و نیازی به پاسخ ندارد</span><br><a target="_blank" href="http://datalifeengine.ir">
<span style="text-decoration: none">Powered By
DatalifeEngine.ir</font></a></i></p>
</span></div>
</td>
</tr>
</table>
</body>
</html>
HTML;
include_once ENGINE_DIR.'/classes/mail.class.php';
$mail = new dle_mail ($config, true);
$where = array();
if ($empfanger != "all") $where = " WHERE user_group = '{$empfanger}'";
else $where = "";
if ($config['mail_bcc']) {
$limit = $limit * 6;
$i = 0;
$h_mail = array();
$bcc = array();
$db->query("SELECT email FROM " . USERPREFIX . "_users $where LIMIT ".$limit."");
$db->close();
while($row = $db->get_row())
{
if ($i == 0) { $h_mail[$t] = $row['email'];}
else {$bcc[$t][] = $row['email'];}
$i++;
if ($i == 6) {
$i=0;
$t++;
}
$step++;
}
$db->free();
foreach ($h_mail as $key => $email) {
$mail->bcc = $bcc[$key];
$mail->send ($email, $Sub_title, $Message);
}
}
else
{
$db->query("SELECT email FROM " . USERPREFIX . "_users LIMIT ".$limit."");
$db->close();
while($row = $db->get_row())
{
$mail->send ($row['email'], $Sub_title, $Message);
$step++;
}
$db->free();
}
if ($mail) $Mail_ok = "<br><font color=#008000>خبر انتشار اين مطلب با موفقیت برای کاربران ارسال شد!";
else $Mail_ok ="<br><font color=#FF0000>به علت مشکلی خبر انتشار اين مطلب برای کاربران ارسال نشد!</font>";
}
کد زیر را پیدا کنید
msg( "info", $lang['addnews_ok'], $lang['addnews_ok_1'] . " \"" . stripslashes( stripslashes( $title ) ) . "\" " . $lang['addnews_ok_2'] );
کد زیر را جایگزین آن کنید
msg( "info", $lang['addnews_ok'], $lang['addnews_ok_1'] . " \"" . stripslashes( stripslashes( $title ) ) . "\" " . $lang['addnews_ok_2'].$Mail_ok );
خسته نباشید!
دقت کنید فایل باید utf-8 ذخیره شود.