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) Ссылка на сообщение Поделиться на других сайтах
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, то открываются очи наши и да увидем мы в скобках реально имя коммментатора Ссылка на сообщение Поделиться на других сайтах
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, чтобы не искать трое суток как поле добавить. Ссылка на сообщение Поделиться на других сайтах
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 Автор Да я просто опытом делюсь =) Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Архивировано
Эта тема находится в архиве и закрыта для публикации сообщений.