![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
Итак, покопался в скриптах.
В тестовом режиме добавил следующие возможности: 1. Обратите внимание в постах, рядом с вашими никами и аватарами теперь две новых ссылки: "Вставить ник" и "Цитата". При клике на п. "Вставить ник" внизу автоматически открывается окно быстрого ответа, куда вставляется никнейм пользователя, выделенный жирным. Также, если вы выделите какую то часть сообщения пользователя и нажмете на ссылку "Цитата", то сообщение будет процитировано внизу в форме быстрого ответа. Что это все означает? Офигенную экономию времени, лишних движений и снижение нагрузки на форум. Фактически вам не нужно кликать на ссылку "Ответить", а приступить к постингу сразу, не покидая страницу. К тому же решена пресловутая проблема с мультицитированием. 2. Обратите внимание, над списком пользователей появился пункт - "Обновить список", при клике на которой произойдет обновление списка пользователей онлайн, без перезагрузки страницы. Реализовано с помощью технологии AJAX. Можно было, конечно, сделать так, чтобы список обновлялся динамически, без клика по пункту "Обновить...", но это создало бы нагрузку на сервер. 3. По умолчанию в личных сообщениях теперь доступна полноценная форма ответа. Теперь чатится в ЛС будет проще и опять же, не надо лишний раз грузить страницу, чтобы написать ответ. Проверьте свои ящики, обнаружите нововведение. 4. Немногим известно, что существует облегченная, текстовая версия форума по адресу - http://www.pickupforum.com/lofiversion/ . Как видите, это версия без баннеров, графики и прочих перегруженных элементов. Например таким образом удобно смотреть форум с телефона. Но была одна проблема - смотреть форум можно, а отвечать в темах нельзя. Так вот, теперь такая возомжность появилась. Теперь вы можете постить на форум со своих мобильников, не растрачивая трафик. 5. Теперь можно постить видео. Ура:) Видео интерпретируется автоматически. Т.е. вы просто пишите в сообщении ссылку на видео и движок форума автоматом будет рисовать окошко. Поддерживаются следующие сервисы: rutube.ru video.mail.ru smotri.com ukrtube.com.ua video.bigmir.net video.online.ua www.u-tube.ru kiwi.kz youtube.com vimeo.com Но вот в некоторых случаях может потребоваться заключение ссылки на видео в теги media youtube.com video.yandex.ru Обращаю внимание, что введение новых функций частенько означает введение новых багов и глюков. Так что если у вас что-то заработает не так, появятся непонятные куски кода или произойдет что то еще, отписывайтесь. -------------------- |
|
|
![]() |
![]()
Сообщение
#21
|
|
![]() Постоялец ![]() ![]() ![]() Группа: Форумчанин Сообщений: 430 Регистрация: 2.5.2010 Вставить ник Цитата Пользователь №: 1006257 Страна: ![]() Пол: ![]() ![]() |
Вот код Это ж стандартное формирование вывода на РНР, вызова функций, которые занимаются непосредственно вставкой (определение copyQ() и ins() ) тут нет =) Ланенько, чуть позже, когда освобожусь, вытащу скрипт из документа и посмотрю. Интересует меня не формирование вызова функций, а их определение и описание. чтобы он подгружал работающую функцию при определении USER-Agent пользователя Надеюсь имелось в виду на клиентской стороне? Тогда мы не подгружаем разные функции, а всего лишь меняем поведение единственной. Сообщение отредактировал Аpple - 26.10.2010, 13:06 |
|
|
![]()
Сообщение
#22
|
|
![]() Постоялец ![]() ![]() ![]() Группа: Форумчанин Сообщений: 430 Регистрация: 2.5.2010 Вставить ник Цитата Пользователь №: 1006257 Страна: ![]() Пол: ![]() ![]() |
Покопал.
Не зря говорят "It's easy to optimize correct code, than correct optimized one". Ждем-с код, в котором определены все функции, отвечающие за цитирование и вставку. Сообщение отредактировал Аpple - 26.10.2010, 15:07 |
|
|
![]()
Сообщение
#23
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
Вот код Это ж стандартное формирование вывода на РНР, вызова функций, которые занимаются непосредственно вставкой (определение copyQ() и ins() ) тут нет =) Ланенько, чуть позже, когда освобожусь, вытащу скрипт из документа и посмотрю. Интересует меня не формирование вызова функций, а их определение и описание. чтобы он подгружал работающую функцию при определении USER-Agent пользователя Надеюсь имелось в виду на клиентской стороне? Тогда мы не подгружаем разные функции, а всего лишь меняем поведение единственной. if Chrome { код } А вот и используемый код: Код function ins(name) { my_show_div(my_getbyid('qr_open')); if (document.REPLIER.Post) { var input=document.REPLIER.Post; input.value=input.value+"[b]"+name+"[/b]"+" \n" } } function copyQ(qinf,date,pid) { txt=''; if (document.getSelection) { txt=document.getSelection(); } else if (document.selection) { txt=document.selection.createRange().text; } if (txt.replace(" ","") != "") { txt='[quote name=\''+qinf+'\' date=\''+date+'\' post='+pid+']\n'+txt+'\n[/quote]\n'; } } function pasteQ() { my_show_div(my_getbyid('qr_open')); if (document.REPLIER.Post) document.REPLIER.Post.value += txt; } -------------------- |
|
|
![]()
Сообщение
#24
|
|
![]() Постоялец ![]() ![]() ![]() Группа: Форумчанин Сообщений: 430 Регистрация: 2.5.2010 Вставить ник Цитата Пользователь №: 1006257 Страна: ![]() Пол: ![]() ![]() |
Значит так-с, говорю по коду, который выложен выше, БЕЗ проверок.
Т.е чисто по памяти и по знаниям (если вдруг ошибся - значит херово). Мне конечно не дано понять суть разделения одного функционала на две разные функции, ну да ладно. В Хроме не срабатывает последний кусок кода. Я ПОЛАГАЮ из-за того, что не происходит неявного преобразования типа к строковому объекту. getSelection возвращает, насколько я помню, не ТЕКСТ, а объект, в котором содержится информация об элементе, тип и др., включая метод toString. Попробую набросать свой вариант быстренько (опечатки могут быть, т.к пишу прям на форуме): Код window.quoteSelection; function ins(name) { var fastReply = document.getElementById("fast-reply_textarea"); if(typeof(fastReply) != "undefined") { fastReply.value += '\r\n[b]' + name + '[/b]\r\n'; } } function copyQ(qinf, date, pid) { if(document.getSelection()) { window.quoteSelection = document.getSelection().toString(); } else window.quoteSelection = document.selection.createRange().text; window.quoteSelection = '\r\n[quote name="'+qinf+'" post="'+pid+'" date="'+date+'"]' + window.quoteSelection + '[/quote]\r\n'; } function pasteQ() { var fastReply = document.getElementById("fast-reply_textarea"); if(typeof(fastReply) != "undefined") { fastReply.value += window.quoteSelection; } } Хотя лично я не вижу смысла в разделении copyQ и pasteQ. И плавающее окошко, ИМХО, удобней =)) |
|
|
![]()
Сообщение
#25
|
|
![]() Постоялец ![]() ![]() ![]() Группа: Форумчанин Сообщений: 430 Регистрация: 2.5.2010 Вставить ник Цитата Пользователь №: 1006257 Страна: ![]() Пол: ![]() ![]() |
*ушел на вечерний пикап*
Ыыы =)) |
|
|
![]()
Сообщение
#26
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
Ладно, попробую потестить:)
-------------------- |
|
|
![]()
Сообщение
#27
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
Плавающее окошко, кстати, поставлю :)
-------------------- |
|
|
![]()
Сообщение
#28
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
В Хроме заработало :) В остальных перестало :)
Но не без глюков и в Хроме. Например если цитировать текст, то он Код [quote=...][/quote] не инсертит. -------------------- |
|
|
![]()
Сообщение
#29
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
окошко поставил :)
-------------------- |
|
|
![]()
Сообщение
#30
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
...которое не работает в Огнелисе и Хроме
Код: Цитата function qr_float( status )
{ if ( status == 1 ) { document.getElementById('fast-reply-controls').className='rte-buttonbar-float'; document.getElementById('qr_options').style.display='none'; document.getElementById('qr_flink').innerHTML='<a href="java script:qr_float(0);">нормальное окно ответа</a>'; } else { document.getElementById('fast-reply-controls').className='rte-buttonbar'; document.getElementById('qr_options').style.display=''; document.getElementById('qr_flink').innerHTML='<a href="java script:qr_float(1);">«плавающее» окно ответа</a>'; document.REPLIER.Post.focus(); } } -------------------- |
|
|
![]()
Сообщение
#31
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
форма заработала в Файфокс, thanks to Гней Попмей :)
-------------------- |
|
|
![]()
Сообщение
#32
|
|
![]() Постоялец ![]() ![]() ![]() Группа: Форумчанин Сообщений: 430 Регистрация: 2.5.2010 Вставить ник Цитата Пользователь №: 1006257 Страна: ![]() Пол: ![]() ![]() |
Попробовал переписать код.
Да, Сафари меня жестоко поимел, но в хроме, увы, багов не было. Код: Код function insertQuote() { var quoteArea = document.getElementById("fast-reply_textarea"); var quoteSelected; if(document.getSelection) { quoteSelected = document.getSelection().toString(); } else if(document.selection && document.selection.createRange) { quoteSelected = document.selection.createRange().text; } else { quoteSelected = window.getSelection().toString(); } quoteArea.value += '[quote]' + quoteSelected + '[/quote]\r\n'; } Проверен: 1. IE 6+ 2. Safari 3+ 3. Firefox 4. Chrome 5. Opera Никаких ошибок, включая правильную вставку тегов цитаты. Если не будет работать - ей богу не знаю, уволить тогда меня надо =) Сообщение отредактировал Аpple - 26.10.2010, 23:33 |
|
|
![]()
Сообщение
#33
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
Отлично! Немного усовершенствуем, и переименуем функцию, чтобы в шаблонах имя не менять:
Код function ins(name)
{ my_show_div(my_getbyid('qr_open')); if (document.REPLIER.Post) { var input=document.REPLIER.Post; input.value=input.value+"[b]"+name+"[/b]"+" \n" } } function copyQ(qinf,date,pid) { var quoteArea = document.getElementById("fast-reply_textarea"); var quoteSelected; if(document.getSelection) { quoteSelected = document.getSelection().toString(); } else if(document.selection && document.selection.createRange) { quoteSelected = document.selection.createRange().text; } else { quoteSelected = window.getSelection().toString(); } quoteArea.value += '[quote name=\''+qinf+'\' date=\''+date+'\' post='+pid+']' + quoteSelected + '[/quote]\r\n'; } function pasteQ() { my_show_div(my_getbyid('qr_open')); if (document.REPLIER.Post) document.REPLIER.Post.value += txt; } -------------------- |
|
|
![]()
Сообщение
#34
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
...ну и заменим код немного:
Код if ( $poster['id'] ) { $poster['_members_display_name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['members_display_name_short']}</a>"; $poster['ins_nick'] = "<a href=\"java script:ins('".str_replace(array(" ", "'"), array(" ", "\'"), $poster['members_display_name'] )."')\">Вставить ник</a>"; } $qqn = str_replace( array(" ", "& #39;"), array(" ", "\'"), $poster['members_display_name'] ); $poster['ins_q'] = "<a onClick=\"copyQ('{$qqn}','{$row['q_date']}', '{$row['pid']}');\" href=\"java script:pasteQ();\">Цитата</a>"; вместо onmouseover, вставим onClick, так как Хром при наведении начинает автоматом вставлять текст в окно ввода:) Apple, огромное спасибо!!! -------------------- |
|
|
![]()
Сообщение
#35
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
Итак, подытожим.
Благодаря кодерскому гуру Apple (фанфары и благодарности) стала во всех популярных браузерах работать функция Вставки ника и Быстрой Цитаты. Фактически, не нужно теперь жать Ответить, а сразу приступать к постингу... тем более, что в "Быстром ответе" теперь доступно плавающее окошко... которое, правда, в Хроме работать отказывается. Пару фишек еще обязательно добавлю и обновлю первый пост. -------------------- |
|
|
![]()
Сообщение
#36
|
|
![]() Постоялец ![]() ![]() ![]() Группа: Форумчанин Сообщений: 430 Регистрация: 2.5.2010 Вставить ник Цитата Пользователь №: 1006257 Страна: ![]() Пол: ![]() ![]() |
|
|
|
![]()
Сообщение
#37
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
Код <script type="text/javascript"> <!-- document.onkeydown=function(e){ if (e) event=e if ((event.keyCode==13)&&(event.ctrlKey)){ try{ if (e){ document.REPLIER.submit.click(); } }catch(e){}; }} --> </script> Добавил отправку сообщений по CTRL+Enter при быстром ответе -------------------- |
|
|
![]()
Сообщение
#38
|
|
![]() You look like the sun ![]() Группа: Супер Гуру Сообщений: 5430 Регистрация: 5.7.2007 Вставить ник Цитата Из: Москва Пользователь №: 3998 Страна: ![]() Пол: ![]() ![]() |
Надо будет глянуть обязательно. Уже работает. Там из за одного пункта не работало ни в Огнелисе, ни в Хроме. -------------------- |
|
|
![]()
Сообщение
#39
|
|
![]() Хентайщик ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Выпускник ARDOR Сообщений: 2505 Регистрация: 19.4.2005 Вставить ник Цитата Из: Москва Пользователь №: 936 Страна: ![]() Пол: ![]() ![]() |
4. Немногим известно, что существует облегченная, текстовая версия форума по адресу - http://www.pickupforum.com/lofiversion/ . Как видите, это версия без баннеров, графики и прочих перегруженных элементов. Например таким образом удобно смотреть форум с телефона. Но была одна проблема - смотреть форум можно, а отвечать в темах нельзя. Так вот, теперь такая возомжность появилась. Теперь вы можете постить на форум со своих мобильников, не растрачивая трафик. УРА! Но с моего мобильника не работает. Samsung S5620. |
|
|
![]()
Сообщение
#40
|
|
![]() Композитор Тьмы и Света ![]() Группа: Супер Гуру Сообщений: 10605 Регистрация: 7.11.2007 Вставить ник Цитата Из: Москва Пользователь №: 4420 Страна: ![]() Пол: ![]() ![]() |
я вас прошу - добавьте ироничный смайлик. его пипец как не хватает на этом форуме
![]() -------------------- Если не знаешь, что делать дальше - делай дальше.
Жизнь - это повесть глупца, рассказанная идиотом, полная шума и ярости, но лишенная смысла. У. Шекспир |
|
|
![]() ![]() |
![]() |
Текстовая версия Архив форума | Сейчас: 24.5.2025, 1:32 |
![]() |
![]() |