ماژول O-Rating پیشرفته ترین و پرطرفدار ترین ماژول امتیازات مطالب در سیستم دیتالایف انجین میباشد. بوسیله این ماژول کاربران میتوانند به مطالب امتیاز منفی و مثبت بدهند و یک لیست از امتیازات داده شده توسط کاربران به همراه تاریخ و امتیاز آنها نیز نمایش داده میشود. توضیحات مفصل این ماژول در نسخه قبلی ماژول موجود میباشد. تفاوت این ماژول با نسخه قبل نیز اضافه شدن سیستم امتیازات به قسمت نظرات کاربران میباشد.
لینک نسخه قبلی و توضیحات کاملی درباره ماژول:
ماژول پیشرفته امتیازات مطالب O-Rating نسخه 3
ماژول پیشرفته امتیازات مطالب O-Rating نسخه 3
دوستانی که قبل از تاریخ 3 فروردین 1392 ساعت 11 شب این ماژول رو دانلود کرده اند، دوباره فایلها را دانلود و جایگزین کنند. مشکل ماژول با نامهای فارسی برطرف شده است.
دانلود
آموزش نصب
۱. فایل دانلود شده را از حالت فشرده خارج ساخته و بر روی هاست خود آپلود کنید. توجه داشته باشید که محتویات فولدر THEME را باید در پوشه قالب خود آپلود کنید.
۲. فایل install.php را اجرا کرده.
۳. فایل main.tpl قالب خود را باز کرده و کد زیر را پیدا کنید:
قبل از کد بالا، کد زیر را قرار دهید:
۴. این مرحله را باید در فایلهای زیر انجام دهید:
کد زیر را پیدا کرده:
بعد از کد بالا، کد زیر را قرار دهید:
۵. این مرحله باید در فایلهای زیر انجام شود:
کد زیر را پیدا کرده:
به جای کد بالا، کد زیر را قرار دهید:
۶. فایل engine/classes/comments.class.php را باز کرده و کد زیر را پیدا کنید:
پس از کد بالا، کد زیر را قرار دهید:
۷. فایل engine/modules/functions.php را باز کرده و کد زیر را پیدا کنید:
قبل از کد بالا کد زیر را قرار دهید:
۸. فایل engine/modules/profile.php را باز کرده و کد زیر را پیدا کنید:
به جای کد بالا، کد زیر را قرار دهید:
۹. در فایل fullstory.tpl و یا shortstory.tpl کد زیر را برای نمایش امتیاز مطالب در جای مناسب قرار دهید:
۱۰. در فایل comments.tpl کد زیر را در جای مناسب قرار دهید:
۱۱. برای ریست کردن امتیازاتی که قبلا به مطالب داده شده است، کد زیر را در قسمت SQL دیتابیس خود با استفاده از PHPMyAdmin وارد کنید:
۲. فایل install.php را اجرا کرده.
۳. فایل main.tpl قالب خود را باز کرده و کد زیر را پیدا کنید:
</head>
قبل از کد بالا، کد زیر را قرار دهید:
<script type="text/javascript" src="{THEME}/js/orating_pack.js"></script>
<link media="screen" href="{THEME}/style/orating.css" type="text/css" rel="stylesheet" />
<link media="screen" href="{THEME}/style/orating.css" type="text/css" rel="stylesheet" />
۴. این مرحله را باید در فایلهای زیر انجام دهید:
/engine/modules/show.custom.php
/engine/modules/show.short.php
/engine/modules/show.full.php
/engine/modules/show.short.php
/engine/modules/show.full.php
کد زیر را پیدا کرده:
$news_found = TRUE;
بعد از کد بالا، کد زیر را قرار دهید:
if( $row['allow_rate'] ){
$tpl->set( '{rate-val}', ($row['rating']>0)?"+".$row['rating']:$row['rating'] );
$tpl->set( '[rating]', "" );
$tpl->set( '[/rating]', "" );
} else $tpl->set_block( "'\\[rating\\](.*?)\\[/rating\\]'si", "" );
$tpl->set( '{rate-val}', ($row['rating']>0)?"+".$row['rating']:$row['rating'] );
$tpl->set( '[rating]', "" );
$tpl->set( '[/rating]', "" );
} else $tpl->set_block( "'\\[rating\\](.*?)\\[/rating\\]'si", "" );
۵. این مرحله باید در فایلهای زیر انجام شود:
/engine/modules/show.full.php
/engine/modules/lastcomments.php
/engine/modules/lastcomments.php
کد زیر را پیدا کرده:
"SELECT " . PREFIX . "_comments.id, post_id,
به جای کد بالا، کد زیر را قرار دهید:
"SELECT " . PREFIX . "_comments.rating, " . PREFIX . "_comments.id, post_id,
۶. فایل engine/classes/comments.class.php را باز کرده و کد زیر را پیدا کنید:
$this->intern_count ++;
پس از کد بالا، کد زیر را قرار دهید:
$tpl->set( '{*rating}', ($row['rating']>0)?"+".$row['rating']:intval($row['rating']) );
لطفآ * موجود در تگ {rating*} را حذف کنید.
۷. فایل engine/modules/functions.php را باز کرده و کد زیر را پیدا کنید:
function userrating($id) {
قبل از کد بالا کد زیر را قرار دهید:
function user_orating($name) {
global $db;
$rating_p = $rating_c = 0;
$post_sql = $db->query( "SELECT (SELECT SUM(value) FROM ".PREFIX."_logs WHERE news_id=p.id) as rating FROM " . PREFIX . "_post p where autor ='$name'" );
while($row = $db->get_row($post_sql)) $rating_p += $row['rating'];
$comm_sql = $db->query( "SELECT (SELECT SUM(value) FROM ".PREFIX."_logs_comm WHERE comm_id=c.id) as rating FROM " . PREFIX . "_comments c where autor ='$name'" );
while($row = $db->get_row($comm_sql)) $rating_c += $row['rating'];
$rating = floor($rating_p*1) + floor($rating_c*0.3);
return $rating>0?"+".$rating:$rating;
}
global $db;
$rating_p = $rating_c = 0;
$post_sql = $db->query( "SELECT (SELECT SUM(value) FROM ".PREFIX."_logs WHERE news_id=p.id) as rating FROM " . PREFIX . "_post p where autor ='$name'" );
while($row = $db->get_row($post_sql)) $rating_p += $row['rating'];
$comm_sql = $db->query( "SELECT (SELECT SUM(value) FROM ".PREFIX."_logs_comm WHERE comm_id=c.id) as rating FROM " . PREFIX . "_comments c where autor ='$name'" );
while($row = $db->get_row($comm_sql)) $rating_c += $row['rating'];
$rating = floor($rating_p*1) + floor($rating_c*0.3);
return $rating>0?"+".$rating:$rating;
}
۸. فایل engine/modules/profile.php را باز کرده و کد زیر را پیدا کنید:
$tpl->set( '{*rate}', userrating( $row['user_id'] ) );
لطفآ * موجود در تگ {rate*} را حذف کنید.
به جای کد بالا، کد زیر را قرار دهید:
$tpl->set( '{*rate}', user_orating( $row['name'] ) );
لطفآ * موجود در تگ {rate*} را حذف کنید.
۹. در فایل fullstory.tpl و یا shortstory.tpl کد زیر را برای نمایش امتیاز مطالب در جای مناسب قرار دهید:
[rating]<div class="orating" id="orating-{*news-id}">
<a href="#" class="orating_m" title="منفی" onclick="orating({*news-id},0);return false;"></a>
<a href="#" class="orating_p" title="مثبت" onclick="orating({*news-id},1);return false;"></a>
<a href="#" class="orating_res" onclick="ostats({*news-id},1,true);return false;">{rate-val}</a>
</div>[/rating]
<a href="#" class="orating_m" title="منفی" onclick="orating({*news-id},0);return false;"></a>
<a href="#" class="orating_p" title="مثبت" onclick="orating({*news-id},1);return false;"></a>
<a href="#" class="orating_res" onclick="ostats({*news-id},1,true);return false;">{rate-val}</a>
</div>[/rating]
لطفآ * موجود در تگ {news-id*} را حذف کنید.
۱۰. در فایل comments.tpl کد زیر را در جای مناسب قرار دهید:
<div class="ocomm" id="ocomm-{id}">
<a href="#" class="orating_m" title="منفی" onclick="ocomrate({*id},0);return false;"></a>
<a href="#" class="orating_p" title="مثبت" onclick="ocomrate({*id},1);return false;"></a>
<a href="#" class="ocomm_res" onclick="ocomstat({*id},1,true);return false;">{*rating}</a>
</div>
<a href="#" class="orating_m" title="منفی" onclick="ocomrate({*id},0);return false;"></a>
<a href="#" class="orating_p" title="مثبت" onclick="ocomrate({*id},1);return false;"></a>
<a href="#" class="ocomm_res" onclick="ocomstat({*id},1,true);return false;">{*rating}</a>
</div>
لطفآ * موجود در تگ {id*} و {rating*} را حذف کنید.
۱۱. برای ریست کردن امتیازاتی که قبلا به مطالب داده شده است، کد زیر را در قسمت SQL دیتابیس خود با استفاده از PHPMyAdmin وارد کنید:
update dle_post_extras set rating = 0, vote_num = 0;
truncate table dle_logs
truncate table dle_logs