PDA

View Full Version : Change how Code Tags work?


Simon Lloyd
02-24-2009, 10:02 AM
Hi all,
I'm new here, i have very little php or html experience (i have owned a vbulletin forum since August) but i am learning fast and can perform whatever i am instructed to.

What i would like to do is change keywords found in the # code tags box, so instead of this:

Sub change()
for each r in range
if r = 0 then
msgbox "hello"
if r = 1 then
msgbox "goodbye"
end if
end if
next
end sub
i would like it to look like this:

Sub change()
For Each r In Range
>>>If r = 0 Then
>>>>>Msgbox "hello"
>>>>>>If r = 1 Then
'Show a message to the user
>>>>>>>>Msgbox "goodbye"
>>>>>>End If
>>>End If
Next
End Sub Of course the above would be without the white chevrons, i had to use them to indent the code.

Here are my lists:
$bodykeywords=array("Application","AddressOf","Alias","And","Any","As","Binary","Boolean","ByRef",
"Byte","ByVal","Call","Case","CBool","CByte","CCur","CDate","CDbl","CInt","CLng","Close","Const",
"CSng","CStr","Currency","CVar","CVErr","Date","Debug","Declare","DefBool","DefByte","DefCur",
"DefDate","DefDbl","DefInt","DefLng","DefObj","DefSng","DefStr","DefVar","Dim","Do","Double"
,"Each","Else","End","Enum","Eqv","Erase","Error","Event","Exit","For","Friend","Function","Get",
"Global","GoSub","GoTo","If","Imp","Implements","In","Input","Integer","Is","LBound","Len","Let",
"Lib","Like","Line","Lock","Long","Loop","LSet","Mod","Msgbox","Name","New","Next","Not","Nothing",
"Null","Object","On","On Error Resume Next","Open","Option Base 1","Option Compare Binary",
"Option Compare Database","Option Compare Text","Option Explicit","Option Private Module","Optional","Or","Output","ParamArray","Preserve","Print","Private","Property","Public","Put",
"RaiseEvent","Random","Read","ReDim","Resume","Return","RSet","Seek","Select","Set","Single","Spc",
"Static","Step","Stop","String","Sub","Tab","Then","To","Type","UBound","Unlock","Variant","Wend","While"
"With","WithEvents","Write","Xor");

$indentkeywords = array("Then","Do","For Each","For","Else" "ElseIf","Do","Select Case","Case");

$unindentkeywords=array("End","Next","Else","ElseIf","End If","End Select","End Sub","Wend","Loop","Case Else","Case");

All the above keywords when found inside the code tags should be blue, any text found on the same line after ' should be green.

The indent keywords should indent like my second example only returning to the begining of a line if an unindent keyword is found or only indenting another line when another indent keyword is found.

If any keywords are found between quotes " then that text should remain black.

I have installed GeSHi which highlights the code if i use a custom tag but it doesn't indent or replace the words for the words in the list (proper case).

Is this possible with php, javascript and or CSS?

Kind regards,
Simon

TigerC10
02-24-2009, 05:36 PM
Have you looked at any of these mods? The first one there says it works with visual basic, which is the code you want highlighted, right?

https://vborg.vbsupport.ru/showthread.php?t=199819

https://vborg.vbsupport.ru/showthread.php?t=182422

https://vborg.vbsupport.ru/showthread.php?t=93071

https://vborg.vbsupport.ru/showthread.php?t=67329

Simon Lloyd
02-24-2009, 08:35 PM
Tiger, thanks for that i am subscribed to the 3rd one, i installed it but it doesn't indent ot change the keywords to the propercase like the ACTUAL keyword, i'll take a look at the others but there is a lot of coding to change with them, it would be a minefield to uninstall!

TigerC10
02-24-2009, 09:18 PM
The first one looks like it indents, and has no file changes... Plus there's Visual Basic like you want...

Simon Lloyd
02-24-2009, 11:05 PM
The first one looks like it indents, and has no file changes... Plus there's Visual Basic like you want...Yep i'll take a look at it but it may only indent for php (they all seem to cater for that), i really appreciate you taking the time to find those for me. :)

TigerC10
02-25-2009, 01:48 AM
At the very least, they keep the indents in there instead. May not automagically do it, but it should preserve them.

Simon Lloyd
02-25-2009, 03:09 AM
At the very least, they keep the indents in there instead. May not automagically do it, but it should preserve them.Thats the problem, most people who post code have no idea about indenting or why, i have see what i want done at vbaexpress.com, if you enter code then wrap it in tags it colours the keywords, replaces them for the proper case and indents/unindents.

TigerC10
02-25-2009, 04:34 AM
They use the the <PRE> tags to preserve the spaces, which means that it's being stored in the post with the spaces in there. That means that on submit, the code tag is being parsed and using some regex thing they're auto-formatting it.

When you have code that doesn't have appropriate space formatting, it's called "obfuscated" code. You should look into some de-obfuscating algorithms. If you can find something like that, it shouldn't be too hard to work into a hook.

Simon Lloyd
02-25-2009, 05:55 AM
They use the the <PRE> tags to preserve the spaces, which means that it's being stored in the post with the spaces in there. That means that on submit, the code tag is being parsed and using some regex thing they're auto-formatting it.

When you have code that doesn't have appropriate space formatting, it's called "obfuscated" code. You should look into some de-obfuscating algorithms. If you can find something like that, it shouldn't be too hard to work into a hook.Lol, thanks, however i know very little about php or html so i have no idea what to do, where to start or even what to use!

Thanks for all the information, it does give me other avenues to search.

--------------- Added 1235549675 at 1235549675 ---------------

I installed the first one in your list and it doesn't work at all!

Simon Lloyd
02-27-2009, 08:25 AM
Any further help with this?, i have a list of delimiters too!

Simon Lloyd
03-02-2009, 02:09 PM
**Bump**