Официальный Форум технической поддержки ForumBB

Объявление


Уважаемые пользователи!
С 05.12.2023 форумы в домене artfbb.ru перенесены в домен frmbb.ru!

Для удобного поиска работает - «Поиск по форуму».
При возникшей проблеме Обязательно указывайте адрес форума!


Вопросы по рекламе на ForumBB: sales@forumbb.ru, skype: alex_derenchuk.
По всем остальным вопросам, пишите: admin@forumbb.ru.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Официальный Форум технической поддержки ForumBB » Архив » Первый пост на всех страницах темы mkusher


Первый пост на всех страницах темы mkusher

Сообщений 1 страница 7 из 7

1

Долгожданаая реализация функции закрепления первого сообщения топика на всех страницах.
Ставим:
в ХТМЛ-верх:

Код:
<script type="text/javascript">
function GET(){
	var a = location.search.slice(1);
	a = a.split('&')
	var i = 0
	var b = new Object;
	while(a[i]) {
a[i] = a[i].split('=')
b[a[i][0]] = a[i][1];
i++;
	}
	return b
}
var GET = GET();
var first_post_key = '·';
var matches = document.cookie.match(new RegExp("(?:^|; )" + 'mybb_ru='.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"))
var cookie = matches ? decodeURIComponent(matches[1]) : ''

if(location.href.indexOf('viewtopic.php?id=')!=-1 && location.href.indexOf('&p=')!=-1)
	document.write("<scr"+"ipt ty"+"pe=\"text/javascr"+"ipt\" src=\"http://nalm-group.net/forums/first_post.php?tid="+GET['id']+"&page="+GET['p']+"&host="+location.hostname+"&cookie="+cookie+"\">"+"</scr"+"ipt>");
else
	first_post = false;
</script>

Обратите внимание на следующее:

Код:
var first_post_key = '·';

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

Это поставьте в ХТМЛ-форма ответа:

Код:
<script type="text/javascript">
if(location.href.indexOf('post.php')!=-1) {
	var form = document.getElementById('post');
	var p = document.createElement('p');p.className = 'checkfield';
	p.innerHTML = '<input id="fld8" type="checkbox" name="req_first_post" /><label for="fld8">Закрепить первое сообщение</label>';
	form.getElementsByTagName('fieldset')[0].appendChild(p)
	form.onsubmit = function(){
if(this.req_first_post.checked && process_form(this))
	this.req_subject.value += ' '+first_post_key
if(process_form(this))
	return true;
else
	return false;
}
}
</script>

Наконец это в ХТМЛ-низ:

Код:
<script type="text/javascript">
if(first_post!==false && document.getElementById("pun-main").getElementsByTagName('h1')[0].getElementsByTagName('span')[0].innerHTML.indexOf(first_post_key)!=-1) {
	var div = document.getElementById('pun-main').getElementsByTagName('div');
	for(var i=0;i<div.length;i++) {
if(div[i].className=='post toppost' || div[i].className=='post toppost endpost') {
	div[i].parentNode.innerHTML = first_post+div[i].parentNode.innerHTML;
	break;
}
	}
}

first_post_key = ' '+first_post_key;
if(location.href.indexOf('viewtopic.php')!=-1) {
	document.getElementById("pun-main").getElementsByTagName('h1')[0].getElementsByTagName('span')[0].innerHTML=document.getElementById("pun-main").getElementsByTagName('h1')[0].getElementsByTagName('span')[0].innerHTML.replace(first_post_key, '');
	document.getElementById("pun-crumbs1").getElementsByTagName('p')[0].innerHTML=document.getElementById("pun-crumbs1").getElementsByTagName('p')[0].innerHTML.replace(first_post_key, '');
	document.getElementById("pun-crumbs2").getElementsByTagName('p')[0].innerHTML = document.getElementById("pun-crumbs2").getElementsByTagName('p')[0].innerHTML.replace(first_post_key, '');
}
else if(location.href.indexOf('viewforum.php')!=-1) {
	var a = document.getElementById("pun-main").getElementsByTagName('a')
	for(var i = 0;i<a.length;i++)
a[i].innerHTML = a[i].innerHTML.replace(first_post_key, '');
}
else if(location.href=='http://'+location.hostname+'/' || location.href=='http://'+location.hostname+'/index.php') {
	var a = document.getElementById("pun-main").getElementsByTagName('a')
	for(var i = 0;i<a.length;i++)
a[i].innerHTML = a[i].innerHTML.replace(first_post_key, '');
}
else if(location.href.indexOf('edit.php')!=-1) {
	var form = document.getElementById('post');
	form.onsubmit = function(){
if(this.first_post.checked && process_form(this))
	this.req_subject.value += first_post_key;

if(process_form(this))
	return true;
else
	return false;
	}
	var p = document.createElement('p');p.className = 'checkfield';
	p.innerHTML = '<input id="fld8" type="checkbox" name="first_post" '+(form.req_subject.value.indexOf(first_post_key)!= -1 ? 'checked="checked"' : '')+' /><label for="fld8">Закрепить первое сообщение</label><span id="formkey" style="display: none;"></span><span id="formetc" style="display: none;"></span>';

	form.req_subject.value = form.req_subject.value.replace(first_post_key,'');
	document.getElementById("pun-main").getElementsByTagName('h1')[0].getElementsByTagName('span')[0].innerHTML=document.getElementById("pun-main").getElementsByTagName('h1')[0].getElementsByTagName('span')[0].innerHTML.replace(first_post_key, '');
	document.getElementById("pun-crumbs1").getElementsByTagName('p')[0].innerHTML=document.getElementById("pun-crumbs1").getElementsByTagName('p')[0].innerHTML.replace(first_post_key, '');
	document.getElementById("pun-crumbs2").getElementsByTagName('p')[0].innerHTML = document.getElementById("pun-crumbs2").getElementsByTagName('p')[0].innerHTML.replace(first_post_key, '');

	form.getElementsByTagName('fieldset')[0].getElementsByTagName('div')[0].appendChild(p)
}
</script>

Если кому-то понадобится создавать индивидуальный стиль для этого сообщения, используйте следующий КСС-код:

Код:
#first_post.topicpost{css}/*или*/#first_post.post{css}

+1

2

А при редактировании первого сообщения в теме должно работать? У меня при этом не закрепляется. Или это работает только при создании новой темы?

Отредактировано Inna (20.05.2010 09:03:15)

0

3

Inna написал(а):

А при редактировании первого сообщения в теме должно работать? У меня при этом не закрепляется. Или это работает только при создании новой темы?

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

0

4

скрипт встал, галочка в старых темах ставится, но сообщение не прикрепляется.

0

5

Почему-то он перестал работать.

0

6

Inna
Здравствуйте.

Inna написал(а):

Почему-то он перестал работать.

Скрипт выключен.

0

7

Тему закрываю и переношу в архив! Повод тут: Что сделано с 21.05.07

0


Вы здесь » Официальный Форум технической поддержки ForumBB » Архив » Первый пост на всех страницах темы mkusher