Перейти к контенту

Изменяем размер окна для ввода сообщения


Рекомендуемые сообщения

Задача: сделать возможность изменения размера окна для ввода сообщения как в 2.1.x (кнопочки "+" и "-") + запоминать новые размеры, чего в 2.1.x нет.

 

Открываем jscripts\ipb_bbcode.js

 

Находим:

var fombj	= document.REPLIER;

Ниже вставляем:

function std_window_resize( pix )
{
  var box		= fombj.Post;
  var cur_height = parseInt( box.style.height ) ? parseInt( box.style.height ) : 300;
  var new_height = cur_height + pix;

  if ( new_height > 0 )
  {
		 box.style.height = new_height + "px";
		 my_setcookie( 'tsize', new_height, 1 );
  }

  return false;
}

Открываем sources\post.php

 

Находим:

	function html_post_body($raw_post="")
{
	global $ibforums;

Заменяем на:

	function html_post_body($raw_post="")
{
	global $ibforums, $std;

	$tsize = intval($std->my_getcookie('tsize'));
	if($tsize)
		$ibforums->tsize = "style=\"height:{$tsize}px;\"";

Открываем skin_cache\*\skin_post.php

 

Находим:

function postbox_buttons($data="") {
global $ibforums;

В этой ф-ции ищем:

<textarea cols='80' rows='20' name='Post' tabindex='5' class='textarea'>$data</textarea>

 

Заменяем на:

<textarea cols='80' rows='20' name='Post' tabindex='5' class='textarea' {$ibforums->tsize}>$data</textarea>
<br>
<input type="button" value=" + " onclick='std_window_resize( 100  );' id="rtesizeplus"  class='textarea' style="width:20px;" /><input type="button" value=" - " onclick='std_window_resize( -100 );' id="rtesizeminus" class='textarea'style="width:20px;" />

У кого установлена расширенная форма ответа от d1pro

 

Открываем sources\topics.php

 

Находим:

		function html_post_body($raw_post="") 
{
			global $ibforums;

Заменяем на:

		function html_post_body($raw_post="") 
{
		global $ibforums, $std;

	$tsize = intval($std->my_getcookie('tsize'));
	if($tsize)
		$ibforums->tsize = "style=\"height:{$tsize}px;\"";

Готово.

 

 

Ещё очень не удобно писать большой текст в таком маленьком по ширине окне, растянем его до конца окна.

 

Открываем style_images\css_*.css

 

Находим

input,
submit,
textarea,
select
{

Выше добавляем:

.textarea
{
width: 99%;
}

Ссылка на комментарий
Поделиться на других сайтах

Отличный совет! 5 баллов! В свое время мне просто пришлось растянуть окно, но чтобы сделать масштабируемым - это здорово!
Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...

Изменение окна ввода собщения в полном и быстром ответах для 1.3 от IgorekM[/url] ;)

 

1. Открыть файл ./html/UBBC/ubbc.js, добавить функции:

function std_window_resize( pix, save )
{
      var box        = document.REPLIER.Post;
      var cur_height = parseInt( box.style.height ) ? parseInt( box.style.height ) : 300;
      var new_height = cur_height + pix;

      if ( new_height > 0 )
      {
             box.style.height = new_height + "px";
             if ( save )
		{
			ips_setcookie( 'tsize', new_height, 1 );
		}
      }

      return false;
}

function ips_setcookie( name, value, sticky )
{
var expire = '';
var domain = '';
var path   = '/';

if ( sticky )
{
	expire = '; expires=Wed, 1 Jan 2020 00:00:00 GMT';
}

if ( ipb_var_cookie_domain != '' )
{
	domain = '; domain=' + ipb_var_cookie_domain;
}

if ( ipb_var_cookie_path != '' )
{
	path = ipb_var_cookie_path;
}

var str = ipb_var_cookie_id + name + '=' + value + '; path=' + path + expire + domain + ';';

document.cookie = str;
};

 

2. Открыть файл ./sources/Post.php, найти:

	function html_post_body($raw_post="") {

	global $ibforums;

Заменить на: 

	function html_post_body($raw_post="") {

	global $ibforums, $std;

			$tsize = intval($std->my_getcookie('tsize'));
	if($tsize) $ibforums->tsize = "style='height:{$tsize}px;'";

 

3. Открыть шаблон шаблон skin_global->BoardHeader, добавить в начало:

 

<script type="text/javascript">
<!--
var ipb_var_cookie_id = "{$ibforums->vars['cookie_id']}";
var ipb_var_cookie_path = "{$ibforums->vars['cookie_path']}";
var ipb_var_cookie_domain = "{$ibforums->vars['cookie_domain']}";
//-->
</script>

 

 

4. Открыть шаблон шаблон skin_post->postbox_buttons, найти:

>$data</textarea>

 

Заменить на: 

 {$ibforums->tsize}>$data</textarea><br />
<input type="button" value="+" onclick='std_window_resize(100,1);' style="width:30px;text-align:center;" /> <input type="button" value="-" onclick='std_window_resize(-100,1);' style="width:30px;text-align:center;" />

 

5. Открыть шаблон skin_topic->quick_reply_new, найти:

</textarea>

Добавить после:

<br />
<input type="button" value="+" onclick='std_window_resize(100,0);' style="width:30px;text-align:center;" /> <input type="button" value="-" onclick='std_window_resize(-100,0);' style="width:30px;text-align:center;" />

 

 

В конец CSS добавить:

.post-textarea
{
    width: 99%;
}

 

Открыть шаблон шаблон skin_post->postbox_buttons, найти:

name="Post" tabindex="3" class="textinput"

Заменить на: 

 name="Post" tabindex="3" class="post-textarea"

 

Открыть шаблон шаблон skin_topic->quick_reply_new, найти:

name="Post" tabindex="3" class="textinput"

Заменить на: 

 name="Post" tabindex="3" class="post-textarea"

 

P.S. Dekker, пункт 3 и вторую функцию из пункта 1 добавлять не надо, они у вас и так уже есть :D

Ссылка на комментарий
Поделиться на других сайтах

Для полного или для быстрого?
Ссылка на комментарий
Поделиться на других сайтах

пробовал из под AJAX и из под простой формы быстрого ответа

 

да, не работает в форме быстрого ответа, при редактировани поста и т.п. что задействует основную форму ответа tsize перезаписываеться нормально

 

т.е. форма быстрого ответа не_подчиняется/не_читает tsize

Ссылка на комментарий
Поделиться на других сайтах

Я в ней не делал, вечером посмотрю, напишу :D
Ссылка на комментарий
Поделиться на других сайтах

ну что бы он слушался tsize эт понятно. в Topic.php дописываем

 

$tsize = intval($std->my_getcookie('tsize'));
	if($tsize) $ibforums->tsize = "style='height:{$tsize}px;'";

 

в skin_topic.php

 

{$ibforums->tsize}></textarea><br />
<input type="button" value="+" onclick='std_window_resize(100,0);' style="width:30px;text-align:center;" /> <input type="button" value="-" onclick='std_window_resize(-100,0);' style="width:30px;text-align:center;" />

 

вот, теперь оно слушает tsize но не перезаписывает

Ссылка на комментарий
Поделиться на других сайтах

Чтобы перезаписывал, делаем вот ещё что:

5. Открыть шаблон skin_topic->quick_reply_new, найти:

</textarea>

 

Добавить после:

<br />
<input type="button" value="+" onclick='std_window_resize(100,0);' style="width:30px;text-align:center;" /> <input type="button" value="-" onclick='std_window_resize(-100,0);' style="width:30px;text-align:center;" />

В вызове функции std_window_resize меняем 0 на 1 :D Но это будет один размер для окна в теме и окна в ответе. Так годится? Или сделать отдельно размер для ответа/редактирования, быстрого ответа и быстрого редактирования?

Ссылка на комментарий
Поделиться на других сайтах

не не не, не нада, данная фишка удобна только верстателям, а форум верстаю как правило только я. так что для мну достаточно того что есть :D

 

как и быстрое редактирование я просил сделать, только для себя.

 

2 moderators смените залоговок "Изменяем размер окна для ввода сообщения, для версии 2.0.x / 1.2-1.3" плиз, так информативнее

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.