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

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 - там все норм настроено.

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

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

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

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

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

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

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

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

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

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

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

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