FatCat Опубликовано 2 Августа 2007 Автор Жалоба Поделиться Опубликовано 2 Августа 2007 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> Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
M-K Опубликовано 2 Августа 2007 Жалоба Поделиться Опубликовано 2 Августа 2007 Да, у меня 1.3 от Игорька. Все сходится разве что с разницей в $poster['name']=str_replace(" ", "[/b] [/b];", $poster['name']);У меня не работало из-за того, что вот эта строка не была закоментированна//$poster['name']="<a href=\"java script:ins('{$poster['name']}')\">{$poster['name']}</a>";Ну и последний шаг был немного другим, а теперь приемлимый. Теперь буду думать как скрестить с кликом на ник для вставки в пост. Ибо теперь он не вставляется и даже не подчеркивается. В любом случае большое спасибо за помощь. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 2 Августа 2007 Автор Жалоба Поделиться Опубликовано 2 Августа 2007 Теперь буду думать как скрестить с кликом на ник для вставки в пост. Ибо теперь он не вставляется и даже не подчеркивается.Точно Игорьковый? Тогда так:<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=truefor(i=0;i<str.length;i++){if(str.substring(i,i+1)=='&')tz=falseif(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> Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
M-K Опубликовано 2 Августа 2007 Жалоба Поделиться Опубликовано 2 Августа 2007 FatCat, еще раз спасибо. Теперь все работает (как часы).Только энтер между словами ява и скрипт пришлось убрать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
LordBone Опубликовано 2 Августа 2007 Жалоба Поделиться Опубликовано 2 Августа 2007 FatCat, вариант для 2.1., который мы обсуждали на 1 странице, не сработал. В результате в темах у пользователей просто-напросто ник пропал. Было пустое место. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
M-K Опубликовано 3 Августа 2007 Жалоба Поделиться Опубликовано 3 Августа 2007 Забыл в каком месте описывается в файлах пост, который зафиксирован в теме. Потому что там у меня вот что вместо ника у всех Текст(причем цветной): <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>')Придется временно откатить мод. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 3 Августа 2007 Автор Жалоба Поделиться Опубликовано 3 Августа 2007 Текст(причем цветной): <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& CODE=03& MID={$poster['id']}'>{$poster['name']}</a>";Это тоже нужно закомментировать или удалить. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 19 Сентября 2007 Жалоба Поделиться Опубликовано 19 Сентября 2007 (изменено) для 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> Изменено 19 Сентября 2007 пользователем Arhar Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 19 Сентября 2007 Жалоба Поделиться Опубликовано 19 Сентября 2007 Архар, а не проще заставить функцию применяться не ко всему полю, а к имени только? Вставлять вызов js функции в имя не в шаблоне, а перед форматированием имени в топикс.пхп? Но вообще JS полезная штука Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 19 Сентября 2007 Жалоба Поделиться Опубликовано 19 Сентября 2007 я сначала тоже так подумал, но решил, что придет FatCat и скажет, что пхп грузит сервер регулярками ну или что они все в таком случае говорят)) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 19 Сентября 2007 Жалоба Поделиться Опубликовано 19 Сентября 2007 А я и не предлагаю на пхп писать Просто так получается replace("<a>Ник</a>"), а можно было сделать <a>replace('Ник')</a>. Просто реплейс добавлять в хтмл код страницы на предыдущем этапе сборки страницы. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 19 Сентября 2007 Жалоба Поделиться Опубликовано 19 Сентября 2007 эт надо все равно пхп ковырять, лишнее действиелень - двигатель прогресса) addтам сылка в пхп формируется, а не в сборке страницы Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 19 Сентября 2007 Жалоба Поделиться Опубликовано 19 Сентября 2007 Я понимаю, но имхо всё равно, из-за одного$name = 'replace("'.$name.'")';хуже не будет. P.S. Так поднимим же бокалы за прогресс Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 26 Декабря 2007 Автор Жалоба Поделиться Опубликовано 26 Декабря 2007 Переделал на пхп, чтобы не исчезали ники у тех пользователей, кто отключил джаваскрипт. 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']); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.