Arhar Опубликовано 3 Января 2008 Автор Жалоба Поделиться Опубликовано 3 Января 2008 не, тогда получится 15 вызовов этой функции на страницунафикда и потом, спойлер может быть в подписи, тогда при просмотре профиля тоже надо его инициализировать Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 3 Января 2008 Жалоба Поделиться Опубликовано 3 Января 2008 Не шибко загрузится от этого, в глобад ините спойлеров всё равно для всех 15ти будет обработка. Зато гарантирует совместимость со всем что написано и будет написано Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 3 Января 2008 Автор Жалоба Поделиться Опубликовано 3 Января 2008 почему жепри быстром редактировании меняется только внутренность поста и функция повторно выполнятся не будет Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 3 Января 2008 Жалоба Поделиться Опубликовано 3 Января 2008 Хм, непорядок. Но от быстрого ответа спасёт... Ссылка на комментарий Поделиться на других сайтах Прочее
atlant1s Опубликовано 4 Января 2008 Жалоба Поделиться Опубликовано 4 Января 2008 можно, там закомментирована функция плавного раскрытия в инитспойлерс В файле .jscripts/expand.js ? Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 4 Января 2008 Жалоба Поделиться Опубликовано 4 Января 2008 В initSpoilers() найдитеtoggle();//slideToggle('fast');и заменить наslideToggle('fast'); Ссылка на комментарий Поделиться на других сайтах Прочее
atlant1s Опубликовано 4 Января 2008 Жалоба Поделиться Опубликовано 4 Января 2008 Спасибо большое, отлично работает! Хотя после Быстрого редактирования уже не раскрывается. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 4 Января 2008 Автор Жалоба Поделиться Опубликовано 4 Января 2008 даже после добавления инициализации как я говорил выше? Ссылка на комментарий Поделиться на других сайтах Прочее
atlant1s Опубликовано 4 Января 2008 Жалоба Поделиться Опубликовано 4 Января 2008 Да.Я проделал то, что написано тут. Потом раскомментировал slideToggle('fast'); Форма ответа у меня обычная, не от Санниса. Ссылка на комментарий Поделиться на других сайтах Прочее
Urban Rasta Опубликовано 5 Января 2008 Жалоба Поделиться Опубликовано 5 Января 2008 Ребятушки после установки мода (форум 2.2.2) при использовании [ spoiler=123 ]123[ /spoiler ] форум ругается что "Ошибка использования BB кодов форума. Возможно вы неправильно использовали какой-то из тегов, как, например, тег [ TAG ], тогда как он должен использоваться в виде [ TAG= ] или наоборот." Когда делаешь просто spoiler всё Ок. Делал по инструкции из арива в первом посте.Так же у меня замечены баги: при ПОЛНОМ редактировании куда-то пропадают теги [ spoiler ][ /spoiler ] и показывается из содержимое как обычный текст, при этом стандартная надпись "Раскрывающийся текст" остаётся. При БЫСТРОМ редактировании чтобы открыть спойлер приходиться перезагружать страницу.Прошу не ругаться если я что-то пропустил... Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 5 Января 2008 Жалоба Поделиться Опубликовано 5 Января 2008 На 3й строке инструкции написано, что тег надо использовать не [spoiler]. Ссылка на комментарий Поделиться на других сайтах Прочее
TOIIOP Опубликовано 6 Января 2008 Жалоба Поделиться Опубликовано 6 Января 2008 Ребятушки после установки мода (форум 2.2.2) при использовании [ spoiler=123 ]123[ /spoiler ] форум ругаетсяУдали в админке стандартный bbcode спойлера) Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 6 Января 2008 Автор Жалоба Поделиться Опубликовано 6 Января 2008 Прошу не ругаться если я что-то пропустил"форум 2.2.2" != "Раскрывающийся текст, 2.1.x" Ссылка на комментарий Поделиться на других сайтах Прочее
TOIIOP Опубликовано 6 Января 2008 Жалоба Поделиться Опубликовано 6 Января 2008 Прошу не ругаться если я что-то пропустил"форум 2.2.2" != "Раскрывающийся текст, 2.1.x"У меня и на 2.3.3 работал Ссылка на комментарий Поделиться на других сайтах Прочее
Malkavian Опубликовано 19 Января 2008 Жалоба Поделиться Опубликовано 19 Января 2008 Всем доброго дня... В общем я установил этот скрип, но у меня на форуме версии 2.3.3 ничего не изменилось... Посмотрел инструкцию по добавлению кнопок, так не могу найти эту папку folder_rte_files на серваке... ее просто там нет, где указали... Кто может подсказать что не так сделал??? Установил скрипт в точности как указано в файле "expand", картинки скачал на фтп... файл тоже скачал попробовал сделать [expand]текст сворачивается[/expand]. так у меня появляется в посте "раскрывающийся текст" на него навожу, меняется курсор, что можно что-то делать с ним, кликаю на этот текст и ничего не происходит Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 19 Января 2008 Автор Жалоба Поделиться Опубликовано 19 Января 2008 он только для 21х Ссылка на комментарий Поделиться на других сайтах Прочее
smash_TeAm Опубликовано 19 Января 2008 Жалоба Поделиться Опубликовано 19 Января 2008 Всем доброго дня... В общем я установил этот скрип, но у меня на форуме версии 2.3.3 ничего не изменилось... Посмотрел инструкцию по добавлению кнопок, так не могу найти эту папку folder_rte_files на серваке... ее просто там нет, где указали... Кто может подсказать что не так сделал??? Установил скрипт в точности как указано в файле "expand", картинки скачал на фтп... файл тоже скачал попробовал сделать [expand]текст сворачивается[/expand]. так у меня появляется в посте "раскрывающийся текст" на него навожу, меняется курсор, что можно что-то делать с ним, кликаю на этот текст и ничего не происходит он только для 21х http://www.ibresource.ru/forums/index.php?...st&p=299122 - нормально работает на 2.3.х Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 19 Января 2008 Автор Жалоба Поделиться Опубликовано 19 Января 2008 аминь Ссылка на комментарий Поделиться на других сайтах Прочее
Malkavian Опубликовано 21 Января 2008 Жалоба Поделиться Опубликовано 21 Января 2008 http://www.ibresource.ru/forums/index.php?...st&p=299122 - нормально работает на 2.3.хА где это изменять? править какой-то файл или в админке изменять что-то? подробнее можешь разьяснить? Ссылка на комментарий Поделиться на других сайтах Прочее
atlant1s Опубликовано 25 Января 2008 Жалоба Поделиться Опубликовано 25 Января 2008 Arhar, не подскажешь, что и где прописать, чтобы Спойлер работал в ElfChat - модуть ajax чата для форума? В чате он отображается, но при нажатии текст не разворачивается. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 25 Января 2008 Автор Жалоба Поделиться Опубликовано 25 Января 2008 initSpoilers( 'контейнерчата' );при каждом обновлении вызывать по идееконтейнерчата - тут скажу подробнее, если узнаю html того фрейма, в котором сообщения в чате идутесли допустим фрейм имеет ид chatто контейнерчата == #chat Ссылка на комментарий Поделиться на других сайтах Прочее
atlant1s Опубликовано 25 Января 2008 Жалоба Поделиться Опубликовано 25 Января 2008 Вот содержимое главного файла. <?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 ) ); } } ?> Ссылка на комментарий Поделиться на других сайтах Прочее
smash_TeAm Опубликовано 25 Января 2008 Жалоба Поделиться Опубликовано 25 Января 2008 надо просто подгружать 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> Автор поправь если не прав сам не тестил Ссылка на комментарий Поделиться на других сайтах Прочее
atlant1s Опубликовано 25 Января 2008 Жалоба Поделиться Опубликовано 25 Января 2008 Сделал. Не помогло. Ссылка на комментарий Поделиться на других сайтах Прочее
smash_TeAm Опубликовано 25 Января 2008 Жалоба Поделиться Опубликовано 25 Января 2008 sss/ я ваще поглядел тут ща и понял что не то написал %) 3-и сутки на ногах - туго соображаю. пост выше снесите плиз, он всёодно неправильной... правильнее наверно initSpoilers('outputList'); ? нее, спать... Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения