Как интегрировать WYSIWYG в блог?

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Leramulina
phpBB 1.2.0
Сообщения: 14
Стаж: 18 лет 7 месяцев
Откуда: Москва

Как интегрировать WYSIWYG в блог?

Сообщение Leramulina »

У меня есть отличный WYSIWYG на phpbb 3, который работает в сообщениях.
http://www.ecardmax.com/index.php?step=Hoteditor - вот такой

И есть отличный блог мод
http://www.lithiumstudios.org/forum/viewtopic.php?t=433

Но в этом моде не работает WYSIWYG от HotEditor
:(

Какие файлы мне надо изменить, чтобы WYSIWYG заработал в блоге?

Попробовала поредактировать blog_posting_layout.html, но ничего хорошего пока не вышло :)

Вместо

Код: Выделить всё

<!-- INCLUDE posting_buttons.html -->

			<div id="smiley-box">
				<!-- IF S_SMILIES_ALLOWED and .smiley -->
					<strong>{L_SMILIES}</strong><br />
					<!-- BEGIN smiley -->
						<a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" /></a>
					<!-- END smiley -->
				<!-- ENDIF -->
				<!-- IF S_SHOW_SMILEY_LINK and S_SMILIES_ALLOWED-->
					<br /><a href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a>
				<!-- ENDIF -->

				<!-- IF BBCODE_STATUS -->
				<!-- IF .smiley --><hr /><!-- ENDIF -->
				{BBCODE_STATUS}<br />
				<!-- IF S_BBCODE_ALLOWED -->
					{IMG_STATUS}<br />
					{FLASH_STATUS}<br />
					{URL_STATUS}<br />
					{SMILIES_STATUS}
				<!-- ENDIF -->
				<!-- ENDIF -->
			</div>

			{EXTRA_ABOVE_MESSAGE}

			<div id="message-box">
				<textarea name="message" id="message" rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" class="inputbox">{MESSAGE}</textarea>
			</div>
		</fieldset>
		<span class="corners-bottom"><span></span></span></div>
	</div>
Вставила

Код: Выделить всё

<!-- INCLUDE posting_buttons.html -->
<!-- //HotEditor MOD START -->
<textarea style="visibility:hidden;position:absolute;top:-20;left:-20;width:1px;height:1px" <!-- IF S_UCP_ACTION and not S_PRIVMSGS and not S_EDIT_DRAFT -->name="signature" id="signature" style="height: 9em;"<!-- ELSE -->name="message" id="message"<!-- ENDIF --> rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" class="inputbox">{MESSAGE}{DRAFT_MESSAGE}{SIGNATURE}</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">
	if(document.getElementById("message")){
		var mydoc=document.getElementById("message");
	}
	else if(document.getElementById("signature")){
		var mydoc=document.getElementById("signature");
		
	}
	var getdata = mydoc.value;
	getdata = convertSize(getdata,"1");
	
	Instantiate("max","editor", getdata , "100%", "300px");
	//For Vietnamese User. Edit file editor.js to enable vietnamese keyboard
	if(enable_vietnamese_keyboard==1){
		document.write("<script language=\"JavaScript\" type=\"text/javascript\" src=\"richedit/avim.js\"><\/script>");
		var hoteditor_avim_method = hot_readCookie("hoteditor_avim_method");var him_auto_checked="";var him_telex_checked="";var him_vni_checked="";var him_viqr_checked="";var him_viqr2_checked="";var him_off_checked="";if(hoteditor_avim_method=="0"){him_auto_checked="checked";}else if(hoteditor_avim_method=="1"){him_telex_checked="checked";}else if(hoteditor_avim_method=="2"){him_vni_checked="checked";}else if(hoteditor_avim_method=="3"){him_viqr_checked="checked";}else if(hoteditor_avim_method=="4"){him_viqr2_checked="checked";}else if(hoteditor_avim_method=="-1"){him_off_checked="checked";}
		document.write("<div style='width:100%;text-align:center;font-family:Verdana;font-size:11px;'><input "+him_auto_checked+" id=him_auto onclick=setMethod(0); type=radio name=viet_method> Auto :: <input "+him_telex_checked+" id=him_telex onclick=setMethod(1); type=radio name=viet_method> Telex :: <input "+him_vni_checked+" id=him_vni onclick=setMethod(2); type=radio name=viet_method> VNI :: <input "+him_viqr_checked+" id=him_viqr onclick=setMethod(3); type=radio name=viet_method> VIQR :: <input "+him_viqr2_checked+" id=him_viqr2 onclick=setMethod(4); type=radio name=viet_method> VIQR* :: <input "+him_off_checked+" id=him_off onclick=setMethod(-1); type=radio name=viet_method> Off<br><img src="+styles_folder_path+"/vietnamese_symbol.gif></div>");
	}
	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 BBCode ouput compatible with phpbb
		var currentDomain=document.URL;
		currentDomain=currentDomain.replace("http://","");
		var infoDomain=currentDomain.split("/");
		var correctDomain="http://";
		for(var d=0;d < infoDomain.length; d++){
			if(d<infoDomain.length-1) correctDomain+=infoDomain[d]+"/";
		}
		bbcode_output=bbcode_output.replace(/\[IMG\]\.\//gi,"[IMG]"+correctDomain);
		bbcode_output=bbcode_output.replace(/\[(\/)quote\]/gi,"[$1quote]");
		bbcode_output = convertSize(bbcode_output,"0");
		mydoc.value = bbcode_output;
	}

	function convertSize(text,what){
		if(what=="1"){//phpBB size to Hoteditor size
			text=text.replace(/\[size=85\]/gi,"[SIZE=1]");
			text=text.replace(/\[size=100\]/gi,"[SIZE=2]");
			text=text.replace(/\[size=120\]/gi,"[SIZE=3]");
			text=text.replace(/\[size=130\]/gi,"[SIZE=4]");
			text=text.replace(/\[size=150\]/gi,"[SIZE=5]");
			text=text.replace(/\[size=170\]/gi,"[SIZE=6]");
			text=text.replace(/\[size=200\]/gi,"[SIZE=7]");
		}
		else{//Hoteditor size to phpBB size 
			text=text.replace(/\[size=1\]/gi,"[SIZE=85]");
			text=text.replace(/\[size=2\]/gi,"[SIZE=100]");
			text=text.replace(/\[size=3\]/gi,"[SIZE=120]");
			text=text.replace(/\[size=4\]/gi,"[SIZE=130]");
			text=text.replace(/\[size=5\]/gi,"[SIZE=150]");
			text=text.replace(/\[size=6\]/gi,"[SIZE=170]");
			text=text.replace(/\[size=7\]/gi,"[SIZE=200]");					
		}				
		return text;
	}						
</script>	
	<!-- IF S_SMILIES_ALLOWED and .smiley -->
		<br /><strong>{L_SMILIES}</strong><br />
		<!--//HotEditor MOD -->
		<!-- BEGIN smiley -->
			<span style="curror:pointer;" onmousedown="if(editor_type=='1'){WriteHTML('<img src={smiley.SMILEY_IMG}>','editor');}else{WriteTEXT('[IMG]{smiley.SMILEY_IMG}[/IMG]','editor');}"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" /></span>
		<!-- END smiley -->
	<!-- ENDIF -->
	<!-- IF S_SHOW_SMILEY_LINK and S_SMILIES_ALLOWED-->
		<br /><a href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a>
	<!-- ENDIF -->

	<!-- IF BBCODE_STATUS -->
	<!-- IF .smiley --><hr /><!-- ENDIF -->
	{BBCODE_STATUS}<br />
	<!-- IF S_BBCODE_ALLOWED -->
		{IMG_STATUS}<br />
		{FLASH_STATUS}<br />
		{URL_STATUS}<br />
		{SMILIES_STATUS}
	<!-- ENDIF -->
	<!-- ENDIF -->
	<!-- IF S_EDIT_DRAFT || S_DISPLAY_REVIEW -->
		<!-- IF S_DISPLAY_REVIEW --><hr /><!-- ENDIF -->
		<!-- IF S_EDIT_DRAFT --><strong><a href="{S_UCP_ACTION}">{L_BACK_TO_DRAFTS}</a></strong><!-- ENDIF -->
		<!-- IF S_DISPLAY_REVIEW --><strong><a href="#review">{L_TOPIC_REVIEW}</a></strong><!-- ENDIF -->
	<!-- ENDIF -->

<!-- //HotEditor MOD END -->

И ещё:

Код: Выделить всё

<form id="postform" method="post" action="{S_POST_ACTION}"{S_FORM_ENCTYPE}>
Поменяла на:

Код: Выделить всё

<!--//HotEditor MOD add onsubmit="return get_hoteditor_data();" -->
<form id="postform" onsubmit="return get_hoteditor_data();" method="post" action="{S_POST_ACTION}"{S_FORM_ENCTYPE}>
Окошко WYSIWYG HotEdotor появляется, но текст из него не постится в блог

Добавлено спустя 5 часов 31 минуту 41 секунду:

УРА! УРА! УРА! Получилось!
Два файла надо было изменять! :P
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 21 год 2 месяца
Поблагодарили: 44 раза

Сообщение Rayden »

Мадмуазель, Вы считате, что правило 3.11 не для женщин?
phpBB2 FAQ
phpBB3 FAQ
Аватара пользователя
Leramulina
phpBB 1.2.0
Сообщения: 14
Стаж: 18 лет 7 месяцев
Откуда: Москва

Сообщение Leramulina »

Rayden писал(а):Мадмуазель, Вы считате, что правило 3.11 не для женщин?
Я считаю, что в этом вопросе нет разделения полов.
Но мне не показалось злоупотреблением то, что я показала, как решила конкретную задачу.
Если Вы все же настоятельно считаете, что я совершила злоупотребление, можете принудить меня сократить пост или удалить его.
Аватара пользователя
Balamut
Former team member
Сообщения: 2214
Стаж: 21 год 6 месяцев
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 146 раз

Сообщение Balamut »

Ша! =)

Лучше расскажите, какие файлы правили, вдруг ещё кому-нить понадобится..
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
Leramulina
phpBB 1.2.0
Сообщения: 14
Стаж: 18 лет 7 месяцев
Откуда: Москва

Сообщение Leramulina »

ucp_blog.html

Поменяла

Код: Выделить всё

<form id="postform" method="post" action="{S_UCP_ACTION}"{S_FORM_ENCTYPE}>
на

Код: Выделить всё

<!--//HotEditor MOD add onsubmit="return get_hoteditor_data();" -->
<form id="postform" onsubmit="return get_hoteditor_data();" method="post" action="{S_UCP_ACTION}"{S_FORM_ENCTYPE}>
Аватара пользователя
-AHaPXuCT-
phpBB 1.2.1
Сообщения: 21
Стаж: 18 лет 7 месяцев
Откуда: РФ - Республика Мордовия -

Сообщение -AHaPXuCT- »

А можно ли этот блог интегрировать в мод быстрого ответа?
Аватара пользователя
Leramulina
phpBB 1.2.0
Сообщения: 14
Стаж: 18 лет 7 месяцев
Откуда: Москва

Сообщение Leramulina »

-AHaPXuCT- писал(а):А можно ли этот блог интегрировать в мод быстрого ответа?
Никогда не работала с "быстрым ответом". Так что сказать не могу.
Кстати, пробовала тот же метод с новой бета-версией блога (до этого была 37а) и у меня не пошла интеграция :(

Вернуться в «Поддержка модов для phpBB 3.0.x»