pikachu
Пользователи-
Число публикаций
578 -
Регистрация
-
Последнее посещение
Личная информация
- Заголовок
-
ICQ
21058615
Дополнительные
-
Пол
Мужчина
-
Город
Интернет
Недавние посетители профиля
4 914 просмотров профиля
Достижения pikachu
-
Мод не тестировался на семействе Joomla 1.5.x, т.к в то время не было оного для теста. Как я понял, авторизация по e-mail требуется только на форуме? Тип входа (e-mail, login) меняется в админпанели форума. Для доступа в админцентр форума нужно, чтобы id администратора IPB было таким же, как id администратора Joomla, желательно вообще id1. Больше помочь ничем не могу, т.к уже не занимаюсь ни ipb, ни joomla.
-
Sannis: Жаль, что нам не удалось в асе пообщаться... Вообщем проблема в следующем: Были сделаны изменения в файлах для этой модификации с 0 (редактируемые файлы были взяты из дистрибутива). В браузерах Firefox, IE8, Opera (последних версиях), при нажатии кнопки Отправить появляется аяксовая надпись: "Подождите, идёт загрузка новых сообщений", потом убирается форма быстрого ответа и на этом всё висит. После рефреша страницы - сообщение появляется в теме. Окно джаваошибок молчит. Я прочитал, что мод для версии ипб 2.3.х, но все исправления были сделаны согласно инструкции и вроде должно было работать Причем если нажимать на кнопку "Загрузить новые сообщения", то процедура проходит корректно. Работает как нужно. Проблема только при отправке нового сообщения.
-
Нет, человек должен логиниться и на сайте и на форуме. Интеграция просто создает 2 учетные записи в базе сайта и в базе форума.
-
писал уже. нужно скачать мод для версии ипб 2.0.х и оттуда скрипт запустить для переноса пользователей из базы форума в базу сайта (сделав необходимые изменения)
-
1) хостинг-центр рбк, hc.ru, "большой" 2) уникальных в сутки 400-600, на форуме Зарегистрировано пользователей: 8,820 3) На форуме сообщений: 301,944 4) 16mb/ php 4.4.2/ mysql 4.1.22 5) отвечают часто - но проблемы решать не склонны. 6) на их хостинге вываливается internal server error при попытке открыть личное сообщение или сделать выборку по сообщениям пользователя. причем доказано, что это их проблема, так как форум заливал к себе локально и поднимал через appserv - и всё работало. Бывает, что сайт с форумом вываливается с ошибкой с max_allow_connections и он может быть недоступен полдня. У предыдущего хостера такого небыло, равно как и проблемы с internal server error. эх..если бы хостинг руцентра увеличили места на тарифах не неделю назад, а в конце ноября - я бы у них остался ps: вспомнил про пункт 0.. в остальном работой доволен - когда всё работает, то работает очень шустро.
-
Отредактируйте файл настроек журнала .xml (название непомню), там в начале измените windows-1251 на utf-8 и заново залейте настройки. должно помочь.
-
Интеграция IPB в Torrent Tracker
pikachu ответил на тему форума автора atlant1s в Запрос на создание модификации
http://vh1-clips.ifolder.ru/4813931 перевел кое-как ланг файл. за перевод не пинайте. понятия не имел о чем он, да и вообще 2 часа ночи на улице =) соответственно закинуть сей файл в папку /tracker/language -
Сейчас свой проект держу на hc.ru (хостинг рбк), тариф на 5гб. Шустро летает и cms-сайт и форум ipb 2.2.2 с 400000 записями в мускуле (посетителей примерно 500-700 человек в сутки). Вообщем пока нареканий нет - саппорт адекватный, реагируют быстро.
-
Это из инструкции, которую я качал буквально 2-3 дня назад. Сейчас поменяю на вчерашнюю. Флуд получается какой-то... Вообщем поставил то, что качал вчера: //----------------------------------------- // (SnS) AJAX Fast Reply //----------------------------------------- function fast_reply_post() { //----------------------------------------- // Convert unicode //----------------------------------------- $_POST['Post'] = $this->convert_unicode( $_POST['Post'] ); if( strtolower($this->ipsclass->vars['gb_char_set']) != 'iso-8859-1' && strtolower($this->ipsclass->vars['gb_char_set']) != 'utf-8' ) { if ( array_key_exists( strtolower($this->ipsclass->vars['gb_char_set']), $this->decode_charsets ) ) { $this->ipsclass->vars['gb_char_set'] = $this->decode_charsets[strtolower($this->ipsclass->vars['gb_char_set'])]; $_POST['Post'] = html_entity_decode( $_POST['Post'], ENT_NOQUOTES, $this->ipsclass->vars['gb_char_set'] ); } } //----------------------------------------- // Init input //----------------------------------------- $this->ipsclass->input['fast_reply_used'] = 1; $_POST['fast_reply_used'] = 1; $this->ipsclass->input['sns_fast_reply_used'] = 1; //----------------------------------------- // Load and run post class //----------------------------------------- require_once( ROOT_PATH.'sources/action_public/post.php' ); $post = new post(); $post->ipsclass =& $this->ipsclass; $post->auto_run(); $pid = $post->han_post->class_post->post['pid']; if( $this->ipsclass->vars['post_order_column'] != 'post_date' ) { $this->ipsclass->vars['post_order_column'] = 'pid'; } if( $this->ipsclass->vars['post_order_sort'] != 'desc' ) { $this->ipsclass->vars['post_order_sort'] = 'asc'; } if( $this->ipsclass->vars['post_order_sort'] == 'desc' ) { if( $this->ipsclass->input['st'] != 0 ) { $this->return_string('show_last'); } } else { if( $pid > 0 ) { $blah = $this->ipsclass->DB->simple_exec_query(array('select' => 'COUNT(*) as posts', 'from' => 'posts', 'where' => 'topic_id='.$post->han_post->class_post->topic['tid'].' AND pid <= '.$post->han_post->class_post->post['pid'])); $pcount = $blah['posts']; if( ($pcount % $this->ipsclass->vars['display_max_posts']) == 0 ) { $pages = ($pcount) / $this->ipsclass->vars['display_max_posts']; } else { $number = (($pcount) / $this->ipsclass->vars['display_max_posts']); $pages = ceil($number); } $st = ($pages - 1) * $this->ipsclass->vars['display_max_posts']; if( $st != $this->ipsclass->input['st'] ) { $this->return_string('show_last'); } } else { $this->return_string('error'); } } //----------------------------------------- // Load and init topics class //----------------------------------------- require_once( ROOT_PATH.'sources/action_public/topics.php' ); $topics = new topics(); $topics->ipsclass =& $this->ipsclass; $topics->post_count = intval($pcount); $topics->init(); $topics->topic_set_up(); //----------------------------------------- // Get post //----------------------------------------- if( $post->han_post->class_post->is_merging_posts ) { //----------------------------------------- // Prep for display //----------------------------------------- $html = $post->han_post->class_post->show_post_preview( $post->han_post->class_post->new_post ); //----------------------------------------- // Showing reason for edit? //----------------------------------------- if ( $this->ipsclass->member['g_is_supmod'] OR $post->han_post->class_post->moderator['edit_post'] ) { if ( $post->han_post->class_post->post_edit_reason ) { $html .= "\n<div class='post-edit-reason'> {$this->ipsclass->lang['reason_for_edit']}: {$post->han_post->class_post->post_edit_reason} </div>"; } } $html = $html . "\n" . '<!--IBF.ATTACHMENT_' . $pid . '-->'; //----------------------------------------- // Grab render attach class //----------------------------------------- if ( !is_object( $post->han_post->class_post->class_attach ) ) { require_once( ROOT_PATH . 'sources/classes/attach/class_attach.php' ); $post->han_post->class_post->class_attach = new class_attach(); $post->han_post->class_post->class_attach->ipsclass =& $this->ipsclass; } $this->ipsclass->load_template( 'skin_topic' ); $post->han_post->class_post->class_attach->type = 'post'; $post->han_post->class_post->class_attach->init(); $html = $post->han_post->class_post->class_attach->render_attachments( $html, array( $pid => $pid ) ); if ( $post->han_post->class_post->post['append_edit'] == 1 AND $post->han_post->class_post->post['edit_time'] AND $post->han_post->class_post->post['edit_name'] ) { $e_time = $this->ipsclass->get_date( $post->han_post->class_post->post['edit_time'] , 'LONG' ); $html .= "<br /><br /><span class='edit'>".sprintf($this->ipsclass->lang['edited_by'], $post->han_post->class_post->post['edit_name'], $e_time)."</span>"; } $match = array(); $js = ''; preg_match_all('/fix_linked_image_sizes_attach_thumb\(.*?\);/is', $html, $match); for ( $i=0; $i < count($match); $i++ ) { $js .= $match[$i][0]."\n"; } //$js .= 'fix_linked_image_sizes();'; } else { $raw_post = $post->han_post->class_post->post['post']; if ($this->ipsclass->vars['au_cutoff'] == '') { $this->ipsclass->vars['au_cutoff'] = 15; } if ($this->ipsclass->vars['custom_profile_topic'] == 1) { $query_type = 'topics_get_posts_with_join'; } else { $query_type = 'topics_get_posts'; } if (!in_array('skin_topic', $this->ipsclass->compiled_templates)) { $this->ipsclass->load_template('skin_topic'); } $this->ipsclass->DB->cache_add_query($query_type, array('pids' => array($post->han_post->class_post->post['pid']), 'scol' => $this->ipsclass->vars['post_order_column'], 'sord' => $this->ipsclass->vars['post_order_sort'])); $o = $this->ipsclass->DB->simple_exec(); if($row = $this->ipsclass->DB->fetch_row($o)) { $return = $topics->parse_row( $row ); $html = $this->ipsclass->compiled_templates['skin_topic']->RenderRow($return['row'], $return['poster']); $js = ''; if($this->ipsclass->member['id']) { $js = <<<EOF if ( ajax_loaded && use_enhanced_js ) { menu_build_menu( 'edit-but-{$return['row']['pid']}', new Array( img_item + " <a title='{$this->ipsclass->lang['edit_full_desc']}' href='{$this->ipsclass->base_url}act=post&do=edit_post&f={$return['row']['forum_id']}&t={$return['row']['topic_id']}&p={$return['row']['pid']}&st={$this->ipsclass->input['st']}'>{$this->ipsclass->lang['edit_full_title']}</a>", img_item + " <a href='#' title='{$this->ipsclass->lang['edit_quick_desc']}' onclick='return ajax_prep_for_edit({$return['row']['pid']}, event);'>{$this->ipsclass->lang['edit_quick_title']}</a>" ) ); } ipsmenu.register( 'edit-but-{$return['row']['pid']}' ); ipsmenu.register( 'post-member-{$return['row']['pid']}', '', 'popmenubutton-new', 'popmenubutton-new-out' ); EOF; } } else { $this->return_string('error'); } } foreach( $this->ipsclass->skin['_macros'] as $i => $row ) { if ( $row['macro_value'] != "" ) { $html = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $html ); } } $html = str_replace( "<#IMG_DIR#>", $this->ipsclass->skin['_imagedir'], $html ); $html = str_replace( "<#EMO_DIR#>", $this->ipsclass->skin['_emodir'] , $html ); if ( $this->ipsclass->vars['ipb_img_url'] ) { $html = preg_replace( "#img\s+?src=([\"'])style_(images|avatars|emoticons)(.+?)[\"'](.+?)?".">#is", "img src=\\1".$this->ipsclass->vars['ipb_img_url']."style_\\2\\3\\1\\4>", $html ); } $html = preg_replace( "#htmldocument\.prototype#is", "HTMLDocument_prototype", $html ); $ret = array( 'is_mp' => $post->han_post->class_post->is_merging_posts, 'pid' => $post->han_post->class_post->post['pid'], 'html' => $html, 'js' => $js, 'topicsread'=> serialize($topics->read_array) ); $this->return_string(serialize($ret)); } Собственно ничего не изменилось. Ошибка такая же всплывает.
-
//----------------------------------------- // (SnS) AJAX Fast Reply //----------------------------------------- function fast_reply_post() { //----------------------------------------- // Convert unicode //----------------------------------------- $_POST['Post'] = $this->convert_unicode( $_POST['Post'] ); if( strtolower($this->ipsclass->vars['gb_char_set']) != 'iso-8859-1' && strtolower($this->ipsclass->vars['gb_char_set']) != 'utf-8' ) { if ( array_key_exists( strtolower($this->ipsclass->vars['gb_char_set']), $this->decode_charsets ) ) { $this->ipsclass->vars['gb_char_set'] = $this->decode_charsets[strtolower($this->ipsclass->vars['gb_char_set'])]; $_POST['Post'] = html_entity_decode( $_POST['Post'], ENT_NOQUOTES, $this->ipsclass->vars['gb_char_set'] ); } } //----------------------------------------- // Init input //----------------------------------------- $this->ipsclass->input['fast_reply_used'] = 1; $this->ipsclass->input['sns_fast_reply_used'] = 1; //----------------------------------------- // Load and run post class //----------------------------------------- require_once( ROOT_PATH.'sources/action_public/post.php' ); $post = new post(); $post->ipsclass =& $this->ipsclass; $post->auto_run(); $pid = $post->han_post->class_post->post['pid']; if( $this->ipsclass->vars['post_order_column'] != 'post_date' ) { $this->ipsclass->vars['post_order_column'] = 'pid'; } if( $this->ipsclass->vars['post_order_sort'] != 'desc' ) { $this->ipsclass->vars['post_order_sort'] = 'asc'; } if( $this->ipsclass->vars['post_order_sort'] == 'desc' ) { if( $this->ipsclass->input['st'] != 0 ) { $this->return_string('show_last'); } } else { if( $pid > 0 ) { $blah = $this->ipsclass->DB->simple_exec_query(array('select' => 'COUNT(*) as posts', 'from' => 'posts', 'where' => 'topic_id='.$post->han_post->class_post->topic['tid'].' AND pid <= '.$post->han_post->class_post->post['pid'])); $pcount = $blah['posts']; if( ($pcount % $this->ipsclass->vars['display_max_posts']) == 0 ) { $pages = ($pcount) / $this->ipsclass->vars['display_max_posts']; } else { $number = (($pcount) / $this->ipsclass->vars['display_max_posts']); $pages = ceil($number); } $st = ($pages - 1) * $this->ipsclass->vars['display_max_posts']; if( $st != $this->ipsclass->input['st'] ) { $this->return_string('show_last'); } } else { $this->return_string('error'); } } //----------------------------------------- // Load and init topics class //----------------------------------------- require_once( ROOT_PATH.'sources/action_public/topics.php' ); $topics = new topics(); $topics->ipsclass =& $this->ipsclass; $topics->post_count = intval($pcount); $topics->init(); $topics->topic_set_up(); //----------------------------------------- // Get post //----------------------------------------- if( $post->han_post->class_post->is_merging_posts ) { //----------------------------------------- // Prep for display //----------------------------------------- $html = $post->han_post->class_post->show_post_preview( $post->han_post->class_post->new_post ); //----------------------------------------- // Showing reason for edit? //----------------------------------------- if ( $this->ipsclass->member['g_is_supmod'] OR $post->han_post->class_post->moderator['edit_post'] ) { if ( $post->han_post->class_post->post_edit_reason ) { $html .= "\n<div class='post-edit-reason'> {$this->ipsclass->lang['reason_for_edit']}: {$post->han_post->class_post->post_edit_reason} </div>"; } } $html = $html . "\n" . '<!--IBF.ATTACHMENT_' . $pid . '-->'; //----------------------------------------- // Grab render attach class //----------------------------------------- if ( !is_object( $post->han_post->class_post->class_attach ) ) { require_once( ROOT_PATH . 'sources/classes/attach/class_attach.php' ); $post->han_post->class_post->class_attach = new class_attach(); $post->han_post->class_post->class_attach->ipsclass =& $this->ipsclass; } $this->ipsclass->load_template( 'skin_topic' ); $post->han_post->class_post->class_attach->type = 'post'; $post->han_post->class_post->class_attach->init(); $html = $post->han_post->class_post->class_attach->render_attachments( $html, array( $pid => $pid ) ); if ( $post->han_post->class_post->post['append_edit'] == 1 AND $post->han_post->class_post->post['edit_time'] AND $post->han_post->class_post->post['edit_name'] ) { $e_time = $this->ipsclass->get_date( $post->han_post->class_post->post['edit_time'] , 'LONG' ); $html .= "<br /><br /><span class='edit'>".sprintf($this->ipsclass->lang['edited_by'], $post->han_post->class_post->post['edit_name'], $e_time)."</span>"; } $match = array(); $js = ''; preg_match_all('/fix_linked_image_sizes_attach_thumb\(.*?\);/is', $html, $match); for ( $i=0; $i < count($match); $i++ ) { $js .= $match[$i][0]."\n"; } //$js .= 'fix_linked_image_sizes();'; } else { $raw_post = $post->han_post->class_post->post['post']; if ($this->ipsclass->vars['au_cutoff'] == '') { $this->ipsclass->vars['au_cutoff'] = 15; } if ($this->ipsclass->vars['custom_profile_topic'] == 1) { $query_type = 'topics_get_posts_with_join'; } else { $query_type = 'topics_get_posts'; } if (!in_array('skin_topic', $this->ipsclass->compiled_templates)) { $this->ipsclass->load_template('skin_topic'); } $this->ipsclass->DB->cache_add_query($query_type, array('pids' => array($post->han_post->class_post->post['pid']), 'scol' => $this->ipsclass->vars['post_order_column'], 'sord' => $this->ipsclass->vars['post_order_sort'])); $o = $this->ipsclass->DB->simple_exec(); if($row = $this->ipsclass->DB->fetch_row($o)) { $return = $topics->parse_row( $row ); $html = $this->ipsclass->compiled_templates['skin_topic']->RenderRow($return['row'], $return['poster']); $js = <<<EOF if ( ajax_loaded && use_enhanced_js ) { menu_build_menu( 'edit-but-{$return['row']['pid']}', new Array( img_item + " <a title='{$this->ipsclass->lang['edit_full_desc']}' href='{$this->ipsclass->base_url}act=post&do=edit_post&f={$return['row']['forum_id']}&t={$return['row']['topic_id']}&p={$return['row']['pid']}&st={$this->ipsclass->input['st']}'>{$this->ipsclass->lang['edit_full_title']}</a>", img_item + " <a href='#' title='{$this->ipsclass->lang['edit_quick_desc']}' onclick='return ajax_prep_for_edit({$return['row']['pid']}, event);'>{$this->ipsclass->lang['edit_quick_title']}</a>" ) ); } ipsmenu.register( 'edit-but-{$return['row']['pid']}' ); ipsmenu.register( 'post-member-{$return['row']['pid']}', '', 'popmenubutton-new', 'popmenubutton-new-out' ); EOF; } else { $this->return_string('error'); } } foreach( $this->ipsclass->skin['_macros'] as $i => $row ) { if ( $row['macro_value'] != "" ) { $html = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $html ); } } $html = str_replace( "<#IMG_DIR#>", $this->ipsclass->skin['_imagedir'], $html ); $html = str_replace( "<#EMO_DIR#>", $this->ipsclass->skin['_emodir'] , $html ); if ( $this->ipsclass->vars['ipb_img_url'] ) { $html = preg_replace( "#img\s+?src=([\"'])style_(images|avatars|emoticons)(.+?)[\"'](.+?)?".">#is", "img src=\\1".$this->ipsclass->vars['ipb_img_url']."style_\\2\\3\\1\\4>", $html ); } $html = preg_replace( "#htmldocument\.prototype#is", "HTMLDocument_prototype", $html ); $ret = array( 'is_mp' => $post->han_post->class_post->is_merging_posts, 'pid' => $post->han_post->class_post->post['pid'], 'html' => $html, 'js' => $js, 'topicsread'=> serialize($topics->read_array) ); $this->return_string(serialize($ret)); } Написал на английском - тоже самое O_o ошибка добавления сообщения.
-
Arhar: Да тут дело не в самом форуме или в исходниках, а чисто в джаве. мод ведь пашет на других браузерах... Ведь только джава в разных браузерах - по разному работает. Почти все любительские моды страдают от того, что были заточены под ослика, и только потом уже смотрят работоспособность в других браузерах.
-
Непонимаю, как может быть ошибка в пхп, если в осле и опере (в опере я тоже проверил) - всё работает как надо! Вообщем спасибо за попытку помочь, дальше попробую сам.
-
2Arhar: Думаете? 2Sannis: XP, Firefox 2.0.0.11, IPB 2.2.2 В консоли ошибок нет ссылки на строку с ошибкой - просто поле с ошибкой указано: Это как? O_o
-
Ошибка: uncaught exception: Permission denied to call method Location.toString вроде такая ps: ctrl+f5 не помогает - сообщение остается в форме - не добавляется на форум.
-
Sannis: Да, в ослике остальной аякс работает. В огнелисе не работает именно только этот мод