IT-Security 33 Опубликовано: 28 июня 2007 Рассказать Опубликовано: 28 июня 2007 Как организовать? =( Какие файлы хоть редактировать? Нужно чтобы была кнопка "невидимость" (checkbox) и если она при отправлении коммента была зажата, то вместо автора писалось "Невидимка". Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 28 июня 2007 Рассказать Опубликовано: 28 июня 2007 А админ тоже видит невидимку или реального чела? Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 28 июня 2007 Рассказать Опубликовано: 28 июня 2007 Автор Админ в скобках видит чела. Всё сделал бы, но не хочет POST поле распознавать...Я его stealth назвал. Его содержимое в массив $_POST не добавляется.... Как поле в форму добавить? Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 28 июня 2007 Рассказать Опубликовано: 28 июня 2007 А ты коммент аяксом засылаешь или нет? Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 28 июня 2007 Рассказать Опубликовано: 28 июня 2007 Автор Аяксом. Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 29 июня 2007 Рассказать Опубликовано: 29 июня 2007 (изменено) Тогда... в файл шаблона добавления коммента <input type="checkbox" name="stealth" value="1"> - я невидимка в <engine/ajax/js_edit.js> в тело функции doAddComments() после dle_comments_ajax.setVar("mail", dle_comments_ajax.encodeVAR(form.mail.value)); добавьте dle_comments_ajax.setVar("stealth", dle_comments_ajax.encodeVAR(form.stealth.value)); -- здесь всё. Далее идём в <engine/ajax/addcomments.php> После $_POST['mail'] = addslashes(convert_unicode($_POST['mail'], $config['charset'])); пишем $_POST['stealth'] = intval($_POST['stealth']); echo $_POST['stealth']; . Всё что ниже временно закомментим кроме @header("HTTP/1.0 200 OK"); @header("HTTP/1.1 200 OK"); @header("Cache-Control: no-cache, must-revalidate, max-age=0"); @header("Expires: 0"); @header("Pragma: no-cache"); @header("Content-type: text/css; charset=".$config['charset']); Собственно вот. Если вместо коммента при нажатой галочки напечатается 1-чка - вы успешно передали значение до скрипта, а уж в базу вставляйте сами (я так полагаю создать новое поля типа tinyint(1) Изменено 29 июня 2007 пользователем lifestar Цитата Ссылка на сообщение Поделиться на других сайтах
MONAH_DE 0 Опубликовано: 29 июня 2007 Рассказать Опубликовано: 29 июня 2007 СПАСИБО!!! Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 29 июня 2007 Рассказать Опубликовано: 29 июня 2007 Автор Последний вопрос - как сделать, чтобы эта кнопка показывалась только определённой группе? Или при определённом условии. В данном случае это поле VIP в базе (tinyint) Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 29 июня 2007 Рассказать Опубликовано: 29 июня 2007 Ааа, вот оно в чём дело))) для 6.0 Не понятно где ваше поле VIP (в какой таблице) А так для групп <engine/modules/show.full.php> Это $tpl->copy_template = "<form method=\"post\" name=\"dle-comments-form\" id=\"dle-comments-form\" action=\"{$_SESSION['referrer']}\">".$tpl->copy_template." <input type=\"hidden\" name=\"subaction\" value=\"addcomment\" />{$hidden} <input type=\"hidden\" name=\"post_id\" id=\"post_id\" value=\"$news_id\" /></form>"; на это if ($member_id['group_name']=='VIP') $bolero = '<input type="checkbox" name="stealth" value="1"> - я невидимка'; else $bolero = ''; $tpl->copy_template = "<form method=\"post\" name=\"dle-comments-form\" id=\"dle-comments-form\" action=\"{$_SESSION['referrer']}\">".$tpl->copy_template." {$bolero}<input type=\"hidden\" name=\"subaction\" value=\"addcomment\" />{$hidden} <input type=\"hidden\" name=\"post_id\" id=\"post_id\" value=\"$news_id\" /></form>"; А вообще экспериментировать надо - в том плане куда чучше этот переключатель воткнуть Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 29 июня 2007 Рассказать Опубликовано: 29 июня 2007 Автор Вроде бы всё сделал. Осталась мелочь - отображение реального имени для администраторов. [group] как я понял в этом шаблоне не канает? Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 29 июня 2007 Рассказать Опубликовано: 29 июня 2007 (изменено) А это просто... Работай с массивом $member_db Условие, что если дескать $member_db[1] ==1, то открываются очи наши и да увидем мы в скобках реально имя коммментатора Изменено 29 июня 2007 пользователем lifestar Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 30 июня 2007 Рассказать Опубликовано: 30 июня 2007 (изменено) Автор Спасибо - сделал. Код дать не могу, но могу сказать на какие камни напоролся. 1) dle_comments_ajax.setVar("stealth", dle_comments_ajax.encodeVAR(form.stealth.value)); В данном случае код неверный. Так как у checkbox стоит параметр checked dle_comments_ajax.setVar("stealth", dle_comments_ajax.encodeVAR(form.stealth.checked)); ну и у формы не: <input type="checkbox" name="stealth" value="1"> - я невидимка а <input type="checkbox" name="stealth" checked="true"> - я невидимка 2) $_POST['stealth'] = intval($_POST['stealth']); Тоже неверно, так как true и false не являются типом int if ($_POST['stealth'] == 'true') $stealth = '1'; else $stealth = '0'; Остальное прошло гладко. Это станет мне уроком, что пора бы API написать под DLE, чтобы не искать трое суток как поле добавить. Изменено 30 июня 2007 пользователем IT-Security Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 30 июня 2007 Рассказать Опубликовано: 30 июня 2007 молодец, видишь всё получилось Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 30 июня 2007 Рассказать Опубликовано: 30 июня 2007 Автор Вот чёрт...а как сделать, чтобы комменты не слипались???? Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 30 июня 2007 Рассказать Опубликовано: 30 июня 2007 Вообще у всех? <engine/modules/addcomment.php> if ($row['user_id'] == $member_id['user_id'] AND $row['is_register']) $update_comments = true; elseif ($row['ip'] == $_IP AND !$row['is_register'] AND !$is_logged) $update_comments = true; $update_comments отвечает за добавлять ли новый коммент или обновить последний в этой новости при условии, что совпадает имя комментатора или его айпи (если не зареген). Дальше разберёшься Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 30 июня 2007 Рассказать Опубликовано: 30 июня 2007 Автор Сделал более красивое решение, чем просто вырубать соединение. НЕ соединяются: 1) Сообщения одного пользователя под разными режимами 2) Сообщения разных пользователей в 1 режиме 3) Сообщения одного пользователя в режиме невидимки Соединяются: Все остальные сообщения. Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 30 июня 2007 Рассказать Опубликовано: 30 июня 2007 IT-Security, вот второй раз уже говоришь что сделал лучше и красиве. Так я и не говорю тебе самые лучшие варианты (иначе так и сидел бы на этом форуме если бы всем так говорил). Я подсказываю, остальное дело за вами - как хотите так и делайте Красивее лучше быстрее - мне в принципе не важно Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 30 июня 2007 Рассказать Опубликовано: 30 июня 2007 Автор Да я просто опытом делюсь =) Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.