همانطور که اطلاع دارید، هنگامی که توی عنوان مطالب خودتون از حروفی به غیر از الفبا و یا اعداد استفاده کنید، برای نمایش ادامه مطلب با مشکل مواجه خواهید شد و لینک ادامه مطلب کار نخواهد کرد. در نتیجه مجبور هستید که مطلب رو ویرایش کنید و فیلد مربوط به آدرس مطلب رو خودتون تصحیح کنید. برای حل این مشکل که امروز توی انجمن مطرح شده بود، یک هک کوچیک درست کردم تا بتوانید این مشکل را برطرف کنید.
آموزش نصب
برای حل مشکل ارسال مطلب از قسمت مدیریت، فایل زیر رو باز کنید:
کد زیر رو پیدا کنید:
به جای کد بالا، کد زیر رو بزارید:
برای حل مشکل در قسمت ارسال مطلب از توی سایت، فایل زیر رو باز کنید:
کد زیر رو پیدا کنید:
به جای کد بالا، کد زیر رو قرار بدید:
حالا، اگر توی عنوان مطالب شما، هر کرکتری غیر از حروف فارسی، حروف انگلیسی و اعداد به کار ببرید، تمامشون حذف میشوند و به جاش "-" گذاشته میشود. اینجوری توی عنوان مطالب هر چیزی که دوست داشته باشد میتونید بزارید و دیگه مشکلی نخواهید داشت و نیازی نیست مطالب رو بعد از ارسال ویرایش کنید.
engine/inc/addnews.php
کد زیر رو پیدا کنید:
if( trim( $_POST['alt_name'] ) == "" or ! $_POST['alt_name'] ) $alt_name = fatotranslit( stripslashes( $title ) );
به جای کد بالا، کد زیر رو بزارید:
if(trim($_POST['alt_name']) == "" or !$_POST['alt_name']) $alt_name = fatotranslit(stripslashes(preg_replace("/[^\x{0600}-\x{06FF}a-zA-Z0-9_.-]/u", "-", $title)));
برای حل مشکل در قسمت ارسال مطلب از توی سایت، فایل زیر رو باز کنید:
engine/modules/addnews.php
کد زیر رو پیدا کنید:
if( $alt_name == "" or ! $alt_name ) $alt_name = totranslit( stripslashes( $title ), true, false );
به جای کد بالا، کد زیر رو قرار بدید:
if(trim($_POST['alt_name']) == "" or !$_POST['alt_name']) $alt_name = fatotranslit(stripslashes(preg_replace("/[^\x{0600}-\x{06FF}a-zA-Z0-9_.-]/u", "-", $title)));
حالا، اگر توی عنوان مطالب شما، هر کرکتری غیر از حروف فارسی، حروف انگلیسی و اعداد به کار ببرید، تمامشون حذف میشوند و به جاش "-" گذاشته میشود. اینجوری توی عنوان مطالب هر چیزی که دوست داشته باشد میتونید بزارید و دیگه مشکلی نخواهید داشت و نیازی نیست مطالب رو بعد از ارسال ویرایش کنید.
نکته:
این هک روی مطالبی که قبلا ارسال کردید تاثیری ندارد.
این هک روی مطالبی که قبلا ارسال کردید تاثیری ندارد.