B.X Опубликовано 22 Мая 2003 Жалоба Поделиться Опубликовано 22 Мая 2003 Наконец-то нашел на IBPlanet.com Большое спасибо создпвшему эти хаки... При минимальной правке кода (во втором хаке надо буквально всего лишь переместить одну строчку вверх... достигаются поразительные результаты. Теперь мы не зависим от тегов [color][/color] если у нас скажем два css файла (на черный дизайн и белый). При обычном варианте цвета в одном дизайне смотрелись бы плохо или в другом... теперь же мы их привязываеи к css и все будет смотреться нормально независимо от того какой цвет мы вставляем... Первый хак, вставляет стили:Modification by primetime Description: This modification adds [span] tags to the iPBCode on your Invision Power Board. Styles added used in the span tags are either: - supplied by the user using 'style=' (CSS) - accessed by 'class=' ibresource (from linked stylesheet of the board) - accessed by 'id=' ibresource (from linked stylesheet of the board) Compatible with either Invision Power Board 1.0x or Invision Power Board 1.1x Limitations: User must enter proper CSS Syntax (not encased in Quotes) Class or ID element referenced must be in IPB stylesheet (Forum admin should add the element in the IPB stylesheet) Precaution: ALWAYS make backups of the files you're editing!!! Usage: Using 'style' element: [span style=background: #000000; color: #FFFFFF]Text[/span] Using 'class' ibresource: [span class="class_from_ipb_stylesheet"]Text[/span] Using 'id' ibresource: [span class="id_from_ipb_stylesheet"]Text[/span] Instructions: 1) Download 'post_parser.php' from the /sources/lib/ of your Invision Power Board directory. 2) Make a backup of the file you downloaded (just in case). 3) Find this block of code (around line 228). // Start off with the easy stuff $txt = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $txt ); $txt = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $txt ); $txt = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $txt ); $txt = preg_replace( "#\[s\](.+?)\[/s\]#is", "<s>\\1</s>", $txt ); 4) Underneath it add the following: // Span Style Tags Convert by primetime $conv_span_search = array( "#\[span style=(.+?)\](.+?)\[\/span\]#is", "#\[span class=(.+?)\](.+?)\[\/span\]#is", "#\[span id=(.+?)\](.+?)\[\/span\]#is", ); $conv_span_replace = array( "<span style=\"\\1\">\\2</span>", "<span class=\"\\1\">\\2</span>", "<span id=\"\\1\">\\2</span>", ); $txt = preg_replace($conv_span_search, $conv_span_replace, $txt); // End Span Style Convert 5) Find the following line of code: (around line 500) $txt = preg_replace( "#<u>(.+?)</u>#is" , "\[u\]\\1\[/u\]" , $txt ); 6) Underneath that line add the following block of code: // Span Style Unconvert by primetime $unconv_span_search = array( "#<span style=\"(.+?)\">(.+?)<\/span>#", "#<span class=\"(.+?)\">(.+?)<\/span>#", "#<span id=\"(.+?)\">(.+?)<\/span>#", ); $unconv_span_replace = array( "[span style=\\1]\\2[/span]", "[span class=\\1]\\2[/span]", "[span id=\\1]\\2[/span]", ); $txt = preg_replace($unconv_span_search, $unconv_span_replace, $txt); // End Span Style Unconvert 7) Save the file and re-upload back into the sources/lib directory Additional: This mod will be used for a future mod I'm planning on;) Второй хак позволяет применять к IB кодам bad words. Так, например, не нравится нам, что все, кто ни попадя ставят [COLOR=purple][/COLOR] Мы идем в наш заменитель в Админ панели и выставляем, что отныне [COLOR=purple][/COLOR] будет заменяться скажем на [span class=signature][/span]. Все очень просто, меняеи месторасположение одной строчки в том же файле /source/lib/post_parser.php:Allow IB Code in word filter v 1.0 by Ahnteis April 2003 This hasn't been more then summarily tested, but I see no potential problems. If there are BUGS, please email at [email protected] I don't do tech support. Sorry. ------------------------------------------------------- Open .../sources/lib/post_parser.php Around line 320, FIND: $txt = $this->bad_words($txt); MOVE that line up to about line 150 so that it immediately FOLLOWS: //-------------------------------------- // convert <br> to \n //-------------------------------------- //вот здесь должна быть вышеприведенная строчка $txt = preg_replace( "/<br>|<br\s*\/>/", "\n", $txt ); Все очень просто, еще раз благодарю создателей этих хаков...Протестировать можно здесь Просто создаете тему с пометкой "тест" и тестируете все, что вам нравится. Хаки установлены, работают нормально... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.