Перейти к публикации

Рекомендованные сообщения

Как организовать? =(

Какие файлы хоть редактировать?

Нужно чтобы была кнопка "невидимость" (checkbox) и если она при отправлении коммента была зажата, то вместо автора писалось "Невидимка".

Ссылка на сообщение
Поделиться на других сайтах

Админ в скобках видит чела.

Всё сделал бы, но не хочет POST поле распознавать...Я его stealth назвал.

Его содержимое в массив $_POST не добавляется....

Как поле в форму добавить?

Ссылка на сообщение
Поделиться на других сайтах

Тогда...

в файл шаблона добавления коммента

<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)

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

Последний вопрос - как сделать, чтобы эта кнопка показывалась только определённой группе?

Или при определённом условии.

В данном случае это поле VIP в базе (tinyint)

Ссылка на сообщение
Поделиться на других сайтах

Ааа, вот оно в чём дело)))

для 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>";

А вообще экспериментировать надо - в том плане куда чучше этот переключатель воткнуть

Ссылка на сообщение
Поделиться на других сайтах

Вроде бы всё сделал.

Осталась мелочь - отображение реального имени для администраторов.

[group] как я понял в этом шаблоне не канает?

Ссылка на сообщение
Поделиться на других сайтах

А это просто...

Работай с массивом $member_db

Условие, что если дескать $member_db[1] ==1, то открываются очи наши и да увидем мы в скобках реально имя коммментатора :P

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

Спасибо - сделал.

Код дать не могу, но могу сказать на какие камни напоролся.

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, чтобы не искать трое суток как поле добавить.

Изменено пользователем IT-Security
Ссылка на сообщение
Поделиться на других сайтах

:D

Вообще у всех?

<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 отвечает за добавлять ли новый коммент или обновить последний в этой новости при условии, что совпадает имя комментатора или его айпи (если не зареген).

Дальше разберёшься ;)

Ссылка на сообщение
Поделиться на других сайтах

Сделал более красивое решение, чем просто вырубать соединение.

НЕ соединяются:

1) Сообщения одного пользователя под разными режимами

2) Сообщения разных пользователей в 1 режиме

3) Сообщения одного пользователя в режиме невидимки

Соединяются:

Все остальные сообщения.

Ссылка на сообщение
Поделиться на других сайтах

IT-Security, вот второй раз уже говоришь что сделал лучше и красиве.

Так я и не говорю тебе самые лучшие варианты (иначе так и сидел бы на этом форуме если бы всем так говорил).

Я подсказываю, остальное дело за вами - как хотите так и делайте ;)

Красивее лучше быстрее - мне в принципе не важно B)

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...