Главная > программирование > PunBB 1.3 запрет на показ подписей гостям, поисковикам и другой SEO-тюнинг

PunBB 1.3 запрет на показ подписей гостям, поисковикам и другой SEO-тюнинг

PunBB 1.3 неплохой легковесный форум с красивыми URL’ами “в коробке”.
Т.к. проект находится на ранних стадиях развития, я не смог обнаружить в админке такой функции как “не показывать подписи к сообщения гостям”, или просто “запретить индексацию ссылок в подписях”, также нельзя запретить индексировать ссылки в профилях юзеров.

Для реализаций этих функций “по-быстрому” сделаем небольшой SEO-тюнинг.

Если вам не понятно, для чего это вообще нужно, поясню.
1. Спамеры осознают (ну, я надеюсь) бесполезность регистраций и постинга ссылок в подписи и профили.
2. Меньше исходящих ссылок будет на ваших страницах, это хорошо, если вы продаёте ссылки (например, в sape).

Задача 1. Убрать видимость подписи к сообщениям для гостей (и соответственно исключить их индексацию поисковиками).

Решение. Открываем файл viewtopic.php, ищем строку 504.
Меняем

504
        $forum_page['message']['signature'] = '<div class="sig-content"><span class="sig-line"><!-- --></span>'.$signature_cache[$cur_post['poster_id']].'</div>';

на

504
505
506
507
508
509
        if (!$forum_user['is_guest']) 
	{
		$forum_page['message']['signature'] = '<div class="sig-content"><span class="sig-line"><!-- --></span>'.$signature_cache[$cur_post['poster_id']].'</div>';
	} else {
		$forum_page['message']['signature'] = '';
	}

Теперь идём на строчку 414:

414
415
	if (!empty($forum_page['post_contacts']))
		$forum_page['post_options']['contacts'] = '<p class="post-contacts">'.implode(' ', $forum_page['post_contacts']).'</p>';

меняем на:

414
415
416
417
418
        if (!$forum_user['is_guest']) 
	{
		if (!empty($forum_page['post_contacts']))
			$forum_page['post_options']['contacts'] = '<p class="post-contacts">'.implode(' ', $forum_page['post_contacts']).'</p>';
	}

Задача 2. Убрать видимость поля “сайт”, а также подпись на странице профиля пользователя для незарегистрированных пользователей (и соответственно исключить их индексацию поисковиками).

Решение. Открываем файл profile.php, строка 1329:

1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
	if ($user['url'] != '')
	{
		if ($forum_config['o_censoring'] == '1')
			$user['url'] = censor_words($user['url']);
 
		$user['url'] = forum_htmlencode($user['url']);
		$forum_page['url'] = '<a href="'.$user['url'].'" class="external url" rel="me">'.$user['url'].'</a>';
 
		$forum_page['user_contact']['website'] = '<li><span>'.$lang_profile['Website'].': '.$forum_page['url'].'</span></li>';
	}

меняем этот блок на:

1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
	if (!$forum_user['is_guest']) 
	{
		if ($user['url'] != '')
		{
			if ($forum_config['o_censoring'] == '1')
				$user['url'] = censor_words($user['url']);
 
			$user['url'] = forum_htmlencode($user['url']);
			$forum_page['url'] = '<a href="'.$user['url'].'" class="external url" rel="me">'.$user['url'].'</a>';
 
			$forum_page['user_contact']['website'] = '<li><span>'.$lang_profile['Website'].': '.$forum_page['url'].'</span></li>';
		}
	}

Теперь опускаемся на строчку 1355 с содержимым:

1355
1356
	if ($forum_config['o_signatures'] == '1' && isset($parsed_signature))
		$forum_page['sig_demo'] = $parsed_signature;

меняем на:

1355
1356
1357
1358
1359
	if (!$forum_user['is_guest'])
	{
		if ($forum_config['o_signatures'] == '1' && isset($parsed_signature))
			$forum_page['sig_demo'] = $parsed_signature;
	}

Всё. По ходу написания поста пришлось поставить плагин для вставки и подсветки php: WP-Syntax.

Связанные записи

Кармасутрий программирование , ,

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.