Перейти к контенту

[+] 2.0pb7 - Запрет постинга комментариев гостям по отдельной записи


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

Дополнение для mJournal v2.0pb7: Запрет постинга комментариев гостям по отдельной записи

Автор: replicant

 

1. Запрет постинга комментариев гостям по отдельной записи

2. Отключение добавления новых комментариев к записи без сокрытия уже существующих

 

Делаем запрос в таблицу ibf_jposts:

ALTER TABLE `ibf_jposts` ADD `no_comment_g` TINYINT( 1 ) NOT NULL ;

 

Открываем файл comments.php

 

В функции show_comments() находим:

// Process comments

 

и все, что идет после этой строки до // render page

 

меняем на:

//Fix show comments when blocking for ghosts
if (($post['no_comment'] == 1)||(($post['no_comment_g'] == 1)&&(!$ibforums->member['id'])))
{
$output['COMMENTS'] = $journal->skin->html['global']->info($ibforums->lang['j_inf_nocomment']);

$DB->query("SELECT c.*, m.id, m.mgroup, me.photo_type, me.photo_location, me.photo_dimensions, m.j_photo_dim, m.j_photo_type, m.j_photo, me.avatar_location, me.avatar_size, me.avatar_type
	FROM ibf_jcomments c
	LEFT JOIN ibf_jmembers m ON (m.id=c.author_id)
	LEFT JOIN ibf_member_extra me ON (me.id=c.author_id)
	WHERE c.post_id='".$post['pid']."'
	ORDER BY c.post_date ASC LIMIT ".$ibforums->input['st'].", ".$journal->users['j_comment_page']);

if ($DB->get_num_rows())
{
	$output['COMMENTS'] .= $journal->skin->html['posts']->comment_top($ibforums->lang['j_comments']);
	while ($row = $DB->fetch_row())
	{
		list($row['date'],$row['time']) = explode("|",$journal->get_date($row['post_date'],"d F Y|H:i"));

		if ($row['attach_key'] != '')
		{
			$attach_pids[] = $row['cid'];
		}

		$row = $this->post_render->process_comment($row);

		$output['COMMENTS'] .= $journal->skin->html['posts']->comment_row($row);
	}

	$output['COMMENTS'] .= $journal->skin->html['posts']->comment_bottom();
}
else
{
	$output['COMMENTS'] = $journal->skin->html['global']->info($ibforums->lang['j_err_no_comments']);
}

$output['COMMENTS'] .= $journal->skin->html['global']->info($ibforums->lang['j_inf_nocomment']);
}
else
{
if ($post['comments'] > 0)
{
	// Output comments for this post

	$DB->query("SELECT c.*, m.id, m.mgroup, me.photo_type, me.photo_location, me.photo_dimensions, m.j_photo_dim, m.j_photo_type, m.j_photo, me.avatar_location, me.avatar_size, me.avatar_type
		FROM ibf_jcomments c
		LEFT JOIN ibf_jmembers m ON (m.id=c.author_id)
		LEFT JOIN ibf_member_extra me ON (me.id=c.author_id)
		WHERE c.post_id='".$post['pid']."'
		ORDER BY c.post_date ASC LIMIT ".$ibforums->input['st'].", ".$journal->users['j_comment_page']);

	if ($DB->get_num_rows())
	{
		$output['COMMENTS'] = $journal->skin->html['posts']->comment_top($ibforums->lang['j_comments']);
		while ($row = $DB->fetch_row())
		{
			list($row['date'],$row['time']) = explode("|",$journal->get_date($row['post_date'],"d F Y|H:i"));

			if ($row['attach_key'] != '')
			{
				$attach_pids[] = $row['cid'];
			}

			$row = $this->post_render->process_comment($row);

			$output['COMMENTS'] .= $journal->skin->html['posts']->comment_row($row);
		}

		$output['COMMENTS'] .= $journal->skin->html['posts']->comment_bottom();
	}
	else
	{
		$output['COMMENTS'] = $journal->skin->html['global']->info($ibforums->lang['j_err_no_comments']);
	}
}
else
{
	$output['COMMENTS'] = $journal->skin->html['global']->info($ibforums->lang['j_err_no_comments']);
}

// Add reply form

if ($this->post_func->allow_comments())
{
	$ibforums->input['pid'] = $ibforums->input['comm'];

	$output['REPLY_FORM'] = $this->post_func->reply_form(array(
								'title' => $ibforums->lang['j_add_comment'],
								'code' => 'new',
								'mode' => 'comm',
								'id' => $ibforums->input['comm'],
								'key' => $this->md5_check));
}
}

--------------------------------------------------------------------------------

Открываем \lang\{DIR}\lang_journal.php

 

Находим в нем:

'j_nocomment_post' => "<strong>Запретить</strong> комментарии",

 

после добавляем:

 

'j_nocomment_post_ghost' => "<strong>Запретить</strong> комментарии гостям",

--------------------------------------------------------------------------------

Открываем skin_q_reply

 

Находим функцию:

//=========================================
// get_box_nocomment
//=========================================
function get_box_nocomment($checked="") {
global $ibforums, $journal;
...............
}

После добавляем еще одну:

//=====================================================
// get_box_nocomment_g
//=====================================================
function get_box_nocomment_g($checked="") {
global $ibforums, $journal;
$IPBHTML = "";
//--starthtml--//


$IPBHTML .= <<<EOF
<br /><input class='checkbox' type='checkbox' name='no_comment_g' value='yes' $checked /> {$ibforums->lang['j_nocomment_post_ghost']}
EOF;

//--endhtml--//
return $IPBHTML;
}

Ниже в файле ищем:

 

{$data['_NO_COMMENT_CHECK']}

 

После добавляем:

 

{$data['_NO_COMMENT_G_CHECK']}

 

ЗАГРУЖАЕМ ШАБЛОНЫ В АДМИНКЕ

--------------------------------------------------------------------------------

 

Открываем post_functions.php

 

Находим:

if (isset($data['BOX_NOCOMMENT']))
{
$data['_NO_COMMENT_CHECK'] = $journal->skin->html['q_reply']->get_box_nocomment($data['BOX_NOCOMMENT'] ? 'checked="checked"' : '');
}

Добавляем после еще один IF:

if (isset($data['BOX_NOCOMMENT_G']))
{
$data['_NO_COMMENT_G_CHECK'] = $journal->skin->html['q_reply']->get_box_nocomment_g($data['BOX_NOCOMMENT_G'] ? 'checked="checked"' : '');
}

 

Ниже находим:

'no_comment' => $ibforums->input['no_comment'] == 'yes' ? 1 : 0,

 

После добавляем:

'no_comment_g' => $ibforums->input['no_comment_g'] == 'yes' ? 1 : 0,

 

--------------------------------------------------------------------------------

 

Открываем post_edit.php

 

Находим:

'BOX_NOCOMMENT' => $row['no_comment'],

 

После добавляем:

'BOX_NOCOMMENT_G' => $row['no_comment_g'],

 

Еще ниже находим:

'BOX_NOCOMMENT' => $_POST['no_comment'] == 'yes' ? 1 : 0,

 

Добавляем:

'BOX_NOCOMMENT_G' => $_POST['no_comment_g'] == 'yes' ? 1 : 0,

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

Для 1.3 не получится это сделать? Не совместимы эти инструкции?
Ссылка на комментарий
Поделиться на других сайтах

urisoft, но ты же тут появляешься. Неужеди не можешь черкнуть пару слов в ответ на мой пост? плз
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

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

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

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

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

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

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.