WHITE_DRAGON пишет:Сейчас не скажу точно (непомню файлы) попозже напишу, но просто не происходит действия, как и с скрытым текстом, я не прописал действия в php файле; незнаю в каком файле писать и что конкретно...
Ну разумеется ничего работать не будет. Я так понимаю что Вы только добавили в HTML-шаблон поле для ввода. Но надо же ещё внести изменения в скрипты для возможности сохранения и последующего вывода вводимой информации
WHITE_DRAGON пишет:Тег вставляется, но самого действия не происходит, просто я всё написал, но не нашёл в каком файле прописывать действия и какие именно, а получается вот-так: [hide]Текст[/hide] - это конечный результат...
Открываешь файл include/fm.class.php, находиш в нём функцию html_replace():
CODE: function html_replace($string) {
$_TransTable = array('&' => '&',
'"' => '"',
''' => '\'',
'<' => '<',
'>' => '>'
);
return strtr($string, $_TransTable);
}
И после неё вставляешь функцию hide_text():
CODE: function hide_text($array) {
if ($this->user['id'] === 0 ) {
return "<div class=\"block\"><b>{$this->LANG['HidenText']}</b>
<div class=\"quote\">{$this->LANG['HidenTextAuth']}</div>
</div>";
} elseif ($this->_Moderator === FALSE && $this->user['posts'] < intval($array[2])) {
return "<div class=\"block\"><b>{$this->LANG['HidenText']}</b>
<div class=\"quote\">".sprintf($this->LANG['HidenTextPostNeed'],$array[2])."</div>
</div>";
}
return $array[3];
}
Далее в этом же файле находишь строку:
CODE:$array = array(); $num = 0;
И после неё вставляшь строку:
CODE:$string = preg_replace_callback("#\[(hide)(?:=(\d+))*\]([^\[]*(?:\[\/{0,1}(?!\\1\])[^\[]*)*?)\[/\\1\]#is",array($this, 'hide_text'),$string);
Открываешь файл language/russian/lang_front_forums.php и вставляешь в него строки:
CODE:$this->LANG['HidenText'] = 'Скрытый текст';
$this->LANG['HidenTextAuth'] = 'Для просмотра текста Вам необходимо авторизоваться на форуме!';
$this->LANG['HidenTextPostNeed'] = 'Для просмотра текста Вам необходимо оставить не менее <b>%d</b> сообщений на форуме!'; |