Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Add an Urdu Editor to your vBulletin forum - Urdu OpenPad integration Details »»
Add an Urdu Editor to your vBulletin forum - Urdu OpenPad integration
Version: 1.00, by simunaqv simunaqv is offline
Developer Last Online: May 2018 Show Printable Version Email this Page

Category: New Posting Features - Version: 3.6.8 Rating:
Released: 08-05-2007 Last Update: 08-07-2007 Installs: 21
Is in Beta Stage  
No support by the author.

Description:
This hack integrates Urdu OpenPad in your vBulletin forum. At the moment this hack is only available in the form of template modification instructions. These changes are aimed at converting specific edit areas into Urdu edit areas. You can use the same procedure to convert any other edit area into an Urdu edit area. Please note that this integration is available for textarea-mode i.e. it does not work for the wysiwyg mode.

NOTE: It has been brought to my notice that users on some forums are having problems logging in with Urdu user names. This is because of the way Unicode data is handled in a non-Unicode forum. I recommend skipping the modifications in the navbar, STANDARD_ERROR, STANDARD_ERROR_LITE, STANDARD_ERROR_LOGIN and the register templates on these forums.

Demo: Urdu Mehfil Forum

Upload files:
Upload the contents of the upload folder to your forum root.

Template Changes:

in the headinclude template
===========================
FIND:

HTML Code:
<if condition="$vboptions['externalrss']">
<link rel="alternate" type="application/rss+xml" title="$vboptions[bbtitle] RSS Feed" href="external.php?type=RSS2" />
<if condition="$show['foruminfo'] OR $show['threadinfo']">
<link rel="alternate" type="application/rss+xml" title="$vboptions[bbtitle] - $foruminfo[title_clean] - RSS Feed" href="external.php?type=RSS2&amp;forumids=$foruminfo[forumid]" />
</if>
</if>
AFTER ADD:

HTML Code:
<script type="text/javascript" src="clientscript/OpenPad.js"></script>
<script type="text/javascript">
initUrduEditor();
</script>
in the navbar template
======================

FIND:

HTML Code:
<td><input type="text" class="bginput" style="font-size: 11px" name="vb_login_username" id="navbar_username" size="10" accesskey="u" tabindex="101" value="$vbphrase[username]" onfocus="if (this.value == '$vbphrase[username]') this.value = '';" /></td>
<td class="smallfont" colspan="2" nowrap="nowrap"><label for="cb_cookieuser_navbar"><input type="checkbox" name="cookieuser" value="1" tabindex="103" id="cb_cookieuser_navbar" accesskey="c" />$vbphrase[remember_me]</label></td>
REPLACE WITH:

HTML Code:
<td colspan="3"><input type="text" class="bginput" style="font-size: 11px" name="vb_login_username" id="navbar_username" size="10" accesskey="u" tabindex="101" value="$vbphrase[username]" onfocus="if (this.value == '$vbphrase[username]') this.value = '';" /><br /><script language="javascript" type="text/javascript">writeToggleControl("vb_login_username");makeUrduEditor("vb_login_username", 11)</script></td>
 
<td class="smallfont" colspan="3" nowrap="nowrap"><label for="cb_cookieuser_navbar"><input type="checkbox" name="cookieuser" value="1" tabindex="103" id="cb_cookieuser_navbar" accesskey="c" />$vbphrase[remember_me]</label></td>
FIND:

HTML Code:
<div><input type="text" class="bginput" name="query" size="25" tabindex="1001" /><input type="submit" class="button" value="$vbphrase[go]" tabindex="1004" /></div>
REPLACE WITH:

HTML Code:
<div><input type="text" class="bginput" name="query" size="25" tabindex="1001" /><input type="submit" class="button" value="$vbphrase[go]" tabindex="1004" />
<script language="javascript" type="text/javascript">makeUrduEditor("query", 11)</script>
</div>
in the STANDARD_ERROR template
==============================

FIND:

HTML Code:
<td>$vbphrase[username]:<br /><input type="text" class="bginput" name="vb_login_username" size="50" accesskey="u" tabindex="1" /></td>
REPLACE WITH:

HTML Code:
<td>$vbphrase[username]:<br /><input type="text" class="bginput" name="vb_login_username" id="vb_login_username_2" size="50" accesskey="u" tabindex="1" />
<br /><script language="javascript" type="text/javascript">makeUrduEditorById("vb_login_username_2", 11);writeToggleControl("vb_login_username_2", true)</script>
</td>

in the STANDARD_ERROR_LITE template
===================================

FIND:

HTML Code:
<td>$vbphrase[username]:<br /><input type="text" class="bginput" name="vb_login_username" size="35" accesskey="u" tabindex="1" /></td>
REPLACE WITH:

HTML Code:
<td>$vbphrase[username]:<br /><input type="text" class="bginput" name="vb_login_username" id="vb_login_username_2" size="35" accesskey="u" tabindex="1" />
<br /><script language="javascript" type="text/javascript">makeUrduEditorById("vb_login_username_2", 11);writeToggleControl("vb_login_username_2", true)</script>
</td>

in the STANDARD_ERROR_LOGIN template
====================================

FIND:

HTML Code:
<td>$vbphrase[username]:<br /><input type="text" class="bginput" name="vb_login_username" size="50" accesskey="u" tabindex="1" /></td>

REPLACE WITH:

HTML Code:
<td>$vbphrase[username]:<br /><input type="text" class="bginput" name="vb_login_username" id="vb_login_username_2" size="50" accesskey="u" tabindex="1" />
<br /><script language="javascript" type="text/javascript">makeUrduEditorById("vb_login_username_2", 11);writeToggleControl("vb_login_username_2", true)</script>
</td>
in the register template
========================

FIND:

HTML Code:
<div class="smallfont" style="margin-bottom:$stylevar[formspacer]px">
<strong>$vbphrase[username]</strong>:<br />
<input type="text" class="bginput" name="username" size="50" maxlength="$vboptions[maxuserlength]" value="$username" />
</div>

REPLACE WITH:

HTML Code:
<div class="smallfont" style="margin-bottom:$stylevar[formspacer]px">
<strong>$vbphrase[username]</strong>:<br />
<input type="text" class="bginput" name="username" size="50" maxlength="$vboptions[maxuserlength]" value="$username" />
<br /><script language="javascript" type="text/javascript">writeToggleControl("username");makeUrduEditor("username", 11)</script></td>
</div>


FIND:

HTML Code:
<div id="referrerfield"><input id="referrerfield_txt" type="text" class="bginput" name="referrername" value="$referrername" size="50" maxlength="$vboptions[maxuserlength]" /></div>


REPLACE WITH:


HTML Code:
<div id="referrerfield"><input id="referrerfield_txt" type="text" class="bginput" name="referrername" value="$referrername" size="50" maxlength="$vboptions[maxuserlength]" />
<br /><script language="javascript" type="text/javascript">writeToggleControl("referrername");makeUrduEditor("referrername", 11)</script></td>
</div>

in the editor_toolbar_off template
=================================

FIND:

HTML Code:
<div style="text-align:$stylevar[left]" style="padding-right:8px">
<textarea name="message" id="{$editorid}_textarea" rows="10" cols="60" style="width:100%; height:{$editor_height}px" tabindex="1">$newpost[message]</textarea>
<!--width:$stylevar[messagewidth]-->
</div>
REPLACE WITH:

HTML Code:
<div style="text-align:$stylevar[left]" style="padding-right:8px">
<textarea name="message" id="{$editorid}_textarea" rows="10" cols="60" style="width:100%; height:{$editor_height}px" tabindex="1">$newpost[message]</textarea>
<!--width:$stylevar[messagewidth]-->
<br /><script language="JavaScript" type="text/javascript">writeToggleControl("{$editorid}_textarea", true);</script>
<br /><script language="JavaScript" type="text/javascript">writeKeyboard();</script>
</div>
FIND:

HTML Code:
<script type="text/javascript">
<!--
vB_Editor['$editorid'] = new vB_Text_Editor('$editorid', $editortype, '$forumid', '$parsesmilie');
//-->
</script>

REPALCE WITH:


HTML Code:
<script type="text/javascript">
<!--
vB_Editor['$editorid'] = new vB_Text_Editor('$editorid', $editortype, '$forumid', '$parsesmilie');
<if condition="$bbuserinfo['showvbcode'] != 2">
makeUrduEditorById('{$editorid}_textarea', 18);
</if>
//-->
</script>



in the editor_toolbar_on template
================================

FIND:

HTML Code:
<tr valign="top">
<td class="controlbar">
<textarea name="message" id="{$editorid}_textarea" rows="10" cols="60" style="display:block; width:$stylevar[messagewidth]; height:{$editor_height}px" tabindex="1" dir="$stylevar[textdirection]">$newpost[message]</textarea>
</td>
<if condition="$smiliebox"><td class="controlbar">$smiliebox</td></if>
</tr>
ADD AFTER:

HTML Code:
<if condition="$bbuserinfo['showvbcode'] != 2">
<tr>
<td>
<script language="JavaScript" type="text/javascript">
writeToggleControl("{$editorid}_textarea", true);
</script>
</td>
</tr>
<tr>
<td>
<script language="JavaScript" type="text/javascript">
writeKeyboard();
</script>
</td>
</tr>
</if>
FIND:

HTML Code:
<script type="text/javascript">
<!--
vB_Editor['$editorid'] = new vB_Text_Editor('$editorid', $editortype, '$forumid', '$parsesmilie', undefined, '$ajax_extra');
//-->
</script>
REPLACE WITH:

HTML Code:
<script type="text/javascript">
<!--
vB_Editor['$editorid'] = new vB_Text_Editor('$editorid', $editortype, '$forumid', '$parsesmilie', undefined, '$ajax_extra');
<if condition="$bbuserinfo['showvbcode'] != 2">
makeUrduEditorById('{$editorid}_textarea', 18);
</if>
//-->
</script>
in the newreply template
========================

FIND:

HTML Code:
<td><input type="text" class="bginput" name="title" value="$title" size="50" maxlength="$vboptions[titlemaxchars]" tabindex="1" title="$vbphrase[optional]" /><td>
REPLACE WITH:

<
HTML Code:
td><input type="text" class="bginput" name="title" value="$title" size="50" maxlength="$vboptions[titlemaxchars]" tabindex="1" title="$vbphrase[optional]" />
<br /><script language="javascript" type="text/javascript">writeToggleControl("title");makeUrduEditor("title", 14)</script>
</td>
in the newthread template
=========================

FIND:

HTML Code:
<td><input type="text" class="bginput" name="subject" value="$subject" size="40" maxlength="$vboptions[titlemaxchars]" tabindex="1" /></td>
REPLACE WITH:

HTML Code:
<tr>
<td><input type="text" class="bginput" name="subject" value="$subject" size="40" maxlength="$vboptions[titlemaxchars]" tabindex="1" />
<br />
<script language="javascript" type="text/javascript">writeToggleControl("subject");makeUrduEditor("subject", 14)</script>
</td>
in the showthread_quickreply template
=====================================

FIND:

HTML Code:
<textarea name="message" id="{$editorid}_textarea" rows="10" cols="60" style="width:100%; height:{$editor_height}px" tabindex="1" dir="$stylevar[textdirection]"></textarea>
</if>
</fieldset>
<!--width:$stylevar[messagewidth]-->
ADD AFTER:

HTML Code:
<if condition="$bbuserinfo['showvbcode'] != 2">
<br /><script language="JavaScript" type="text/javascript">writeToggleControl("{$editorid}_textarea", true);</script>
<br /><script language="JavaScript" type="text/javascript">writeKeyboard();</script>
</if> 
FIND:

HTML Code:
<script type="text/javascript">
<!--
vB_Editor['$editorid'] = new vB_Text_Editor('$editorid', $editortype, '$forumid', '$parsesmilie');
var QR_EditorID = '$editorid';
//-->
</script>
REAPLCE WITH:

HTML Code:
<script type="text/javascript">
<!--
vB_Editor['$editorid'] = new vB_Text_Editor('$editorid', $editortype, '$forumid', '$parsesmilie');
var QR_EditorID = '$editorid';
<if condition="$bbuserinfo['showvbcode'] != 2">
makeUrduEditorById('{$editorid}_textarea', 18);
</if>
//-->
</script>
in the pm_newpm template
========================

FIND:

HTML Code:
<div id="pmrecips"><textarea id="pmrecips_txt" name="recipients" rows="<if condition="is_browser('mozilla')">1<else />2</if>" cols="50" tabindex="1">$pm[recipients]</textarea></div>

REAPLCE WITH:


HTML Code:
<div id="pmrecips"><textarea id="pmrecips_txt" name="recipients" rows="<if condition="is_browser('mozilla')">1<else />2</if>" cols="50" tabindex="1">$pm[recipients]</textarea>
<br /><script language="javascript" type="text/javascript">makeUrduEditor("recipients", 14);writeToggleControl("recipients")</script>
</div>


FIND:

HTML Code:
<div id="bccpmrecips"><textarea id="bccpmrecips_txt" name="bccrecipients" rows="<if condition="is_browser('mozilla')">1<else />2</if>" cols="50" tabindex="1">$pm[bccrecipients]</textarea></div>
REAPLCE WITH:

HTML Code:
<div id="bccpmrecips"><textarea id="bccpmrecips_txt" name="bccrecipients" rows="<if condition="is_browser('mozilla')">1<else />2</if>" cols="50" tabindex="1">$pm[bccrecipients]</textarea>
<br /><script language="javascript" type="text/javascript">makeUrduEditor("bccrecipients", 14);writeToggleControl("bccrecipients")</script>
</div>
FIND:

HTML Code:
<td><input type="text" class="bginput" name="title" value="$pm[title]" size="50" maxlength="85" tabindex="1" /></td>
REPLACE WITH:

HTML Code:
<td><input type="text" class="bginput" name="title" value="$pm[title]" size="50" maxlength="85" tabindex="1" />
<br /><script language="javascript" type="text/javascript">makeUrduEditor("title", 14);writeToggleControl("title")</script>
</td>

Adding custom css classes:

Add the following css definitions to the additional css classes

HTML Code:
.btnFlat {
background: #ECECEC;
border: 1px solid #D3D3D3;
cursor: pointer;
cursor: hand;
text-align:center;
font-family:Urdu Naskh Asiatype;
font-size:12px;
}
.btnRaised, .btnFlat:hover {
background: #D3D3D3;
border: 1px outset;
cursor: pointer;
cursor: hand;
text-align:center;
font-family:Urdu Naskh Asiatype;
font-size:12px;
}
.btnLowered, .btnFlat:active {
background: #D3D3D3;
border: 1px inset;
cursor: pointer;
cursor: hand;
text-align:center;
font-family:Urdu Naskh Asiatype;
font-size:12px;
}
.hiddentext {display:none}
.outline {cursor:hand; text-decoration:underline}
 
a.switch
{
font-family: Times New Roman;
color:#0000FF;
font-size:xx-small;
direction:rtl;
text-decoration:none;
unicode-bidi:embed;
}
a.switch:hover
{
background-color:#FF6699;
}
Updates:

August 08, 2007: Added instructions for modifiying the register template

Show Your Support

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

Comments
  #32  
Old 08-08-2007, 03:29 PM
Invalid ID's Avatar
Invalid ID Invalid ID is offline
 
Join Date: Apr 2006
Location: Karachi. Pakistan
Posts: 411
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Kiya iska font change ho sakta hay? Koi behter font jesay Jang akhbaar ka font hay?

Shukeria
Reply With Quote
  #33  
Old 08-08-2007, 08:05 PM
simunaqv simunaqv is offline
 
Join Date: May 2007
Posts: 91
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have included the instructions to modify the register template and the mod has been updated.
Reply With Quote
  #34  
Old 08-08-2007, 08:06 PM
simunaqv simunaqv is offline
 
Join Date: May 2007
Posts: 91
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Invalid ID View Post
Kiya iska font change ho sakta hay? Koi behter font jesay Jang akhbaar ka font hay?

Shukeria
Open clientscript/OpenPad.js and look for Urdu Naskh Asiatype and change it to whatever font you like.
Reply With Quote
  #35  
Old 08-09-2007, 07:14 AM
myown myown is offline
 
Join Date: Jan 2007
Posts: 145
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Nabeel Bahi,
after this modifications now, every thing is working fine, will be uploading today and moving to VB.
Only problem is that all users have to reset their passwords

Hope every thing works fine.
Reply With Quote
  #36  
Old 08-09-2007, 07:46 AM
simunaqv simunaqv is offline
 
Join Date: May 2007
Posts: 91
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by myown View Post
Thanks Nabeel Bahi,
after this modifications now, every thing is working fine, will be uploading today and moving to VB.
Only problem is that all users have to reset their passwords

Hope every thing works fine.

What does this have to do with passwords? The template modifications in this mod do not alter the password fields.
Reply With Quote
  #37  
Old 08-09-2007, 07:59 AM
myown myown is offline
 
Join Date: Jan 2007
Posts: 145
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sure, it is not the direct affect of these modifications, it is because of differnet hashing functions used in different forums for storing passwords.

SMF uses md5-hmac while vb uses md5 hashes... so passwords will not work at all after migrating from smf to vb.

Thanks again for great job.

Best Regards,
Reply With Quote
  #38  
Old 08-09-2007, 09:25 AM
simunaqv simunaqv is offline
 
Join Date: May 2007
Posts: 91
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Best of luck for your new forum. I am looking forward to see it.
Reply With Quote
  #39  
Old 08-09-2007, 02:03 PM
myown myown is offline
 
Join Date: Jan 2007
Posts: 145
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks again, for all this support. I hope Saturday site will be up and running.

Found an-other issue.
Advance search don't have Urdu Support, may be need to look into this issue.

Thanks in advance,

Best Regards,
Reply With Quote
  #40  
Old 08-15-2007, 04:59 AM
Invalid ID's Avatar
Invalid ID Invalid ID is offline
 
Join Date: Apr 2006
Location: Karachi. Pakistan
Posts: 411
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by simunaqv View Post
Open clientscript/OpenPad.js and look for Urdu Naskh Asiatype and change it to whatever font you like.
Good... and for that do I have to have that font on my forum directory?
Reply With Quote
  #41  
Old 08-15-2007, 09:22 AM
simunaqv simunaqv is offline
 
Join Date: May 2007
Posts: 91
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Invalid ID View Post
Good... and for that do I have to have that font on my forum directory?
No. The font must be installed on users' systems.
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 11:41 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.05551 seconds
  • Memory Usage 2,401KB
  • 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
  • (39)bbcode_html
  • (4)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
  • (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