PDA

View Full Version : درخواست راهنمایی در تابع parse_text



golpesar2011
دوشنبه 17 تیر 1392, 09:19 صبح
با سلام خدمت دوستان عزیز
تکه کد زیر در فایل مربوط نمایش پست، در یک مدیر محتوا به نام شیرترانیکس بکار گرفته شده .
مشکلی که با این مدیریت محتوا دارم اینه که اگر در پست از تگ های html استفاده کنم بعد از ارسال پست اونها رو دقیقاً همونجور که نوشته شدن در پست نمایش میده !
مثلا اگر در تکث باکس نوشته بشه <b>Helo</b> اون رو به جای بلد کردن متن دقیقاً همینگونه (یعنی <b>Helo</b>) نمایش میده . :گریه:

نحوه کار این کد اینگونه هست که پستی رو که قبلاً توسط کاربر به دیتابیس ارسال شده رو از دیتابیس بازخوانی میکنه و بعد از یک سری عملیات و جداسازی تگها، پست رو برای نمایش به خروجی ارسال میکنه ...
(توی کدها زیاد وارد نبودم امکان داره کدهای اضافی هم داشته باشه اما شما توجه نکنید) :لبخند:

ممنون میشم من رو در شناسایی و اعمال تگها در پست راهنمایی کنید ...



public function parse_text()
{
global $C;
if( $this->error ) {
return FALSE;
}
if( $this->is_system_post ) {
if( $C->API_ID == 1 ) {
if( substr($C->DOMAIN, 0, 2) == 'm.' ) {
$s = preg_replace('/^m\./i', '', $C->DOMAIN);
$this->post_message = str_replace($s, $C->DOMAIN, $this->post_message);
}
elseif( preg_match('/\/m(\/|$)/', $_SERVER['REQUEST_URI']) ) {
$tmp = preg_replace('/\/m(\/|$)/', '', $C->SITE_URL);
$tmp = rtrim($tmp,'/').'/';
$this->post_message = str_replace($tmp, $C->SITE_URL, $this->post_message);
}
}
return $this->post_message;
}
$message = htmlspecialchars($this->post_message);
if( FALSE!==strpos($message,'http://') || FALSE!==strpos($message,'http://') || FALSE!==strpos($message,'ftp://') ) {
$message = preg_replace('#(^|\s)((http|https|ftp)://\w+[^\s\[\]]+)#ie', 'post::_postparse_build_link("\\2", "\\1")', $message);
}

if( count($this->post_mentioned) > 0 ) {
$tmp = array();
foreach($this->post_mentioned as $i=>$v) {
$tmp[$i] = mb_strlen($v[0]);
}
arsort($tmp);
$tmp2 = array();
foreach($tmp as $i=>$v) {
$tmp2[] = $this->post_mentioned[$i];
}
foreach($tmp2 as $u) {
$txt = '<a href="'.$C->SITE_URL.$u[0].'" title="'.htmlspecialchars($u[1]).'"><span class="post_mentioned"><b>@</b>'.$u[0].'</span></a>';
$message = preg_replace('/(^|\s)\@'.preg_quote($u[0]).'/ius', '$1'.$txt, $message);
}
}
if( count($this->post_posttags) > 0 ) {
$tmp = array();
foreach($this->post_posttags as $i=>$v) {
$tmp[$i] = mb_strlen($v);
}
arsort($tmp);
$tmp2 = array();
foreach($tmp as $i=>$v) {
$tmp2[] = $this->post_posttags[$i];
}
foreach($tmp2 as $tag) {
$txt = '<a href="'.$C->SITE_URL.'search/posttag:%23'.$tag.'" title="'.$tag.'"><span class="post_tag"><b>#</b>'.$tag.'</span></a>';
$message = preg_replace('/(^|\s)\#'.preg_quote($tag).'/ius', '$1'.$txt, $message);
}
}
foreach($C->POST_ICONS as $k=>$v) {
$txt = '<img src="'.$C->IMG_URL.'icons/'.$v.'" class="post_smiley" alt="'.$k.'" title="'.$k.'" />';
$message = str_replace($k, $txt, $message);
}
return nl2[/LTR_INLINE][/LTR_INLINE][/LTR_INLINE]br($message);
}

golpesar2011
دوشنبه 17 تیر 1392, 11:51 صبح
اساتید، کسی میتونه من رو راهنمایی کنه ؟
میبخشید زیاد وارد نیستم اما بدجوری نیاز به کمک دارم ...