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

Выделяем посты "шутников"


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

2М-К

 

1. sources/Topics.php

Найти код

			//--------------------------------------------------------------
		// Fix up the membername so it links to the members profile
		//--------------------------------------------------------------

 if ($poster['id'])

 

После него поискать строки:

$poster['name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['name']}</a>";

ИЛИ

$poster['name']="<a href=\"java script:ins('{$poster['name']}')\">{$poster['name']}</a>";

Если они есть, то удалить или закомментировать.

Должно остаться:

  if ($poster['id'])
 {
 $poster['name']=str_replace(" ", " ", $poster['name']);
 }

 

 

 

2. Я смотрю, у тебя вообще 1.3.1...

Придется писать "наугад".

scin_topic.php

Найти

<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']}'><script type="text/javascript">
str="{$author['name']}".split('_').join('_')
strm=str.split(/&.{2,5};/).join('')
strn=strm.split(/[\d]/).join('')
strc=strn.split(/[\w]/).join('')
if(strc!=''&&strc!=strn){strk=''
tz=true
for(i=0;i<str.length;i++){
if(str.substring(i,i+1)=='&')tz=false
if(tz&&str.substring(i,i+1).split(/[\w]/).join('')!=''){
strk+='<span style="color:Green">'+str.substring(i,i+1)+'</span>'
}
else{
strk+=str.substring(i,i+1)
}
if(str.substring(i,i+1)==';')tz=true
}
str=strk
}
document.write(str)
</script></span></td>

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

Да, у меня 1.3 от Игорька.

 

Все сходится разве что с разницей в

$poster['name']=str_replace(" ", "[/b]&nbsp[/b];", $poster['name']);

У меня не работало из-за того, что вот эта строка не была закоментированна

//$poster['name']="<a href=\"java script:ins('{$poster['name']}')\">{$poster['name']}</a>";

Ну и последний шаг был немного другим, а теперь приемлимый.

 

Теперь буду думать как скрестить с кликом на ник для вставки в пост. Ибо теперь он не вставляется и даже не подчеркивается.

 

В любом случае большое спасибо за помощь.

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

Теперь буду думать как скрестить с кликом на ник для вставки в пост. Ибо теперь он не вставляется и даже не подчеркивается.

Точно Игорьковый? Тогда так:

<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']}')"><script type="text/javascript">

str="{$author['name']}".split('_').join('_')

strm=str.split(/&.{2,5};/).join('')

strn=strm.split(/[\d]/).join('')

strc=strn.split(/[\w]/).join('')

if(strc!=''&&strc!=strn){strk=''

tz=true

for(i=0;i<str.length;i++){

if(str.substring(i,i+1)=='&')tz=false

if(tz&&str.substring(i,i+1).split(/[\w]/).join('')!=''){

strk+='<span style="color:Green">'+str.substring(i,i+1)+'</span>'

}

else{

strk+=str.substring(i,i+1)

}

if(str.substring(i,i+1)==';')tz=true

}

str=strk

}

document.write(str)

</script></a></span></td>

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

FatCat, еще раз спасибо. Теперь все работает (как часы).

Только энтер между словами ява и скрипт пришлось убрать.

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

FatCat, вариант для 2.1., который мы обсуждали на 1 странице, не сработал. В результате в темах у пользователей просто-напросто ник пропал. Было пустое место.
Ссылка на комментарий
Поделиться на других сайтах

Забыл в каком месте описывается в файлах пост, который зафиксирован в теме. Потому что там у меня вот что вместо ника у всех :D

 

Текст(причем цветной): <a href='http://192.168.55.1/forums/index.php?&act=Profile&CODE=03&MID=1'>M-K

Ссылка с текста: java script:ins('<a href='http://192.168.55.1/forums/index.php?&act=Profile&CODE=03&MID=1'>M-K</a>')

Придется временно откатить мод.

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

Текст(причем цветной): <a href='http://192.168.55.1/forums/index.php?&act=Profile&CODE=03&MID=1'>M-K

Ссылка с текста: java script:ins('<a href='http://192.168.55.1/forums/index.php?&act=Profile&CODE=03&MID=1'>M-K</a>')

Придется временно откатить мод.

Поищи в Topic.php что-то наподобие:

$poster['name'] = "<a href='{$this->base_url}&act=Profile&amp; CODE=03&amp; MID={$poster['id']}'>{$poster['name']}</a>";

Это тоже нужно закомментировать или удалить.

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

  • 1 месяц спустя...

для 21 все не так гут как кажется, надо сделать более жесткий парсер, ибо

http://img407.imageshack.us/img407/9057/notgutve2.gif

 

http://img215.imageshack.us/img215/79/gutgutad4.gif

доработал

 

контент файла js:

function replace_name(val)
{	
testst = val;
testen = val;
bacvalst = testst.substring(0,testst.indexOf('>',0)+1);
bacvalen = testen.substring(testen.indexOf('</a>',0),testen.indexOf('</a>',0)+4);
val = val.substring(val.indexOf('>',0)+1,val.indexOf('</a>',0));
str=val.split('_').join('_');
strm=str.split(/&.{2,5};/).join('');
strn=strm.split(/[\d]/).join('');
strc=strn.split(/[\w]/).join('');
if(strc!=''&&strc!=strn)
{
	strk='';
	tz=true;
	for(i=0;i<str.length;i++)
	{
		if(str.substring(i,i+1)=='&') tz=false;
		if(tz&&str.substring(i,i+1).split(/[\w]/).join('')!='')
		{
			strk+='<span style="color:Green">'+str.substring(i,i+1)+'</span>';
		}
		else
		{
			strk+=str.substring(i,i+1);
		}
		if(str.substring(i,i+1)==';') tz=true;
	}
	str=strk;
}
document.write(bacvalst+''+str+''+bacvalen);
}

 

в topic_page_top

<script type="text/javascript" src='jscripts/colorname.js'></script>

в RenderRow

<script type="text/javascript">replace_name("{$author['members_display_name']}")</script>

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

Архар, а не проще заставить функцию применяться не ко всему полю, а к имени только? Вставлять вызов js функции в имя не в шаблоне, а перед форматированием имени в топикс.пхп? :D

 

Но вообще JS полезная штука ;)

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

я сначала тоже так подумал, но решил, что придет FatCat и скажет, что пхп грузит сервер регулярками ну или что они все в таком случае говорят))
Ссылка на комментарий
Поделиться на других сайтах

А я и не предлагаю на пхп писать :D

Просто так получается replace("<a>Ник</a>"), а можно было сделать <a>replace('Ник')</a>. Просто реплейс добавлять в хтмл код страницы на предыдущем этапе сборки страницы.

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

эт надо все равно пхп ковырять, лишнее действие

лень - двигатель прогресса)

 

add

там сылка в пхп формируется, а не в сборке страницы

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

Я понимаю, но имхо всё равно, из-за одного

$name = 'replace("'.$name.'")';

хуже не будет.

 

P.S. Так поднимим же бокалы за прогресс :D

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

  • 3 месяца спустя...

Переделал на пхп, чтобы не исчезали ники у тех пользователей, кто отключил джаваскрипт.

 

Topics.php

 

Найти:

?>

выше добавить:

function c2g($str){
$mishmath = preg_replace("/([а-яА-ЯёЁ])/", "", $str);
if($mishmath != $str and $mishmath != "" and preg_replace("/\.| |_|-|\*/", "", $mishmath)!="" )
{
$cyr='А,Б,В,Г,Д,Е,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,а,б,в,г,д,е,
ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я,аб,ё';
$str=str_replace("Ё","<span style='color:Green'>Ё</span>",$str);
$cyrarr=split(",",$cyr);
foreach($cyrarr as $key => $value) 
{
	$str=str_replace($value,"<span style='color:Green'>".$value."</span>",$str);
}
}
return $str;
}

 

 

Найти:

 $poster['name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['name']}</a>";

Выше добавить:

$poster['name'] = c2g($poster['name']);

 

 

У кого стоит oska-мод фиксации первого сообщения топика (Игорьковая сборка), дополнительно:

 

Найти:

$poster0['name'] = "<a href='{$this->base_url}&act=Profile&CODE=03&MID={$poster0['id']}'>{$poster0['name']}</a>";

Выше добавить:

$poster0['name'] = c2g($poster0['name']);

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

Зарузка...
×
×
  • Создать...

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

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