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

Minerva SEO v0.4.1


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

Скачал с оф сайта и поставил себе это чудо, есть несколько вопросов касательно мета тегов в сорцах..

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

значит смотрю в сорцы страницы когда просматриваю тему и вижу это:

 

<meta name="description" content=" òå÷åíèå ñëåäóþùèõ 12 ìå&nt" />
<meta name="abstract" content=" òå÷åíèå ñëåäóþùèõ 12 ìåñÿöåâ Microsoft íà÷íåò ðàñøèðÿòü Ñåðâåð SQL, ÷òîáû ïîääåðæàòü î÷åíü áîëüøèå îáúåìû äàííûõ, îñíîâàííûõ íà òåõíîëîãèè, êîòîðóþ ïðèîáðåëà ó DATAllegro.....  Íîâîñòü âçÿòà ñ Ñàéòà" />
<meta name="title" content="Microsoft íà÷íåò ðàñøèðÿòü Ñåðâåð SQL" />
<meta name="keywords" content="Microsoft начнет расширять Сервер SQL, microsoft, Microsoft, начнет, расширять, Сервер, SQL" />

 

если смотреть сорцы при просмотре форума или главной то этого нет..

помогите разобраться..

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

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

если честно я не имею понятия о механизме работы ботов, поэтому и задал вопрос, это вообще нормально или что то работает не так?
Ссылка на комментарий
Поделиться на других сайтах

Минерва не дружит с кириллицей. И пока никто подружить её с ней не смог. Поэтому в России она особо погоды не сделает тебе.
Ссылка на комментарий
Поделиться на других сайтах

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

а что значит *рабочий*, я качал с оф сайта, думаю он вполне рабочий.. надо?

 

как бы сделать так чтобы мета теги <description> и <abstract> генерировались *правильно* либо вообще тогда отключить их генерацию до лучших времен?

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

Держи.

Последняя версия Минервы( проверялась на 2.3.6, всё работает)

По ходу в архиве что-то ещё лишнее валяется...хз :D

http://narod.ru/disk/5260499000/Minerva%20...v0.4.1.rar.html

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

нашел что <abstract> и <description> вроде бы обрабатываются в файле /modules/minerva/tools/include.php

Уважаемые Девелоперы, может как то можно заставить выводить теги кирилицей?

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

рабочий в плане установленный на работающем форуме

так проще искать и устранять разногласия, чем имитировать все возможные ситуации самому

 

а там уже и названия тем адекватно транслитерировать можно, слова выводить...

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

Минерва не дружит с кириллицей. И пока никто подружить её с ней не смог. Поэтому в России она особо погоды не сделает тебе.

Не говори если не знаешь на верняка :D с кириллицей(windows-1251) замечательно работает, после мелких изменений ;) единственное не всегда большие буквы в маленькие превращает, но это уже другая тема

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

hg_04 в тегах тоже? Да, кириллицу в последней версии она понимать стала, но в тело вставляет её транслитом(либо вообще не вставляет)
Ссылка на комментарий
Поделиться на других сайтах

решил много проблем

ВСЕ в файле ./modules/minerva/tools/include.php

 

1 - транслитерация русских названий тем в furl

для этого добавляем в класс следующие функции

	function rus_alphanumerical_clean($t)
{
	$exclude = array(
	" "=>",",
	"%20"=>",",
	"& quot;"=>"", // УБРАТЬ ПРОБЕЛ ПОСЛЕ &
	"& #33;"=>"", // УБРАТЬ ПРОБЕЛ ПОСЛЕ &
	"& #39;"=>"", // УБРАТЬ ПРОБЕЛ ПОСЛЕ &
	"& #036;"=>"", // УБРАТЬ ПРОБЕЛ ПОСЛЕ &
	"& #36;"=>"", // УБРАТЬ ПРОБЕЛ ПОСЛЕ &
	"ь"=>"",
	"ъ"=>"",
	);
	$t = html_entity_decode( $t, ENT_NOQUOTES, "windows-1251" );
	$t = strtr($t,$exclude);
	return preg_replace( "/[^а-яА-Яa-zA-Z0-9\-\_]/", "," , $t );
}
function convert_rus_eng($s,$mode='rus')
{
	@setlocale(LC_ALL,"ru_RU.CP1251");
	$s=strtolower($s);
	/*if((preg_match( "/[a-zA-Z]/", $s ))and($mode=='eng'))
	{
		return 0;
	}*/
	$trans = array(
	'a'=>'а',
	'b'=>'б',
	'v'=>'в',
	'g'=>'г',
	'd'=>'д',
	'e'=>'е',
	'jo'=>'ё',
	'zh'=>'ж',
	'z'=>'з',
	'i'=>'и',
	'j'=>'й',
	'k'=>'к',
	'l'=>'л',
	'm'=>'м',
	'n'=>'н',
	'o'=>'о',
	'p'=>'п',
	'r'=>'р',
	's'=>'с',
	't'=>'т',
	'u'=>'у',
	'f'=>'ф',
	'h'=>'х',
	'c'=>'ц',
	'ch'=>'ч',
	'sh'=>'ш',
	'w'=>'щ',
	//"'"=>'ь',
	'y'=>'ы',
	//'"'=>'ъ',
	'je'=>'э',
	'ju'=>'ю',
	'ya'=>'я',
	);
	if($mode=="eng")
	{
		$trans = array_flip($trans);
	}
	return strtr($s,$trans);
}

//первая на одну запятую отличается от такой-же в моде ipb cumulus, поэтому внимание

 

и полностью заменяем функцию clean_url

function clean_url($title,$skip_spacer=null)
{
unset($ntitle);
$ntitle = trim($title);
$ntitle = urldecode($ntitle);
$ntitle = strip_tags($ntitle);
$ntitle = html_entity_decode($ntitle);
//arhar
if($this->ipsclass->vars['gb_char_set']=='windows-1251')
{
	$ntitle = $this->convert_rus_eng($this->rus_alphanumerical_clean($ntitle),'eng');
}
else
{
	$ntitle = $this->str_char_replacement($ntitle);
	$ntitle = strtolower($ntitle);
	$ntitle = preg_replace('/\^|"|\'/','',$ntitle);
	$ntitle = preg_replace('/&.*?;/','',$ntitle);
	$ntitle = preg_replace( "/[^a-zA-Z0-9]/", ',', $ntitle );
}
$spacer = ($skip_spacer)?$skip_spacer:$this->ipsclass->vars['mseo_seperator'];
$ntitle = $this->ipsclass->clean_comma( $ntitle );
$ntitle = $this->ipsclass->trim_trailing_comma( $ntitle );
$ntitle = $this->ipsclass->trim_leading_comma( $ntitle );
$ntitle = str_replace(',',$spacer ,$ntitle);
return $ntitle;
}

здесь есть говнострочка $ntitle = html_entity_decode($ntitle);

но вроде-бы работает

 

2 - мусор в метатегах

для этого полностью заменяем функцию gentle_clean

function gentle_clean($data, $skip="")
{
//arhar
$data = strip_tags($data);
if($this->ipsclass->vars['gb_char_set']=='windows-1251')
{
	$data = html_entity_decode($data, ENT_NOQUOTES, $this->ipsclass->vars['gb_char_set'] );
}
else if($skip==1)
{
	$data = html_entity_decode($data);
}
else
{
	$data = htmlentities($data);
}
$data = $this->ipsclass->txt_UNhtmlspecialchars($data);
$data = $this->ipsclass->clean_evil_tags($data);
$data = str_replace("<br />",' ',$data);
$data = str_replace("\r\n", ' ', $data);
$data = str_replace("\n", ' ', $data);
$data=preg_replace("/\s+/"," ",$data);
$data = trim($data);
return $data;
}

здесь я поменял местами некоторые действия и добавил жесткое условие, с которым вроде-бы работает

можно было сделать гибче, но да фиг с ним

 

3 - мусор в мета кейвордах

наблюдаются слова из 2 букв и даже просто пробелы

это нехорошо

находим в функции replace_meta

						$data['keywords'] = $this->topics['title'] .', ';

					$data['keywords'] .=  $keys  .', ';

					$data['keywords'] .=  str_replace(' ',', ',$this->topics['title']);

и меняем на

						$this->topics['title'] = preg_replace("/\s+/"," ",$this->topics['title']);
					$data['keywords'] = $this->topics['title'].', ';
					//need to test keys
					if(trim($keys))
					{
						$keyarr = explode(', ',$keys);
						if(count($keyarr))
						{
							foreach($keyarr as $w)
							{
								if(strlen(trim($w))>3)
								{
									$newarr[]=$w;
								}
							}
							if(count($newarr))
							{
								$newkeys=implode(', ',$newarr);
								$data['keywords'] .=  $newkeys  .', ';
							}
						}
					}
					//intellectual title
					$titlewords=explode(' ',$this->topics['title']);
					if(count($titlewords))
					{
						foreach($titlewords as $word)
						{
							if(strlen(trim($word))>3)
							{
								$newtitlearr[]=$word;
							}
						}
						if(count($newtitlearr))
						{
							$data['keywords'] .= implode(', ',$newtitlearr);
						}
					}
					$data['keywords'] = preg_replace("/, $/","",$data['keywords']);

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

не сочтите за рекламу:

http://www.softstazy.co.cc/

 

Arhar

По поводу доводки до ума минервы, можно ли сделать чтобы теги кирилические работали правильно? и вывод тегов в каждой теме организовать, да и там еще куча косяков по тегам - например при удалении темы теги остаются да и выводятся они как то странно, только в 2-3 столбика и не все..

Есть в планах это дело решить?

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

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

Большое спасибо товарищу Arhar

 

Но тут еще косячок нашелся.

 

Пример на этом форуме http://www.softstazy.co.cc/

 

Извенити меня конечно, за то что я там наспамил, но зато могу наглядно показать косяк.

 

Вот на этой странице

http://www.softstazy.co.cc/novosti-informa...pervoj-t81.html

 

Попробуйте перейти на вторую страницу этого топика, то вас выкинет на главную.

 

ИЛИ

С этой странице на первую

http://www.softstazy.co.cc/novosti-informa...j-t81-p-20.html

 

То Вас выкинет на профиль пользователя.

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

Извенити меня конечно, за то что я там наспамил, но зато могу наглядно показать косяк.

ничего страшного, для дела можно и поспамить :D

 

ну как обычно, смотреть и решать могу только вживую

а что собссна мешает? доступ у вас до сих пор имеется - все к вашим услугам))

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

Нашел решение

файл: seo_setting.php

 

Заменил:

$topic_rule = array(

'(.*?)-f([0-9]+)-(.*?)-t([0-9]+).html$',

'$forum_title-f$forum_id-$topic_title-t$topic_id.html',

'showtopic=$matches[4]' );

 

Новый код

$topic_rule = array(
 'content/(.*?)/([0-9]+)/(.*?).html' ,
 'content/$forum_title/$topic_id/$topic_title.html', 
 'showtopic=$matches[2]' );

 

Заменил:

$topic_multipage_rule = array(

'(.*?)-f([0-9]+)-(.*?)-t([0-9]+)-p-([0-9]+).html$',

'$forum_title-f$forum_id-$topic_title-t$topic_id-p-$topic_st.html',

'showtopic=$matches[4]&st=$matches[5]' );

 

Новый код

$topic_multipage_rule = array(
  'content/(.*?)/([0-9]+)/(.*?)/page/([0-9]+).html' ,
  'content/$forum_title/$topic_id/$topic_title/page/$topic_st.html', 
  'showtopic=$matches[2]&st=$matches[4]' );

 

Ну и конечно ссылки стали выглядеть более красиво.

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

в целом оно конечно неплохо, но там опять индийский код, лучше исправить его

для этого во все том же злосчастном include.php

ищем

				if(	$url_info['is_topic_has_page'] && $this->ipsclass->vars['mseo_furl_topic_enable'])
			{
				$importance = 1;
				$topic_id = $url_info['exploded_query']['showtopic'];
				$topic_title = ($topic_cache[$topic_id])?$topic_cache[$topic_id]:'pagination';
				$topic_st = $url_info['exploded_query']['st'];
				eval("\$formatted = \"{$this->the_rules['topic_multipage_rule'][1]}\";");
				$first_array[$importance][] = $url;
				$second_array[$importance][] = $this->ipsclass->vars['board_url'].'/'.$formatted;
			}
			if(	$url_info['is_forum_multipage'] && $this->ipsclass->vars['mseo_furl_forum_enable'])
			{
				$importance = 1;
				$forum_id = $url_info['exploded_query']['showforum'];
				$forum_title = 'pagination';
				$forum_st = $url_info['exploded_query']['st'];
				eval("\$formatted = \"{$this->the_rules['forum_multipage_rule'][1]}\";");
				$first_array_forum_multipage_fix_me[$importance][$forum_st]  = $url;
				$second_array_forum_multipage_fix_me[$importance][$forum_st] = $this->ipsclass->vars['board_url'].'/'.$formatted;
			}

делаем

				if(	$url_info['is_topic_has_page'] && $this->ipsclass->vars['mseo_furl_topic_enable'])
			{
				$importance = 1;
				$forum_id  = ($this->ipsclass->input['f'])?$this->ipsclass->input['f']:0;
				$forum_title = ($forum_id)?$this->ipsclass->cache['forum_cache'][$forum_id]['name']:'forum';
				$forum_title = $this->clean_url($forum_title);					
				$topic_id = $url_info['exploded_query']['showtopic'];
				$topic_title = $this->clean_url($this->topics['title']);
				$topic_title = ($topic_title)?$topic_title:'pagination';
				$topic_st = $url_info['exploded_query']['st'];
				eval("\$formatted = \"{$this->the_rules['topic_multipage_rule'][1]}\";");
				$first_array[$importance][] = $url;
				$second_array[$importance][] = $this->ipsclass->vars['board_url'].'/'.$formatted;
			}
			if(	$url_info['is_forum_multipage'] && $this->ipsclass->vars['mseo_furl_forum_enable'])
			{
				$importance = 1;
				$forum_id = $url_info['exploded_query']['showforum'];
				$forum_title = ($forum_id)?$this->ipsclass->cache['forum_cache'][$forum_id]['name']:'forum';
				$forum_title = $this->clean_url($forum_title);
				$forum_st = $url_info['exploded_query']['st'];
				eval("\$formatted = \"{$this->the_rules['forum_multipage_rule'][1]}\";");
				$first_array_forum_multipage_fix_me[$importance][$forum_st]  = $url;
				$second_array_forum_multipage_fix_me[$importance][$forum_st] = $this->ipsclass->vars['board_url'].'/'.$formatted;
			}

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

А как сделать, чтобы между словами в ссылках стояло не тире "-", а нижнее подчеркивание "_" ?

И еще - как сделать чтобы рут-директория отображалась не как /forum/, а как forum.html?

Насколько я знаю, такое возможно - яркий пример: http://www.applelife.ru/forum.html - там все норм настроено.

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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