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

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


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

Задача: сделать возможность изменения размера окна для ввода сообщения как в 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" плиз, так информативнее

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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