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

محدودیت کاراکتر برای متن و عنوان مطلب

تاریخ انتشار: 12 آبان 1389
ارسال کننده: pedramj
با استفاده از این هک 3 تا تگ در اختیار شما قرار میگیره که می توانید عنوان مطلب و متن کوتاه و بلند مطلب رو به تعداد کاراکتر های خود تغییر بدهید .
شما تگ ها را می توانید در shortstory.tpl , fullstory.tpl و قالب های تگ {custom} استفاده کنید

محدودیت کاراکتر برای متن و عنوان مطلب



1. فایل engine/modules/functions.php را باز کنید و کد زیر را پیدا کنید :

function msgbox($title, $text) {


قبل از آن کد زیر را قرار دهید :

function mb_substrws( $text, $len=180 ) {

    if( (mb_strlen($text) > $len) ) {

        $whitespaceposition = mb_strpos($text," ",$len)-1;

        if( $whitespaceposition > 0 ) {
            $chars = count_chars(mb_substr($text, 0, ($whitespaceposition+1)), 1);
            if ($chars[ord('<')] > $chars[ord('>')])
                $whitespaceposition = mb_strpos($text,">",$whitespaceposition)-1;
            $text = mb_substr($text, 0, ($whitespaceposition+1));
        }

        // close unclosed html tags
        if( preg_match_all("|<([a-zA-Z]+)|",$text,$aBuffer) ) {

            if( !empty($aBuffer[1]) ) {

                preg_match_all("|</([a-zA-Z]+)>|",$text,$aBuffer2);

                if( count($aBuffer[1]) != count($aBuffer2[1]) ) {

                    foreach( $aBuffer[1] as $index => $tag ) {

                        if( empty($aBuffer2[1][$index]) || $aBuffer2[1][$index] != $tag)
                            $text .= '</'.$tag.'>';
                    }
                }
            }
        }
    }
    return $text;
}

function limitField($l,$f,$h,$n){
    mb_internal_encoding('UTF-8');
    if($l<1 OR !$f) return;
    elseif(mb_strlen($f) <= $l) return $f;
    else{
        if($h == 'false') return mb_substr( strip_tags($f), 0,$l).$n;
        else return mb_substrws($f, $l ).$n;
        }
    }


2. 3 تا فایل زیر را باز کنید :
engine/modules/show.custom.php
engine/modules/show.full.php
engine/modules/show.short.php


کد زیر را در 3 تا فایل پیدا کنید :

$tpl->copy_template = preg_replace ( "#\{date=(.+?)\}#ie", "langdate('\\1', '{$row['date']}')", $tpl->copy_template );


کد زیر را در پایین آن قرار دهید :

$tpl->copy_template = preg_replace ( "#\\{limitTitle limit=['\"](.+?)['\"] next=['\"](.+?)['\"]\\}#ies", "limitField('\\1', '".stripslashes($row['title'])."', 'false', '\\2')", $tpl->copy_template );
        
        $row['full_story'] = (!$row['full_story'])? $row['short_story'] : $row['full_story'];
        $tpl->copy_template = preg_replace ( "#\\{limitFStory limit=['\"](.+?)['\"] html=['\"](.+?)['\"] next=['\"](.+?)['\"]\\}#ies", "limitField('\\1', '{$row['full_story']}', '\\2', '\\3')", $tpl->copy_template );
        
        $tpl->copy_template = preg_replace ( "#\\{limitSStory limit=['\"](.+?)['\"] html=['\"](.+?)['\"] next=['\"](.+?)['\"]\\}#ies", "limitField('\\1', '{$row['short_story']}', '\\2', '\\3')", $tpl->copy_template );



توضیحی در مورد تگ ها :

شما از 3 تا تگ پایین می توانید در shortstory.tpl , fullstory.tpl و قالب های تگ {custom} استفاده کنید.

در تگ ها 3 تا مشخصه هست که به صورت زیر می باشند :
- مشخصه limit که تعداد کاراکتر دلخواه را نمایش می دهد .
- مشخصه html که اگر مقدار آن برار true باشد تگ HTML را نیز حفظ خواهد کرد و سپس کوتاه سازی متن را انجام می دهد , مقدار false برای این مشخصه تگ html را حذف کرده و سپس کوتاه سازی متن را انجام می دهد . ( این مشخصه در تگ مزبوط به عنوان مطلب وجود ندارد )
- مشخصه next که کاراکتر مورد نظر شما را بعد از کوتاه سازی متن اضافه می کند, مانند : ( متن مطلب .... )

اولین تگ مربوط به عنوان مطلب هست :
{limitTitle limit='5' next='...'}


دومین تگ مربوط به متن کوتاه مطلب :

{limitSStory limit='450' html='true' next='...'}


و سومین تگ که مربوط به متن بلند مطلب :

{limitFStory limit='450' html='true' next='...'}


این 3 تا تگ به تگ اصلی برای نمایش عنوان و متن مطلب کاری ندارد و جدا از آن کار می کند ( پس اگر می خواهید تنها از این استفاده کنید تگ اصلی را از قالب خود پاک کنید )
    14 نفر (14 کاربر و 0 میهمان) از این مطلب تشکر کرده اند.
    تشکر
    عضو سایت
    12 آبان 1389 - 09:46
    جالبه flower
    عضو سایت
    12 آبان 1389 - 10:28
    ممنون flower

    --------------------
    عضو سایت
    12 آبان 1389 - 12:44
    چیز خوبی هست !!
    عضو سایت
    12 آبان 1389 - 17:57
    عالیه fellow
    عضو سایت
    عضو سایت
    20 آذر 1390 - 11:50
    خیلی جالبه
    اما این تگ را در قالب {custom} قرار دادم اما در صفحه اصلی (main.tpl) کار نمیکنه
    مشکل از کجاست؟؟
    جهت ارسال نظر، فرم زیر را تکمیل نمائید:
    نام:*
    ایمیل:*
    متن نظر:

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