سلام.. ماژول متن پنهان یا همون Hide که نسخه قبلی این ماژول در بعضی ورژن های سیستم دیتالایف نصب است که با نسخه قبلی این ماژول میتونستید یک متن رو از کاربرانی که عضو نیستند پنهان کنی اما در نسخه جدید این ماژول تغییرات زیادی اومده!
توسط نخسه جدید این ماژول شما میتونید یک مقداری را انتخاب کنید تا کاربرانی که به اندازه همان مقدار مطلب فرستاده اند بتونند آن متن را مشاهده کنند و کاربرانی که به اندازه همان مقدار مطلب نفرستاده اند نتونند آن متن را مشاهده کنند
برای نصب ایتدا فایل زیر را دانلود کنید:
hide-modern.zip
بعد از اینکه فایل بالا را دانلود کردید و در جاهای مشخص شده آپلود کردید مراحل ذیل را طی کنید:
1- فایل / Engine / modules / functions.php توسط یک ویرایشگر باز کنید و کد زیر را بیابید:
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}
die( "Hacking attempt!" );
}
بعد از کد بالا، کد زیر را بنویسید:
function news_protect ( $news_num = 0, $text = "" )
{ global $is_logged, $member_id;
if ( $is_logged ){
$unews = intval( $member_id['news_num'] );
$news_need = intval( $news_num );
if ( $unews >= $news_need ) {
return $text;
} else {
$error ="<div class=\"quote\">براي مشاهده اين متن ابتدا مطلب خود را منتشر کنيد<b>" . $news_need . "</b> مطلب شما منتشر شد<b>" . $unews . "</b> (ه?ه " . ($news_need-$unews) . ").</div>";
return $error;
} }else {
$error = "<div class=\"quote\">براي مشاهده اين متن ابتدا در سايت عضو شويد</div>";
return $error; } }
{ global $is_logged, $member_id;
if ( $is_logged ){
$unews = intval( $member_id['news_num'] );
$news_need = intval( $news_num );
if ( $unews >= $news_need ) {
return $text;
} else {
$error ="<div class=\"quote\">براي مشاهده اين متن ابتدا مطلب خود را منتشر کنيد<b>" . $news_need . "</b> مطلب شما منتشر شد<b>" . $unews . "</b> (ه?ه " . ($news_need-$unews) . ").</div>";
return $error;
} }else {
$error = "<div class=\"quote\">براي مشاهده اين متن ابتدا در سايت عضو شويد</div>";
return $error; } }
2- فایل / Engine / modules / show.short.php را باز کنید و کد زیر را بیابید:
else $tpl->set_block( "'\\[hide\\](.*?)\\[/hide\\]'si", "<div class=\"quote\">" . $lang['news_regus'] . "</div>" );
بعد از کد بالا، کد زیر را بنوسید:
$tpl->set_block( "#\[hide_(.*?)\](.*?)\[/hide\]#ies", 'news_protect( $1 , "$2" )' );
3- فایل / Engine / modules / show.full.php را باز کنید و به دنبال کد زیر بگردید:
$tpl->copy_template = str_replace( "[xfvalue_{$preg_safe_name}]", stripslashes( $xfieldsdata[$value[0]] ), $tpl->copy_template ); }
}
}
به تعقیب کد بالا، این کد را بنویسید:
$tpl->set_block( "#\[hide_(.*?)\](.*?)\[/hide\]#ies", 'news_protect( $1 , "$2" )' );
باز هم در همین فایل به دنبال کد زیر بگردید:
$tpl->set( '{group-name}', $user_group[$row['user_group']]['group_name'] );
بعد از کد بالا، این کد را قرار دهید:
$tpl->set_block( "#\[hide_(.*?)\](.*?)\[/hide\]#ies", 'news_protect( $1 , "$2" )' );
4- فایل / Engine / ajax / addcomments.php را باز کنید و کد زیر را جستجو کنید:
else $tpl->set_block( "'\\[hide\\](.*?)\\[/hide\\]'si", "<div class=\"quote\">" . $lang['news_regus'] . "</div>" );
باز هم بعد از کد بالا، این کد را بنویسید:
$tpl->set_block( "#\[hide_(.*?)\](.*?)\[/hide\]#ies", 'news_protect( $1 , "$2" )' );
5- فایل / Engine / ajax / editcomments.php را باز کنید و کد زیر را بیابید:
$comm_txt = preg_replace( "'\[hide\](.*?)\[/hide\]'si", "\\1", $comm_txt );
بعد از کد بالا، این کد را بنویسید:
$comm_txt = preg_replace( "#\[hide_(.*?)\](.*?)\[/hide\]#ies", 'news_protect( $1 , "$2" )', $comm_txt );
6- فایل / Engine / ajax / editnews.php را باز کنید و به دنبال کد زیر بگردید:
if( $config['files_allow'] == "yes" ) if( strpos( $news_txt, "[attachment=" ) !== false ) { $news_txt = show_attach( $news_txt, $id );
}
}
باز هم بعد از کد بالا، این کد را بنویسید:
$news_txt = preg_replace( "#\[hide_(.*?)\](.*?)\[/hide\]#ies", 'news_protect( $1 , "$2" )', $news_txt );
7- فایل / Engine / modules / lastcomments.php را باز کنید و کد زیر را داخل این یافت کنید:
else $tpl->set_block( "'\\[hide\\](.*?)\\[/hide\\]'si", "<div class=\"quote\">" . $lang['news_regus'] . "</div>" );
بعد از کد بالا، کد زیر را بنویسید:
$tpl->set_block( "#\[hide_(.*?)\](.*?)\[/hide\]#ies", 'news_protect( $1 , "$2" )' );
8- و آخرین مرحله فایل / Engine / editor / comments.php را باز کنید و کد زیر را بیابید:
dle_quote,dle_hide",
کد زیر را جایگزین کد بالا کنید:
dle_quote,dle_hide,dle_hide_2",
و در همین فایل به دنبال کد زیر بگردید:
ed.execCommand('mceReplaceContent',false,'[hide]{\$selection}[/hide]');
}
});
}
});
و بعد از کد بالا کد زیر را بنویسید:
ed.addButton('dle_hide_2', {
title : '{$lang['bb_t_hide']}',
image : '{$config['http_home_url']}engine/editor/jscripts/tiny_mce/themes/advanced/img/dle_hide_2.gif',
onclick : function() {
ed.execCommand('mceReplaceContent',false,'[hide_25]{\$selection}[/hide]');
}
});
title : '{$lang['bb_t_hide']}',
image : '{$config['http_home_url']}engine/editor/jscripts/tiny_mce/themes/advanced/img/dle_hide_2.gif',
onclick : function() {
ed.execCommand('mceReplaceContent',false,'[hide_25]{\$selection}[/hide]');
}
});
طرز استفاده:
برای پنهان نمودن متن از تگ [hide_22] و [hide/] استفاده کنید که در قسمت شماره، مقداری رو تایین میکند تا کاربرانی که به اندازه همان مقدار مطلب نفرستاده باشند نتونند آن متن را ببینند
ببخشید که کمی این ماژول ساده بود اما از این به بعد ماژول های بهتر از این ارسال میکنم.. موفق باشید