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

Вставка ника + цитата в форме быстрого ответа


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

Не пойму по чему но у меня не работает мод, пробовал и включать и выключать ничего ен просиходит.

пробовал на Опере 10 и на ИЕ 7. обновлял и ничего не происходило. ставил оба мода из первого поста. http://www.delicaclub.ru/forum/index.php

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

  • Ответы 294
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Не знаю насколько корректно или нет, но по клику в форму быстрого ответа попадает значение поля "name" из таблицы ibf_members.

У многих форумы старые с кучей старых пользователей, не знаю в какой версии это появилось, но в 3-ке точно есть возможность изменять отображаемое имя на форуме.

У меня по дефолту при достижении 500 постов пользователь может сменить ник.

Так вот когда кликаю на кнопку "Ник в форму быстрого ответа" туда как я писал попадает значение из name, т.е. первый ник который был при регистрации.

У себя я пока вручную в файле fastReplyNickQuote_лалала.php в 20-ой строке сделал так:

$nick = addslashes($author["members_display_name"]);

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

Так вот когда кликаю на кнопку "Ник в форму быстрого ответа" туда как я писал попадает значение из name, т.е. первый ник который был при регистрации.

У себя я пока вручную в файле fastReplyNickQuote_лалала.php в 20-ой строке сделал так:

$nick = addslashes($author["members_display_name"]);

 

И что - у вас получилось ?

У меня так не выходит, о чем я писал выше здесь

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

  • 2 недели спустя...
Ritsuka, может пока, если особо не затруднит, добавите возможность выбора, что вставлять - отображаемый ник или логин?

 

http://ritsuka.ru/post/253106849

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

Обновил оппост и вынес ссылку на актуальную версию.

 

Исправлена проблема с раскрашенными никами. Исправлена проблема с разными ником и отображаемым именем.

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

В новой версии:

post-75890-1259956507_thumb.jpg

 

Чтобы получить новую версию на тестирование, свяжитесь лично.

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

Ritsuka, что-то у меня какая то проблема.

 

Форум на локалке. Был переведён с IPB 2.3.6 > 3.0.4

 

Кодировка БД: UTF-8

Сравнение: utf8_unicode_ci

 

Работает ВСЁ, кроме вставки выделенного фрагмента сообщения в быстрый ответ. Выдаёт такие две ошибки:

 

Ошибка: pmInfo is null

Источник: http://cyber-systems2.org/public/min/index...e/1/ipb.lang.js

Строка: 512

 

Ошибка: prm_2 is not defined

Источник: http://cyber-systems2.org/index.php?/topic...amp;#entry96121

Строка: 461

 

Не знаешь в чём может быть проблема?

 

Я уже всю голову изломал себе. :D

 

Причём на чисто поставленном форуме всё работает. На обновлённом - нефига.

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

idTails, это потому, что я пытаюсь выбирать к цитате посредством JavaScript дополнительные данные - автор поста, дата-поста, номер сообщения... Посмотри внимательно на функцию:

 

function _get_quote_text_from_pid (id) {

post = document.getElementById("post_id_"+id);

rows = post.getElementsByTagName('a');
for( var i = 0, row; row = rows[i]; i++ )
	if (row.className == 'url fn')
		prm_0 = row.innerHTML.replace(/<\/?[^>]+(>|$)/g, "");

rows = post.getElementsByTagName('abbr');
for( var i = 0, row; row = rows[i]; i++ )
	if (row.className == 'published')
		prm_1 = row.innerHTML;

rows = post.getElementsByTagName('div');
for( var i = 0, row; row = rows[i]; i++ )
	if (row.className == 'post entry-content')
		prm_2 = row;

if(!prm_0 || !prm_1 || !prm_2)
{
	alert("Error: non-standart skin used! Can't find post data.");
	return;
}

var txt = '';

if (window.getSelection)
{
	//Safari
	txt = window.getSelection();
}
else if (document.getSelection)
{
	//Firefox
	txt = document.getSelection();
}
else if (document.selection)
{
	txt = document.selection.createRange().text;
	document.selection.clear();
}

if(txt == ''){
	if (document.selection) {
		var range = document.body.createTextRange();
		range.moveToElementText(prm_2);
		range.select();
		txt = document.getSelection();
	} else if (window.getSelection) {
		var range = document.createRange();
		range.selectNode(prm_2);
		window.getSelection().addRange(range);
		txt = window.getSelection();
	}			
}

if(USE_RTE)
	quote_text = document.getElementById("tmpl_quote_rte").value;
else
	quote_text = document.getElementById("tmpl_quote_nor").value;

quote_text = quote_text.replace(/{name}/, prm_0);
quote_text = quote_text.replace(/{date}/, prm_1);
quote_text = quote_text.replace(/{post}/, id);
quote_text = quote_text.replace(/{quote}/, txt);

var sel;
if (document.selection && document.selection.empty) 
  document.selection.empty();
else if(window.getSelection) 
{
  sel=window.getSelection();
  if(sel && sel.removeAllRanges)
	   sel.removeAllRanges();
}

return quote_text;
}

 

Она достаточно громоздкая и неаккуратная и выбирает данные для вставки путем прохода по дереву элементов на странице.

 

Ошибка: prm_2 is not defined

Значит, не может найти div с классом "post entry-content". В стандартной теме он есть, в вашей новой его, по видимому, нет... Собственно, отсюда два пути решения - либо внести в тему, либо подправить эту функцию.

 

Для первых версий хука после установки функция лежит в /hooks/fastReplyNickQuoteScript_*.php, для последних - отдельным файлом в /public/js/ritsu.nice_userinfo.js.

 

В данный момент в очередной раз переписываю модуль:

- быструю цитату хочу реализовать через Ajax-запрос, чтобы вставлялись именно коды, а не текст цитируемого сообщения,

- немного исправляю довольно неуклюжую реализацию мультиаватаров (много ненужных запросов к БД).

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

Нет. Я читал самую первую тему по твоему моду, где ты говорил, что нужен стандартный стиль. У меня стандартный стиль, и див этот там имеется:

<div class="post entry-content " id="">
					<!--cached-Thu, 10 Dec 2009 04:17:05 +0000-->Уважаемые пользователи.<br/>
<br/>
Наш портал работает в тестовом режиме. Тестируются функции и идёт переход на новую версию движка.<br/>
<br/>
Время от времени, портал будет становится недоступным, потому что идёт постепенное обновление Базы Данных.<br/>
<br/>
Просим отнестись с пониманием. Приносим извинения за временные неудобства.

					<br/>

				</div>

 

Не работает как данная версия, так и более новая с мультиаватарами.

Я и сам не могу понять, почему такое происхдит.

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

Ritsuka, я нашёл ошибку!

 

Я не знаю как у других работает, но у меня в шаблоне вот такая конструкция:

<div class='post entry-content <if test="$post['post']['_repignored'] == 1">imgsize_ignore</if>'>

 

Вот! Когда условие НЕ выполняется, то за место него ставится пробел. А у тебя вот такой код:

if (row.className == 'post entry-content')

 

То есть, после entry-content никакого пробела нет!

 

Вот в чём была ошибка! Я не знаю как в русской версии, но на последней английской 3.0.5 такая конструкция присутствует. Да и на 3.0.4 скорее всего тоже была, потому как у меня там тоже не работало.

 

Но первая ошибка яваскрипта имеет место быть:

Ошибка: pmInfo is null

Источник: http://cyber-systems.org/public/js/ips.quickpm.js

Строка: 33

 

		if( !pmInfo[2] ){ Debug.error('Could not find member ID in string ' + target.id); }

И у пользователя вдруг пропали все кнопки. Даже стандартный повышения/понижения репы.

 

Ри, обрати внимание на эту странность. Оо

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

Подскажите, а как её установить то?

При попытке установить - становятся большие буквы и какая-то ошибка вылазит...!

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

Ну, раз "какая-то" ошибка вылазит, значить нужно "что-то" проверить и поправить :D

 

Кстати, а вы распаковываете архив перез заливкой? ;)

 

Перезалил архив, там была слишком хитрая архивация, из-за чего могли быть проблемы у Windows-пользователей :)

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

Распаковал, достал xml

При его попытке поставить:

XML файл не загружен. Пожалуйста, попробуйте снова.

 

ДОБАВЛЕНО!

Торможу, всё норм встало!

СПАСИБО ЗА ХУК!

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

У меня вроде все работает. но почему то цитата сообщения где присутствует цитата другого сообщения, получается вот так:

 

post-75813-1261337896_thumb.png

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

Новая версия под 3.0.5 в шапке. Изменение в шаблонах форума делает старую версию хука нерабочей.

 

Evrika, это всего лишь быстрая цитата, мы цититруем лишь текст сообщения, а не его исходные коды.

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

Только хотел постонать что нет версии для 3.0.5! Спасибо Ritsuka

 

update: не работает :D и после установки пишет что версия 2.0.2 ;)

 

Функция скрытия полей работает. Кнопки "Быстрая цитата" не появляется :)

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

Настройки проверьте - включена ли она? :D

 

И перекачайте на всякий случай архив - может у вас закешировалась старая версия... Вот еще ссылка, которая лишена проблемы с кешем.

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

Ну так допполя то пропадают :D и появляются...

 

Новая ссылка не рабочая, а я еще качал и с блога тоже...

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

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

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

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

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

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

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

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

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

Зарузка...

×
×
  • Создать...

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

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