1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Панель ВВ-кодов в дискуссиях групп

Discussion in 'Моды - Mods' started by Gooos, May 17, 2010.

  1. Gooos Thread starter абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Вв-коды побороть не смог, переделал всё на html теги, как в обычных комментариях. Проблема осталась та-же - не вывести смайлы.
    Работает только при симбиозе - html для форматирования и ВВ-коды для смайлов, но по прежнему проблема с отображением смайлов в ленте активности.
    В общем, в дискуссиях смайлы подменяются картинками, а в ленте активности так и остаётся просто обозначение смайла - :bad: и т.п.
    Выпуск мода задерживается на неопределённое время.
  2. webalpha Novice member


    Offline
    Message Count:
    2
    Likes Received:
    0
    first sorry for my english
    can we use this mod?
    plz share it even it has some problems.
  3. Gooos Thread starter абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Mod is not completed yet.
    It does not work showing smileys in "What's new?".
  4. webalpha Novice member


    Offline
    Message Count:
    2
    Likes Received:
    0
    no problem
    can you send it with this problem for me?
    maybe i can fix it !
  5. Gooos Thread starter абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Мои наработки.
    class_group.php
    PHP:

        
    function group_post_bbcode_parse_view($string)
      {
        
    // DO [quote]
        
    $open_quote preg_match_all('/\[quote\=(.*?)\]/i'$string$matches);
        
    $close_quote preg_match_all('/\[\/quote\]/i'$string$matches);
        
    $total_tags = ( $open_quote>$close_quote $close_quote $open_quote );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[quote\=(.*?)\]/i'"<blockquote><div>".SE_Language::get(2000323, Array('$1'))."</div>"$string$total_tags);
          
    $string strrev(preg_replace('/\]etouq\/\[/i'">etouqkcolb/<"strrev($string), $total_tags));
        }

       
    /* // DO [code]
        $open_code = preg_match_all('/\[code\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/code\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[code\=?(.*?)\](.*?)\[\/code\]/ie', "'Code:<br /><div class=\'group_discussion_code\'>'.( '\\1'!='' ? '<div class=\'group_discussion_code_title\'>'.'\\1'.'</div>' : '').'\\2'.'</div>'", $string, $total_tags);
        }

        // DO [b]
        $open_code = preg_match_all('/\[b\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/b\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[b\=?(.*?)\](.*?)\[\/b\]/ie', "'<b>'.( '\\1'!='' ? '<b>'.'\\1'.'</b>' : '').'\\2'.'</b>'", $string, $total_tags);
        }

        // DO [i]
        $open_code = preg_match_all('/\[i\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/i\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[i\=?(.*?)\](.*?)\[\/i\]/ie', "'<i>'.( '\\1'!='' ? '<i>'.'\\1'.'</i>' : '').'\\2'.'</i>'", $string, $total_tags);
        }

        // DO [u]
        $open_code = preg_match_all('/\[u\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/u\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[u\=?(.*?)\](.*?)\[\/u\]/ie', "'<u>'.( '\\1'!='' ? '<u>'.'\\1'.'</u>' : '').'\\2'.'</u>'", $string, $total_tags);
        }

        // DO [s]
        $open_code = preg_match_all('/\<s\=?(.*?)\>/i', $string, $matches);
        $close_code = preg_match_all('/\<\/s\>/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\<s\=?(.*?)\>(.*?)\<\/s\>/ie', "'<del>'.( '\\1'!='' ? '<del>'.'\\1'.'</del>' : '').'\\2'.'</del>'", $string, $total_tags);
        }

        // DO [left]
        $open_code = preg_match_all('/\[left\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/left\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[left\=?(.*?)\](.*?)\[\/left\]/ie', "'<div align=\'left\'>'.( '\\1'!='' ? '<div align=\'left\'>'.'\\1'.'</div>' : '').'\\2'.'</div>'", $string, $total_tags);
        }

        // DO [center]
        $open_code = preg_match_all('/\[center\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/center\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[center\=?(.*?)\](.*?)\[\/center\]/ie', "'<div align=\'center\'>'.( '\\1'!='' ? '<div align=\'center\'>'.'\\1'.'</div>' : '').'\\2'.'</div>'", $string, $total_tags);
        }

        // DO [right]
        $open_code = preg_match_all('/\[right\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/right\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[right\=?(.*?)\](.*?)\[\/right\]/ie', "'<div align=\'right\'>'.( '\\1'!='' ? '<div align=\'right\'>'.'\\1'.'</div>' : '').'\\2'.'</div>'", $string, $total_tags);
        } */

        // DO [:bad:]
        
    $open_code preg_match_all('/\:bad:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('//i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\:bad:\=?(.*?)(.*?)/ie'"'&nbsp;<img src=\'/templates/images/smiles/bad.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/bad.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:biggrin:]
        
    $open_code preg_match_all('/\[:biggrin:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:biggrin:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/biggrin.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/biggrin.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:blum:]
        
    $open_code preg_match_all('/\[:blum:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:blum:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/blum.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/blum.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:blush:]
        
    $open_code preg_match_all('/\[:blush:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:blush:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/blush.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/blush.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:cray:]
        
    $open_code preg_match_all('/\[:cray:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:cray:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/cray.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/cray.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:crazy:]
        
    $open_code preg_match_all('/\[:crazy:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:crazy:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/crazy.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/crazy.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:dance:]
        
    $open_code preg_match_all('/\[:dance:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:dance:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/dance.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/dance.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:diablo:]
        
    $open_code preg_match_all('/\[:diablo:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:diablo:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/diablo.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/diablo.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:dirol:]
        
    $open_code preg_match_all('/\[:dirol:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:dirol:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/dirol.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/dirol.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:drinks:]
        
    $open_code preg_match_all('/\[:drinks:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:drinks:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/drinks.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/drinks.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:fool:]
        
    $open_code preg_match_all('/\[:fool:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:fool:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/fool.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/fool.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:good:]
        
    $open_code preg_match_all('/\[:good:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:good:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/good.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/good.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:kiss_mini:]
        
    $open_code preg_match_all('/\[:kiss_mini:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:kiss_mini:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/kiss_mini.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/kiss_mini.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:man_in_love:]
        
    $open_code preg_match_all('/\[:man_in_love:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:man_in_love:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/man_in_love.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/man_in_love.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:music:]
        
    $open_code preg_match_all('/\[:music:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:music:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/music.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/music.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:nea:]
        
    $open_code preg_match_all('/\[:nea:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:nea:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/nea.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/nea.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:pardon:]
        
    $open_code preg_match_all('/\[:pardon:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:pardon:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/pardon.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/pardon.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:rofl:]
        
    $open_code preg_match_all('/\[:rofl:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:rofl:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/rofl.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/rofl.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:rolleyes:]
        
    $open_code preg_match_all('/\[:rolleyes:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:rolleyes:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/rolleyes.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/rolleyes.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:sad:]
        
    $open_code preg_match_all('/\[:sad:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:sad:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/sad.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/sad.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:scratch_one-s_head:]
        
    $open_code preg_match_all('/\[:scratch_one-s_head:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:scratch_one-s_head:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/scratch_one-s_head.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/scratch_one-s_head.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:shok:]
        
    $open_code preg_match_all('/\[:shok:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:shok:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/shok.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/shok.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:shout:]
        
    $open_code preg_match_all('/\[:shout:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:shout:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/shout.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/shout.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:smile:]
        
    $open_code preg_match_all('/\[:smile:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:smile:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/smile.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/smile.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:unknw:]
        
    $open_code preg_match_all('/\[:unknw:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:unknw:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/unknw.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/unknw.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:wacko2:]
        
    $open_code preg_match_all('/\[:wacko2:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:wacko2:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/wacko2.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/wacko2.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:wink:]
        
    $open_code preg_match_all('/\[:wink:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:wink:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/wink.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/wink.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:yahoo:]
        
    $open_code preg_match_all('/\[:yahoo:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:yahoo:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/yahoo.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/yahoo.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:angel:]
        
    $open_code preg_match_all('/\[:angel:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('/\]/i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/\[:angel:\=?(.*?)(.*?)\]/ie'"'&nbsp;<img src=\'/templates/images/smiles/angel.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/angel.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

       
    /* // DO [size_3]
        $open_code = preg_match_all('/\[size_3\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/size\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[size_3\=?(.*?)\](.*?)\[\/size\]/ie', "'<font size=\'3px\'>'.( '\\1'!='' ? '<font size=\'3px\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [size_4]
        $open_code = preg_match_all('/\[size_4\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/size\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[size_4\=?(.*?)\](.*?)\[\/size\]/ie', "'<font size=\'4px\'>'.( '\\1'!='' ? '<font size=\'4px\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [size_5]
        $open_code = preg_match_all('/\[size_5\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/size\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[size_5\=?(.*?)\](.*?)\[\/size\]/ie', "'<font size=\'5px\'>'.( '\\1'!='' ? '<font size=\'5px\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_aqua]
        $open_code = preg_match_all('/\[color_aqua\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_aqua\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'aqua\'>'.( '\\1'!='' ? '<font color=\'aqua\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_black]
        $open_code = preg_match_all('/\[color_black\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_black\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'black\'>'.( '\\1'!='' ? '<font color=\'black\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_blue]
        $open_code = preg_match_all('/\[color_blue\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_blue\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'blue\'>'.( '\\1'!='' ? '<font color=\'blue\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_fuchsia]
        $open_code = preg_match_all('/\[color_fuchsia\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_fuchsia\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'fuchsia\'>'.( '\\1'!='' ? '<font color=\'fuchsia\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_gray]
        $open_code = preg_match_all('/\[color_gray\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_gray\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'gray\'>'.( '\\1'!='' ? '<font color=\'gray\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_green]
        $open_code = preg_match_all('/\[color_green\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_green\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'green\'>'.( '\\1'!='' ? '<font color=\'green\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_lime]
        $open_code = preg_match_all('/\[color_lime\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_lime\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'lime\'>'.( '\\1'!='' ? '<font color=\'lime\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_maroon]
        $open_code = preg_match_all('/\[color_maroon\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_maroon\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'maroon\'>'.( '\\1'!='' ? '<font color=\'maroon\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_navy]
        $open_code = preg_match_all('/\[color_navy\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_navy\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'navy\'>'.( '\\1'!='' ? '<font color=\'navy\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_olive]
        $open_code = preg_match_all('/\[color_olive\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_olive\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'olive\'>'.( '\\1'!='' ? '<font color=\'olive\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_purple]
        $open_code = preg_match_all('/\[color_purple\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_purple\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'purple\'>'.( '\\1'!='' ? '<font color=\'purple\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_red]
        $open_code = preg_match_all('/\[color_red\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_red\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'red\'>'.( '\\1'!='' ? '<font color=\'red\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_silver]
        $open_code = preg_match_all('/\[color_silver\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_silver\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'silver\'>'.( '\\1'!='' ? '<font color=\'silver\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_teal]
        $open_code = preg_match_all('/\[color_teal\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_teal\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'teal\'>'.( '\\1'!='' ? '<font color=\'teal\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_white]
        $open_code = preg_match_all('/\[color_white\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_white\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'white\'>'.( '\\1'!='' ? '<font color=\'white\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [color_yellow]
        $open_code = preg_match_all('/\[color_yellow\=?(.*?)/i', $string, $matches);
        $close_code = preg_match_all('/\[\/color\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[color_yellow\=?(.*?)\](.*?)\[\/color\]/ie', "'<font color=\'yellow\'>'.( '\\1'!='' ? '<font color=\'yellow\'>'.'\\1'.'</font>' : '').'\\2'.'</font>'", $string, $total_tags);
        }

        // DO [img]
        $open_code = preg_match_all('/\[img\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/img\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[img\=?(.*?)\](.*?)\[\/img\]/ie', "'<img src=\''.( '\\1'!='' ? '<img src=\''.'\\1'.'\'>' : '').'\\2'.'\'>'", $string, $total_tags);
        }

        // DO [url]
        $open_code = preg_match_all('/\[url\=?(.*?)\]/i', $string, $matches);
        $close_code = preg_match_all('/\[\/url\]/i', $string, $matches);
        $total_tags = ( ($open_code > $close_code) ? $close_code : $open_code );

        if( $total_tags )
        {
          $string = preg_replace('/\[url\=?(.*?)\](.*?)\[\/url\]/ie', "'<a href=\''.( '\\1'!='' ? '<a href=\''.'\\1'.'\'>Link</a>' : '').'\\2'.'\'>Link</a>'", $string, $total_tags);
        }*/

        
    return $string;
      }
    }


    ?>
    group_discussion_post.tpl

    PHP:

    <td class='form1'>{lang_print id=2000301}</td>
    <
    td class='form2'>

    {
    literal}
    <
    script type="text/javascript">
    <!--
      
    window.addEvent('domready', function() { textarea_autogrow('group_discussion_post'); });
        function 
    bbcode(opencloseflag){
    document.getElementById('group_discussion_post').focus();
        if (
    flag==1) {url prompt("Введите адрес изображения:"); document.getElementById('group_discussion_post').value += "<img src=\""+url+"\" />";}
        else if (
    flag==2) {url prompt("Введите адрес ссылки:"); desc prompt("Введите описание ссылки:");document.getElementById('group_discussion_post').value += "<a href=\""+url+"\">"+desc+"</a>";}
        
    /* IE */
        
    else if (document.selection && document.selection.createRange){
            
    sel document.selection.createRange();
            
    sel.text open sel.text close;
            
    document.getElementById('group_discussion_post').focus();
        }
        
    /* Mozilla */
        
    else if (document.getElementById('group_discussion_post').selectionStart || document.getElementById('group_discussion_post').selectionStart == '0'){
            var 
    startPos document.getElementById('group_discussion_post').selectionStart;
            var 
    endPos document.getElementById('group_discussion_post').selectionEnd;
            
    document.getElementById('group_discussion_post').value document.getElementById('group_discussion_post').value.substring(0startPos) + open document.getElementById('group_discussion_post').value.substring(startPosendPos) + close document.getElementById('group_discussion_post').value.substring(endPosdocument.getElementById('group_discussion_post').value.length);
            
    document.getElementById('group_discussion_post').selectionStart document.getElementById('group_discussion_post').selectionEnd endPos open.length close.length;
            
    document.getElementById('group_discussion_post').focus();

        }
        
    /* Main browsers */
        
    else{
            
    document.getElementById('group_discussion_post').value += open close;
            
    document.getElementById('group_discussion_post').focus();
        }
    }

    //-->
    </script>
    {/literal}

       <div id="bbcode" style='margin-top: 5px;'>
       <div style='padding:5px 0px 2px 5px;'>
      {if $tags.b == 1}
      <img src="/images/bbcode/b.gif" alt="" title="" onclick="bbcode('<b>', '</b>')">&nbsp;
      {/if}
      {if $tags.i == 1}
      <img src="/images/bbcode/i.gif" alt="" title="" onclick="bbcode('<i>', '</i>')">&nbsp;
      {/if}
      {if $tags.u == 1}
      <img src="/images/bbcode/u.gif" alt="" title="" onclick="bbcode('<u>', '</u>')">&nbsp;
      {/if}
      {if $tags.del == 1}
      <img src="/images/bbcode/s.gif" alt="" title="" onclick="bbcode('<del>', '</del>')">&nbsp;
      {/if}
      {if $tags.font == 1}
      <img src="/images/bbcode/color.gif" alt="" title="" {literal}onclick="if (document.getElementById('colors').style.display=='block') {document.getElementById('colors').style.display='none';} else {document.getElementById('colors').style.display='block';}">{/literal}&nbsp;
      <img src="/images/bbcode/text.gif" alt="" title="" onclick={literal}"if (document.getElementById('text').style.display=='block') {document.getElementById('text').style.display='none';} else {document.getElementById('text').style.display='block';}"{/literal}>&nbsp;
      {/if}
      {if $tags.a == 1}
      <img src="/images/bbcode/a.gif" alt="" title="" onclick="bbcode('', '', '2')">&nbsp;
      {/if}
      {if $tags.img == 1}
      <img src="/images/bbcode/img.gif" alt="" title="" onclick="bbcode('', '', '1')">&nbsp;
      {/if}
      {if $tags.div == 1}
      <img src="/images/bbcode/l.gif" alt="" title="" onclick="bbcode('<div align=\'left\'>', '</div>')">&nbsp;
      <img src="/images/bbcode/c.gif" alt="" title="" onclick="bbcode('<div align=\'center\'>', '</div>')">&nbsp;
      <img src="/images/bbcode/r.gif" alt="" title="" onclick="bbcode('<div align=\'right\'>', '</div>')">&nbsp;
      {/if}
      {if $tags.blockquote == 1}
      <img src="/images/bbcode/blockquote.gif" alt="" title="" onclick="bbcode('<blockquote>', '</blockquote>')">&nbsp;
      <img src="/images/bbcode/code.gif" alt="" title="" onclick="bbcode('Code:<br /><div class=\'group_discussion_code\'>', '</div>')">&nbsp;
      {/if}
      <img src="/images/bbcode/smile.gif" alt="" title="" onclick={literal}"if (document.getElementById('smiles').style.display=='block') {document.getElementById('smiles').style.display='none';} else {document.getElementById('smiles').style.display='block';}"{/literal}>
      <div id="colors" style="display: none; padding-bottom: 3px;"><img src="/images/bbcode/aqua.gif" onclick="bbcode('<font color=\'aqua\'>', '</font>')">
      <img src="/images/bbcode/black.gif" onclick="bbcode('<font color=\'black\'>', '</font>')">
      <img src="/images/bbcode/blue.gif" onclick="bbcode('<font color=\'blue\'>', '</font>')">
      <img src="/images/bbcode/fuchsia.gif" onclick="bbcode('<font color=\'fuchsia\'>', '</font>')">
      <img src="/images/bbcode/gray.gif" onclick="bbcode('<font color=\'gray\'>', '</font>')">
      <img src="/images/bbcode/green.gif" onclick="bbcode('<font color=\'green\'>', '</font>')">
      <img src="/images/bbcode/lime.gif" onclick="bbcode('<font color=\'lime\'>', '</font>')">
      <img src="/images/bbcode/maroon.gif" onclick="bbcode('<font color=\'maroon\'>', '</font>')">
      <img src="/images/bbcode/navy.gif" onclick="bbcode('<font color=\'navy\'>', '</font>')">
      <img src="/images/bbcode/olive.gif" onclick="bbcode('<font color=\'olive\'>', '</font>')">
      <img src="/images/bbcode/purple.gif" onclick="bbcode('<font color=\'purple\'>', '</font>')">
      <img src="/images/bbcode/red.gif" onclick="bbcode('<font color=\'red\'>', '</font>')">
      <img src="/images/bbcode/silver.gif" onclick="bbcode('<font color=\'silver\'>', '</font>')">
      <img src="/images/bbcode/teal.gif" onclick="bbcode('<font color=\'teal\'>', '</font>')">
      <img src="/images/bbcode/white.gif" onclick="bbcode('<font color=\'white\'>', '</font>')">
      <img src="/images/bbcode/yellow.gif" onclick="bbcode('<font color=\'yellow\'>', '</font>')">
      </div>
      <div id="text" style="display: none; padding-bottom: 3px;"><img src="/images/bbcode/1.gif" onclick="bbcode('<font size=\'3px\'>', '</font>')">&nbsp;
      <img src="/images/bbcode/2.gif" onclick="bbcode('<font size=\'4px\'>', '</font>')">&nbsp;
      <img src="/images/bbcode/3.gif" onclick="bbcode('<font size=\'5px\'>', '</font>')">
      </div>
      <div id="smiles" style="display: none; padding-bottom: 3px;">
      <img src="/templates/images/smiles/bad.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :bad:'">
      <img src="/templates/images/smiles/biggrin.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :biggrin:'">
      <img src="/templates/images/smiles/blum.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :blum:'">
      <img src="/templates/images/smiles/blush.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :blush:'">
      <img src="/templates/images/smiles/cray.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :cray:'">
      <img src="/templates/images/smiles/crazy.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :crazy:'">
      <img src="/templates/images/smiles/dance.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :dance:'">
      <img src="/templates/images/smiles/diablo.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :diablo:'">
      <img src="/templates/images/smiles/dirol.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :dirol:'">
      <img src="/templates/images/smiles/drinks.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :drinks:'">
      <img src="/templates/images/smiles/fool.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :fool:'">
      <img src="/templates/images/smiles/good.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :good:'">
      <img src="/templates/images/smiles/kiss_mini.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :kiss_mini:'">
      <img src="/templates/images/smiles/man_in_love.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :man_in_love:'">
      <img src="/templates/images/smiles/music.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :music:'">
      <img src="/templates/images/smiles/nea.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :nea:'">
      <img src="/templates/images/smiles/pardon.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :pardon:'">
      <img src="/templates/images/smiles/rofl.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :rofl:'">
      <img src="/templates/images/smiles/rolleyes.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :rolleyes:'">
      <img src="/templates/images/smiles/sad.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :sad:'">
      <img src="/templates/images/smiles/scratch_one-s_head.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :scratch_one-s_head:'">
      <img src="/templates/images/smiles/shok.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :shok:'">
      <img src="/templates/images/smiles/shout.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :shout:'">
      <img src="/templates/images/smiles/smile.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :smile:'">
      <img src="/templates/images/smiles/unknw.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :unknw:'">
      <img src="/templates/images/smiles/wacko2.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :wacko2:'">
      <img src="/templates/images/smiles/wink.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :wink:'">
      <img src="/templates/images/smiles/yahoo.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :yahoo:'">
      <img src="/templates/images/smiles/angel.gif" onclick="document.getElementById('group_discussion_post').focus();document.getElementById('group_discussion_post') .value += ' :angel:'">
      </div></div>

      <textarea name='topic_body' rows='5' cols='65' id='group_discussion_post'>{$topic_body}</textarea>
      <!--{if $setting.setting_group_discussion_html != ""}
        <br>{lang_sprintf id=1034 1=$setting.setting_group_discussion_html|replace:",":", "}
      {/if}-->
    </td>
    </tr>
  6. Alex2012 Novice member


    Offline
    Message Count:
    4
    Likes Received:
    0
    вечер добрый! Есть такой готовый мод? попробывал внедрить этот код - не показывает кнопки форматирования и ссылок, только смайлы и только при создании темы, в ответе не показывает.

    Спасибо
  7. Gooos Thread starter абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Ну, картинки-кнопки предварительно загрузить надо на сервер, подойдут от ВВ-кодов в комментах.
    Мод не доработан:
  8. Gooos Thread starter абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Кто поможет сократить код:
    PHP:

        
    // DO [:cray:]
        
    $open_code preg_match_all('/:cray:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('//i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/:cray:\=?(.*?)(.*?)/ie'"'&nbsp;<img src=\'/templates/images/smiles/cray.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/cray.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:crazy:]
        
    $open_code preg_match_all('/:crazy:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('//i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/:crazy:\=?(.*?)(.*?)/ie'"'&nbsp;<img src=\'/templates/images/smiles/crazy.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/crazy.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }

        
    // DO [:dance:]
        
    $open_code preg_match_all('/:dance:\=?(.*?)/i'$string$matches);
        
    $close_code preg_match_all('//i'$string$matches);
        
    $total_tags = ( ($open_code $close_code) ? $close_code $open_code );

        if( 
    $total_tags )
        {
          
    $string preg_replace('/:dance:\=?(.*?)(.*?)/ie'"'&nbsp;<img src=\'/templates/images/smiles/dance.gif\'>'.( '\\1'!='' ? '<img src=\'/templates/images/smiles/dance.gif\'>'.'\\1'.' ' : '').'\\2'.' '"$string$total_tags);
        }
    // далее
    // куча
    // подобного 
    // кода
    // надо как-то объединить похожие записи, сделать массив или что-то типа того
  9. Dj AngeL Active member


    Offline
    Message Count:
    282
    Likes Received:
    38
    My version of SE:
    3.20
    Gooos, поясните пожалуйста, после чего ставить этот код в class_group.php?
  10. Gooos Thread starter абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Там внизу, где замена quote
    но этого не достаточно для всех вв-кодов, но смайлы покажет.
    Походу я не тем путём иду, в дискуссиях всё работает, а в ленте активности смайлы не показываются.

    тут поставил:
    PHP:
        function group_post_bbcode_parse_view($string)
      {
    // вот сюда
        
    return $string;
      }
    }


    ?>
    сейчас пытаюсь тут помудрить, но я не кодер, ничего пока не выходит:
    PHP:

        
    // THIS METHOD RETURNS AN ARRAY OF GROUP TOPICS
        // INPUT: $start REPRESENTING THE GROUP TOPIC TO START WITH
        //      $limit REPRESENTING THE NUMBER OF GROUP TOPICS TO RETURN
        //      $sort_by (OPTIONAL) REPRESENTING THE ORDER BY CLAUSE
        //      $where (OPTIONAL) REPRESENTING ADDITIONAL THINGS TO INCLUDE IN THE WHERE CLAUSE
        // OUTPUT: AN ARRAY OF GROUP TOPICS
        
    function group_topic_list($start$limit$sort_by "grouptopic_date DESC"$where "")
      {
          global 
    $database;

          
    // BEGIN QUERY
          
    $grouptopic_query "
          SELECT
            se_grouptopics.*,
            se_groupposts.*,
            se_grouptopics.grouptopic_totalposts AS total_posts,
            creator.user_id AS creator_user_id,
            creator.user_username AS creator_user_username,
            creator.user_fname AS creator_user_fname,
            creator.user_lname AS creator_user_lname,
            lastposter.user_id AS lastposter_user_id,
            lastposter.user_username AS lastposter_user_username,
            lastposter.user_fname AS lastposter_user_fname,
            lastposter.user_lname AS lastposter_user_lname,
            lastposter.user_photo AS lastposter_user_photo
        "
    ;

          
    // CONTINUE QUERY
          
    $grouptopic_query .= "
          FROM
            se_grouptopics
          LEFT JOIN
            se_groupposts
            ON se_grouptopics.grouptopic_id=se_groupposts.grouppost_grouptopic_id
        "
    ;

          
    // JOIN TO USER TABLE (CREATOR)
          
    $grouptopic_query .= " LEFT JOIN se_users AS creator ON se_grouptopics.grouptopic_creatoruser_id=creator.user_id";

          
    // JOIN TO USER TABLE (LAST POSTER)
          
    $grouptopic_query .= " LEFT JOIN se_users AS lastposter ON se_groupposts.grouppost_authoruser_id=lastposter.user_id";

          
    // ADD WHERE IF NECESSARY
          
    $grouptopic_query .= " WHERE se_groupposts.grouppost_id = (SELECT MAX(grouppost_id) FROM se_groupposts WHERE grouppost_grouptopic_id=se_grouptopics.grouptopic_id)";

          
    // IF GROUP EXISTS, SPECIFY GROUP ID
          
    if($this->group_exists != 0) { $grouptopic_query .= " AND se_grouptopics.grouptopic_group_id='{$this->group_info['group_id']}'"; }

          
    // ADD ADDITIONAL WHERE CLAUSE
          
    if($where != "") { $grouptopic_query .= " AND $where"; }

          
    // ADD GROUP BY, ORDER, AND LIMIT CLAUSE
          
    $grouptopic_query .= " GROUP BY grouptopic_id ORDER BY $sort_by LIMIT $start$limit";

          
    // RUN QUERY
          
    $grouptopics $database->database_query($grouptopic_query);

          
    // GET GROUP TOPICS INTO AN ARRAY
          
    $grouptopic_array = Array();
          while(
    $grouptopic_info $database->database_fetch_assoc($grouptopics))
        {
            
    $creator = new se_user();
            if(
    $grouptopic_info['creator_user_id'] != $grouptopic_info['grouptopic_creatoruser_id'])
          {
              
    $creator->user_exists 0;
            }
          else
          {
              
    $creator->user_exists 1;
              
    $creator->user_info['user_id'] = $grouptopic_info['creator_user_id'];
              
    $creator->user_info['user_username'] = $grouptopic_info['creator_user_username'];
              
    $creator->user_info['user_fname'] = $grouptopic_info['creator_user_fname'];
              
    $creator->user_info['user_lname'] = $grouptopic_info['creator_user_lname'];
              
    $creator->user_displayname();
            }

            
    $lastposter = new se_user();
            if(
    $grouptopic_info['lastposter_user_id'] != $grouptopic_info['grouppost_authoruser_id'])
          {
              
    $lastposter->user_exists 0;
            }
          else
          {
              
    $lastposter->user_exists 1;
              
    $lastposter->user_info['user_id'] = $grouptopic_info['lastposter_user_id'];
              
    $lastposter->user_info['user_username'] = $grouptopic_info['lastposter_user_username'];
              
    $lastposter->user_info['user_fname'] = $grouptopic_info['lastposter_user_fname'];
              
    $lastposter->user_info['user_lname'] = $grouptopic_info['lastposter_user_lname'];
              
    $lastposter->user_info['user_photo'] = $grouptopic_info['lastposter_user_photo'];
              
    $lastposter->user_displayname();
            }
    /*
                        // СМАЙЛЫ //
              $asconf['smiles'] = "nyam,oo,blum,blush,cray,crazy,dance,diablo,dirol,
              drinks,fool,good,kiss_mini,man_in_love,music,
              nea,pardon,rofl,rolleyes,sad,scratch_one-s_head,
              shok,shout,smile,unknw,wink,yahoo,yes,acute";
              $find = array();
              $replace = array();

                // ЗАМЕНА СМАЙЛОВ //
              $smilies_arr = explode(",", $asconf['smiles']);
              foreach($smilies_arr as $smile)
            {
              $smile = trim($smile);
              $find = ':'.$smile.':';
              $replace = '<img alt="'.$smile.'" src="./templates/images/smiles/'.$smile.'.gif" border=0>';
              $grouptopic_info[$this->grouppost_body.'group_discussion_reply']= ereg_replace("$find", "$replace", $grouptopic_info[$this->grouppost_body.'group_discussion_reply']);
            }
            // SET PART OF ARRAY
            $grouptopic_info[$this->grouppost_body.'group_discussion_reply'] = $group_discussion_reply;
    */
            // SET PART OF ARRAY
            
    $grouptopic_info['creator'] = $creator;
            
    $grouptopic_info['lastposter'] = $lastposter;


            
    // CREATE ARRAY OF TOPIC DATA
            
    $grouptopic_array[] = $grouptopic_info;

          }

          
    // RETURN ARRAY
          
    return $grouptopic_array;

        } 
    // END group_topic_list() METHOD


    ---------- Сообщение добавлено в 00:27 ---------- Предыдущее сообщение было в 00:20 ----------

    Может от комментов как-то переделать:
    PHP:

        
    // THIS METHOD RETURNS AN ARRAY CONTAINING COMMENT INFO
        // INPUT: $start REPRESENTING THE COMMENT TO START WITH
        //      $limit REPRESENTING THE NUMBER OF COMMENTS TO RETURN
        // OUTPUT: AN ARRAY OF COMMENTS

        
    function comment_list($start$limit)
      {
          global 
    $database$setting$user;

          
    $comment_array = Array();
          
    $comment_query "
          SELECT
                    `se_
    {$this->comment_type}comments`.*,
                    se_users.user_id,
                    se_users.user_username,
                    se_users.user_fname,
                    se_users.user_lname,
                    se_users.user_photo,
                CASE
                  WHEN ((se_users.user_privacy & @SE_PRIVACY_REGISTERED) AND '
    {$user->user_exists}'<>0)
                    THEN FALSE
                  WHEN ((se_users.user_privacy & @SE_PRIVACY_ANONYMOUS) AND '
    {$user->user_exists}'=0)
                    THEN FALSE
                  WHEN ((se_users.user_privacy & @SE_PRIVACY_SELF) AND se_users.user_id='
    {$user->user_info['user_id']}')
                    THEN FALSE
                  WHEN ((se_users.user_privacy & @SE_PRIVACY_FRIEND) AND (SELECT TRUE FROM se_friends WHERE friend_user_id1=se_users.user_id AND friend_user_id2='
    {$user->user_info['user_id']}' AND friend_status='1' LIMIT 1))
                    THEN FALSE
                  WHEN ((se_users.user_privacy & @SE_PRIVACY_SUBNET) AND se_users.user_subnet_id='
    {$user->user_info['user_subnet_id']}')
                    THEN FALSE
                  WHEN ((se_users.user_privacy & @SE_PRIVACY_FRIEND2) AND se_users.user_subnet_id='
    {$user->user_info['user_subnet_id']}' AND (SELECT TRUE FROM se_friends AS friends_primary LEFT JOIN se_friends AS friends_secondary ON friends_primary.friend_user_id2=friends_secondary.friend_user_id1 WHERE friends_primary.friend_user_id1=se_users.user_id AND friends_secondary.friend_user_id2='{$user->user_info['user_id']}' LIMIT 1))
                    THEN FALSE
                  ELSE TRUE
                END
                AS is_profile_private
                FROM
                    `se_
    {$this->comment_type}comments`
                LEFT JOIN
                    se_users
                ON
                    `se_
    {$this->comment_type}comments`.`{$this->comment_type}comment_authoruser_id`=se_users.user_id
                WHERE
                    `
    {$this->comment_type}comment_{$this->comment_identifier}`='{$this->comment_identifying_value}'
                ORDER BY
            `
    {$this->comment_type}comment_id` DESC
                LIMIT
            
    {$start}{$limit}
        "
    ;

          
    $comments $database->database_query($comment_query);
          while(
    $comment_info $database->database_fetch_assoc($comments))
        {
            
    // CREATE AN OBJECT FOR AUTHOR
            
    $author = new se_user();
            if( 
    $comment_info['user_id'] != $comment_info[$this->comment_type.'comment_authoruser_id'] )
          {
              
    $author->user_exists FALSE;
            }
          else
          {
              
    $author->user_exists TRUE;
              
    $author->user_info['user_id'] = $comment_info['user_id'];
              
    $author->user_info['user_username'] = $comment_info['user_username'];
              
    $author->user_info['user_fname'] = $comment_info['user_fname'];
              
    $author->user_info['user_lname'] = $comment_info['user_lname'];
              
    //$author->user_info['user_photo'] = $comment_info['user_photo'];
              
    $author->user_info['user_photo'] = substr($comment_info['user_photo'], 0strrpos($comment_info['user_photo'], "."))."_thumb".substr($comment_info['user_photo'], strrpos($comment_info['user_photo'], "."));
              
    $author->user_displayname();
            }

            
    // СМАЙЛЫ //
              
    $asconf['smiles'] = "nyam,oo,blum,blush,cray,crazy,dance,diablo,dirol,
              drinks,fool,good,kiss_mini,man_in_love,music,
              nea,pardon,rofl,rolleyes,sad,scratch_one-s_head,
              shok,shout,smile,unknw,yes,wink,yahoo,acute"
    ;
              
    $find = array();
              
    $replace = array();

                
    // ЗАМЕНА СМАЙЛОВ //
              
    $smilies_arr explode(","$asconf['smiles']);
              
    $r_comment ' '.$comment_info[$this->comment_type.'comment_body'];
              foreach(
    $smilies_arr as $smile)
       {
              
    $smile trim($smile);
              
    $find ':'.$smile.':';
              
    $replace '<img alt="'.$smile.'" src="./templates/images/smiles/'.$smile.'.gif" border=0>';
              
    $r_comment ereg_replace("$find""$replace"$r_comment);
      }

            
    // SET COMMENT ARRAY
            
    $comment_array[] = Array(
            
    'comment_id' => $comment_info[$this->comment_type.'comment_id'],
            
    'comment_authoruser_id' =>$comment_info[$this->comment_type.'comment_authoruser_id'],
            
    'comment_author' => $author,
            
    'comment_date' => $comment_info[$this->comment_type.'comment_date'],
            
    'comment_body' => $r_comment,
            
    'comment_author_private' => $comment_info['is_profile_private'],
            
    'comment_voteup' => $comment_info['comment_voteup']
          );
          }

          return 
    $comment_array;
        }

      
    // END comment_list() METHOD

Share This Page

All rights reserved SocEngine.ru ©