-
Постов
89 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Тип контента
Профили
Загрузки
База знаний IPS Community Suite 4
База знаний IP.Board 3.x
Форумы
События
Магазин
Совместные покупки
Сообщения, опубликованные Heavenanvil
-
-
@ArcheR_AWG, просто скачать или купить и скачать?
-
Redneck, спасибо за ссылки.
Правда думаю эти плагины работают не совсем так, как мне нужно. В плагине анонимного постигла пользователи сами переключают возможность анонимного постинга, а у меня получается раздел (а-ля послушано). И могу сделать анонимным любой пост быстро. Хотя я его не ставил, не знаю точно.
Плагине смены автора хорош, но у меня ещё есть возможность смены времени и аппрува, если тема не утверждена.
Да и зачем я буду покупать, когда могу сделать сам))
*Постигла=постинга
*Плагине=плагин.
Очепятки))
-
Здравствуйте.
В прошлый раз сделал скрипт, помогающий изменять автора темы, благодаря чему можно создать анонимный раздел.
Но мне этого показалось мало и вот, я решил немного доработать свой файлик.
Скажу сразу, это не мод, не хак и вообще не относится к движку форума.
Это просто php файл, который изменяет данные в вашей MySQL базе.Итак, в любом месте вашего форума создаем файлик, с именем db_time.php и копируем в него вот это:
Спойлер<!DOCTYPE html> <html> <head> <META content="text/html; charset=utf-8" http-equiv="Content-Type"> <style> table { border: 1px solid #ccc; border-radius: 5px; } table td { padding: 2px; } tr:nth-child(2n-1) { background: #f8f8f8; } body { font-family: Tahoma, Arial; font-size: 13px; } a { text-decoration: none; cursor: pointer; } a:hover { text-decoration: underline; } </style> </head> <body> <?php $mypass = "1234"; //Ваш секретный пароль $mypage = "db_time.php"; //Имя этого файла $id_post = $_POST['id_post']; $pass = $_POST['pass']; $days = $_POST['days']; $hours = $_POST['hours']; $minuts = $_POST['minuts']; $seconds = $_POST['seconds']; $plusminus = $_POST['plusminus']; $approved = $_POST['approved']; $calendar_dt = $_POST['calendar_dt']; $dt = new DateTime($calendar_dt); $author_id = $_POST['author_id']; $new_author = $author_id; if (!isset($dt)) { $dt = "0"; } if (!isset($days)) { $days = "0"; } if (!isset($hours)) { $hours = "0"; } if (!isset($minuts)) { $minuts = "0"; } if (!isset($seconds)) { $seconds = "0"; } if (!isset($plusminus)) { $plusminus = "0"; } if (!isset($approved)) { $approved = "0"; } if (!isset($author_id)) { $author_id = "1"; } if (!isset($message)) { $message = "<span style=\"color: #777\">Введите параметры</span>"; } mysql_connect("localhost", "username", "password"); //Ваши параметры подключения к бд mysql_select_db("dbname"); //Если у пользователя больше одной базы, имя этой базы (иначе эту строку нужно удалить... вроде :) ) mysql_query ("set_client='utf8'"); mysql_query ("set character_set_results='utf8'"); mysql_query ("set collation_connection='utf8_general_ci'"); mysql_query ("SET NAMES utf8"); if ((isset($id_post)) AND ($id_post != "") AND ($pass == $mypass)) { $sql = "SELECT `post_date` FROM `forums_posts` WHERE `pid` = $id_post"; $result = mysql_query($sql) or die(mysql_error()); $current_post_time = mysql_fetch_array($result); if ((isset($current_post_time)) AND ($current_post_time != "")) { $sql1 = "SELECT `author_name` FROM `forums_posts` WHERE `pid` = $id_post"; $result1 = mysql_query($sql1) or die(mysql_error()); $post_author = mysql_fetch_array($result1); $post_author_old = $post_author[]; $sql7 = "SELECT `author_id` FROM `forums_posts` WHERE `pid` = $id_post"; $result7 = mysql_query($sql7) or die(mysql_error()); $author_id = mysql_fetch_array($result7); $old_author = $author_id[]; if (!isset($new_author)) { $new_author = $old_author; } $sql10 = "SELECT `name` FROM `core_members` WHERE `member_id` = $new_author"; $result10 = mysql_query($sql10) or die(mysql_error()); $post_author_new = mysql_fetch_array($result10); $post_author_new1 = $post_author_new[]; $post_author_new2 = mysql_escape_string($post_author_new1); if ((isset($current_post_time)) AND ($current_post_time != "")) { $current_post_time1 = date('H:i:s, d.m.Y ', $current_post_time[]); $message = "<span style=\"color: #777\">Время поста: <strong>". $current_post_time1 ."</strong> (" . $current_post_time[] . ") </span>"; } } else { $message = "<span style=\"color: red\">Неверное введен id поста (" . $id_post . ")</span>"; } } if ((isset($current_post_time[])) AND ($current_post_time[] != "") AND ($plusminus != )) { if ($plusminus == 1) { $new_post_time = $current_post_time[] + ($seconds + ($minuts * 60) + ($hours * 60 * 60) + ($days * 60 * 60 * 24)); } if ($plusminus == 2) { $new_post_time = $current_post_time[] - ($seconds + ($minuts * 60) + ($hours * 60 * 60) + ($days * 60 * 60 * 24)); } if ((isset($new_post_time)) AND ($new_post_time > )) { $new_post_time1 = date('H:i:s, d.m.Y ', $new_post_time); $message = "<span style=\"color: #0fc834\">Новое время: <strong>". $new_post_time1 ."</strong> (" . $new_post_time . "). ID автора: " . $new_author . "</span>"; } } if ((($days == "0") AND ($hours == "0") AND ($minuts == "0") AND ($seconds == "0")) OR (($days == "") AND ($hours == "") AND ($minuts == "") AND ($seconds == ""))) { if ((isset($calendar_dt)) AND ($calendar_dt != "")) { $new_post_time = $dt->getTimestamp(); if ((isset($new_post_time)) AND ($new_post_time > )) { $new_post_time1 = date('H:i:s, d.m.Y ', $new_post_time); $message = "<span style=\"color: #0fc834\">Новое время: <strong>". $new_post_time1 ."</strong> (" . $new_post_time . "). ID автора: " . $new_author . "</span>"; } } } if ($pass == $mypass) { if ((isset($new_post_time)) AND ($new_post_time > )) { $old_post_time = $current_post_time[]; $sql2 = "UPDATE `forums_posts` SET `post_date` = $new_post_time WHERE `post_date` = $old_post_time"; $result2 = mysql_query($sql2) or die(mysql_error()); $sql3 = "UPDATE `forums_topics` SET `start_date` = $new_post_time WHERE `start_date` = $old_post_time"; $result3 = mysql_query($sql3) or die(mysql_error()); $sql4 = "UPDATE `forums_topics` SET `last_post` = $new_post_time WHERE `last_post` = $old_post_time"; $result4 = mysql_query($sql4) or die(mysql_error()); $sql5 = "UPDATE `forums_topics` SET `last_real_post` = $new_post_time WHERE `last_real_post` = $old_post_time"; $result5 = mysql_query($sql5) or die(mysql_error()); $sql6 = "UPDATE `forums_forums` SET `last_post` = $new_post_time WHERE `last_post` = $old_post_time"; $result6 = mysql_query($sql6) or die(mysql_error()); $sql11 = "UPDATE `forums_forums` SET `last_poster_id` = $new_author WHERE `last_post` = $old_post_time"; $result11 = mysql_query($sql11) or die(mysql_error()); $sql12 = "UPDATE `forums_topics` SET `last_poster_id` = $new_author WHERE `start_date` = $old_post_time"; $result12 = mysql_query($sql12) or die(mysql_error()); $sql13 = "UPDATE `forums_topics` SET `last_poster_id` = $new_author WHERE `last_post` = $old_post_time"; $result13 = mysql_query($sql13) or die(mysql_error()); $sql14 = "UPDATE `forums_topics` SET `starter_id` = $new_author WHERE `last_post` = $old_post_time"; $result14 = mysql_query($sql14) or die(mysql_error()); if ((isset($id_post)) AND ($id_post != "")) { $sql8 = "UPDATE `forums_posts` SET `author_id` = $new_author WHERE `post_date` = $old_post_time"; $result8 = mysql_query($sql8) or die(mysql_error()); } if ($approved == "1") { $sql15 = "UPDATE `forums_topics` SET `approved` = 1 WHERE `start_date` = $old_post_time"; $result15 = mysql_query($sql15) or die(mysql_error()); } if ($approved == "2") { $sql15 = "UPDATE `forums_topics` SET `approved` = 0 WHERE `start_date` = $old_post_time"; $result15 = mysql_query($sql15) or die(mysql_error()); } } } else { if ((isset($pass)) AND ($pass != $mypass)) { $message = "<span style=\"color: red\">Неверный пароль!</span>"; } } if ((isset($new_post_time)) AND ($new_post_time > )) { $oktime = date('Y-m-d\TH:i:s', $new_post_time); } else { $oktime = date('Y-m-d\TH:i:s', $current_post_time[]); } ?> <form method="post" action="<?php echo $mypage; ?>"> <table align="center"> <tr> <td colspan="2" align="center"> <?php echo $message; ?> </td> </tr> <tr> <td width="350px"> ID поста: <?php if ((isset($id_post)) AND ($id_post != "") AND ($pass == $mypass) AND (isset($current_post_time))) { echo "<strong>" . $id_post . "</strong>"; } ?> </td> <td width="100px" align="center"> <?php if ((isset($id_post)) AND ($id_post != "") AND ($pass == $mypass) AND (isset($current_post_time))) { echo ("<input type=\"text\" name=\"id_post\" size=\"10\" style=\"width: 5px; text-align: center; visibility: hidden; margin-right: -9px;\" readonly=\"readonly\" value=\"" . $id_post . "\">[<a href=\"". $mypage. "\">Изменить</a>]"); } else { echo ("<input type=\"text\" name=\"id_post\" size=\"10\" style=\"width: 88px; text-align: center;\" placeholder=\"id поста\" value=\"" . $id_post . "\""); } ?> </td> </tr> <?php if ((isset($pass)) AND ($pass != $mypass)) { $message = "<span style=\"color: red\">Неверный пароль!</span>"; } if ((isset($current_post_time)) AND ($current_post_time != "") AND ($pass == $mypass)) { echo (" <tr> <td colspan=\"2\"> Сдвиг времени: </td> </tr> <tr> <td> <select size=\"1\" name=\"plusminus\" style=\"width: 92px; height: 21px;\"> <option selected value=\"0\">Знак</option> <option value=\"1\">Плюс</option> <option value=\"2\">Минус</option> </select> <input type=\"text\" name=\"days\" size=\"3\" style=\"width: 50px; text-align: center;\" placeholder=\"дней\" value=\"\"> <input type=\"text\" name=\"hours\" size=\"3\" style=\"width: 50px; text-align: center;\" placeholder=\"часов\" value=\"\"> <input type=\"text\" name=\"minuts\" size=\"3\" style=\"width: 50px; text-align: center;\" placeholder=\"минут\" value=\"\"> <input type=\"text\" name=\"seconds\" size=\"3\" style=\"width: 50px; text-align: center;\" placeholder=\"секунд\" value=\"\"> </td> <td align=\"center\"> <input type=\"reset\" style=\"width: 90px;\" value=\"Сброс\" /> </td> </tr> <tr> <td colspan=\"2\"> Либо точное время: </td> </tr> <tr> <td> <input type=\"datetime-local\" step=\"1\" value=\"" . $oktime ."\" name=\"calendar_dt\"/> </td> <td align=\"center\"> <input type=\"reset\" style=\"width: 90px;\" value=\"Сброс\" /> </td> </tr> <tr> <td colspan=\"2\"> Изменить автора поста: </td> </tr> <tr> <td> Текущий автор поста <strong>" . $post_author_new2 . "</strong> (id: " . $new_author . ") </td> <td width=\"70px\" align=\"center\"> <input type=\"text\" name=\"author_id\" size=\"3\" style=\"width: 88px; text-align: center;\" placeholder=\"id автора\" value=\"" . $new_author . "\"> </td> </tr> <tr> <td> Если пост является темой, утвердить? </td> <td width=\"70px\" align=\"center\"> <select size=\"1\" name=\"approved\" style=\"width: 92px; height: 21px;\"> <option selected value=\"0\">Не менять</option> <option value=\"1\">Да</option> <option value=\"2\">Нет</option> </select> </td> </tr> "); } ?> <tr> <td> Введите пароль: </td> <td width="70px" align="center"> <input type="text" name="pass" size="10" style="width: 88px; text-align: center;" placeholder="пароль" value="<?php echo $pass ?>"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" style="width: 90px;" value="Применить" /> </td> </tr> </table> </form> </body> </html>
Немного настраиваем наш файлик: Изменяем ваш секретный пароль, имя файла (если оно отличается от db_time.php) и настраиваем ваше подключение к базе данных.
Теперь, при переходе по адресу, например http://ваш_сайт.ru/db_time.php (или куда вы там его засунули), вы увидите вот такую картину:
После того, как вы введете номер поста и свой пароль, появится примерно вот такое окно:
Дальше думаю разберетесь.
Есть два способа изменить время: сдвинуть вперед или назад на определенное количество времени, либо указать точное.
Если в полях "сдвига" ничего не написано, то учитывается время из поля "Точное время".Внимание! Код очень сырой, кривой и весь на костылях, поскольку я не специалист и поэтому использование этого кода только на ваш страх и риск, ко мне прошу никаких претензий.
Но у меня всё работаетp.s. Решил дописать, если для вас составляет трудность, определить id поста, то можете в редакторе шаблонов, например в forums -> topics -> post или forums -> topics -> postContainer в нужное вам место вставить {$comment->pid}
У меня получилось вот так:- ArcheR_AWG, hostrk, Megalex и 3 других
- 6
-
Всем привет. Решил сделать на своем форуме анонимный раздел, аналог "Подслушано".
Суть его проста: Пользователь пишет сообщение, а оно публикуется анонимно.
Но проблема в том, что форум не умеет делать анонимные сообщения. Можно, допустим написать от Гостя, но если гостям у вас на форуме запрещено писать?Возможно как-то можно разрешить гостям создавать темы только в определенном разделе, но я не нашел. Я придумал свой способ.
Создаем нужный раздел, и ставим, в его настройках, модерацию новых тем, во вкладке "Публикация"
Сообщения должны быть утверждены -> Новые темы
Затем, создаем нового пользователя, называем его что-то вроде Аноним, или как пожелаете. Запоминаем его id.
Ну, а дальше самое интересное. В папке с корнем форума создаем файлик, например anonim.php, и вставляем туда вот этоСпойлер<!DOCTYPE html> <html> <head> <style> table { border: 1px solid #ccc; /* border="0" */ border-radius: 5px; } table td { padding: 2px; /* cellpadding="0" */ } tr:nth-child(2n-1) { background: #f8f8f8; /* Цвет фона */ } body { font-family: Tahoma, Arial; font-size: 13px; } </style> </head> <body> <?php $topic_id_anon = $_POST['topic_anon']; $pass = $_POST['password']; if (!isset($message)) { $message = "<span style=\"color: red\">Введите правильные параметры!</span>"; } if (isset($_POST['new_user'])){ $new_user = $_POST['new_user']; } else { $new_user = "1"; //id пользователя, который будет новым автором темы, если не введен вручную } mysql_connect("localhost", "username", "password"); //Параметры подключения к вашей БД (можно посмотреть в файле conf_global.php) mysql_select_db("db_name"); mysql_query ("set_client='utf8'"); mysql_query ("set character_set_results='utf8'"); mysql_query ("set collation_connection='utf8_general_ci'"); mysql_query ("SET NAMES utf8"); if ((isset($pass)) AND ($pass == "6280")) //Ваш пароль { if ((isset($new_user)) AND ($new_user != "") AND (isset($topic_id_anon)) AND ($topic_id_anon != "") AND (isset($pass)) AND ($pass != "")) { $sql = "UPDATE `forums_topics` SET `starter_id` = $new_user WHERE `tid` = $topic_id_anon"; //Меняем автора темы $result = mysql_query($sql) or die(mysql_error()); $sql2 = "UPDATE `forums_topics` SET `last_poster_id` = $new_user WHERE `tid` = $topic_id_anon"; //Меняем последнего автора сообщения $result2 = mysql_query($sql2) or die(mysql_error()); $sql3 = "UPDATE `forums_posts` SET `author_id` = $new_user WHERE `topic_id` = $topic_id_anon"; //Меняем автора темы в списке тем $result3 = mysql_query($sql3) or die(mysql_error()); $message = "<span style=\"color: green\">Выполнено. Не забудьте утвердить тему.</span>"; } } else { if ((isset($pass)) AND ($pass != "6280")) { //Сюда вписываем свой пароль $message = "<span style=\"color: red\">Неверный пароль!</span>"; } else { $message = "<span style=\"color: #777\">Введите параметры:</span>"; } } ?> <form method="post" action="db_vk.php"> <table align="center" width="300px"> <br> <tr> <td colspan="2" align="center"> <?php echo $message; ?> </td> </tr> <tr> <td width="300px"> ID нового автора темы </td> <td> <input type="text" name="new_user" size="3" style="width: 50px; text-align: center;"placeholder="id user" title="id нового автора темы" value="<?php echo "$new_user " ?>"> </td> <br> </tr> <tr> <td> ID темы, которую нужно изменить </td> <td> <input type="text" name="topic_anon" size="3" style="width: 50px; text-align: center;" placeholder="id темы" title="id темы"> </td> </tr> <tr> <td> Ваш секретный пароль </td> <td> <input type="text" name="password" size="3" style="width: 50px; text-align: center;" placeholder="пароль" title="Секретный пароль"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" style="width: 100px;" value="OK" /> </td> </tr> </table> </form> </body> </html>
Обязательно немного настраиваем наш файлик. Нужно указать параметры подключения к базе данных, а также свой пароль.
Теперь при открытии страницы http://ваш_форум.ru/anonim.php
Вы увидите примерно следующую картину:
Алгоритм примерно такой:
- Пользователь создает тему в нашем разделе.
- Мы с помощью нашего файлика меняем автора новой темы на своего анонима.
- Утверждаем тему.
Дальше думаю разбересь.
Будут вопросы, пишите.
- benix, andros0789, Megalex и 1 другой
- 4
-
Такая же проблема при попытке удалить темы из списка разделов. Если зайти в тему и удалить там, то всё ок.
-
IAF, да. Работает. Спасибо.
-
rustav, просто {$forum->_title} не работает.
Возможно переменную $forum нужно как-то объявить сначала.
-
21 часов назад, MrHaack сказал:
slimer, Ну если ставил из моей инструкции - ставь этот, он для 4.1.10:
Вот ссылка на архив
-
Обновление прошло успешно.
Всё работает хорошо, кроме плагина авторизации ВК.
Скачал его свежую версию, которую на прошлой странице выкладывали и установил.
Теперь всё заработало вновь.Спасибо, IAF
-
Здравствуйте.
Использую плагин Portal, на главной странице.
Мне нужно рядом с заголовком темы, чтобы выводился его раздел.
Заголовок выводится примерно так: {$topic->title}
А как определить его раздел (категорию)?
пробовал $topic->url, $topic->id, $topic->category и прочее. -
А не подскажите, есть ли такой же хак, для 4ки, только чтобы не репутацию показывал, а количество сообщений?
-
IPS Community Suite 4.1 Nulled
в Релизы Invision Community
Опубликовано
В любом случае этот блок видят только админы.
А я бы предпочел узнавать о выходе новых версий (а также нуллов ), так что мне оно не мешает.
Просто, в главной панели админки не часто бываю, а значит возможно несвоевременное обновление движка ≈ уязвимость.