Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

Форум на все случаи жизни _ Invision Power Board _ цитата выделенного на 1.3

Автор: Schum 17.05.2007 - 15:19

Столкнулся с проблемой на ipv 1.3 final rus, пользователи требуют сделать цитирование выделенного.
Т.е. они выделяю мышой и кликаю на ссылку цитировать, и цитата появляется в окне быстрого ответа внизу. Как сделать не подскажете? есть в 1.3 такая функция? или нада мод ставить?

нашел у человека на форуме ссылку для цитирования выделенного
java script:InsertName(selection,'username')

Автор: Starichok Che 17.05.2007 - 17:49

Так в нашей сборке это есть. Это мод.

Цитата
8. Красивая графическая форма быстрого ответа с возможностью вставки имени в форму ответа при нажатии на имя и функциия быстрой цитаты с помощью выделения цитируемого текста.

Автор: Schum 17.05.2007 - 18:03

Где это? хоть убей не вижу!
мэйби я слеп!сборка действительно ваша
http://obse.net.ru/forum

Автор: Schum 17.05.2007 - 18:19

Нашел =))))
а не подскажите как сделать чтоб там еще и имя пользователя видно было?
есть вариант под каждым сообщением написать ссылку, выделил и кликнул, и появилось имя пользователя!
конечно можно выделить текст и кликнуть у другого юзера.... но всетаки с именем лучше.

да кста, в опере не работает, а хотелосьбы =(

Автор: Starichok Che 17.05.2007 - 18:21

Schum - ищите. Всё есть.

Автор: Schum 17.05.2007 - 18:49

Код
/////////////////////////////////////////////////
// Мод быстрой цитаты со вставкой ника и даты
// By Paul Grabar (mega-forum.net.ru)
/////////////////////////////////////////////////

Редактируемые файлы:
1. */html/quote.js
2. */skin/s*/skin_topic.php

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="CopyQuote();" href='java script:PasteQuote('{$post['name']}', '{$post['post_date']}', '{$post['pid']}');' title='{ipb.lang['tt_reply_to_post']}'><{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 -->

2. Далее открываем файл */html/quote.js.

В конец файла добавляем:

// Quick quote by 2man
function CopyQuote()
{
        window.txt='';
        if (document.getSelection)
        {
                window.txt=document.getSelection()
        }
        else if (document.selection)
        {
                window.txt=document.selection.createRange().text;
        }
}
function PasteQuote(name,datetime,postid)
{
if(document.REPLIER.Post)
if (window.txt.replace(" ","") != "")
        {
               document.REPLIER.Post.value +='[quote='+name+', '+datetime+']\n'+window.txt+'\n[/quote]\n'
        }
}  
// Quick quote by 2man

Все вопросы писать тут: http://www.mega-forum.net.ru/index.php?showforum=28

Все установка закончена;)


нашел такое, установил и нифига не работает wacko.gif

так почему в опере не работает "НАЖМИТЕ СЮДА" ?

Автор: Starichok Che 18.05.2007 - 08:41

С Вами всё ясно. Опера НЕКОРРЕКТНО работает с IPB. Нечего было ставить этот мод. Есть же уже в нашей сборке подобный. Работайте не в Опере, а в Мозилле или ИЕ.

Автор: FatCat 10.07.2007 - 22:31

Однакож можно сделать, чтобы выделенный текст цитировался с отображением ника и времени цитирования, и чтобы в Опере тоже работало.

Для 1.х сделал довольно давно, описание на ibresource.ru продублирую:

Цитата(FatCat @ 17.3.2007, 0:14) *

В 1.3 справа под каждым сообщением висит кнопочка скролинга к началу страницы, вот такая: [img]http://www.medicinform.ru/style_images/1/p_up.gif[/img]
В вобле на ее месте кнопочка быстрой цитаты, о-о-о-очень удобная.
Решил я кнопочку перевернуть, сделать вот такой: [img]http://vesvalo.net/style_images/1/p_up.gif[/img]
А на кнопочку повесить "быструю цитату" - чтобы не только текст цитировала, но, как при самой настоящей цитате, вводила и имя автора, и дату-время цитируемого сообщения.

Для этого модифицированы файлы:

html/quote.js
добавляю функцию:
Код
function Insertranged(text,autorpost,datapost){
if (text!="") paste("[quote="+autorpost+","+datapost+"]"+text+"[/quote]\n", 1);
}


sources/Topics.php
У меня модифицированный форум, который по клику на имя постера вставляет имя в быстрый ответ.
Закомментировал строку:
Код
$poster['name']="<a href=\"java script:ins('{$poster['name']}')\">{$poster['name']}</a>";

Гиперлинк вынес позже в скиновой файл.

У кого по клику на имя постера открывается профиль, нужно будет найти строку
Код
$poster['name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['name']}</a>";
и заменить на
Код
$poster['name']=str_replace(" ", " ", $poster['name']);
а гиперлинк вынести в скин, это я не делал.

skin_topic.php
Найти:
Код
<a href='java script:scroll(0,0);'><img src='{$ibforums->vars['img_url']}/p_up.gif' alt='Top' border='0' /></a>
Заменить на:
Код
<a href="java script:Insertranged(selection,'{$author['name']}','{$post['post_date']}')" onMouseOver="get_selection()" title="Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда"><img src='{$ibforums->vars['img_url']}/p_up.gif' alt='Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда' border='0' /></a>


Для восстановления функции вставки имени в быстрый ответ по клику на имени над сообщением, найти:
Код
<td align='center' valign='middle' class='row4' width="1%"><a name='entry{$post['pid']}'></a><span class='{$post['name_css']}'>{$author['name']}</span></td>


Заменить на:
Код
<td align='center' valign='middle' class='row4' width="1%"><a name='entry{$post['pid']}'></a><span class='{$post['name_css']}'><a href="java script:ins('{$author['name']}')">{$author['name']}</a></span></td>



__________________________
UPD 18.03.07:
Подправил код, чтобы при вставке цитаты страница сама проматывалась к форме быстрого ответа.
Замеченные баги: теперь кликабельными стали не только имена зарегистрированных пользователей, но и имена гостей. Лично мне так даже больше нравится.


В действии посмотреть можно на vesvalo.net (большая просьба не постить тестов).

Автор: Schum 24.07.2007 - 17:02

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

ваше

Код
<a href="java script:Insertranged(selection,'{$author['name']}','{$post['post_date']}')" onMouseOver="get_selection()" title="Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда"><img src='{$ibforums->vars['img_url']}/p_up.gif' alt='Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда' border='0' /></a>


земенил на
Код
<a href="java script:Insertranged(selection,'{$post['name']}','{$post['post_date']}')" onMouseOver="get_selection()" title="Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда"><img src='{$ibforums->vars['img_url']}/p_up.gif' alt='Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда' border='0' /></a>


и не нада никаких больше дествий выполнять, кроме разумеется добавления функции в html/quote.js

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)