My first hack for vB
In functions.php, add this in at line 425, just after several lines of code about $replacearray
And then upload visbas.php to the admin directory:
Users can then use [vbcode] tags to access this.
I know that this is not very useful for many people, but it could be easily modified for other programming languages.
John
[edit - there's something funny going on with the slashes in the PHP code. Quote this message, and use the code straight from the reply window to get it accurately within any escaping problems.]
In functions.php, add this in at line 425, just after several lines of code about $replacearray
PHP Code:
// START VISUAL BASIC PARSING HACK
if (!function_exists("visbasparse")) {
global $kw;
if ($incp) {
include("./visbas.php");
} else {
include("./admin/visbas.php");
}
}
$searcharray[] = "/(\[)(vbcode)(])(\r\n)*(.*)(\[\/vbcode\])/esiU";
$replacearray[] = "visbasparse('\\5')";
// END VISUAL BASIC PARSING HACK
PHP Code:
<?php
error_reporting(7);
$kw=array("#Const","#If","Abs","Add","Alias","And","Any","AppActivate","Array","As","Asc","Atn","Base","Beep",
"Boolean","Byte","ByVal","CBool","CByte","CCur","CDBl","CDate","CDec","CInt","CLng","CSng","CStr","CVErr","CVar",
"Call","Case","ChDir","ChDrive","Chr","Clear","Close","Collection","Command","Compare","Const","Cos","CreateObject",
"CurDir","Currency","DDB","Date","DateAdd","DateDiff","DatePart","DateSerial","DateValue","Day","Debug","Declare",
"DefBool","DefByte","DefCur","DefDate","DefDbl","DefDec","DefInt","DefLng","DefObj","DefSng","DefStr","DefVar",
"DeleteSetting","Dim","Dir","Do","DoEvents","Double","EOF","Each","Else","ElseIf","End","Endif","Environ","Eqv",
"Erase","Err","Error","Exit","Exp","Explicit","FV","FileAttr","FileCopy","FileDateTime","FileLen","Filelen","Fix",
"For","Format","Function","Get","GetAllSettings","GetAttr","GetObject","GetSetting","Global","GoSub","GoTo","Hex",
"Hour","IIR","IPmt","If","Imp","In","InStr","Input #","Int","Integer","Is","IsArray","IsDate","IsEmpty","IsError",
"IsMissing","IsNull","IsNumeric","IsObject","Item","Kill","LBound","LCase","LOF","LSet","LTrim","Left","Len","Let",
"Lib","Like","Line Input #","Loc","Lock","Log","Long","Loop","MIRR","Me","Mid","Minute","MkDir","Mod","Module",
"Month","MsgBox","NPV","NPer","Name","New","Next","Not","Now","Object","Oct","On","Open","Option","Or","PPmt","PV",
"Pmt","Print","Print #","Private","Property","Public","Put","QBColor","RGB","RSet","RTrim","Raise","Randomize",
"Rate","ReDim","Remove","Reset","Resume","Return","Right","RmDir","Rnd","SLN","SYD","SaveSetting","Second","Seek",
"Select","SendKeys","Set","SetAttr","Sgn","Shell","Sin","Single","Space","Spc","Sqr","Static","Step","Stop","Str",
"StrComp","StrConv","String","Sub","Switch","Tab","Tan","Then","Time","TimeSerial","TimeValue","Timer","To","Trim",
"Type","TypeName","UBound","UCase","Unlock","Until","Val","VarType","Variant","Weekday","Wend","While","Width #",
"With","Write #","Xor","Year",
"Optional","InStrRev","Replace","Split","Join");
function visbasparse($text) {
global $kw;
$text=str_replace("\\'", "'", $text);
$lines=explode("\n",$text);
$val="";
while (list($brr,$line)=each($lines)) {
if (substr(trim($line),0,1)=="'" or strtolower(substr(trim($line),0,4))=="rem ") {
$line="<font color=\"#007F00\">$line</font>";
} else {
$quoteplace=strrpos($line,"'");
if ($quoteplace>0) {
$beforequote=substr($line,0,$quoteplace);
if (countchar($beforequote,"\"")%2==0) {
$afterquote="<font color=\"#007F00\">".substr($line,$quoteplace)."</font>";
$codebit=$beforequote;
} else {
$afterquote="";
$codebit=$line;
}
} else {
$afterquote="";
$codebit=$line;
}
reset ($kw);
$codebit=" $codebit";
while (list($key,$keyword)=each($kw)) {
$codebit=ereg_replace("([\r\n\\(\\)>, .])$keyword([\r\n <,.$\\(\\)])","\\1<font color=\"#00007F\">$keyword</font>\\2",$codebit);
}
$codebit=substr($codebit,1);
if ($afterquote!="") {
$line=$codebit.$afterquote;
} else {
$line=$codebit;
}
}
$val.=$line;
}
$val=str_replace("'", "\'", $val);
$val = str_replace("\\\"","\"",$val);
if (substr($val,0,1)=="\n" or substr($val,0,1)=="\r") {
$val=substr($val,1);
}
return "</normalfont><blockquote><pre><smallfont>visual basic code:</smallfont><hr>" . str_replace("<br>", "", $val) . "<hr></pre><normalfont></blockquote>";
}
?>
I know that this is not very useful for many people, but it could be easily modified for other programming languages.
John
[edit - there's something funny going on with the slashes in the PHP code. Quote this message, and use the code straight from the reply window to get it accurately within any escaping problems.]
Comment