Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Spell Checker: PungoSpell for vBulletin3 Standard and WYSIWYG modes Details »»
Spell Checker: PungoSpell for vBulletin3 Standard and WYSIWYG modes
Version: 1.6, by tamarian tamarian is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Version: 3.0.7 Rating:
Released: 06-01-2004 Last Update: 12-25-2005 Installs: 68
Template Edits
Additional Files  
No support by the author.

There's also a vB 3.5 version: https://vborg.vbsupport.ru/showthrea...threadid=83258

PungoSpell for vBulletin3 WYSIWYG and Standard mode

Intro: PungoSpell supports WYSIWYG mode disply using DHTML on the spell check popup window. It uses PHP's buitin PSPELL module. Many have this already compiled in, but if not, it's easy to add.

What this hack does This hack modifies the PungoSpell software package from PungoSpell to allow spell checking on vBulletin for both modes, WYSIWYG and standard mode.

Change Log:

v1.6 December 25, 2005: Security fix for cases where you allow HTML posts and they contain malicious code (Credit goes to Brendan Donahue for finding the issue and alerting TechGuy, and to TechGuy for alerting me to it)

v1.5. Minor bug fixes

v1.4
1. Fixed scrolling, so the spelling window will scroll to the next mis-spelled word.
2. Changed config defaults to allow the most common configuration. The "Learn" function is turned of by default. Make sure you test it before tunrning it on.
3. Re-worded comments on config options, hopefully they will now make sense.

v1.3
1. Created a new config file (pungo-spell-config.php) to avoid the need to edit checkspelling.php, which is a bit tricky with end of line characters.
2. Added an option to disable the learn feature. This may be needed if your aspell setup does not allow, or not properly setup, for personal wordlists.
3. The language is now defined in the config file as well.

v1.1:
1. Added a "Learn" button. This allows users to add words into the dictionary.
2. Restricted access to members only, with allowed usergroups definable in config file
3. Restrict user groups allowed to use the "Learn" feature. Configurable option.
3. Options to ignore quote blocks, code bloacks, and PHP blocks
4. Added buttons (Thesarus and Lookup) with links to Merriam Webster's online thesarus and dictionary links with the suggestion for misspelled words.
5. Added Quit and Done buttons. One to quite without saving, and one to save without going through the whole post for suggestions.
6. Fixed extra lines added for WYSIWYG paragraphs
7. Made it skip vBCode tags, so it won't spell check URL's

v1.0:
Initial version, . Identical to PungoSpell functionality, but adapted to handle vBulletins's WYSIWYG and standard mode.


Note:
There's another hack for spell checker for vBulletin3 using PHPSpell. You might want to compare both to decide which one you like best.
https://vborg.vbsupport.ru/showthrea...threadid=65723

PHPSpell has a "learn" button, to allow adding new words to the dictionary, PungoSpell does not. PungoSpell has a better WYSIWYG display, while PHPSpell does not hide HTML and vBCode tags. So each one has it's advantages and disadvantages.

In a future release, I'll try to add a "learn" functionality to PungoSpell. (done)

Credit PungoSpell Is a free software using the MIT license. By default, it will work fine in standard mode. This hack will allow it to work for both standard and WYSIWYG.

Requirements: You will need to have PSPELL compiled into your PHP setup. Many have this by default. To find out if you already have it, check your PHP info from the vBulletin Admin Panel: Import & Maintenance > View PHP Info. Search for "pspell". If it's there, you're fine. If not, you can recompile PHP with the "--with-pspell" paramater.

From the readme file:

Quote:
What does it require?
---------------------

PHP 4.3.1 (http://www.php.net) or greater with Pspell support enabled.
If your system doesn't have pspell/aspell installed, see the pspell source page at
http://pspell.sourceforge.net to download it.

What browsers does it work with?
-------------------------------

Only "modern" browsers that support DOM level 2 (http://www.w3.org/TR/DOM-Level-2-Core/) are supported. MSIE 5.5+, Opera 7.2+, NS 6+ should work fine for you. Your milage may vary.
Demo: http://frigate.clemson.edu/local/pun...l/example.html

Bugs: Scrolling down to the misspelled word is not yet working.

Instructions

1. Download the attached file, and unpack into your main forum directory. Make sure the file "custom.pws" is writable by apache, otherwise the "Learn" function will not work.

2. It has English setup by default. If you want it to use any other language, it's easy. Just edit the config file "pungo-spell-config.php".

Change this line:

$my_lang = "en";

"en" stands for English. Change it to the code of the language you want. Like "fr" for French, for example. Make sure your system has the required dictionary. You see the dictionary config by typing "aspell config" at the command line, to see which dictionaries you have.

Also, in the file custom.pws, the first line reads something like:

personal_ws-1.1 en 0

You will need to change en to the language you use, like fr

3. Edit the config section in checkspelling.php to suit your needs:
[code]
// Config section
$my_lang = "en"; // set the language you want, make sure you have the correct aspell dictionary on your system

// Access restriction options
$allow_guests = 0; // Change to 1 if you allow guests to post and use the spell checker
$restrict_groups = 0; // Change to 1 to enable access restriction by group id
$allowd_groups = array (2, 5, 6); // usergroups who can access the spell checker

// Learn function options
$customwordlist = "custom.pws"; // make sure this file is readable by your apache user
$learn_enabled = 0; // set to 1 to enable the learn feature. Make sure you test first, to ensure your server setup allows this.
$restrict_learn_function = 0; // set to 1 if you want to restrict which usergroup id may add words to your dictionary.
$word_list_maintainers = array (2, 5, 6); // usergroups that are allowed to use the "Learn" feature
//

// Ignore options
$ignore_quotes = 1; // 1 means ignore the [QUOTE] block, 0 means spell check within quotes
$ignore_code = 1; // Same but for the
Code:
 tag
 $ignore_php = 1; 				// Same, but for the [PHP] tag 
 
 // end config section
4. Edit each template where you'd like to have the spell checker. For example:

newreply template

A. Find

Code:
</head>
Add above

Code:
<script src="spellcheck.js"></script>

B.
Add somewhere the followin (below $navbar for example)g:
Code:
   <form name="spell_form" id="spell_form" method="POST" target="spellWindow"
                    action="checkspelling.php">
                <input type="hidden" name="spell_formname" value="">
                <input type="hidden" name="spell_fieldname" value="">
                <input type="hidden" name="spellstring" value="">
             </form>
C. Find the submit and preview buttons:

Code:
		<input type="submit" class="button" name="sbutton" value="$vbphrase[submit_reply]" accesskey="s" tabindex="1" />
 		<input type="submit" class="button" name="preview" value="$vbphrase[preview_post]" accesskey="p" tabindex="1" />
Add below:
Code:
           <if condition="DOTOOLBAR!=2">
           <input type="hidden" name="toolbar" value="1" />
           <input type="button" class="button" value="Spell Check" onClick="spellCheck( 'vbform',  'message', '1');">
           <else />
           <input type="hidden" name="toolbar" value="2" />
           <input type="button" class="button" value="Spell Check" onClick="spellCheck( 'vbform',  'WYSIWYG_HTML', '2');">
           </if>
And repeat the same steps for other templates like newthread etc.

Optional: Other Templates that contain edit boxes are:
USERCP_SHELL just add the first change (A) here in above the </head section. Required for pm_newpm and modifysignature.
editpost
Calendar Templates: calendar_edit
New Posting Templates: newreply, newthread
Modify User Options Templates: modifysignature (add the the first change (A) in USERCP_SHELL) and the rest (B and C) here.


Quick reply

1
. Show Thread Templates: Put change (A) in showthread, and the rest (B and C) in showthread_quickreply

2.
Contributed by Boofo:

change:

<if condition="DOTOOLBAR!=2">

to:

<if condition="$WYSIWYG!=2">

I may have missed a few templates, so let me know.


Private Messages

To install in Private Messaging, check Chris's post here:
https://vborg.vbsupport.ru/showpost....6&postcount=84

------

Trouble shooting:

1. If you get a spell check window that says "This is a test". This is most likely due to end of line characters caused by an editor. To resolve this, re-upload the original files with FTP in binary mode. When editing the config file, make sure you use an editor that does not add any end of line characters, such as "vi" or others.

2.
Learn doesn't work: Try this: Change the first line from custom.pws:

personal_ws-1.1 en 0

To:

personal_ws-1.1 english 0

en worked fine for me on Fedora and Gentoo, but I had to change to english on RHE.

-----

Enjoy

P.S. The two screenshots below show the spell check popup menu. One for standard mode, and one for WYSIWYG mode.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #52  
Old 06-04-2004, 10:27 PM
sketch42's Avatar
sketch42 sketch42 is offline
 
Join Date: May 2004
Location: Brooklyn, NY
Posts: 361
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
In the spellcheck.js file, the popup is opened with:

openSpellWin(640, 480);

You can fine-tune the size there.

What browser are you using?
IE6

Quote:
Originally Posted by tamarian
I can add an admin interface to add words but it will have to use the same PSPELL PHP code, which means if there's a problem with the server's setup for that language in word lists, it won't work.
wheres it currently grabbing the wordlist from currently??
Reply With Quote
  #53  
Old 06-05-2004, 02:30 AM
teksigns's Avatar
teksigns teksigns is offline
 
Join Date: Sep 2003
Posts: 133
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

when i type a misspelled word and click the spellcheck button with learn enabled i get

Code:
Warning: PSPELL couldn't open the dictionary. reason: No word lists can be found for the language "en". in C:\xxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxx\forum\checkspelling.php on line 22

Warning: 0 is not a PSPELL result index in C:\xxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxx\forum\checkspelling.php on line 79

Warning: 0 is not a PSPELL result index in C:\xxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxx\forum\checkspelling.php on line 82

Warning: Invalid argument supplied for foreach() in C:\xxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxx\forum\checkspelling.php on line 84

however when i disable learn it works fine .....

im on a windows machine
Reply With Quote
  #54  
Old 06-05-2004, 03:01 AM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by sketch42
wheres it currently grabbing the wordlist from currently??
From the wordlist "custom.pws". The problem is when there's a conflict in the config for ASPELL dictionaries and PSPELL. I'm not yet familiar with all the details, but I used it on several setups, and some work great, and some don't like it. Some use softlinks to english.multi, so use en.multi.

I'll try to find out how to properly diagnose it, and maybe setup a diagnosstic script...
Reply With Quote
  #55  
Old 06-05-2004, 03:07 AM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by teksigns
when i type a misspelled word and click the spellcheck button with learn enabled i get

Code:
 Warning: PSPELL couldn't open the dictionary. reason: No word lists can be found for the language "en". in C:\xxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxx\forum\checkspelling.php on line 22
 
 Warning: 0 is not a PSPELL result index in C:\xxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxx\forum\checkspelling.php on line 79
 
 Warning: 0 is not a PSPELL result index in C:\xxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxx\forum\checkspelling.php on line 82
 
 Warning: Invalid argument supplied for foreach() in C:\xxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxx\forum\checkspelling.php on line 84

however when i disable learn it works fine .....

im on a windows machine
Yes, this is the same problem I mentioned above posts about dictionary conflicts.

Try this: Change the first line from custom.pws:

personal_ws-1.1 en 0

To:

personal_ws-1.1 english 0

en worked fine for me on Fedora and Gentoo, but I had to change to english on RHE.

Sketch, try that change too, and let me knwo if this solves the problem.
Reply With Quote
  #56  
Old 06-05-2004, 03:28 AM
sketch42's Avatar
sketch42 sketch42 is offline
 
Join Date: May 2004
Location: Brooklyn, NY
Posts: 361
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
Yes, this is the same problem I mentioned above posts about dictionary conflicts.

Try this: Change the first line from custom.pws:

personal_ws-1.1 en 0

To:

personal_ws-1.1 english 0

en worked fine for me on Fedora and Gentoo, but I had to change to english on RHE.

Sketch, try that change too, and let me knwo if this solves the problem.
nope... learn still doesnt work

but honestly... i really dont need learn ... as long as i can add words manually ...
Reply With Quote
  #57  
Old 06-05-2004, 12:44 PM
teksigns's Avatar
teksigns teksigns is offline
 
Join Date: Sep 2003
Posts: 133
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
Yes, this is the same problem I mentioned above posts about dictionary conflicts.

Try this: Change the first line from custom.pws:

personal_ws-1.1 en 0

To:

personal_ws-1.1 english 0

en worked fine for me on Fedora and Gentoo, but I had to change to english on RHE.

Sketch, try that change too, and let me knwo if this solves the problem.

i still get same exact error .

i notice it still says "en" in the error even though i changed to "english".
Reply With Quote
  #58  
Old 06-05-2004, 06:27 PM
SteveK SteveK is offline
 
Join Date: Oct 2001
Location: Seattle, WA USA
Posts: 41
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I get this error when attempting to spell check:


Fatal error: Call to undefined function: pspell_new() in /home/profit/public_html/forums/checkspelling.php on line 26

Line 26 is:

PHP Code:
    $pspell_link pspell_new ("$my_lang"""""""PSPELL_FAST|PSPELL_RUN_TOGETHER); 
Tried changing custom.pws from "en" to "english", no luck
I do have pspell installed, but unsure of dictionary location the aspell.conf file. How do I edit the aspell.conf file using SSH so that it points to the right dictionary file?

Thanks
Reply With Quote
  #59  
Old 06-05-2004, 09:13 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SteveK
I get this error when attempting to spell check:


Fatal error: Call to undefined function: pspell_new() in /home/profit/public_html/forums/checkspelling.php on line 26

Line 26 is:

PHP Code:
    $pspell_link pspell_new ("$my_lang"""""""PSPELL_FAST|PSPELL_RUN_TOGETHER); 
Tried changing custom.pws from "en" to "english", no luck
I do have pspell installed, but unsure of dictionary location the aspell.conf file. How do I edit the aspell.conf file using SSH so that it points to the right dictionary file?

Thanks
I think this is not a wordlist problem, so let's see if you have and en dictionary installed.

What are the contents of these directories on your server?

/usr/lib/aspell
/usr/share/aspell

You may be missing the en english dictionaries
Reply With Quote
  #60  
Old 06-05-2004, 10:53 PM
dbroomjr dbroomjr is offline
 
Join Date: Aug 2002
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I too am getting the error:

Fatal error: Call to undefined function: pspell_new() in /home/profit/public_html/forums/checkspelling.php on line 26

At your request, here is the contents of my directories. I would sure like to get this going.

Any tips?

Code:
[/usr/lib/aspell]# ls
./                  american.multi@     english-med-only   english-variant-2
../                 canadian-med.multi  english.multi@
american-med.multi  canadian-med-only   english-variant-0
american-med-only   canadian.multi@     english-variant-1

[/usr/share/aspell]# ls
./                  iso8859-10.map  iso8859-4.dat  iso8859-7.map  koi8-r.dat
../                 iso8859-1.dat   iso8859-4.map  iso8859-8.dat  SGML.map
ASCII.dat           iso8859-1.map   iso8859-5.dat  iso8859-8.map  spell*
ASCII.map           iso8859-2.dat   iso8859-5.map  iso8859-9.dat  standard.kbd
english.dat         iso8859-2.map   iso8859-6.dat  iso8859-9.map  unicode.dat
english_phonet.dat  iso8859-3.dat   iso8859-6.map  ispell*        viscii.dat
iso8859-10.dat      iso8859-3.map   iso8859-7.dat  koi8-f.dat     viscii.map
Thanks,

David
Reply With Quote
  #61  
Old 06-05-2004, 11:04 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by dbroomjr
I too am getting the error:

Fatal error: Call to undefined function: pspell_new() in /home/profit/public_html/forums/checkspelling.php on line 26

At your request, here is the contents of my directories. I would sure like to get this going.

Any tips?
Here's a tip:

In /usr/share/aspell

copy english.dat to en.dat
copy english_phonet.dat to en_phonet.dat
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:22 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05143 seconds
  • Memory Usage 2,355KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (9)bbcode_code
  • (2)bbcode_php
  • (9)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete