Модераторы: 2man
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрая цитата на IPB 1.3, Как реализовать 
:(
    Опции темы
Jey_k
Дата 12.10.2005, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: нет
Всего: 61



Насколько я понимаю, сам процесс быстрой цитаты реализован на JavaScript, но хотелось бы знать в каком файле находится сам блок построения поста и как в нем получить все данные для передачи JavaScript. Команду цитирования если можно тоже хотелось бы увидеть.

Это сообщение отредактировал(а) Jey_k - 12.10.2005, 19:27


--------------------
PM MAIL WWW   Вверх
Mal Hack
Дата 12.10.2005, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



PM ICQ   Вверх
2man
Дата 14.10.2005, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: 15
Всего: 71



Это не совсем то, что Jey_k просит. Вот то, что тебе надо:
1. Открываем файл */skin/s*/skin_topic.php
Ищем строку с кнопками:
Код

<!-- REPORT / DELETE / EDIT / QUOTE DIV -->

        <div align='right'>
        {$post['report_link']}{$post['delete_button']}{$post['edit_button']}<a href='{$ibforums->base_url}act=Post&amp;CODE=06&amp;f={$ibforums->input[f]}&amp;t={$ibforums->input[t]}&amp;p={$post['pid']}'><{P_QUOTE}></a>

Вставляем свою кнопку быстрой цитаты в любое место, куда захотим:
Код

<!-- REPORT / DELETE / EDIT / QUOTE DIV -->

        <div align='right'>
        {$post['report_link']}{$post['delete_button']}{$post['edit_button']}<a onmouseover="InsertQuote.prepare();" href="javascript:InsertQuote('{$post['name']}', '{$post['post_date']}', '{$post['pid']}');"><img src="{$ibforums->vars['img_url']}/p_quick_quote.gif" alt="Быстрая цитата" width="111" heigth="20" /></a><a href='{$ibforums->base_url}act=Post&amp;CODE=06&amp;f={$ibforums->input[f]}&amp;t={$ibforums->input[t]}&amp;p={$post['pid']}'><{P_QUOTE}></a>

Далее ищем стиль поста:
Код

<td width='100%' valign='top' class='{$post['post_css']}'>
        <!-- THE POST {$post['pid']} -->

Добавляем id поста:
Код

<td colspan='2' width='100%' valign='top' class='{$post['post_css']}' id='{$post['pid']}'>
        <!-- THE POST {$post['pid']} -->
<div class='postcolor'><font color='#{$author['field_2']}'>{$post['post']}{$post['attachment']}</font></div>
        {$post['signature']}
        <!-- THE POST -->

Далее открываем файл */html/quote.js.
Если стоит хак вставки ника в форму быстрого ответа, то после

Код

function ins(name){
if (document.REPLIER) {
var input=document.REPLIER.Post;
input.value=input.value+"[b]"+name+"[/b]"+" \n";
}
}

все удаляем и добавляем:
Код

function paste(text, o){
if (document.REPLIER) {
if ((document.selection)&&(o)) {
        document.REPLIER.Post.focus();
        document.REPLIER.document.selection.createRange().text = text;
} else document.REPLIER.Post.value += text;
}
}

InsertQuote.prepare=function() {
  if(document.getSelection) {
    if(typeof(window.getSelection)!="undefined") InsertQuote.selection=window.getSelection();
    else InsertQuote.selection=document.getSelection();
  } else InsertQuote.selection=document.selection.createRange().text;
 }

function InsertQuote(nick, datetime, postid) { //k,r,s
    if(InsertQuote.selection.toString().length>0)  { //если селекция была
      var pst=document.getElementById(postid), sl="";
      var uct = (typeof(pst.innerText)!="undefined")? pst.innerText: (typeof(pst.textContent)!="undefined")? pst.textContent: "";
      if(n6||window.opera) {//небольшой патчь для оперы
        uct=extractRus(uct);
        sl=extractRus(InsertQuote.selection.toString());
      } else sl=InsertQuote.selection.toString();
      //проверим являеться ли отселектированный текст чатью поста участника
      if(uct.indexOf(sl)<0) {alert("Вы нажали на кнопку цитаты другого участника");return;}
      //вставим пост
      paste(((document.REPLIER.Post.length)? "\n": "")+"[quote"+(nick?("="+nick+", "+datetime):"")+"]\n"+(InsertQuote.selection.toString())+"\n[/quote]\n", true);

    }
}

//патчь
function extractRus(txt){
  var h=[], v=0;
  function fltr(l){ return ((l>=1072&&l<=1103)||(l>=1040&&l<=1071)); }
  for(var i=0, e; i<txt.length; i++) {
    if(fltr(txt.charCodeAt(i))){
      for(e=i+1; e<txt.length&&fltr(txt.charCodeAt(e)); ++e);
      h.push(txt.substring(i,e));
      i=e;
    }
  }
 return h.join('');
}

Можно конечно и другими средствами яваскрипта это сделать, но так как написано выше, так и реализовано на Винградеsmile


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
Jey_k
Дата 15.10.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: нет
Всего: 61



2man
В Опере к сожалению не работает в осле пашет. Хотя винградовска быстрая цитата у меня в опере пашет.
Я делал до этого просто быструю цитату без ника и даты вот так:
Код

<a class=tpc title='быстрая цитата'  onmouseover="get_selection();" href="javascript:Insert(selection);">::Быстрая цитата::</a>


В опере работала.

Это сообщение отредактировал(а) Jey_k - 15.10.2005, 16:55


--------------------
PM MAIL WWW   Вверх
Jey_k
Дата 15.10.2005, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: нет
Всего: 61



2man

Усё. Разобрался. Из quote.js удалять все не надо. Там собстно функции GetSelection и Paste. Странно почему в осле пахало... Теперь в опере пашет и в осле тоже. Пасиб!!!


--------------------
PM MAIL WWW   Вверх
Bog d`An
Дата 26.5.2006, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Цитата(2man @  14.10.2005,  23:31 Найти цитируемый пост)
Можно конечно и другими средствами яваскрипта это сделать, но так как написано выше, так и реализовано на Винграде

Скрипт быстрой цитаты на винграде по прежнему тот же?  

"найти цитируемый пост" в него включено или как? И как реализовано? 

Это сообщение отредактировал(а) Bog d`An - 26.5.2006, 06:27
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
2man
Дата 27.5.2006, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: 15
Всего: 71



Цитата(Bog d`An @  26.5.2006,  06:22 Найти цитируемый пост)
Скрипт быстрой цитаты на винграде по прежнему тот же?

В принципе да

Цитата(Bog d`An @  26.5.2006,  06:22 Найти цитируемый пост)
"найти цитируемый пост" в него включено или как?

Тут надо обрабатывать тег [snapback] 


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
Bog d`An
Дата 27.5.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Можно узнать как? ;) и разжевать так же, какк и про цитату... А ещё лучше - может привести то, как реализовано сейчас smile ? 
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
2man
Дата 27.5.2006, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: 15
Всего: 71



Цитата(Bog d`An @  27.5.2006,  11:10 Найти цитируемый пост)
Можно узнать как? ;) и разжевать так же, какк и про цитату... 

Собственно все уже изложено в этой теме в этом посте

Цитата(Bog d`An @  27.5.2006,  11:10 Найти цитируемый пост)
А ещё лучше - может привести то, как реализовано сейчас  ?  

Каждый делает по своему. Как сделано здесь, я не смотрел. 
Я делал так:
Код

// Выборка селекции БЫСТРАЯ ЦИТАТА
function copyQ()
{
        window.txt='';
        if (document.getSelection)
        {
                window.txt=document.getSelection()
        }
        else if (document.selection)
        {
                window.txt=document.selection.createRange().text;
        }
}
// вставка
function pasteQ(name,datetime,postid)
{
 if(document.REPLIER.Post)
 if (window.txt.replace(" ","") != "")
        {
               document.REPLIER.Post.value +='[quote='+name+', '+datetime+'][snapback]'+postid+'[/snapback]'+window.txt+'[/quote]\n'
        }

}

+
skin_topic.php
Код

<div align="right">
                         {$post['delete_button']}{$post['edit_button']}<a onmouseover="copyQ();" href="javascript:pasteQ('{$post['name']}', '{$post['post_date']}', '{$post['pid']}');" title='{ipb.lang['tt_reply_to_post']}'><{P_QUOTE}></a><a href="javascript:scroll(0,0);"><{P_UP}></a>

                 </div>

Вот собственно и все smile 


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
Bog d`An
Дата 29.5.2006, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Цитата(2man @  27.5.2006,  01:34 Найти цитируемый пост)
Цитата(Bog d`An @  26.5.2006,  06:22 Найти цитируемый пост)
"найти цитируемый пост" в него включено или как?

Тут надо обрабатывать тег [snapback]  


можно поподробнее? Или стоит в отдельную тему вынести? 
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
Bog d`An
Дата 29.5.2006, 05:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



QUOTE (Bog d`An @ Май 29 2006, 01:28 AM)

QUOTE (Bog d`An @ Май 18 2006, 07:39 AM, 73)

Вот такое получается... Первая - это после стандартной цитаты...
По этому делу нашел вот такое:
Код

<tr>
  <td colspan="2" class='pformstrip'>{ibf.lang.post_to_quote}</td>
</tr>
<tr>
  <td class='pformleft'>{ibf.lang.post_to_quote_txt}</td>
  <td class='pformright'><textarea cols='60' rows='12' wrap='soft' name='QPost' class='textinput'>{$data['post']}</textarea><input type='hidden' name='QAuthor' value='{$data['author_id']}' /><input type='hidden' name='QAuthorN' value='{$data['author_name']}' /><input type='hidden' name='QDate'   value='{$data['post_date']}' /></td>
</tr>

Это то что надо менять, для добавления номера поста или нет? 
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
2man
Дата 3.6.2006, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: 15
Всего: 71



Откуда ты это код вообще нарыл и к чему он здесь?
Изменения надо делать в файле JS. Поэтому если у тебя, цитата получилась вида:
QUOTE (Bog d`An @ Май 18 2006, 07:39 AM, 73)
значит последний атрибут - id поста (pid). Вот и экспериментируй, вставляй в разные места, зашей под него картинку и т.д. 


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие движки / фрейморки | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.