1############################################################################### 2# LivePreview.pm # 3# $Date: 12.02.14 $ # 4############################################################################### 5# YaBB: Yet another Bulletin Board # 6# Open-Source Community Software for Webmasters # 7# Version: YaBB 2.6.11 # 8# Packaged: December 2, 2014 # 9# Distributed by: http://www.yabbforum.com # 10# =========================================================================== # 11# Copyright (c) 2000-2014 YaBB (www.yabbforum.com) - All Rights Reserved. # 12# Software by: The YaBB Development Team # 13# with assistance from the YaBB community. # 14# Mod created by Carsten Dalgaard # 15# and added to YaBB core in Version 2.5.4/2.6.0 # 16# Released: May 11, 2013, Copyright 2013 Carsten Dalgaard # 17############################################################################### 18use CGI::Carp qw(fatalsToBrowser); 19our $VERSION = '2.6.11'; 20 21$livepreviewpmver = 'YaBB 2.6.11 $Revision: 1611 $'; 22if ( $action eq 'detailedversion' ) { return 1; } 23use URI::Escape; 24if ( $yymycharset ne 'UTF-8' ) { 25 use Encode; 26} 27LoadCensorList(); 28guard(); 29if ( $enable_ubbc ) { 30 if (!$yyYaBBCloaded ) { 31 require Sources::YaBBC; 32 } 33} 34 35sub DoLiveMessage { 36 $displayname = $FORM{'musername'}; 37 $FORM{'message'} =~ s/\r//gsm; 38 $message = $FORM{'message'}; 39 uri_unescape($message); 40 if ( $yymycharset ne 'UTF-8' ) { 41 $message = decode_utf8($message); 42 } 43 $message =~ s/\[ch8203\]//igsm; 44 $message =~ s/\​//igsm; 45 FromChars($message); 46 ToHTML($message); 47 my $mess = $message; 48 $message =~ s/\cM//gsm; 49 $message =~ s/\[([^\]\[]{0,30})\n([^\]\[]{0,30})\]/\[$1$2\]/gsm; 50 $message =~ s/\[\/([^\]\[]{0,30})\n([^\]\[]{0,30})\]/\[\/$1$2\]/gsm; 51 $message =~ s/\t/ \ \ \ /gsm; 52 $message =~ s/\n/<br \/>/gsm; 53 $message =~ s/([\000-\x09\x0b\x0c\x0e-\x1f\x7f])/\x0d/gsm; 54 wrap(); 55 if ( $FORM{'nschecked'} == 1 ) { $ns = 'NS'; } 56 57 if ($enable_ubbc) { 58 DoUBBC(); 59 $message =~ s/ style="display:none"/ style="display:inline"/gsm; 60 } 61 wrap2(); 62 ToChars($message); 63 $message = Censor($message); 64 $csubject = $FORM{'subject'}; 65 uri_unescape($csubject); 66 if ( $yymycharset ne 'UTF-8' ) { 67 $csubject = decode_utf8($csubject); 68 } 69 $csubject =~ s/[\r\n]//gsm; 70 FromChars($csubject); 71 $convertstr = $csubject; 72 $convertcut = $set_subjectMaxLength + ( $csubject =~ /^Re: /sm ? 4 : 0 ); 73 CountChars(); 74 $csubject = $convertstr; 75 ToHTML($csubject); 76 ToChars($csubject); 77 $csubject = Censor($csubject); 78 liveimage_resize(); 79 $myname = $FORM{'guestname'}; 80 uri_unescape($myname); 81 if ( $yymycharset ne 'UTF-8' ) { 82 $myname = decode_utf8($myname); 83 } 84 $myname =~ s/[\r\n]//gsm; 85 FromChars($myname); 86 ToHTML($myname); 87 ToChars($myname); 88 $myname = Censor($myname); 89 if ( $yymycharset ne 'UTF-8' ) { 90 $csubject = encode_utf8($csubject); 91 $message = encode_utf8($message); 92 $myname = encode_utf8($message); 93 } 94 print "Content-type: application/x-www-form-urlencoded\n\n" 95 or croak "$croak{'print'} content-type"; 96 print qq~$csubject|$message|$myname~ or croak "$croak{'print'}"; 97 $message = $mess; 98 exit; 99} 100 101sub DoLiveIM { 102 $subjdate = timeformat($date,0,0,0,1); 103 $FORM{'message'} =~ s/\r//gxsm; 104 $message = $FORM{'message'}; 105 uri_unescape($message); 106 if ( $yymycharset ne 'UTF-8' ) { 107 $message = decode_utf8($message); 108 } 109 $message =~ s/\[ch8203\]//igsm; 110 $message =~ s/\​//igsm; 111 FromChars($message); 112 ToHTML($message); 113 my $mess = $message; 114 $message =~ s/\cM//gsm; 115 $message =~ s/\[([^\]\[]{0,30})\n([^\]\[]{0,30})\]/\[$1$2\]/gsm; 116 $message =~ s/\[\/([^\]\[]{0,30})\n([^\]\[]{0,30})\]/\[\/$1$2\]/gsm; 117 $message =~ s/\t/ \ \ \ /gsm; 118 $message =~ s/\n/<br \/>/gsm; 119 $message =~ s/([\000-\x09\x0b\x0c\x0e-\x1f\x7f])/\x0d/gsm; 120 wrap(); 121 if ( $FORM{'nschecked'} == 1 ) { $ns = 'NS'; } 122 123 if ($enable_ubbc) { 124 $displayname = ${ $uid . $tmpmusername }{'realname'}; 125 DoUBBC(); 126 $message =~ s/ style="display:none"/ style="display:inline"/gsm; 127 } 128 wrap2(); 129 ToChars($message); 130 $message = Censor($message); 131 $csubject = $FORM{'subject'}; 132 uri_unescape($csubject); 133 if ( $yymycharset ne 'UTF-8' ) { 134 $csubject = decode_utf8($csubject); 135 } 136 $csubject =~ s/[\r\n]//gsm; 137 FromChars($csubject); 138 $convertstr = $csubject; 139 $convertcut = $set_subjectMaxLength + ( $csubject =~ /^Re: /sm ? 4 : 0 ); 140 CountChars(); 141 $csubject = $convertstr; 142 ToHTML($csubject); 143 ToChars($csubject); 144 $csubject = Censor($csubject); 145 $icon = $FORM{'icon'}; 146 CheckIcon(); 147 get_micon(); 148 $msgimg = qq~$micon{$icon}~; 149 $css = q~windowbg~; 150 LoadLanguage('InstantMessage'); 151 152 get_template('MyMessage'); 153 $liveipimg = qq~<img src="$micon_bg{'ip'}" alt="" />~; 154 $livemip = $inmes_txt{'511'}; 155 156 $messageblock = $myIM_liveprev_b; 157 $messageblock =~ s/{yabb css}/$css/gsm; 158 $messageblock =~ s/{yabb msgimg}/$msgimg/gsm; 159 $messageblock =~ s/{yabb subjdate}/$subjdate/gsm; 160 $messageblock =~ s/{yabb csubject}/$csubject/gsm; 161 $messageblock =~ s/{yabb message}/$message/gsm; 162 $messageblock =~ s/{yabb my_sig}/$my_sig/gsm; 163 $messageblock =~ s/{yabb my_attach}/$my_attach/gsm; 164 $messageblock =~ s/{yabb my_showIP}/$liveipimg $livemip/gsm; 165 166 liveimage_resize(); 167 if ( $yymycharset ne 'UTF-8' ) { 168 $messageblock = encode_utf8($messageblock); 169 } 170 171 print "Content-type: application/x-www-form-urlencoded\n\n" 172 or croak "$croak{'print'} content-type"; 173 print qq~$messageblock\n~ or croak "$croak{'print'} messageblock"; 174 $message = $mess; 175 exit; 176} 177 178sub DoLiveCal { 179 LoadLanguage('EventCal'); 180 $message = $FORM{'message'}; 181 uri_unescape($message); 182 if ( $yymycharset ne 'UTF-8' ) { 183 $message = decode_utf8($message); 184 } 185 $message =~ s/\r//gxsm; 186 $message =~ s/\[ch8203\]//igsm; 187 $message =~ s/\​//igsm; 188 FromChars($message); 189 ToHTML($message); 190 my $mess = $message; 191 $message =~ s/\cM//gsm; 192 $message =~ s/\[([^\]\[]{0,30})\n([^\]\[]{0,30})\]/\[$1$2\]/gsm; 193 $message =~ s/\[\/([^\]\[]{0,30})\n([^\]\[]{0,30})\]/\[\/$1$2\]/gsm; 194 $message =~ s/\t/ \ \ \ /gsm; 195 $message =~ s/\n/<br \/>/gsm; 196 $message =~ s/([\000-\x09\x0b\x0c\x0e-\x1f\x7f])/\x0d/gsm; 197 wrap(); 198 if ( $FORM{'nschecked'} == 1 ) { $ns = 'NS'; } 199 200 if ($enable_ubbc) { 201 $displayname = ${ $uid . $tmpmusername }{'realname'}; 202 DoUBBC(); 203 $message =~ s/ style="display:none"/ style="display:inline"/gsm; 204 } 205 wrap2(); 206 ToChars($message); 207 $message = Censor($message); 208 liveimage_resize(); 209 CountChars(); 210 $myname = $FORM{'guestname'}; 211 uri_unescape($myname); 212 if ( $yymycharset ne 'UTF-8' ) { 213 $myname = decode_utf8($myname); 214 } 215 $myname =~ s/[\r\n]//gsm; 216 FromChars($myname); 217 ToHTML($myname); 218 ToChars($myname); 219 $myname = Censor($myname); 220 $d_year = $FORM{'cal_year'}; 221 $d_mon = $FORM{'cal_mon'}; 222 $d_day = $FORM{'cal_day'}; 223 $my_icontxt = $FORM{'icon_txt'}; 224 $txt_icon = $var_cal{$my_icontxt}; 225 $my_caltype = $FORM{'cal_type'}; 226 get_micon(); 227 if ( $my_caltype == 2 ) { $mycal_type = $cal_icon{'eventprivate'}; } 228 else { $mycal_type = q{}; } 229 $mybtime = stringtotime(qq~$d_mon/$d_day/$d_year~); 230 $mybtimein = timeformat($mybtime); 231 $cdate = dtonly($mybtimein); 232 if ( $yymycharset ne 'UTF-8' ) { 233 $message = encode_utf8($message); 234 $myname = encode_utf8($myname); 235 $cdate = encode_utf8($cdate); 236 $txt_icon = encode_utf8($txt_icon); 237 } 238 print "Content-type: application/x-www-form-urlencoded\n\n" 239 or croak "$croak{'print'} content-type"; 240 print qq~$message|$myname|$cdate|$txt_icon|$mycal_type~ 241 or croak "$croak{'print'} message"; 242 $message = $mess; 243 exit; 244} 245 246sub liveimage_resize { 247 my ($resize_num); 248 *check_image_resize = sub { 249 my @x = @_; 250 $resize_num++; 251 $x[0] = "post_liveimg_resize_$resize_num"; 252 return qq~"$x[0]"$x[1]~; 253 }; 254 255 $messageblock =~ 256 s/"(post_liveimg_resize)"([^>]*>)/ check_image_resize($1,$2) /gesm; 257 $message =~ 258 s/"(post_liveimg_resize)"([^>]*>)/ check_image_resize($1,$2) /gesm; 259 260 return; 261} 262 2631; 264