دیتالایف انجین فارسی

لینک فارسی برای دیتالایف

تاریخ انتشار: 12 خرداد 1388
ارسال کننده: SalaR
لینک فارسی برای دیتالایف



لینک فارسی برای دیتالایف

این هک رو Sam.Razm در فروم قبلی قرار داده بودند که پاک شد .

1. فایل Engine/Inc/include/functions.inc.php رو باز کنید :

کد زیر رو پیدا کنید :

function totranslit($var, $lower = true, $punkt = true) {

        $NpjLettersFrom = "àáâãäåçèêëìíîïðñòóôöû³";
    $NpjLettersTo = "abvgdeziklmnoprstufcyi";
    $NpjBiLetters = array ("é" => "j", "¸" => "yo", "æ" => "zh", "õ" => "x", "÷" => "ch", "ø" => "sh", "ù" => "shh", "ý" => "ye", "þ" => "yu", "ÿ" => "ya", "ú" => "", "ü" => "", "¿" => "yi", "º" => "ye" );
    $NpjCaps = "ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÛÝÞ߯ª²";
    $NpjSmall = "àáâãäå¸æçèéêëìíîïðñòóôõö÷øùüúûýþÿ¿º³";
    $var = str_replace( ".php", "", $var );
    $var = trim( strip_tags( $var ) );
    $var = preg_replace( "/\s+/ms", "-", $var );
    $var = strtr( $var, $NpjCaps, $NpjSmall );
    $var = strtr( $var, $NpjLettersFrom, $NpjLettersTo );
    $var = strtr( $var, $NpjBiLetters );
    if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
    else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );
    $var = preg_replace( '#[\-]+#i', '-', $var );
    if ( $lower ) $var = strtolower( $var );
    if( strlen( $var ) > 50 ) {
        $var = substr( $var, 0, 50 );
        if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max );
    }
return $var;
}


به جاش کد زیر رو قرار بدید :

function totranslit($var, $lower = true, $punkt = true) {
$var = str_replace(".php", "", $var);
$var = trim(strip_tags($var));
$var = preg_replace( "/\s+/ms", "-", $var );


if (strlen($var) > 70) {

$var = substr ($var, 0, 70);

if (($temp_max = strrpos($var, '-'))) $var = substr ($var, 0, $temp_max);

}

return $var;
}



2. فایل Engine/modules/functions.php رو باز کنید :

کد زیر رو پیدا کنید :

function totranslit($var, $lower = true, $punkt = true) {
    $NpjLettersFrom = "àáâãäåçèêëìíîïðñòóôöû³";
    $NpjLettersTo = "abvgdeziklmnoprstufcyi";
    $NpjBiLetters = array ("é" => "j", "¸" => "yo", "æ" => "zh", "õ" => "x", "÷" => "ch", "ø" => "sh", "ù" => "shh", "ý" => "ye", "þ" => "yu", "ÿ" => "ya", "ú" => "", "ü" => "", "¿" => "yi", "º" => "ye" );
    $NpjCaps = "ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÛÝÞ߯ª²";
    $NpjSmall = "àáâãäå¸æçèéêëìíîïðñòóôõö÷øùüúûýþÿ¿º³";
    $var = str_replace( ".php", "", $var );
    $var = trim( strip_tags( $var ) );
    $var = preg_replace( "/\s+/ms", "-", $var );
    $var = strtr( $var, $NpjCaps, $NpjSmall );
    $var = strtr( $var, $NpjLettersFrom, $NpjLettersTo );
    $var = strtr( $var, $NpjBiLetters );
    if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
    else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );
    $var = preg_replace( '#[\-]+#i', '-', $var );
    if ( $lower ) $var = strtolower( $var );
    if( strlen( $var ) > 50 ) {
        $var = substr( $var, 0, 50 );
        if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max );
    }
return $var;
}




به جاش کد زیر رو قرار بدید :

function totranslit($var, $lower = true, $punkt = true) {
$var = str_replace(".php", "", $var);
$var = trim(strip_tags($var));
$var = preg_replace( "/\s+/ms", "-", $var );


if (strlen($var) > 70) {

$var = substr ($var, 0, 70);

if (($temp_max = strrpos($var, '-'))) $var = substr ($var, 0, $temp_max);

}

return $var;
}



عدد 70 تعداد کاراکترهای هر لینک هست که پیش فرض روی 50 هست . من رو 70 گذاشتم . دوستان اگر خواستن به پیش فرض برگردونن.

----------------------------------------

اینم روش Saron

در فایلهای : addnews.php . editnews.php در پوشه ی engine/inc
وفایل addnews.php در پوشه ی engine/modules کافیست این کار رو بکنید :


کد زیر رو پیدا کنید :

if( $alt_name == "" or ! $alt_name ) $alt_name = totranslit( stripslashes( $title ), true, false );
else $alt_name = totranslit( $alt_name, true, false );


به جاش کد زیر رو بگذارید :

if( trim( $alt_name ) == "" or ! $alt_name ) $alt_name = strip_tags( stripslashes( trim( str_replace(" ", "-", $title))));
else $alt_name = strip_tags( stripslashes( trim( str_replace(" ", "-", $alt_name))));
    26 نفر (26 کاربر و 0 میهمان) از این مطلب تشکر کرده اند.
    تشکر
    عضو سایت
    12 خرداد 1388 - 02:47
    بسیار عالی . البته من از قبل استفاده می كردم از این روش و پیشنهاد می كنم استفاده كنید . دست آقا سالار گل درد نكنه
    عضو سایت
    12 خرداد 1388 - 09:25
    خیلی ممنون،این کار برای SEO خیلی عالیه ...
    عضو سایت
    12 خرداد 1388 - 09:59
    دست درد نکنه happy
    عضو سایت
    12 خرداد 1388 - 14:46
    عالیه سالار جونمیییییییییییییییی
    ییییییی feel

    --------------------
    عضو سایت
    12 خرداد 1388 - 15:10
    حرف نداره happy
    عضو سایت
    12 خرداد 1388 - 17:41
    Realy AMAZING !!!!!!!!!!!! happy
    مدیر بازنشسته
    12 خرداد 1388 - 18:33
    سالار جان عزیز دستت درد نکنه
    اما برای فارسی سازی لینکهای ادامه ی مطلب هیچ کدوم از این کارها لازم نیست و حتی دیتالایف انجین رو هم با مشکل امنیتی مواجه می کنه و این کارها به هیچ وجه درست نیست.
    لذاب این کار کافته توی سه فایل تغییرات کوچیکی بدین که مشکل حل بشه.
    در فایلهای زیر : addnews.php . editnews.php در پوشه ی engine/inc
    وفایل addnews.php در پوشه ی engine/modules کافیست این کار رو بکنید :

    کد زیر رو پیدا کنید :

    [code]
    if( $alt_name == "" or ! $alt_name ) $alt_name = totranslit( stripslashes( $title ), true, false );
    else $alt_name = totranslit( $alt_name, true, false );
    [code/]
    و به جاش کد زیر رو بزنید :
    [code]
    if( trim( $alt_name ) == "" or ! $alt_name ) $alt_name = strip_tags( stripslashes( trim( str_replace(" ", "-", $title))));
    else $alt_name = strip_tags( stripslashes( trim( str_replace(" ", "-", $alt_name))));
    [code/]

    موفق باشید
    مدیر بازنشسته
    12 خرداد 1388 - 20:44
    saron,
    خواهش میکنم کاری نکردم . روش شما رو هم با اجازه اضافه کردم. flower
    عضو سایت
    13 خرداد 1388 - 12:04
    خیلی عالی بود ممنون lol
    عضو سایت
    13 خرداد 1388 - 13:29
    خیلی ممنون
    دست گلت درد نکنه
    عضو سایت
    19 خرداد 1388 - 16:02
    سلام ممنون از همگی
    ولی فكر كنم تو این روش همه ی كاراكتر های غیر مجاز هم تو ادر قرار میگیره
    مثلا اگه شما عنوان پستتون اینطوری باشه
    موبایل ، خط كش جیبی (موبایل را خط كش كنید)
    تو URL موارد غیر مجاز ازجمله ، و ( رو در ادرس قرار میده كه گوگل وبمشتر تولز بد جور گیر میده!!
    فردا منم یه چیز تكمیلی اضافه میكنم :دی
    عضو سایت
    20 خرداد 1388 - 23:39
    به نظر من
    به جای اونیكه دكتر سالار گذاشته اینو بزارید
    ویژگی هاش اینه كه حروف بزگ اینگیلیسی رو كوچی ك میكنه و برخی كاراكتر های غیر مجاز رو عوض میكنه!!!
    function totranslit($var, $lower = true, $punkt = true) {

    $NpjBiLetters = array(

    "!" => "", "@" => "", "#" => "", "$" => "", "^" => "", "؟" => "", "-/-" => "-", "-&-" => "-",

    "%" => "", "&" => "", "*" => "", "(" => "", ")" => "", "( " => "-", " )" => "-", " (" => "-", ") " => "-",

    "_" => "-", "+" => "-","=" => "-", "|" => "-"," {" => "-","{ " => "-","} " => "-"," }" => "-","~" => "","'"
    ; => "",

    ":" => "",";" => "","?" => "",">" => "","<" => "","." => "-","," => "","
    عضو سایت
    24 مرداد 1388 - 21:05
    بالاخره کدومش رو دیتا لایف انجین فارسی توصیه می کنه؟
    گیر دادن گوگل به حروف غیر مجاز را در نظر بگیریم یا مورد امنیتی؟


    البته من مورد امنیتی رو ترجیه دادم. امیدوارم گوگل گیر نده.
    عضو سایت
    25 مرداد 1388 - 02:55
    من روش saron را اول متحان کردم.
    در این روش وقتی می خواهی بعداً تیتر را عوض کنی، لینک عوض نمیشه و همون تیتر قبلی در لینک ظاهر میشه. یعنی:

    صفحه مورد نظر پیدا نشد یا شما دسترسی به این صفحه ندارید.

    FAIL recourse
    مدیر بازنشسته
    03 شهریور 1388 - 13:12
    delete,
    به جای این همه کد نویسی به راحتی می شد از تابع tolower استفاده کرد عزیز.
    موفق باشید
    جهت ارسال نظر، فرم زیر را تکمیل نمائید:
    نام:*
    ایمیل:*
    متن نظر:

     
    پررنگکج خط دارخط دار در وسط|سمت چپوسط سمت راست|قرار دادن شکلکانتخاب رنگ|پنهان کردن متنقراردادن نقل قولتبدیل نوشته ها به زبان روسیقراردادن Spoiler
    کد امنیتی: *