با استفاده از این هک 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;
}
}
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
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 تا تگ به تگ اصلی برای نمایش عنوان و متن مطلب کاری ندارد و جدا از آن کار می کند ( پس اگر می خواهید تنها از این استفاده کنید تگ اصلی را از قالب خود پاک کنید )