RogueSkay Опубликовано 19 Декабря 2008 Жалоба Поделиться Опубликовано 19 Декабря 2008 Имеется 2.3.5 Было установлено :1. Мод: Кубики (дайсы) отсюда2. Мод: Скрытый текст v3b (WildRAID) отсюда Все работает по отдельности. Но внутри приватного текста дайсы не работают ((Как это можно исправить ?И на будущее, как ставить моды , что бы сохранялась вложенная работоспособность ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 (изменено) Инструкция к "скрытому тексту v2" была написана таким образом, чтобы дайсы работали внутри него. В третьей версии на это дело забил.) В сущности, нужно всего лишь проверить следующее. 1). В class_post.php, где происходит СОХРАНЕНИЕ поста код обработки дайсов должен идти ПЕРЕД кодом скрытого текста (в функции compile_post).2). В topics.php, в xmlout.php и т.п. местах, где происходит ВЫВОД информации, код скрытого текста должен идти ПЕРЕД дайсами. Т.е., если брать тот же topics.php, должно выглядеть вот так:$row['post'] = $this->ipsclass->add_private_data($row); // вставляем скрытый текст $row['post'] = $this->ipsclass->parse_dices($row); // парсим дайсы В class_post (можно искать по комментариям)://DICE MOD ... ля-ля-ля, код дайсов //PRIVATE DATA MOD ... скрываем текст Можно просто вручную поменять местами эти блоки, если требуется - всё заработает. Изменено 20 Декабря 2008 пользователем WildRAID Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
RogueSkay Опубликовано 20 Декабря 2008 Автор Жалоба Поделиться Опубликовано 20 Декабря 2008 Гран мерси, сегодня ночью попробую. Аналогично как сделать, что бы еще и мод спойлер заработал ? Вариант например трехкратной вложенности может иметь место ? Например сполер-приват-дайсы НО при этом что бы работали и варианты : приват-спойлер-дайсы Или тут возможен только один порядок вложенности и последовательности ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 Со "спойлером" должно работать в любых вариантах и комбинациях. Едиственное, что важно -> дайсы в коде должны сохраняться раньше скрытого текста, а показываться - позже. Между ними, теоретически, можно вставлять что угодно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
RogueSkay Опубликовано 20 Декабря 2008 Автор Жалоба Поделиться Опубликовано 20 Декабря 2008 В сущности, нужно всего лишь проверить следующее. 1). В class_post.php, где происходит СОХРАНЕНИЕ поста код обработки дайсов должен идти ПЕРЕД кодом скрытого текста (в функции compile_post). В class_post.php так и идет : /*-------------------------------------------------------------------------*/ // compile post // ------------------ // Compiles all the incoming information into an array // which is returned to the accessor /*-------------------------------------------------------------------------*/ function compile_post() { $this->ipsclass->vars['max_post_length'] = $this->ipsclass->vars['max_post_length'] ? $this->ipsclass->vars['max_post_length'] : 2140000; //----------------------------------------- // Sort out some of the form data, check for posting length, etc. // THIS MUST BE CALLED BEFORE CHECKING ATTACHMENTS //----------------------------------------- $this->ipsclass->input['enablesig'] = (isset($this->ipsclass->input['enablesig']) AND $this->ipsclass->input['enablesig']) == 'yes' ? 1 : 0; $this->ipsclass->input['enableemo'] = (isset($this->ipsclass->input['enableemo']) AND $this->ipsclass->input['enableemo']) == 'yes' ? 1 : 0; $this->ipsclass->input['enabletrack'] = (isset($this->ipsclass->input['enabletrack']) AND intval($this->ipsclass->input['enabletrack']) != 0) ? 1 : 0; //----------------------------------------- // Do we have a valid post? //----------------------------------------- if ( strlen( trim( $this->ipsclass->my_br2nl( $_POST['Post'] ) ) ) < 1 ) { if ( ! $_POST['preview'] ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_post') ); } } if ( strlen( $_POST['Post'] ) > ( $this->ipsclass->vars['max_post_length'] * 1024 ) ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'post_too_long') ); } //----------------------------------------- // Remove board tags //----------------------------------------- $this->ipsclass->input['Post'] = $this->ipsclass->remove_tags( $this->ipsclass->input['Post'] ); //----------------------------------------- // Post process the editor // Now we have safe HTML and bbcode //----------------------------------------- if ( isset($_POST['fast_reply_used']) AND $_POST['fast_reply_used'] ) { if ( $this->han_editor->method == 'rte' && $this->ipsclass->can_use_fancy_js ) { //----------------------------------------- // Fast reply used.. and we've chosen the RTE // Convert STD to RTE first... //----------------------------------------- $_POST['Post'] = $this->parser->convert_std_to_rte( $_POST['Post'] ); } } $this->ipsclass->input['Post'] = $this->han_editor->process_raw_post( 'Post' ); //----------------------------------------- // Parse post //----------------------------------------- $this->parser->parse_smilies = $this->ipsclass->input['enableemo']; $this->parser->parse_html = (intval($this->ipsclass->input['post_htmlstatus']) AND $this->forum['use_html'] AND $this->ipsclass->member['g_dohtml']) ? 1 : 0; $this->parser->parse_nl2br = intval($this->ipsclass->input['post_htmlstatus']) == 2 ? 1 : 0; $this->parser->parse_bbcode = $this->forum['use_ibc']; $this->parser->bypass_badwords = intval($this->ipsclass->member['g_bypass_badwords']); $post = array( 'author_id' => $this->ipsclass->member['id'] ? $this->ipsclass->member['id'] : 0, 'use_sig' => $this->ipsclass->input['enablesig'], 'use_emo' => $this->ipsclass->input['enableemo'], 'ip_address' => $this->ipsclass->ip_address, 'post_date' => time(), 'icon_id' => isset($this->ipsclass->input['iconid']) ? $this->ipsclass->input['iconid'] : 0, 'post' => $this->parser->pre_display_parse( $this->parser->pre_db_parse( $this->ipsclass->input['Post'] ) ), 'author_name' => $this->ipsclass->member['id'] ? $this->ipsclass->member['members_display_name'] : $this->ipsclass->input['UserName'], 'topic_id' => "", 'queued' => ( isset($this->obj['moderate']) AND ( $this->obj['moderate'] == 1 || $this->obj['moderate'] == 3 ) ) ? 1 : 0, 'post_htmlstate' => isset($this->ipsclass->input['post_htmlstatus']) ? intval($this->ipsclass->input['post_htmlstatus']) : 0, ); //----------------------------------------- // If we had any errors, parse them back to this class // so we can track them later. //----------------------------------------- $this->obj['post_errors'] = $this->parser->error; //DICE_MOD if($this->orig_post['dice']) { $this->dice = unserialize($this->orig_post['dice']); } else { $this->dice = array(); } $post['post'] = preg_replace_callback( "#\[dice(?!\d)(?:=?)(?:"|&\#39;|\"|\')?(.*?)?(?:"|&\#39;|\"|\')?\](.*?)\[/dice\]#s", array( &$this, 'dice_process'),$post['post']); if(count($this->dice)) { $post['dice'] = serialize($this->dice); } //PRIVATE_DATA_MOD $this->priv_data = array(); #Common moderator editing the post? if( $this->ipsclass->vars['priv_restrict_mods'] and $this->orig_post['private_data'] and !$this->ipsclass->member['g_is_supmod'] and ($this->ipsclass->member['id'] != $this->orig_post['author_id']) ) { $this->priv_data = unserialize(stripslashes($this->orig_post['private_data'])); if(is_array($this->priv_data)) { #Add all private data markers to the end of post foreach($this->priv_data as $pd_id=>$pd_data) { $post['post'] .= '<!--private_data='.$pd_id.'-->'; } } } else { $post['post'] = preg_replace_callback( "#(?:\[".$this->ipsclass->vars['priv_bbcode_tag']."=?(?:"|&\#39;|\"|\')?(.*?)(?:"|&\#39;|\"|\')?\])((?R)|.*?)(?:\[/".$this->ipsclass->vars['priv_bbcode_tag']."\])#si", array( &$this, 'private_data_process'), $post['post'] ); } if( count($this->priv_data) ) { $post['private_data'] = addslashes(serialize($this->priv_data)); } return $post; } 2). В topics.php, в xmlout.php и т.п. местах, где происходит ВЫВОД информации, код скрытого текста должен идти ПЕРЕД дайсами. В topics.php строки модов скрытого текста и кубиков вообще в разных местахВ xmlout.php кусков кода от дайсов вообще нет Т.е., если брать тот же topics.php, должно выглядеть вот так:$row['post'] = $this->ipsclass->add_private_data($row); // вставляем скрытый текст $row['post'] = $this->ipsclass->parse_dices($row); // парсим дайсы В class_post (можно искать по комментариям)://DICE MOD ... ля-ля-ля, код дайсов //PRIVATE DATA MOD ... скрываем текст Можно просто вручную поменять местами эти блоки, если требуется - всё заработает. как быть ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 (изменено) В topics.php Взять вот эту строку:$row['post'] = $this->ipsclass->parse_dices($row); Переместить её после:$row['post'] = $this->ipsclass->add_private_data($row); В xmlout.php Найти:$raw_post = $this->ipsclass->add_private_data($this->post->post); Заменить на:$this->post->post['post'] = $this->ipsclass->parse_dices($this->post->post); $raw_post = $this->ipsclass->add_private_data($this->post->post) . "\n" . '<!--IBF.ATTACHMENT_'. $pid . '-->'; Изменено 21 Декабря 2008 пользователем WildRAID Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
RogueSkay Опубликовано 21 Декабря 2008 Автор Жалоба Поделиться Опубликовано 21 Декабря 2008 Найти:<!--IBF.ATTACHMENT_'. $pid . '-->';там уже есть. А те кто ставят ни глядя просто скопируют и наткнутся на грабли )) Сделал. Вроде заработало.Вроде потому , что когда вставил в приватный текст бросок дайса и разлогинился, то разлогиненому пользователю показывается только - Количество бросков: 1, о приватном тексте ни слова ))Видимо в настройках приватного текста надо что то подправить как я видел в некоторых ветках тут. И еще один момент в кнопке пишет Приватный текст, а в тегах Скрытый текст. Некоторые могут запутаться. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 (изменено) /cache/lang_cache/ru/lang_wr_private_data.php Поискать ненравящийся текст - поменять на свой. ^__^ +++ На самом деле, кусочек <!--IBF.ATTACHMENT_'. $pid . '-->'; следует оставить. А то, что выше, убрать или проигнорировать. Модификации постоянно дополняются, инструкции периодически незаметно меняются. Но в архиве не всегда самая последняя версия. Изменено 21 Декабря 2008 пользователем WildRAID Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
RogueSkay Опубликовано 21 Декабря 2008 Автор Жалоба Поделиться Опубликовано 21 Декабря 2008 Эм... там просто тогда 2 раз получится : <!--IBF.ATTACHMENT_'. $pid . '-->'; <!--IBF.ATTACHMENT_'. $pid . '-->'; это нормально ? И код который был перед таки добавлять или нет ? Счас народ гулял, на буднях займется тестом модов, может чего и всплывет )) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.