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

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


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

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']);

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

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

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

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

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

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

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

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

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

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

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

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