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

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


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

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

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

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

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

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

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

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

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

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

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

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

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