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

[2.1.x]Раскрывающийся текст


Arhar

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

не, тогда получится 15 вызовов этой функции на страницу

нафик

да и потом, спойлер может быть в подписи, тогда при просмотре профиля тоже надо его инициализировать

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

  • Ответы 296
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

Не шибко загрузится от этого, в глобад ините спойлеров всё равно для всех 15ти будет обработка. Зато гарантирует совместимость со всем что написано и будет написано :D
Ссылка на комментарий
Поделиться на других сайтах

Хм, непорядок. Но от быстрого ответа спасёт...
Ссылка на комментарий
Поделиться на других сайтах

можно, там закомментирована функция плавного раскрытия в инитспойлерс

 

В файле .jscripts/expand.js ?

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

В initSpoilers() найдите

toggle();//slideToggle('fast');

и заменить на

slideToggle('fast');

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

Спасибо большое, отлично работает! :D

Хотя после Быстрого редактирования уже не раскрывается.

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

Да.

Я проделал то, что написано тут. Потом раскомментировал slideToggle('fast');

 

Форма ответа у меня обычная, не от Санниса.

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

Ребятушки после установки мода (форум 2.2.2) при использовании [ spoiler=123 ]123[ /spoiler ] форум ругается что "Ошибка использования BB кодов форума. Возможно вы неправильно использовали какой-то из тегов, как, например, тег [ TAG ], тогда как он должен использоваться в виде [ TAG= ] или наоборот." Когда делаешь просто spoiler всё Ок. Делал по инструкции из арива в первом посте.

Так же у меня замечены баги: при ПОЛНОМ редактировании куда-то пропадают теги [ spoiler ][ /spoiler ] и показывается из содержимое как обычный текст, при этом стандартная надпись "Раскрывающийся текст" остаётся. При БЫСТРОМ редактировании чтобы открыть спойлер приходиться перезагружать страницу.

Прошу не ругаться если я что-то пропустил...

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

На 3й строке инструкции написано, что тег надо использовать не [spoiler].
Ссылка на комментарий
Поделиться на других сайтах

Ребятушки после установки мода (форум 2.2.2) при использовании [ spoiler=123 ]123[ /spoiler ] форум ругается

Удали в админке стандартный bbcode спойлера)

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

  • 2 недели спустя...

Всем доброго дня... В общем я установил этот скрип, но у меня на форуме версии 2.3.3 ничего не изменилось... Посмотрел инструкцию по добавлению кнопок, так не могу найти эту папку folder_rte_files на серваке... ее просто там нет, где указали... Кто может подсказать что не так сделал??? Установил скрипт в точности как указано в файле "expand", картинки скачал на фтп...

 

файл тоже скачал

 

попробовал сделать [expand]текст сворачивается[/expand]. так у меня появляется в посте "раскрывающийся текст" на него навожу, меняется курсор, что можно что-то делать с ним, кликаю на этот текст и ничего не происходит

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

Всем доброго дня... В общем я установил этот скрип, но у меня на форуме версии 2.3.3 ничего не изменилось... Посмотрел инструкцию по добавлению кнопок, так не могу найти эту папку folder_rte_files на серваке... ее просто там нет, где указали... Кто может подсказать что не так сделал??? Установил скрипт в точности как указано в файле "expand", картинки скачал на фтп...

 

файл тоже скачал

 

попробовал сделать [expand]текст сворачивается[/expand]. так у меня появляется в посте "раскрывающийся текст" на него навожу, меняется курсор, что можно что-то делать с ним, кликаю на этот текст и ничего не происходит

 

 

он только для 21х

 

http://www.ibresource.ru/forums/index.php?...st&p=299122 - нормально работает на 2.3.х

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

http://www.ibresource.ru/forums/index.php?...st&p=299122 - нормально работает на 2.3.х

А где это изменять? править какой-то файл или в админке изменять что-то? подробнее можешь разьяснить?

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

Arhar, не подскажешь, что и где прописать, чтобы Спойлер работал в ElfChat - модуть ajax чата для форума?

 

В чате он отображается, но при нажатии текст не разворачивается.

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

initSpoilers( 'контейнерчата' );

при каждом обновлении вызывать по идее

контейнерчата - тут скажу подробнее, если узнаю html того фрейма, в котором сообщения в чате идут

если допустим фрейм имеет ид chat

то контейнерчата == #chat

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

Вот содержимое главного файла.

 

<?php
/*
+--------------------------------------------------------------------------
|   Elf-Chat v3.1
|   =============================================
|   by Elfet
|   © 2004 - 2006 Medvedev Anton Elfet.
|   mr.elfet@gmail.com
|   =============================================
|   Web: [url="http://elfet.mellon.ru"]http://elfet.mellon.ru[/url]
|   Email: mr.elfet@gmail.com 
+---------------------------------------------------------------------------
|
|   > Elf-Chat
|   > Elf-Chat written by Medvedev Anton Elfet
|
+--------------------------------------------------------------------------
*/

class module {

    var $ipsclass;
    var $class  = "";
 var $module = "";

    var $info;
    var $output;
    var $out=array();
    var $out_smile=array();
    var $myid;
    var $refresh_time = 1800;     //Время выброса из чата. (сек.)
    var $refresh_time_line = 30;
    var $backslide = 0;

   function run_module()
   {
       //печатаем не кэшируемые заголовки
       header("Cache-Control: no-cache");
       header("Pragma: no-cache");

       //загружаем понятно что =)
		$this->ipsclass->load_template('skin_elfchat');
       $this->ipsclass->load_language('lang_elfchat');

       $this->backslide = ( isset($this->ipsclass->vars['elfchat_backslide']) ) ? $this->ipsclass->vars['elfchat_backslide'] : 0 ;
       $this->refresh_time = ( isset($this->ipsclass->vars['elfchat_refresh']) ) ? $this->ipsclass->vars['elfchat_refresh'] : 0 ;

       if($this->ipsclass->vars['elfchat_off'])
       {
       	$this->error('elfchatoff');        	
       }

       //не для гостей чат
       if ( ! $this->ipsclass->member['id'] )
	{
		$this->error( ); //если пусто - то это вс равно что 'no_pemision'
	}
       else
       {
           $this->myid = intval($this->ipsclass->member['id']);
       }



   	    switch($this->ipsclass->input['CODE'])
   	    {

   	    	case 'online':
   	    		$this->online(1);
   		    	break;

   	    	case 'send':
   	    		    $this->send();
   		    	break;

   	    	case 'load':
   	    		    $this->load();
   		    	break;

   	    	case 'logout':
   	    		    $this->logout();
   		    	break;
   	    	case 'archive':
   	    		    $this->archive();
   		    	break;    	    		    
       		default:
       			$this->main();
       			break;
           }


}


//------------------------------------------------------------------------------
//     ОТПРАВКА СООБЩЕНИЙ
//------------------------------------------------------------------------------

   function send()
   {
    require_once KERNEL_PATH . "Subsys_JsHttpRequest.php";

    $JsHttpRequest =& new Subsys_JsHttpRequest_Php( $this->ipsclass->vars['gb_char_set'] );

    if( $_REQUEST['text'] )
    {
         $text = $_REQUEST['text'];

         $forid = $_REQUEST['to_user_id'];

         //-----------------------------------
         //   Вызов актов
         //-----------------------------------

         if( substr($text,0,1) == '/')
         {

           $row = explode( " " , substr($text,1) );
           $act = $row[0];

           // Акт статуса
           if($act == $this->ipsclass->lang['act_status'])
           {
               // Получаем статус текст
               $status_text = trim( substr($text, strlen($this->ipsclass->lang['act_status'])+1 , 20 ) );
               // Записываем статус в БД
               $this->set_status($status_text,$this->myid);
               // Посылаем сообщение о смене статуса
               $this->insert(
                               "my_getbyid('userstatus_".intval($this->myid)."').innerHTML='" .
                                addslashes (
                                             htmlspecialchars (
                                                                ( $status_text == "" ? "" : "( ".$status_text." )" )
                                                               )
                                            ) . "';" , 0 , "jsc" ) ;

           }

           // Акт духа
           else if($act == $this->ipsclass->vars['elfchat_actduh'])
           {
               // Получаем статус текст
               $duh_text = trim( substr($text, strlen($this->ipsclass->vars['elfchat_actduh'])+1 , 300 ) );
               // Говорим от духа
               $this->insert($duh_text,$forid,"duh",$this->ipsclass->vars['elfchat_duh']);

           }


          /*     не нашло применения
           // Акт тут
           else if($act == $this->ipsclass->lang['act_tut'])
           {
               $tut_id = trim( substr($text, strlen($this->ipsclass->lang['act_tut'])+1 , 8 ) );

               $query = $this->ipsclass->DB->query("SELECT mid,mname,time FROM elfchat_online WHERE mid = ".intval($tut_id) );
               if( $row = $this->ipsclass->DB->fetch_row($query) )
               {
                   $tut_name = $row['mname'];

                   if( $row['time'] > time() - $this->refresh_time_line )
                   {
                      $this->insert(  str_replace("%s",$tut_name, $this->ipsclass->lang['tut']) , 0 ,"tut", "");
                   }
                   else
                   {
                      $this->insert(  str_replace("%s",$tut_name, $this->ipsclass->lang['nottut']) , 0 ,"tut", "");
                   }
               }

           }
          */

           //Админские функции
           else if ( $this->ipsclass->member['mgroup'] == $this->ipsclass->vars['admin_group'] )
           {
               if($act == $this->ipsclass->lang['act_kill'])
               {
                   $delete_id = trim( substr($text, strlen($this->ipsclass->lang['act_kill'])+1 , 8 ) );

                   $query = $this->ipsclass->DB->query("SELECT mid,mname FROM elfchat_online WHERE mid = ".intval($delete_id) );
                    if( $row = $this->ipsclass->DB->fetch_row($query) )
                    {
                        $delete_name = $row['mname'];
                        $this->ipsclass->DB->query("DELETE FROM elfchat_online WHERE mid = ".intval($delete_id));
                        $this->insert(  str_replace("%s",$delete_name, $this->ipsclass->lang['killed']) , 0 ,"onc");                                                                 
                    }
               }
               if($act == $this->ipsclass->lang['act_kill_mess'])
               {
                   $delete_id = trim( substr($text, strlen($this->ipsclass->lang['act_kill_mess'])+1 , 8 ) );

                        $this->ipsclass->DB->query("DELETE FROM elfchat_msg WHERE id = ".intval($delete_id));
                        $this->main();

               }
           }

         }

         //-----------------------------------
         //   Вызов актов завершён. Далее отправка простого сообщения
         //-----------------------------------

         else  // Если нет "/" в нчате строки
         {
             $this->insert($text,$forid,"msg");
         }
    }
    print "1"; // Всё хорошо. Печатаем "1"
   }

//------------------------------------------------------------------------------
//     ЗАПИСЬ СООБЩЕНИЙ В БД
//------------------------------------------------------------------------------

   function insert($text="",$forid=0,$type="msg",$mname="")
   {
        if( $type == "jsc" )
        {
            $text = mysql_escape_string($text);
            $this->ipsclass->DB->query("INSERT INTO elfchat_msg (mid,mname,forid,time,type,msg) VALUES (".intval($this->myid).", '".mysql_escape_string($this->ipsclass->member['members_display_name'])."', ".intval($forid).", ".(time()).", '".$type."', '".$text."')");
            return $this->ipsclass->DB->get_insert_id();
        }
        else if ( $text != "" )
        {
            $text = htmlspecialchars($text);
            //Загружаем парсер IPB
            require_once( ROOT_PATH."sources/handlers/han_parse_bbcode.php" );
            $parser                      =  new parse_bbcode();
            $parser->ipsclass            =& $this->ipsclass;
            $parser->allow_update_caches = 1;
            $parser->bypass_badwords = intval($this->ipsclass->member['g_bypass_badwords']);
            $parser->parse_smilies = $this->ipsclass->vars['elfchat_smile'];
            $parser->parse_bbcode  = $this->ipsclass->vars['elfchat_bbcode'];

            $text = $parser->pre_db_parse( $text );
            $text = mysql_escape_string($text);

            $mname = ( $mname == "" ) ? $this->ipsclass->member['members_display_name'] : $mname ;

            $this->ipsclass->DB->query("INSERT INTO elfchat_msg (mid,mname,forid,time,type,msg) VALUES (".intval($this->myid).", '".mysql_escape_string($mname)."', ".intval($forid).", ".(time()).", '".$type."', '".$text."')");

            return $this->ipsclass->DB->get_insert_id();

        }

        return 0;
   }

//------------------------------------------------------------------------------
//     ЗАГРУЗКА СООБЩЕНИЙ
//------------------------------------------------------------------------------

   function load()
   {

    require_once KERNEL_PATH . "Subsys_JsHttpRequest.php";

    $JsHttpRequest =& new Subsys_JsHttpRequest_Php( $this->ipsclass->vars['gb_char_set'] );

    if( isset($_REQUEST['lastID']) )
    {
      // Обновляем онлайн список
      $this->reset_online();

      // Загружаем новые сообщения
      $this->get($_REQUEST['lastID']);
      print( $this->return_js() );
    }

    print " ";
   }

//------------------------------------------------------------------------------
//     ЗАГРУЗКА СООБЩЕНИЙ ИЗ БД
//------------------------------------------------------------------------------

   function get($last_id=-1,$type='chat',$time_start=0,$time_end=0)
   {
      $last_id = intval($last_id);
      $query_text  = " SELECT c.*, fn.members_display_name as forname, g.prefix, g.suffix ";
      $query_text .= " FROM elfchat_msg c ";
      $query_text .= " LEFT JOIN ibf_members m ON (m.id=c.mid) ";
      $query_text .= " LEFT JOIN ibf_members fn ON (fn.id=c.forid) ";
      $query_text .= " LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) ";
      if($type == 'chat')
      {
         if( $last_id != -1 )
            $query_text .= " WHERE( c.id > ".$last_id." AND ( c.forid = 0 OR c.forid = ".intval($this->myid)." OR c.mid = ".intval($this->myid)." ) ) ORDER BY c.id ";
         else
            $query_text .= " WHERE( c.forid = 0 OR c.forid = ".intval($this->myid)." OR c.mid = ".intval($this->myid)."  )  ORDER BY c.id DESC LIMIT 30 ";
      }
      // Archive addson
      else if($type == 'archive')
      {
      	     $query_text .= " WHERE( c.forid = 0 AND c.time > ".intval($time_start)." AND c.time < ".intval($time_end)." )  ORDER BY c.id DESC";
      }

      $query = $this->ipsclass->DB->query($query_text);

      $this->out['text'] = array();

      $out_id=$last_id;

      $this->ipsclass->time_options['CHAT_SHOW'] = "H:i:s";

      $i=0;
   while( $row = $this->ipsclass->DB->fetch_row($query) )
      {
         $msg = str_replace( "<#EMO_DIR#>"  , $this->ipsclass->skin['_emodir']  , $row['msg'] );
         $date = $this->ipsclass->get_date( $row['time'], 'CHAT_SHOW', 1 );
         $name = $row['prefix'].$row['mname'].$row['suffix'];
         $uname = $row['mname'];
         $forname = $row['forname'];
         $mid = $row['mid'];
         $forid = $row['forid'];
         $type = $row['type'];
         $out_id = $row['id'];
         if( $last_id != -1 )
           $this->out['out_id'] = $row['id'];
         else
           if( $i == 0 )
             $this->out['out_id'] = $row['id'];

         // Определяем тип
         if($type == "duh")
               $name = $uname; // Что б было без префикса и посфикса
         if($type != "jsc")
         {
             if($forid != 0 && $mid == $this->myid)
                   $type = "upr";
             if($forid == $this->myid)
                   $type = "prv";
             if($type == "msg" && $type != "onc")
                   if(strpos($msg,$this->ipsclass->member['members_display_name'])!==false)$type = "you";
         }

         $this->out['text'][$i] = array (
                                          'id'      => $out_id ,
                                          'date'    => $date ,
                                          'type'    => $type ,
                                          'name'    => $name ,
                                          'uname'   => $uname ,
                                          'mid'     => $mid ,
                                          'forname' => $forname ,
                                          'msg'     => $msg
                                        );
         $i++;
      }

   }

//------------------------------------------------------------------------------
//     ВЫВОД СООБЩЕНИЙ
//------------------------------------------------------------------------------

   function return_js()
   {
      $out = "";
      $onc = false;
      foreach( $this->out['text'] as $m )
      {
           $out .= "inp(";
           $out .= "'".addslashes($m['id'])."',";
           $out .= "'".addslashes($m['date'])."',";
           $out .= "'".addslashes($m['type'])."',";
           $out .= "'".addslashes($m['name'])."',";
           $out .= "'".addslashes($m['uname'])."',";
           $out .= "'".addslashes($m['forname'])."',";
           $out .= "'".addslashes($m['mid'])."',";
           $out .= "'".addslashes($m['msg'])."'";
           $out .= ");\n";

           // Do we have new chater?
           if($m['type']=="onc")$onc=true;
      }
      if($onc)
      $out .= "onc();\n";
      return $out;
   }

   function return_text()
   {
      $out = "";

      if($this->backslide)krsort($this->out['text']);

      foreach( $this->out['text'] as $m )
      {
         if($m['type'] != "jsc")
         {
          if($m['type'] == "msg")
          //" . $m['id'] . "
         $out .= "<i>" . $m['date'] . "</i> <u href='#' onclick=\"addname('" . $m['uname'] . "');\" style='cursor: hand;'><b>" . $m['name'] . ":</b></u> " . $m['msg'] . "<br>";
          else if($m['type'] == "you")
         $out .= "<div class='darkrow3'><i>" . $m['date'] . "</i> <u href='#' onclick=\"addname('" . $m['uname'] . "');\" style='cursor: hand;'><b>"  . $m['name'] . ":</b></u> " . $m['msg'] . "</div>";
          else if($m['type'] == "prv")
         $out .= "<div class='darkrow1'><i>" . $m['date'] . "</i> <u href='#' onclick=\"addname('" . $m['uname'] . "');\" style='cursor: hand;'><b>"  . $m['name'] . "</b></u><b> " . $this->ipsclass->lang['only_to'] . " " . $this->ipsclass->lang['you'] . "</b>: " . $m['msg'] . "</div>";
          else if($m['type'] == "upr")
         $out .= "<div class='darkrow1'><i>" . $m['date'] . "</i> <u href='#' onclick=\"addname('" . $m['uname'] . "');\" style='cursor: hand;'><b>" . $m['name'] . "</b></u><b> " . $this->ipsclass->lang['only_to'] . " " . $m['forname'] . "</b>: " . $m['msg'] . "</div>";
          else if($m['type'] == "onc")
         $out .= "<i>" . $m['date'] . "</i> <b>     " . $m['msg'] . "</b><br>";
          else
         $out .= "<i>" . $m['date'] . " " . $m['name'] ."</i> <b>     " . $m['msg'] . "</b><br>";
         }
      }
      return $out;
   }

//------------------------------------------------------------------------------
//    ОБНОВЛЕНИЕ СТАТУСА
//------------------------------------------------------------------------------

   function set_status($status="",$mid=0)
   {
      $status = htmlspecialchars( $status );
      if($mid)$this->ipsclass->DB->query("UPDATE elfchat_online SET status='".mysql_escape_string( $status )."' WHERE mid=".intval($mid));
   }

//------------------------------------------------------------------------------
//    ВЫХОД ИЗ ЧАТА.
//------------------------------------------------------------------------------

   function logout()
   {
        $this->ipsclass->DB->query("DELETE FROM elfchat_online WHERE mid=".intval($this->myid));
        $this->insert(  str_replace("%s",$this->ipsclass->member['members_display_name'], $this->ipsclass->lang['leave']) , 0 ,"onc");
        Header("Location: ".$this->ipsclass->base_url);
   }

//------------------------------------------------------------------------------
//      ГЛАВНЫЙ ИНТЕРФЕЙС ЧАТА.
//------------------------------------------------------------------------------

   function smile()
   {
           $html = "";

           $this->ipsclass->DB->simple_construct( array( 'select' => 'typed, image', 'from' => 'emoticons', 'where' => "emo_set='".$this->ipsclass->skin['_emodir']."' AND clickable=1" ) );

	    $this->ipsclass->DB->simple_exec();

	    if ( $this->ipsclass->DB->get_num_rows() )
	        {
	    	while ( $r = $this->ipsclass->DB->fetch_row() )
	    	{
	    		$smilie_id++;

	    		if (strstr( $r['typed'], """ ) )
	    		{
	    			$in  = "'";
	    			$out = '"';
	    		}
	    		else
	    		{
    				$in  = '"';
    				$out = "'";
    			}

    			$html .= "<img src=\"style_emoticons/<#EMO_DIR#>/".stripslashes($r['image'])."\" onclick={$out}java script:addin({$in} ".stripslashes($r['typed'])." {$in});{$out}>";

	    	}
	    }

           $this->out_smile["html"] = str_replace( "<#EMO_DIR#>"  , $this->ipsclass->skin['_emodir']    , $html );

   }

   //---------------------------------------------------------
   // 1 - по загрузке. 2 - в начале
   //---------------------------------------------------------
   function online($type=1)
   {
           if( $type == 1 )
           {
               require_once KERNEL_PATH . "Subsys_JsHttpRequest.php";

               $JsHttpRequest =& new Subsys_JsHttpRequest_Php( $this->ipsclass->vars['gb_char_set'] );
           }


           $html = "";
           $query_text = "SELECT c.*, m.members_display_name as name, g.prefix, g.suffix ";
           $query_text .= "FROM elfchat_online c ";
           $query_text .= "LEFT JOIN ibf_members m ON (m.id=c.mid) ";
           $query_text .= "LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) ORDER BY time_in";

           $query = $this->ipsclass->DB->query($query_text);

    	    while( $row = $this->ipsclass->DB->fetch_row($query) )
           {
           	$row['status'] = ( $row['status'] == "" ) ? "" : "( ".$row['status']." )" ;
               $html .= $this->ipsclass->compiled_templates['skin_elfchat']->online_row($row);
           }

           if( $type == 1 )
           {
              print str_replace( "<#IMG_DIR#>"   , $this->ipsclass->skin['_imagedir']  , $html );
           }
           else
           {
              return  $html;
           }

   }

   function delete_by_timeout()
   {

           //-----------------------------------
           //   DELETE BY TIME OUT
           //-----------------------------------

           $query = $this->ipsclass->DB->query("SELECT c.*, m.members_display_name as name FROM elfchat_online c LEFT JOIN ibf_members m ON (m.id=c.mid) WHERE c.time < ".time()." - ".$this->refresh_time);

           $in = false;

    	    while( $row = $this->ipsclass->DB->fetch_row($query) )
           {
            $this->insert(  str_replace("%s",$row['name'], $this->ipsclass->lang['leave_timeout']), 0 ,"onc");
            $in = true;
           }

           if($in)$this->ipsclass->DB->query("DELETE FROM elfchat_online WHERE time < ".time()." - ".$this->refresh_time);

   }

   function reset_online()
   {
           $insert_id = -1;


           $this->delete_by_timeout();

           //-----------------------------------
           //   ПРОВЕРЯЕМ ЛИ ВХОДИМ :-) ВХОДИМ ВСЕГДА :-)
           //-----------------------------------

           $query_text = "SELECT * FROM elfchat_online WHERE mid=".intval($this->myid);

           $query = $this->ipsclass->DB->query($query_text);

    	    if( $this->ipsclass->DB->fetch_row($query) )
           {
              $this->ipsclass->DB->query("UPDATE elfchat_online SET time=".time()." WHERE ( mid=".intval($this->myid)." )");
           }
           else
           {
              $this->ipsclass->DB->query (
                                          "INSERT INTO elfchat_online (mid,mname,time,time_in)
                                           VALUES (
                                                   ".intval($this->myid).",
                                                   '".mysql_escape_string($this->ipsclass->member['members_display_name'])."',
                                                   ".time().",
                                                   ".time()."
                                                   )"
                                          );
              $insert_id = $this->insert(  str_replace("%s", $this->ipsclass->member['members_display_name'], $this->ipsclass->lang['comein']) , 0 ,"onc");
           }

           return $insert_id;
   }

   function main()
   {
           $title = $this->ipsclass->vars['elfchat_title'];

           $this->reset_online();

           $this->get();
           $html_text = $this->return_text();

           $last_id = $this->out['out_id'] ? $this->out['out_id'] : -1;

           $onlinelist = $this->online(2);

           $this->smile();

           // Delete old msg
           //$this->ipsclass->DB->query("DELETE FROM elfchat_msg WHERE(id < (".$last_id." - 30))");

           $this->output = $this->ipsclass->compiled_templates['skin_elfchat']->main(   $last_id ,   $title  , $html_text , $onlinelist , $this->out_smile["html"]  , $this->backslide  );
           $this->outprint();

   }


//------------------------------------------------------------------------------
//      АРХИВ ЧАТА.
//------------------------------------------------------------------------------   


   function archive()
   {
   	$this->backslide = 1;

       $query = $this->ipsclass->DB->query("SELECT min(time) as min FROM elfchat_msg");
       if( $row = $this->ipsclass->DB->fetch_row($query) ) 
       {
       	$date_start = $row['min'];  
 	    }
       else 
       {
       	$date_start = time()-43200;
       }

       $date_now = time(); 

       //---------------------------------------------------------------------------

       @$now = date("d.m.Y", $date_now);      
       $date_show = isset($this->ipsclass->input['date']) ? $this->ipsclass->input['date'] : $now ;     

       //---------------------------------------------------------------------------           

       $cache = array();
       for($i=$date_now; $i>=$date_start; $i-=86400)
       {
           @$date = date("d.m.Y", $i);

           if($date_show == $date)
               $cache[] = "<a href='".$this->ipsclass->base_url."automodule=elfchat&CODE=archive&date=$date'><b>» $date</b></a>";
           else   
               $cache[] = "<a href='".$this->ipsclass->base_url."automodule=elfchat&CODE=archive&date=$date'>$date</a>";              
       }        

       $data['list'] = implode("<br>", $cache);

       //---------------------------------------------------------------------------


       $show_array = explode(".",$date_show);
       @$show = mktime(0, 0, 0, $show_array[1], $show_array[0], $show_array[2]);

       $data['now'] = $date_show;
       @$data['next'] = date("d.m.Y", $show+86500);     
       @$data['back'] = date("d.m.Y", $show-86300);   

       //---------------------------------------------------------------------------

       if(isset($this->ipsclass->input['search']))
       {

       	$search = mysql_escape_string( substr( $this->ipsclass->input['search'], 0, 255 ) );
       	$query = $this->ipsclass->DB->query("SELECT * FROM elfchat_msg WHERE( forid = 0 AND type = 'msg' AND LOWER(msg) LIKE '%$search%' ) ORDER BY id DESC LIMIT 30");
       	while( $row = $this->ipsclass->DB->fetch_row($query) )
       	{
       		$at_date = date("d.m.Y", $row['time']);
       		$data['msg'] .= "<a href='".$this->ipsclass->base_url."automodule=elfchat&CODE=archive&date=$at_date'>$at_date »</a> {$row['mname']} ( <small>{$row['msg']}</small> )<br/>";
       	}
       	$data['search'] = $search;
       }
       else 
       {
       	$this->get(-1, 'archive', $show, $show+86400);
       	$data['msg'] = $this->return_text();
       }        	            

       if($data['msg'] == "")$data['msg'] = $this->ipsclass->lang['no_results'];        


   	$this->output = $this->ipsclass->compiled_templates['skin_elfchat']->archive($data);

       $this->ipsclass->print->add_output($this->output);
       $this->ipsclass->print->do_output( array( 'TITLE' => $this->ipsclass->lang['chat_archive'], 'JS' => 0, NAV => array( "<a href='".$this->ipsclass->base_url."automodule=elfchat'>".$this->ipsclass->lang['chat']."</a>", $this->ipsclass->lang['archive'] ) ) );    	    	
   }

//------------------------------------------------------------------------------
//     ПЕЧАТАЕМ КАК IPB
//------------------------------------------------------------------------------

   function outprint()
   {
   	//-----------------------------------------
       // CSS
       //-----------------------------------------

       $css = $this->ipsclass->print->_get_css();

    	//-----------------------------------------
   	// Get and parse macros
   	//-----------------------------------------

   	$this->ipsclass->print->_unpack_macros();

	foreach( $this->ipsclass->skin['_macros'] as $i => $row )
     	{
		if ($row['macro_value'] != "")
		{
			$this->output = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $this->output );
		}
	}

	$this->output = str_replace( "<% CHARSET %>" , $this->ipsclass->vars['gb_char_set'], $this->output );
       $this->output = str_replace( "<% CSS %>" , $css, $this->output );
	$this->output = str_replace( "<#IMG_DIR#>"   , $this->ipsclass->skin['_imagedir']  , $this->output );
	$this->output = str_replace( "<#EMO_DIR#>"   , $this->ipsclass->skin['_emodir']    , $this->output );

   	//-----------------------------------------
	// Images on another server? uncomment and alter below
	//-----------------------------------------

	if ( $this->ipsclass->vars['ipb_img_url'] )
	{
		$this->output = preg_replace( "#img\s+?src=[\"']style_(images|avatars|emoticons)(.+?)[\"'](.+?)?".">#is",
		                              "img src=\"".$this->ipsclass->vars['ipb_img_url']."style_\\1\\2\"\\3>", $this->output );
	}

   	$this->ipsclass->print->_finish();

   	echo ($this->output);
   	exit;
   }

//------------------------------------------------------------------------------
//     ФУНКЦИЯ СВОИХ ОШИБОК
//------------------------------------------------------------------------------

   function error($msg='no_permission')
   {
    $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => $msg ) );
   }




}

?>

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

надо просто подгружать JS файлик.... например в skin_elfchat - main

после строки

<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=<% CHARSET %>" />
	<title>{$title}</title>
	<% CSS %>
	<script type="text/javascript" src='jscripts/Subsys_JsHttpRequest.js'></script>
	<script type="text/javascript" src='jscripts/js_elfchat.js'></script>
	<script type="text/javascript">
<!--
var GetChaturl = "{ipb.script_url}automodule=elfchat&CODE=load";
var SendChaturl = "{ipb.script_url}automodule=elfchat&CODE=send";
var OnlChaturl = "{ipb.script_url}automodule=elfchat&CODE=online";
var i_sending =  "{ipb.lang['sending']}";
var i_upsend =  "{ipb.lang['upsend']}";
var i_only_to = "{ipb.lang['only_to']}";
var i_you = "{ipb.lang['you']}";
var i_sleep = "{ipb.lang['sleeping']}";
var i_act_status = "{ipb.lang['act_status']}";
var lastID = $lastID; 
var backSlide = $backslide;
window.onload = init_chat;
-->
	</script>
</head>
<body>
	<div id="ipbwrapper">
		<form id="chatForm" onsubmit="sendComment();return false;" disabled>
			<input id="to_user_id" type="hidden" value="0">
			<div class="borderwrap">
				<div class="maintitle">
					<p class="expand"><a href="{ipb.script_url}automodule=elfchat&CODE=logout" onclick="exit();">{ipb.lang['exit']}</a></p>
					<p><{CAT_IMG}> {$title}</p>
				</div>
				<table class='ipbtable' cellspacing="1">
					<tr height="25">
						<th align="left">
						<div style='float:right'><a href="{ipb.script_url}automodule=elfchat&CODE=archive">{ipb.lang['archive']}</a> 
						<a href="#" onclick='document.getElementById("help").style.display="block"'>{ipb.lang['help']}</a></div>
						<div>{ipb.lang['log']}<span id="infoc">0/0</span> <span id="conect_span" style="display:none;color:#FF0000;">{ipb.lang['conect']}</span></div>
						</th>
						<th align="right">
							 </th>
						<th align="right">
							<a href="#" onclick="onc();">{ipb.lang['reset']}</a></th>
					</tr>
					<tr>
						<td class="row2">
							<div id="outputList" style='height:400;overflow:auto'>$text</div>
						</td>
						<td width="22" class="row1" valign="bottom">
							$smile
						</td>
						<td width="200" class="row1" valign="top">
							<div id="onlineList">$online</div>
						</td>
					</tr>
					<tr>
						<td height="30" class="formsubtitle" align="left">
							 {ipb.lang['speak_to']} <a href="#" id="to_all" onclick="java script:speak_to_all();" style="border:#000000 dotted 1px;">{ipb.lang['to_all']}</a> <a href="#" onclick="java script:speak_to_user();" id="to_user"></a>
						</td>
						<td height="30" class="formsubtitle" colspan="2">
							<span id="infosend"></span>
						</td>
					</tr>
					<tr>
						<td class="formsubtitle" height="20" align="center">
							<input type="text" size="10" maxlength="500" id="chatbarText" style="width:100%">
						</td>
						<td height="20" class="formsubtitle" colspan="2" align="left">
							<input type="submit" id="submit" value="{ipb.lang['send']}">
						</td>
					</tr>
				</table>
			</div>
		</form>
		<img src="style_images/<#IMG_DIR#>/topic_unselected.gif"> Powered by <a href="mailto:mr.elfet(cоbaka)gmail.com">
			Elfet</a> — <a href="http://elfet.mellon.ru">Elf-Chat</a> © 2006
	</div>
<div id='help' style='display:none;position:absolute;top:100;left:25%;width:50%;text-align:left;z-index:1;'>
	<div class="borderwrap">
			 <div class='maintitle'>
					  <div style='float:right'><a href='#' onclick='document.getElementById("help").style.display="none"'>[X]</a></div>
					  <div>{ipb.lang['help']}</div>
			 </div>
					<div class='row1'>
							<p>{ipb.lang['help_info']}</p>
					</div>
	</div>
</div>
</body>
</html>

 

Автор поправь если не прав :D сам не тестил

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

sss/ я ваще поглядел тут ща и понял что не то написал %) 3-и сутки на ногах - туго соображаю. пост выше снесите плиз, он всёодно неправильной...

 

правильнее наверно initSpoilers('outputList'); ?

 

нее, спать...

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


×
×
  • Создать...

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

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