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

плавающий быстрый ответ


winnie

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

попытался сделать фичу с плавающим быстрым ответом типа как на иксбт,

идем в админку - редактирвоание скинов

ACP Home / Skin Manager Home / Topic View/quick_reply_box_open

и заменяем там все на

<script type="text/javascript" src='jscripts/ipb_centerdiv.js'></script>
<script type="text/javascript">
<!--
var divToCenter = 'qr_open';
var canFloat = (is_ie || is_opera);
resetposition1 = function()
{
if ( document.getElementById )
{
  var div = document.getElementById( divToCenter );
  var divWidth  = div.offsetWidth  ? div.offsetWidth  : div.style.width   ? parseInt( div.style.width )  : 0;
  var divHeight = div.offsetHeight ? div.offsetHeight :  div.style.height ? parseInt( div.style.height ) : 0;
  
  var sx = getwidth();
  var sy = getheight();
  
  var scrolly = getYscroll();
  
  var setX = ( sx - divWidth ) / 2;
  var setY = ( sy - divHeight)  + scrolly;
  
  if( setX < 0 ) setX = 0;
  if( setY < 0 ) setY = 0;
  
  div.style.left = setX + "px";
  div.style.top  = setY + "px";
  div.style.visibility = "visible";
}
};

function do_float(isfloat)
{
  if (isfloat) {
qr_open.style.position="absolute";
qr_open.style.top=document.body.scrollTop+document.body.offsetHeight-qr_open.offsetHeight-50;
qr_open.style.border="2px black solid";
qr_open.style.backgroundColor="white"
float_link.innerHTML='<a onMouseOver=this.style.cursor="hand" onClick="javascript:do_float(0)"><u>Обыкновенный</u></a>';
if(selectlist1)           selectlist1.style.display="none"
if(selectlist2)           selectlist2.style.display="none"
if(selectlist3)           selectlist3.style.display="none"
  } else {
qr_open.style.position=""
qr_open.style.border=""
qr_open.style.backgroundColor="white"
float_link.innerHTML='<a onMouseOver=this.style.cursor="hand" onClick="javascript:do_float(1)"><u>Плавающий</u></a>'
if(selectlist1)          selectlist1.style.display=""
if(selectlist2)          selectlist2.style.display=""
if(selectlist3)          selectlist3.style.display=""
}
}

function on_scroll()
{
 if (canFloat) {
  if(null != qr_open && qr_open.style.position != "") {
    qr_open.style.top= document.body.scrollTop+document.body.offsetHeight-qr_open.offsetHeight-5;
 }
 }
}
function emo_pop()
{
   window.open('index.{ipb.vars['php_ext']}?act=legends&CODE=emoticons&s={ipb.session_id}','Legends','width=250,height=500,resizable=yes,scrollbars=yes'); 
}
//-->
</script>
<br />
       <div align='left' id='qr_open' style='z-index: 10;top:auto;bottom:auto; display:$show; width:100%'>
    <form name='REPLIER' action="{ipb.script_url}" method='post'>
    <input type='hidden' name='act' value='Post' />
    <input type='hidden' name='CODE' value='03' />
    <input type='hidden' name='f' value='$fid' />
    <input type='hidden' name='t' value='$tid' />
    <input type='hidden' name='st' value='{ipb.input['st']}' />
    <input type='hidden' name='enabletrack' value='{ipb.member['auto_track']}' />
    <input type='hidden' name='auth_key' value='$key' />
    <!-- TITLE DIV -->
              <div class="tableborder">
        <div class='maintitle'><{CAT_IMG}> {ipb.lang['qr_title']}</div>
   <div class="tablepad" align="center">

<script language=Javascript>
//doFloatLink();
if(canFloat) {
    document.writeln('<div id=float_link><a onMouseOver=this.style.cursor="hand" onClick="javascript:do_float(1)"><u>Плавающий</u></a></div>');
if (is_opera) {window.onscroll = on_scroll; } 
else {window.onscroll = resetposition1;}
  }
</SCRIPT>
 
<textarea cols='70' rows='8' name='Post' class='textarea' tabindex="1"></textarea>
    <br /><br />
<a onMouseOver=this.style.cursor='hand' onClick='javascript:emo_pop();'><u>{ipb.lang['show_emo']}</u></a> |
    <input type='checkbox' name='enableemo' value='yes' class="checkbox" checked="checked" /> {ipb.lang['qr_add_smilie']} |
    <input type='checkbox' name='enablesig' value='yes' class="checkbox" checked="checked" /> {ipb.lang['qr_add_sig']}
    <br /><br />
    <input type='submit' name='submit' value='{ipb.lang['qr_submit']}' class='button' tabindex="2" accesskey="s" /> 
    <input type='submit' name='preview' value='{ipb.lang['qr_more_opts']}' class='button' />
       <input type='button' name='qrc' onclick="ShowHide('qr_open','qr_closed');" value='{ipb.lang['qr_closeit']}' class='button' />
   </div>
                         </div>
    </form>
</div>

 

дальше идем ACP Home / Skin Manager Home / Topic View / TableFooter

находим там

<if="ipb.member['is_mod']">

и ПЕРЕД этой строчкой вставляем

<div id='selectlist1'>

дальше находим где заканчивается условие if

<br />
</if>

и ПОСЛЕ добавляем

</div>

 

в самом низу находим

<!--IBF.TOPIC_OPTIONS_OPEN-->
<br />
<div class='tableborder'>

и заменяем на

<!--IBF.TOPIC_OPTIONS_OPEN-->
<br />
<div class='tableborder' id='selectlist2'>

 

дальше идем в ACP Home / Skin Manager Home / All Global HTML/ global_board_footer

в самом верху находим

<table width='100%' cellspacing='0' cellpadding='4' border='0' class='catend'>
<tr>

 

и меняем на

<table width='100%' cellspacing='0' cellpadding='4' border='0' class='catend'>
<tr id='selectlist3'>

 

всё!

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

так все работает теперь 

см . первый пост- исправил

можно переностить в модификации для в 2.0

winnie

Так создайте инструкцию, все это в файл, и вперед добавлять файл в наш архив :D

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

  • 2 недели спустя...
  • 2 недели спустя...
А где можно посмотреть на рабочий форум с этим модом?  А то нифига не понял, что он делает

 

forum.sharereactor.co.il

 

 

зы: это не реклама, а ответ на просьбу

 

А смысл простой, когда ты скролом просматриваеш страницу форума вверх или вниз, то быстрый ответ все равно виден, он "плавает" на эране.

Тоесть ты можеш читать любые посты и видить(писать) свой

очень удобно :D

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

  • 2 недели спустя...

Что-то не вижу в 2.0 Финал ACP Home / Skin Manager Home / Topic View/quick_reply_box_open... Вижу только ACP Home / Skin Manager, но там что-то вообще не то, такое ощущение. По крайней мере, ничего похожего на Topic View/quick_reply_box_open, только набор скинов, а там футеры, ну и пара ещё непохожих вещей...

 

Хелп!

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

выбери скин и открой его (кликнуть на имя скина, появится меню, выбери редактирование)
Ссылка на комментарий
Поделиться на других сайтах

дык нажмите на любой скин - вылезет выпадающее меню и там выберите редактировать HTML .. естественно все это по английски там написано :D
Ссылка на комментарий
Поделиться на других сайтах

Нашёл, вот только в ACP Home / Skin Manager Home / Topic View / TableFooter вообще всё не так...

 

Например тут написано:

<!--IBF.TOPIC_OPTIONS_OPEN-->
<br />
<div class='tableborder'>

 

А у меня эти 3 строки такие:

<!--IBF.TOPIC_OPTIONS_OPEN-->
<div class="borderwrap">
<div class="row2" style="padding: 5px;">

 

ЗЫ. 2.0.0 ФинГал... :)

Добавлено в [mergetime]1096108727[/mergetime]

Блин....

 

global_board_footer:

<table cellspacing="0" id="gfooter">
<tr>
 <td width="45%"><% SKINCHOOSER %> <% LANGCHOOSER %></td>
 <td width="10%" align="center" nowrap="nowrap"><a href="lofiversion/index.php<% LOFIVERSION %>"><b>{ipb.lang['global_lofi']}</b></a></td>
 <td width="45%" align="right" nowrap="nowrap"><% QUICKSTATS %>{ipb.lang['global_timeisnow']}: {$time}</td>
</tr>
</table>

Всё, что там есть... :D

Добавлено в [mergetime]1096109140[/mergetime]

Помогите поставить на финал! Не работает нифига! Хотя я ставил-то наобум почти, т.к. тут всё не так.... ;)

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

TableFooter

ищем

<if="ipb.member['is_mod']">

меняем на

<div id='selectlist1'>
<if="ipb.member['is_mod']">

 

чуть ниже ищем

</div>
</if>

меняем на

</div>
</if>
</div>

 

и в самом низу находим

<div class="borderwrap">

и заменяем на

<div class="borderwrap" id='selectlist2'>

 

global_board_footer

 

в самом начале

<table cellspacing="0" id="gfooter">
<tr>

 

меняем на

<table cellspacing="0" id="gfooter">
<tr id='selectlist3'>

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

Что-то мнее подсказывает, что я наобум делал, но сделал именно так, но у меня не работало...

 

ЗЫ. Я уже бэкапнулся давно....

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

поставил на 1.1.*

 

PS. кстати, на ixbt сделанно немного правильнее, там форма передвигается немного иначе, она не мелькает постоянно при прокрутке, как здесь, а передвигается с более длинными отрывками. Мдя - намудрил с формулировкой, но кто посмотрит там и здесь (пример выше был), то поймет.

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

кхм.. так это просто задержку поставить в прокрутке...

внутри функции явы

function on_scroll()

сейчас не помню точно как она зовется .. чуть позже напишу

Добавлено в [mergetime]1096449790[/mergetime]

вообщем функцию заменить на on_scroll()

function on_scroll()
 {
	 if (canFloat) 
	 {
    	 if(null != qr_open && qr_open.style.position != "") 
    	 {
  	 setTimeout('qr_open.style.top= document.body.scrollTop+document.body.offsetHeight-qr_open.offsetHeight-5', 50);
   }
	 }
 }

число 50 менять на нужное вам - это время задержки.

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

кульно, но вот у меня что-то в опере не скролится. На месте стоит форма и все :D

Добавлено в [mergetime]1096494260[/mergetime]

winnie ничего не изменилось после замены функции ;)

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

кульно, но вот у меня что-то в опере не скролится. На месте стоит форма и все 

проверил на Вашем сайте оперой- все ок- опера 7.50

winnie ничего не изменилось после замены функции

хм.. вообще то на иксбт точно такой же код.. но ИЭ не реагирует на него.. в опере все ок- скроллинг плавный

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

  • 3 недели спустя...

В версии 2.0.1 не работает :D

 

Эксплорер ругается на

function emo_pop()

{

window.open('index.{ipb.vars['php_ext']}?act=legends&CODE=emoticons&s={ipb.session_id}','Legends',& #39;width=250,height=500,resizable=yes,scrollbars=

yes');

}

Char 75 Syntax error (это #39)

 

и ниже

 

на

//doFloatLink();

if(canFloat) {

 

canFloat is undefined

 

хотя выше обьявление вроде есть....

 

Вот ;)

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

все работает, стоит на нескольких форумах, проверяйте правильность кода у себя..

function emo_pop() это вообще то функция стандартная - для окошка смайлов

Добавлено в [mergetime]1098269398[/mergetime]

да и здесь

 window.open('index.{ipb.vars['php_ext']}?act=legends&CODE=emoticons&s={ipb.session_id}','Legends',& #39;width=250,height=500,resizable=yes,scrollbars=

yes');

вместо & #39; должна все же быть кавычка одинарная :D

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

Уря :D помогло...

Едем дальше.....

Не определен selectlist3 , смотрим в исходник - действительно не определен...

Хотя в global_board_footer

строчки

<table width='100%' cellspacing='0' cellpadding='4' border='0' class='catend'>

<tr id='selectlist3'>

 

есть... а в исходнике их нет....

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

а в конечном хтмле выводится вот это?

<table width='100%' cellspacing='0' cellpadding='4' border='0' class='catend'>
<tr id='selectlist3'>

если нет то уберите нафих из ява скрипта строчки с selectlist3

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

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

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

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

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

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

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

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

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

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

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

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