شرح تركيب هاك الـ WYSIWYG. - Pepo - 2007-05-25
السلام عليكم. هاك محرر الـ WYSIWYG لكتابة المواضيع والرسائل الخاصة, وهذا هو شرح لكيفية التركيب فقط بناء على كثرة طلبات الأعضاء لهذا الهاك.. لكنى لا اضمن فى هذا الهاك اى شئ, حيث به الكثير من الأخطاء.
نبدأ بسم الله..
لمن لا يعرف عمل هذا الهاك اختصارا للوقت يمكنك رؤية مثال حى على الهاك. بالضغط هنا
للتحميل
اضغط هنا
نأتى لشرح التركيب.
- قم بفك ضغط الملف
- ارفع محتويات الملف الذى قمت بفك الضغط عنه, الى مجلد المنتدى الرئيسى.
- افتح ملف inc/class_parser.php بأى محرر نصوص لديك.
- ابحث بداخله عن
PHP كود : $message = $plugins->run_hooks("parse_message_end", $message);
- اضف بعده التالى
PHP كود : preg_match_all("/\{EDITOR=(.*?)EDITOR\}/si",$message,$matches); $get_code = $matches[1][0]; if($get_code !=""){ $message=str_replace("$get_code","{HOTEDITOR_TMP}",$message); $get_code=str_replace("&","&",$get_code); $get_code=str_replace("<","<",$get_code); $get_code=str_replace(">",">",$get_code); $get_code=str_replace("[<]","<",$get_code); $get_code=str_replace("[>]",">",$get_code); $get_code=str_replace("[<]","<",$get_code); $get_code=str_replace("[>]",">",$get_code); $get_code=str_replace("<br />","",$get_code); if($replace_quote=="1") { $get_code=str_replace(""","\"",$get_code); } $get_code=str_replace(" "," ",$get_code);
//Strip All Unwanted HTML Tags (incase user copy (Ctrl-C) and paste (Ctrl-V) stuff to HotEditor $get_code=strip_tags($get_code,"<p><a><span><div><font><b><i><u><strong><em><ul> <ol><li><blockquote><img><strike><sub><sup><hr><pre><tt><br>"); // Clear all onClick onMouseOver onMouseOut onMouseDown onMouseUp onMouseMove onBlur cursor // position absolute visibility visible z-index
// Example <span onClick=alert('BOOOO')>Click here</span>
// will be replaced to <span =alert('BOOOO')>Click here</span>
// in this way your board won't mess up. Hope this will help.
$match_count = preg_match_all("/<(.*?)>/si", $get_code, $matches_code);
for ($i = 0; $i < $match_count; $i++){ $get_code1 = $matches_code[1][$i]; $get_code2 = $matches_code[1][$i]; $get_code2 = preg_replace("/\sid=/si", "", $get_code2); $get_code2 = preg_replace("/\sname=/si", "", $get_code2); $get_code2 = preg_replace("/\sonclick=/si", "", $get_code2); $get_code2 = preg_replace("/\sonmouseover=/si", "", $get_code2); $get_code2 = preg_replace("/\sonmouseout=/si", "", $get_code2); $get_code2 = preg_replace("/\sonmousedown=/si", "", $get_code2); $get_code2 = preg_replace("/\sonmouseup=/si", "", $get_code2); $get_code2 = preg_replace("/\sonmousemove=/si", "", $get_code2); $get_code2 = preg_replace("/\sonblur=/si", "", $get_code2); $get_code2 = preg_replace("/\sondblclick=/si", "", $get_code2); $get_code2 = preg_replace("/\sonload=/si", "", $get_code2); $get_code2 = preg_replace("/\sonsubmit=/si", "", $get_code2); $get_code2 = preg_replace("/\sonchange=/si", "", $get_code2); $get_code2 = preg_replace("/\sonfocus=/si", "", $get_code2); $get_code2 = preg_replace("/\sonselect=/si", "", $get_code2); $get_code2 = preg_replace("/\sonunload=/si", "", $get_code2); $get_code2 = preg_replace("/\sonkeypress=/si", "", $get_code2); $get_code2 = preg_replace("/position:/si", "", $get_code2); $get_code =str_replace($get_code1,$get_code2,$get_code); }
$get_code=str_replace("\r\n",' ',$get_code); $get_code=str_replace("\n",' ',$get_code);
$message=str_replace("{HOTEDITOR_TMP}","$get_code",$message); $message=str_replace("{EDITOR=","",$message); $message=str_replace("EDITOR}","",$message); }
- ابحث عن
PHP كود : function cache_mycode() { global $cache, $lang; $this->mycode_cache = array();
- اضف بعده
PHP كود : //EDITOR $standard_mycode['hoteditor_open']['regex'] = "#\[(sub|sup|strike|blockquote|b|i|u)\]#si"; $standard_mycode['hoteditor_open']['replacement'] = '<$1>'; $standard_mycode['hoteditor_close']['regex'] = "#\[\/(sub|sup|strike|blockquote|b|i|u)\]#si"; $standard_mycode['hoteditor_close']['replacement'] = '</$1>';
$standard_mycode['hoteditor_fontface']['regex'] = "#\[font=(.*?)\]#si"; $standard_mycode['hoteditor_fontface']['replacement'] = '<font face="$1">'; $standard_mycode['hoteditor_fontcolor']['regex'] = "#\[color=(.*?)\]#si"; $standard_mycode['hoteditor_fontcolor']['replacement'] = '<font color="$1">'; $standard_mycode['hoteditor_fontsize']['regex'] = "#\[size=(.*?)\]#si"; $standard_mycode['hoteditor_fontsize']['replacement'] = '<font size="$1">'; $standard_mycode['hoteditor_fontclose']['regex'] = "#\[\/(font|color|size)\]#si"; $standard_mycode['hoteditor_fontclose']['replacement'] = '</font>';
$standard_mycode['highlight_open']['regex'] = "#\[highlight=(.*?)\]#si"; $standard_mycode['highlight_open']['replacement'] = "<font style=\"background-color:$1\">"; $standard_mycode['highlight_close']['regex'] = "#\[\/highlight\]#si"; $standard_mycode['highlight_close']['replacement'] = "</font>";
$standard_mycode['hoteditor_align_open']['regex'] = "#\[(center|right|left|justify)\]#si"; $standard_mycode['hoteditor_align_open']['replacement'] = '<div align="$1">'; $standard_mycode['hoteditor_align_close']['regex'] = "#\[\/(center|right|left|justify)\]#si"; $standard_mycode['hoteditor_align_close']['replacement'] = '</div>';
$standard_mycode['hoteditor_flash']['regex'] = "#\[FLASH=(.*?),(.*?)\](.*?)\[\/FLASH\]#si"; $standard_mycode['hoteditor_flash']['replacement'] = '<object width="$1" height="$2"><param name="movie" value="$3"> </param> <param name="wmode" value="transparent"></param> <embed src="$3" type="application/x-shockwave-flash" wmode="transparent" width="$1" height="$2"></embed> </object>'; //EDITOR END
اغلق الملف مع حفظ التعديلات
- افتح ملف jscripts/thread.js
- ابحث عن
PHP كود : multiQuotedLoaded: function(request) { if(request.responseText.match(/<error>(.*)<\/error>/)) { message = request.responseText.match(/<error>(.*)<\/error>/); if(!message[1]) { message[1] = "An unknown error occurred."; } alert('There was an error fetching the posts.\n\n'+message[1]); } else if(request.responseText) { var id = 'message'; if(typeof clickableEditor != 'undefined') { id = clickableEditor.textarea; } if($(id).value) { $(id).value += "\n"; } $(id).value += request.responseText; } Thread.clearMultiQuoted(); $('quickreply_multiquote').style.display = 'none'; document.input.quoted_ids.value = 'all'; this.spinner.destroy(); this.spinner = ''; $('message').focus(); }
- استبدله بالتالى
PHP كود : multiQuotedLoaded: function(request) { if(request.responseText.match(/<error>(.*)<\/error>/)) { message = request.responseText.match(/<error>(.*)<\/error>/); if(!message[1]) { message[1] = "An unknown error occurred."; } alert('There was an error fetching the posts.\n\n'+message[1]); } else if(request.responseText) { var id = 'message'; //EDITOR var quoteTextReturn=request.responseText; //Support MOD V.40 if(quoteTextReturn.indexOf("{EDITOR=")!=-1 && quoteTextReturn.indexOf("EDITOR}")!=-1){ quoteTextReturn=quoteTextReturn.replace(/\{EDITOR=/gi,""); quoteTextReturn=quoteTextReturn.replace(/EDITOR\}/gi,""); if(editor_type=="0"){//BBCode Editor quoteTextReturn=quoteTextReturn.replace(/\&/gi,"&"); quoteTextReturn=quoteTextReturn.replace(/\</gi,"<"); quoteTextReturn=quoteTextReturn.replace(/\>/gi,">"); quoteTextReturn=quoteTextReturn.replace(/\[<\]/gi,"<"); quoteTextReturn=quoteTextReturn.replace(/\[>\]/gi,">"); quoteTextReturn=quoteTextReturn.replace(/\[<\]/gi,"<"); quoteTextReturn=quoteTextReturn.replace(/\[>\]/gi,">"); quoteTextReturn=quoteTextReturn.replace(/\"/gi,"\""); quoteTextReturn=quoteTextReturn.replace(/[\r\n]/gi,"");
quoteTextReturn=HTMLToBBCode(quoteTextReturn); WriteTEXT(quoteTextReturn,"editor"); } else{//WYSIWYG Editor WriteHTML(quoteTextReturn,"editor"); } } else{ if(isSafari && editor_type=="1"){ alert("Please switch to BBCode Editor then click this link again"); return false; } if(editor_type=="0"){//BBCode Editor WriteTEXT(quoteTextReturn,"editor"); } else{//WYSIWYG Editor WriteHTML(BBCodeToHTML(quoteTextReturn),"editor"); } } } Thread.clearMultiQuoted(); $('quickreply_multiquote').style.display = 'none'; document.input.quoted_ids.value = 'all'; this.spinner.destroy(); this.spinner = ''; }
اغلق الملف مع حفظ التعديلات
- افتح ملف jscripts/post.js
- ابحث عن
PHP كود : multiQuotedLoaded: function(request) { if(request.responseText.match(/<error>(.*)<\/error>/)) { message = request.responseText.match(/<error>(.*)<\/error>/); if(!message[1]) { message[1] = "An unknown error occurred."; } alert('There was an error fetching the posts.\n\n'+message[1]); } else if(request.responseText) { var id = 'message'; if(typeof clickableEditor != 'undefined') { id = clickableEditor.textarea; } if($(id).value) { $(id).value += "\n"; } $(id).value += request.responseText; } $('multiquote_unloaded').style.display = 'none'; document.input.quoted_ids.value = 'all'; this.spinner.destroy(); this.spinner = ''; }
- استبدله بالتالى
PHP كود : multiQuotedLoaded: function(request) { if(request.responseText.match(/<error>(.*)<\/error>/)) { message = request.responseText.match(/<error>(.*)<\/error>/); if(!message[1]) { message[1] = "An unknown error occurred."; } alert('There was an error fetching the posts.\n\n'+message[1]); } else if(request.responseText) { var id = 'message'; //EDITOR var quoteTextReturn=request.responseText; //Support user who has MOD V.40 installed months ago if(quoteTextReturn.indexOf("{EDITOR=")!=-1 && quoteTextReturn.indexOf("EDITOR}")!=-1){ quoteTextReturn=quoteTextReturn.replace(/\{EDITOR=/gi,""); quoteTextReturn=quoteTextReturn.replace(/EDITOR\}/gi,""); if(editor_type=="0"){//BBCode Editor quoteTextReturn=quoteTextReturn.replace(/\&/gi,"&"); quoteTextReturn=quoteTextReturn.replace(/\</gi,"<"); quoteTextReturn=quoteTextReturn.replace(/\>/gi,">"); quoteTextReturn=quoteTextReturn.replace(/\[<\]/gi,"<"); quoteTextReturn=quoteTextReturn.replace(/\[>\]/gi,">"); quoteTextReturn=quoteTextReturn.replace(/\[<\]/gi,"<"); quoteTextReturn=quoteTextReturn.replace(/\[>\]/gi,">"); quoteTextReturn=quoteTextReturn.replace(/\"/gi,"\""); quoteTextReturn=quoteTextReturn.replace(/[\r\n]/gi,"");
quoteTextReturn=HTMLToBBCode(quoteTextReturn); WriteTEXT(quoteTextReturn,"editor"); } else{//WYSIWYG Editor WriteHTML(quoteTextReturn,"editor"); } } else{ if(isSafari && editor_type=="1"){ alert("Please switch to BBCode Editor then click this link again"); return false; } if(editor_type=="0"){//BBCode Editor WriteTEXT(quoteTextReturn,"editor"); } else{//WYSIWYG Editor WriteHTML(BBCodeToHTML(quoteTextReturn),"editor"); } } } $('multiquote_unloaded').style.display = 'none'; document.input.quoted_ids.value = 'all'; this.spinner.destroy(); this.spinner = ''; }
اغلق واحفظ التغييرات.
- ادخل لوحة تحكم المنتدى, وابحث عن مجموعة قوالب Edit Post Templates
- افتح قالب edit post واستبدل محتوه بالكود التالى
كود : <html>
<head>
<title>{$mybb->settings['bbname']} - {$lang->edit_post}</title>
{$headerinclude}
<script type="text/javascript" src="jscripts/post.js?ver=121"></script>
</head>
<body>
{$header}
{$preview}
{$post_errors}
{$attacherror}
<form action="editpost.php" method="post" name="editpost">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="3"><strong>{$lang->delete_post}</strong></td>
</tr>
<tr>
<td class="trow1" style="white-space: nowrap">
<input type="checkbox" class="checkbox" name="delete" value="yes" tabindex="9" /> <strong>{$lang->delete_q}</strong></td>
<td class="trow1" width="100%">{$lang->delete_1}<br /><span class="smalltext">{$lang->delete_2}</span></td>
<td class="trow1"><input type="submit" class="button" name="submit" value="{$lang->delete_now}" tabindex="10" /></td>
</tr>
</table>
<input type="hidden" name="action" value="deletepost" />
<input type="hidden" name="pid" value="{$pid}" />
</form>
<br />
<!--//EDITOR add code onSubmit="return get_hoteditor_data();" -->
<form onSubmit="return get_hoteditor_data();" action="editpost.php" method="post" enctype="multipart/form-data" name="input">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->edit_post}</strong></td>
</tr>
{$loginbox}
<tr>
<td class="trow2"><strong>{$lang->subject}</strong></td>
<td class="trow2"><input type="text" class="textbox" name="subject" size="40" maxlength="85" value="{$subject}" tabindex="1" /></td>
</tr>
{$posticons}
<tr>
<td class="trow2" valign="top"><strong>{$lang->your_message}:</strong><br /></td>
<td class="trow2">
<!-- //EDITOR -->
<textarea style="visibility:hidden;
position:absolute;top:-20;left:-20;width:1px;
height:1px" name="message" id="message" rows="20" cols="70" tabindex="3">
{$message}</textarea>
<style type="text/css">@import url(richedit/styles/office2007/style.css);</style>
<script language="JavaScript" type="text/javascript" src="richedit/editor.js?version=4.2"></script>
<script language="JavaScript" type="text/javascript">
var getdata =document.getElementById("message").value;
//Make it work with MOD Hoteditor 4.0
if(getdata.indexOf("{EDITOR=")!=-1 && getdata.indexOf("EDITOR}")!=-1){
getdata=getdata.replace(/\&/gi,"&");
getdata=getdata.replace(/\</gi,"<");
getdata=getdata.replace(/\>/gi,">");
getdata=getdata.replace(/\[<\]/gi,"<");
getdata=getdata.replace(/\[>\]/gi,">");
getdata=getdata.replace(/\[<\]/gi,"<");
getdata=getdata.replace(/\[>\]/gi,">");
getdata=getdata.replace(/\"/gi,"\"");
getdata=getdata.replace(/[\r\n]/gi,"");
getdata=getdata.replace(/\{EDITOR=/gi,"");
getdata=getdata.replace(/EDITOR\}/gi,"");
//Convert to BBCode
getdata=HTMLToBBCode(getdata);
}
Instantiate("max","editor", getdata , "100%", "300px");
function get_hoteditor_data(){
if (HTML_ON == "no"){
alert ("Please uncheck the HTML checkbox");
return false;
}
setCodeOutput();
var bbcode_output=document.getElementById("hoteditor_bbcode_ouput_editor").value;//Output to BBCode
//Make it work with MOD Hoteditor 4.0
bbcode_output=bbcode_output.replace(/\{EDITOR=/gi,"[B]{[/B]EDITOR=");
bbcode_output=bbcode_output.replace(/EDITOR\}/gi,"EDITOR[B]}[/B]");
//Output BBCode to message textarea
document.getElementById("message").value = bbcode_output;
}
</script>
<!-- //EDITOR -->
</td>
</tr>
<tr>
<td class="trow1" valign="top"><strong>{$lang->post_options}</strong></td>
<td class="trow1"><span class="smalltext">
<label><input type="checkbox" class="checkbox" name="postoptions[signature]" value="yes" tabindex="6" {$postoptionschecked['signature']} /> {$lang->options_sig}</label><br />
<label><input type="checkbox" class="checkbox" name="postoptions[emailnotify]" value="yes" tabindex="7" {$postoptionschecked['emailnotify']} /> {$lang->options_emailnotify}</label>
{$disablesmilies}</span></td>
</tr>
{$attachbox}
{$pollbox}
</table>
<br />
<div align="center"><input type="submit" class="button" name="submit" value="{$lang->update_post}" tabindex="3" /> <input type="submit" class="button" name="previewpost" value="{$lang->preview_post}" tabindex="4" /></div>
<input type="hidden" name="action" value="do_editpost" />
<input type="hidden" name="pid" value="{$pid}" />
<input type="hidden" name="posthash" value="{$posthash}" />
<input type="hidden" name="attachmentaid" value="" />
<input type="hidden" name="attachmentact" value="" />
</form>
{$footer}
</body>
</html>
- افتح قالب newreply واستبدل محتواه بالكود التالى
كود : <html>
<head>
<title>{$lang->post_reply_to}</title>
{$headerinclude}
<script type="text/javascript" src="jscripts/post.js?ver=121"></script>
</head>
<body>
{$header}
{$preview}
{$maximageserror}
{$attacherror}
{$reply_errors}
<!--//EDITOR START HERE add onSubmit="return get_hoteditor_data();" -->
<form onSubmit="return get_hoteditor_data();" action="newreply.php" method="post" enctype="multipart/form-data" name="input">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->post_new_reply}</strong></td>
</tr>
<tr>
<td class="tcat" colspan="2"><span class="smalltext"><strong>{$lang->reply_to}</strong></span></td>
</tr>
{$loginbox}
<tr>
<td class="trow2" width="20%"><strong>{$lang->post_subject}</strong></td>
<td class="trow2"><input type="text" class="textbox" name="subject" size="40" maxlength="85" value="{$subject}" tabindex="1" /></td>
</tr>
{$posticons}
<tr>
<td class="trow2" valign="top"><strong>{$lang->your_message}</strong><br /></td>
<td class="trow2">
<!-- //EDITOR -->
<textarea style="visibility:hidden;position:absolute;top:-20;left:-20;width:1px;height:1px" id="message" name="message" rows="20" cols="70" tabindex="2" >{$message}</textarea>
<style type="text/css">@import url(richedit/styles/office2007/style.css);</style>
<script language="JavaScript" type="text/javascript" src="richedit/editor.js?version=4.2"></script>
<script language="JavaScript" type="text/javascript">
var getdata =document.getElementById("message").value;
//Make it work with MOD Hoteditor 4.0
if(getdata.indexOf("{EDITOR=")!=-1 && getdata.indexOf("EDITOR}")!=-1){
getdata=getdata.replace(/\&/gi,"&");
getdata=getdata.replace(/\</gi,"<");
getdata=getdata.replace(/\>/gi,">");
getdata=getdata.replace(/\[<\]/gi,"<");
getdata=getdata.replace(/\[>\]/gi,">");
getdata=getdata.replace(/\[<\]/gi,"<");
getdata=getdata.replace(/\[>\]/gi,">");
getdata=getdata.replace(/\"/gi,"\"");
getdata=getdata.replace(/[\r\n]/gi,"");
getdata=getdata.replace(/\{EDITOR=/gi,"");
getdata=getdata.replace(/EDITOR\}/gi,"");
//Convert to BBCode
getdata=HTMLToBBCode(getdata);
}
Instantiate("max","editor", getdata , "100%", "300px");
function get_hoteditor_data(){
if (HTML_ON == "no"){
alert ("Please uncheck the HTML checkbox");
return false;
}
setCodeOutput();
var bbcode_output=document.getElementById("hoteditor_bbcode_ouput_editor").value;//Output to BBCode
//Make it work with MOD Hoteditor 4.0
bbcode_output=bbcode_output.replace(/\{EDITOR=/gi,"[B]{[/B]EDITOR=");
bbcode_output=bbcode_output.replace(/EDITOR\}/gi,"EDITOR[B]}[/B]");
//Output BBCode to message textarea
document.getElementById("message").value = bbcode_output;
}
</script>
<!-- //EDITOR -->
{$multiquote_external}
</td>
</tr>
<tr>
<td class="trow1" valign="top"><strong>{$lang->post_options}</strong></td>
<td class="trow1"><span class="smalltext">
<label><input type="checkbox" class="checkbox" name="postoptions[signature]" value="yes" tabindex="6" {$postoptionschecked['signature']} /> {$lang->options_sig}</label><br />
<label><input type="checkbox" class="checkbox" name="postoptions[emailnotify]" value="yes" tabindex="7" {$postoptionschecked['emailnotify']} /> {$lang->options_emailnotify}</label>
{$disablesmilies}
</span></td>
</tr>
{$attachbox}
{$modoptions}
{$captcha}
</table>
<br />
<div align="center"><input type="submit" class="button" name="submit" value="{$lang->post_reply}" tabindex="3" accesskey="s" />
<input type="submit" class="button" name="previewpost" value="{$lang->preview_post}" tabindex="4" />{$savedraftbutton}</div>
<input type="hidden" name="action" value="do_newreply" />
<input type="hidden" name="tid" value="{$tid}" />
<input type="hidden" name="replyto" value="{$pid}" />
<input type="hidden" name="posthash" value="{$posthash}" />
<input type="hidden" name="attachmentaid" value="" />
<input type="hidden" name="attachmentact" value="" />
<input type="hidden" name="quoted_ids" value="{$quoted_ids}" />
{$editdraftpid}
</form>
{$forumrules}
{$threadreview}
{$footer}
</body>
</html>
- افتح قالب New Thread واستبدل محتواه بالتالى
كود : <html>
<head>
<title>{$lang->newthread_in}</title>
{$headerinclude}
<script type="text/javascript" src="jscripts/post.js?ver=121"></script>
</head>
<body>
{$header}
{$preview}
{$thread_errors}
{$attacherror}
<!--//EDITOR START HERE add onSubmit="return get_hoteditor_data();" -->
<form onSubmit="return get_hoteditor_data();" action="newthread.php" method="post" enctype="multipart/form-data" name="input">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->post_new_thread}</strong></td>
</tr>
{$loginbox}
<tr>
<td class="trow2" width="20%"><strong>{$lang->thread_subject}</strong></td>
<td class="trow2"><input type="text" class="textbox" name="subject" size="40" maxlength="85" value="{$subject}" tabindex="1" /></td>
</tr>
{$posticons}
<tr>
<td class="trow2" valign="top"><strong>{$lang->your_message}</strong><br /></td>
<td class="trow2">
<!-- //EDITOR -->
<textarea style="visibility:hidden;position:absolute;top:-20;left:-20;width:1px;height:1px" name="message" id="message" rows="20" cols="70" tabindex="2">{$message}</textarea>
<style type="text/css">@import url(richedit/styles/office2007/style.css);</style>
<script language="JavaScript" type="text/javascript" src="richedit/editor.js?version=4.2"></script>
<script language="JavaScript" type="text/javascript">
var getdata =document.getElementById("message").value;
Instantiate("max","editor", getdata , "100%", "300px");
function get_hoteditor_data(){
if (HTML_ON == "no"){
alert ("Please uncheck the HTML checkbox");
return false;
}
setCodeOutput();
var bbcode_output=document.getElementById("hoteditor_bbcode_ouput_editor").value;//Output to BBCode
//Make it work with MOD Hoteditor 4.0
bbcode_output=bbcode_output.replace(/\{EDITOR=/gi,"[B]{[/B]EDITOR=");
bbcode_output=bbcode_output.replace(/EDITOR\}/gi,"EDITOR[B]}[/B]");
document.getElementById("message").value = bbcode_output;
}
</script>
<!-- //EDITOR -->
</td>
</tr>
<tr>
<td class="trow1" valign="top"><strong>{$lang->post_options}</strong></td>
<td class="trow1"><span class="smalltext">
<label><input type="checkbox" class="checkbox" name="postoptions[signature]" value="yes" tabindex="7" {$postoptionschecked['signature']} /> {$lang->options_sig}</label><br />
<label><input type="checkbox" class="checkbox" name="postoptions[emailnotify]" value="yes" tabindex="8" {$postoptionschecked['emailnotify']} /> {$lang->options_emailnotify}</label>
{$disablesmilies}</span></td>
</tr>
{$modoptions}
{$attachbox}
{$pollbox}
{$captcha}
</table>
<br />
<div style="text-align:center"><input type="submit" class="button" name="submit" value="{$lang->post_thread}" tabindex="4" accesskey="s" />
<input type="submit" class="button" name="previewpost" value="{$lang->preview_post}" tabindex="5" />{$savedraftbutton}</div>
<input type="hidden" name="action" value="do_newthread" />
<input type="hidden" name="posthash" value="{$posthash}" />
<input type="hidden" name="fid" value="{$fid}" />
<input type="hidden" name="attachmentaid" value="" />
<input type="hidden" name="attachmentact" value="" />
{$editdraftpid}
</form>
{$forumrules}
{$footer}
</body>
</html>
- افتح قالب private_send واستبدل محتواه بالتالى.
كود : <html>
<head>
<title>{$lang->compose_pm}</title>
{$headerinclude}
</head>
<body>
{$header}
<form action="private.php" method="post" name="input">
<table width="100%" border="0" align="center">
<tr>
{$usercpnav}
<td valign="top">
{$preview}
{$send_errors}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->compose_pm}</strong></td>
</tr>
<tr>
<td class="trow1" valign="top"><strong>{$lang->compose_to}</strong></td>
<td class="trow1"><input type="text" class="textbox" name="to" id="to" size="40" maxlength="{$mybb->settings['maxnamelength']}" value="{$to}" tabindex="1" /></td>
</tr>
<tr>
<td class="trow2"><strong>{$lang->compose_subject}</strong></td>
<td class="trow2"><input type="text" class="textbox" name="subject" size="40" maxlength="85" value="{$subject}" tabindex="2" /></td>
</tr>
{$posticons}
<tr>
<td class="trow2" valign="top"><strong>{$lang->compose_message}</strong><br/><br/></td>
<td class="trow2">
<!-- //EDITOR -->
<textarea style="visibility:hidden;position:absolute;top:-20;left:-20;width:1px;height:1px" name="message" id="message" rows="20" cols="60" tabindex="3">{$message}
</textarea>
<style type="text/css">@import url(richedit/styles/office2007/style.css);</style>
<script language="JavaScript" type="text/javascript" src="richedit/editor.js?version=4.2"></script>
<script language="JavaScript" type="text/javascript">
var getdata =document.getElementById("message").value;
//Make it work with MOD Hoteditor 4.0
if(getdata.indexOf("{EDITOR=")!=-1 && getdata.indexOf("EDITOR}")!=-1){
getdata=getdata.replace(/\&/gi,"&");
getdata=getdata.replace(/\</gi,"<");
getdata=getdata.replace(/\>/gi,">");
getdata=getdata.replace(/\[<\]/gi,"<");
getdata=getdata.replace(/\[>\]/gi,">");
getdata=getdata.replace(/\[<\]/gi,"<");
getdata=getdata.replace(/\[>\]/gi,">");
getdata=getdata.replace(/\"/gi,"\"");
getdata=getdata.replace(/[\r\n]/gi,"");
getdata=getdata.replace(/\{EDITOR=/gi,"");
getdata=getdata.replace(/EDITOR\}/gi,"");
//Convert to BBCode
getdata=HTMLToBBCode(getdata);
}
Instantiate("max","editor", getdata , "100%", "300px");
function get_hoteditor_data(){
if (HTML_ON == "no"){
alert ("Please uncheck the HTML checkbox");
return false;
}
setCodeOutput();
var bbcode_output=document.getElementById("hoteditor_bbcode_ouput_editor").value;//Output to BBCode
//Make it work with MOD Hoteditor 4.0
bbcode_output=bbcode_output.replace(/\{EDITOR=/gi,"[B]{[/B]EDITOR=");
bbcode_output=bbcode_output.replace(/EDITOR\}/gi,"EDITOR[B]}[/B]");
//Output BBCode to message textarea
document.getElementById("message").value = bbcode_output;
}
</script>
<!-- //EDITOR -->
</tr>
<tr>
<td class="trow1" valign="top"><strong>{$lang->compose_options}</strong></td>
<td class="trow1"><span class="smalltext">
<label><input type="checkbox" class="checkbox" name="options[signature]" value="yes" tabindex="8" {$optionschecked['signature']} />
{$lang->options_sig}</label><br />
<label><input type="checkbox" class="checkbox" name="options[disablesmilies]" value="yes" tabindex="9" {$optionschecked['disablesmilies']} />{$lang->options_disable_smilies}
</label><br />
<label><input type="checkbox" class="checkbox" name="options[savecopy]" value="yes" tabindex="10" {$optionschecked['savecopy']} />{$lang->options_save_copy}</label><br />
<label><input type="checkbox" class="checkbox" name="options[readreceipt]" value="yes" tabindex="11" {$optionschecked['readreceipt']} />{$lang->options_read_receipt}</label><br />
</span></td>
</tr>
</table>
<br />
<input type="hidden" name="action" value="do_send" />
<input type="hidden" name="pmid" value="{$pmid}" />
<input type="hidden" name="do" value="{$do}" />
<!--//EDITOR START HERE add onclick="get_hoteditor_data();" -->
<div style="text-align:center"><input onClick="get_hoteditor_data();" type="submit" class="button" name="submit" value="{$lang->send_message}" tabindex="4" accesskey="s" />
<input onClick="get_hoteditor_data();" type="submit" class="button" name="saveasdraft" value="{$lang->save_draft}" tabindex="5" />
<input onClick="get_hoteditor_data();" type="submit" class="button" name="preview" value="{$lang->preview}" tabindex="6" /></div>
</td>
</tr>
</table>
</form>
{$footer}
{$autocompletejs}
</body>
</html>
- افتح قالب showthread_quickreply واستبدل محتواه بالتالى.
كود : <br />
<!--//EDITOR START HERE add onSubmit="return get_hoteditor_data();" -->
<form onSubmit="return get_hoteditor_data();" method="post" action="newreply.php" name="input">
<input type="hidden" name="subject" value="RE: {$thread['subject']}" />
<input type="hidden" name="action" value="do_newreply" />
<input type="hidden" name="tid" value="{$tid}" />
<input type="hidden" name="posthash" value="{$posthash}" />
<input type="hidden" name="quoted_ids" value="" />
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<thead>
<tr>
<td colspan="2" class="thead">
<div class="expcolimage"><img src="{$theme['imgdir']}/collapse{$collapsedimg['quickreply']}.gif" id="quickreply_img" class="expander" alt="[-]"/></div>
<div><strong>{$lang->quick_reply}</strong></div>
</td>
</tr>
</thead>
<tbody style="{$collapsed['quickreply_e']}" id="quickreply_e">
<tr>
<td class="trow1" valign="top" width="22%">
<strong>{$lang->message}</strong><br />
<span class="smalltext">{$lang->message_note}<br /><br />
<label><input type="checkbox" class="checkbox" name="postoptions[signature]" value="yes" {$postoptionschecked['signature']} /> <strong>{$lang->signature}</strong></label><br />
<label><input type="checkbox" class="checkbox" name="postoptions[emailnotify]" value="yes" {$postoptionschecked['emailnotify']} /> <strong>{$lang->email_notify}</strong></label><br />
<label><input type="checkbox" class="checkbox" name="postoptions[disablesmilies]" value="yes" /> <strong>{$lang->disable_smilies}</strong></label>{$closeoption}</span>
</td>
<td class="trow1">
<div>
<!-- //EDITOR -->
<textarea style="visibility:hidden;position:absolute;top:-20;left:-20;width:1px;height:1px" rows="8" cols="80" name="message" id="message" tabindex="1">
</textarea>
<style type="text/css">@import url(richedit/styles/office2007/style.css);</style>
<script language="JavaScript" type="text/javascript" src="richedit/editor.js?version=4.2"></script>
<script language="JavaScript" type="text/javascript">
var getdata =document.getElementById("message").value;
Instantiate("min","editor", getdata , "100%", "150px");
function get_hoteditor_data(){
if (HTML_ON == "no"){
alert ("Please uncheck the HTML checkbox");
return false;
}
setCodeOutput();
var bbcode_output=document.getElementById("hoteditor_bbcode_ouput_editor").value;//Output to BBCode
//Make it work with MOD Hoteditor 4.0
bbcode_output=bbcode_output.replace(/\{EDITOR=/gi,"[B]{[/B]EDITOR=");
bbcode_output=bbcode_output.replace(/EDITOR\}/gi,"EDITOR[B]}[/B]");
document.getElementById("message").value = bbcode_output;
}
</script>
<!-- //EDITOR -->
</div>
<script type="text/javascript">document.write('<div class="editor_control_bar" style="width: 90%;
padding: 4px; margin-top: 3px; display: none;" id="quickreply_multiquote">
<span class="smalltext">{$lang->quickreply_multiquote_selected}
<a href="javascript:Thread.loadMultiQuoted();">{$lang->quickreply_multiquote_now}<\/a> {$lang->or}
<a href="javascript:Thread.clearMultiQuoted();">{$lang->quickreply_multiquote_deselect}<\/a>.<\/span><\/div>');</script>
</td>
</tr>
<tr>
<td colspan="2" align="center" class="tfoot"><input type="submit" class="button" value="{$lang->post_reply}" tabindex="2" accesskey="s" />
<input type="submit" class="button" name="previewpost" value="{$lang->preview_post}" tabindex="3" /></td>
</tr>
</tbody>
</table>
</form>
- افتح قالب usercp_editsig واستبدل محتواه بالتالى.
كود : <html>
<head>
<title>{$mybb->settings['bbname']} - {$lang->edit_sig}</title>
{$headerinclude}
</head>
<body>
{$header}
<!--//EDITOR add code onSubmit="return get_hoteditor_data();" -->
<form onSubmit="return get_hoteditor_data();" action="usercp.php" method="post">
<table width="100%" border="0" align="center">
<tr>
{$usercpnav}
<td valign="top">
{$error}
{$signature}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->edit_sig}</strong></td>
</tr>
<tr>
<td class="trow1" valign="top" width="40%"><span class="smalltext">{$lang->edit_sig_note}<br /><br />{$lang->edit_sig_note2}</span></td>
<td class="trow1" width="60%">
<!-- //EDITOR -->
<textarea style="visibility:hidden;position:absolute;top:-20;left:-20;width:1px;height:1px" rows="5" cols="55" id="signature" name="signature">{$sig}</textarea>
<style type="text/css">@import url(richedit/styles/office2007/style.css);</style>
<script language="JavaScript" type="text/javascript" src="richedit/editor.js?version=4.2"></script>
<script language="JavaScript" type="text/javascript">
var getdata =document.getElementById("signature").value;
Instantiate("min","editor", getdata , "100%", "150px");
function get_hoteditor_data(){
if (HTML_ON == "no"){
alert ("Please uncheck the HTML checkbox");
return false;
}
setCodeOutput();
var bbcode_output=document.getElementById("hoteditor_bbcode_ouput_editor").value;//Output to BBCode
//Make it work with MOD Hoteditor 4.0
bbcode_output=bbcode_output.replace(/\{EDITOR=/gi,"[B]{[/B]EDITOR=");
bbcode_output=bbcode_output.replace(/EDITOR\}/gi,"EDITOR[B]}[/B]");
//Output BBCode to message textarea
document.getElementById("signature").value = bbcode_output;
}
</script>
<!-- //EDITOR -->
<br /><br /><span class="smalltext">
<label><input type="radio" class="radio" name="updateposts" value="enable" /> {$lang->enable_sig_posts}</label><br />
<label><input type="radio" class="radio" name="updateposts" value="disable" /> {$lang->disable_sig_posts}</label><br />
<label><input type="radio" class="radio" name="updateposts" value="no" checked="checked" /> {$lang->leave_sig_settings}</label></span>
</td>
</tr>
</table>
<br />
<div align="center">
<input type="hidden" name="action" value="do_editsig" />
<input type="submit" class="button" name="submit" value="{$lang->update_sig}" />
<input type="submit" class="button" name="preview" value="{$lang->preview}" />
</div>
</td>
</tr>
</table>
</form>
{$footer}
</body>
</html>
- افتح قالب xmlhttp_inline_post_editor واستبدل محتواه بالتالى
كود : <br />
<div style="clear: both;">
<iframe name=hotframe_{$post['pid']} frameborder=0 width=100% height=490px src="hoteditor_quickedit.php?id={$post['pid']}" scrolling=no target="_top">
</iframe>
<div>
<textarea style="visibility:hidden;" id="quickedit_{$post['pid']}" />{$post['message']}</textarea>
</div>
</div>
- افتح قالب post_attachments_attachment_postinsert واستبدل محتواه بالتالى.
كود : <input type="button" name="insert" value="{$lang->insert_attachment_post}" onclick="if(editor_type=='0'){
WriteTEXT('[attachment='+{$attachment['aid']}+']','editor');}
else{WriteHTML('[attachment='+{$attachment['aid']}+']','editor');}" />
هذا هو كل ماورد فى ملف شرح تركيب الهاك باللغة الأنجليزية.
السلام عليكم ورحمة الله وبركاته
RE: شرح تركيب هاك الـ WYSIWYG. - almsre - 2007-05-25
الف الف شكر يا باشا
RE: شرح تركيب هاك الـ WYSIWYG. - Pepo - 2007-05-26
العفو اخى الكريم.. انا قدمت الشرح بس عشان انت كنت تانى واحد يطلب الهاك ده..
فحبيت اوفر كثرة الطلبات عليه بوضع هذا الشرح..
السلام عليكم ورحمة الله وبركاته
RE: شرح تركيب هاك الـ WYSIWYG. - almsre - 2007-05-26
علي فكره الهاك تمام بس في مشكله في اول كود خالص الي هيتعدل في الملف الاول يعني لما بضيفه في الملف تحت الجمله التي ابحث عنها و اقوم برفع الملف مره اخري بيعطيني مشكله في الموقع و يوقف المنتدي و لكن اذا حذفته يعمل الموقع و بالنسبه لباقي الاكواد فهي تمام و لكن اريد ان اعرف هل اول كود مهم ؟ و انا دلوقتي لما انقل اي موضوع و اقوم باضافته بيحول الموضوع لاكواد عاديه بيخرب الاكواد هل هذا بسبب عدم وضع التعديل الاول بالملف ارجو الافاداه السريعه
RE: شرح تركيب هاك الـ WYSIWYG. - Pepo - 2007-05-27
السلام عليكم ورحمة الله وبركاته.. اخى الكريم بالنسبة لأخطاء المحرر فى ظهور الكود فهذا امر متوقع (كما ذكرت ان الهاك به الكثير من المشاكل,, وانا لا اضمنه)
اما بالنسبة لمشكلة اضافة الكود فى الملف الأول.. فجرب هذا الملف من هنا
واخبرنى بالنتيجة.. وإذا مازالت المشكلة موجودة,, ارجو منك ماهى المشكلة بالظبط وكيف هو شكل الخطأ الذى يظهر لك..
السلام عليكم ورحمة الله وبركاته.
RE: شرح تركيب هاك الـ WYSIWYG. - almsre - 2007-05-30
عرفت الخطا يا اخي و هو نقص في الكود الاول في الموضوع مما يسبب مشكله في تركيبه ارجو مراكعة الكود لاني جربته من الملف الانجليزي المرفق بالهاك و جربت و تم بنجاح اشكرك و ارجو المراجعه علي الكود الاول و لكن الباقي صحيح 100 % و بالنسبه للهاك انا لم يقابلني مشاكل فيه الا بعض المشاكل الخاصه بالاكواد المجهوله لديه و اشكرك جدا انا كنت محتاج هذا الهاك
RE: شرح تركيب هاك الـ WYSIWYG. - Pepo - 2007-05-30
الحمد لله ان الخطأ طلع منى (جل من لا يسهو) لأنه لو كان من الهاك كانت هاتبقة مشكلة
لكن اخطائنا احنا مقدور عليها والحمد لله..
اول اما افضى هاراجع الأكواد تانى واصحح الخطأ بإذن الله..
تحياتى
RE: شرح تركيب هاك الـ WYSIWYG. - S_CaReCRo_W - 2007-06-04
لا حول ولا قوة الا بالله كل دا هاك وتعديلات مشكلة فعلا يعني بعد ما نتعب يطلع فيه اخطاء كثير انصح بعدم التركيب وانتظار نسخة سليمة
ومشكووووور جدا بيبو علي ابداعك وتميزك بارك الله فيك
RE: شرح تركيب هاك الـ WYSIWYG. - almsre - 2007-06-04
ألهاك يا اخواني سليم و الله و انا شغال بيه ارجو انك تركبه من الملف الموجود بالملف الخاص بالهاك و المشروح فيه طريقة التركيب بالانجليزيه يعني اقرا العربي و طربقه بنسخ الاكواد من الملف و ليس من هنا فهمتني
RE: شرح تركيب هاك الـ WYSIWYG. - Pepo - 2007-06-04
almsre كتب :ألهاك يا اخواني سليم و الله و انا شغال بيه ارجو انك تركبه من الملف الموجود بالملف الخاص بالهاك و المشروح فيه طريقة التركيب بالانجليزيه يعني اقرا العربي و طربقه بنسخ الاكواد من الملف و ليس من هنا فهمتني
نوعا ما كلامك مظبوط فى جزئية نسخ الكود من الملف الأنجليزى,, ربما اخطأت انا فى نسخ الأكواد بأى شكل من الأشكال..
لكن مازال عدم ضمانى للهاك موجود
|