Транслитерация русских URL для английской версии IPB 3.4 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Транслитерация русских URL для английской версии IPB 3.4

#1 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 400
  • Регистрация: 27-Март 16
  • Репутация: 29
  • IPB version:3.4.x
 

Отправлено 11 Июль 2016 - 10:00

Сделал транслит русских ссылок таким методом (без хука).

P.S. - для английской версии IPB 3.4

1. admin\sources\base\core.php

Найти:

		elseif ( strtolower( IPS_DOC_CHAR_SET ) == 'utf-8' )
		{
			$string = utf8_encode( $string );
		}
		
		return $string;
	}

Добавить ниже:

	static public function monthNameRu2En( $text )
	{
		
 		return str_replace( array('Январь','Февраль','Март','Апрель','Май','Июнь,','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'), array('January','February','March','April','May','June','July','August','September','October','November','December'), $text );
	}

	static public function transliterate( $text )
	{
		return str_replace( array('а','б','в','г','ґ','д','е','є','ё','ж','з','и','і','ї','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','э','ю','я','ы','ь','ъ'), array('a','b','v','g','g','d','e','e','yo','zh','z','i','i','i','i','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','sch','e','yu','ya','y','','j'), $text);
	
	}

	static public function makeSeoTransliterate( $text )
	{
		if  (!IPB_USE_SEO_TRANSLIT )
		{
			return $text;
		}
		
		if ((is_array($text)) && (count($text)))
		{ 
			foreach( $text as $titlefortranslit)
			{
				$titlefortranslit = self::makeSeoTransliterate( $titlefortranslit );
			}
			return $text;
				
		}
		else
		{
				 
			$text = urldecode($text);
			
			$text = self::transliterate( $text );
				
			$text = preg_replace('#[^a-z0-9-.]#', '', $text);
				
			$text = urlencode($text);
		}
		
		return $text;
		
	}

Найти:

		$text = preg_replace( "#-{2,}#", '-', $text );
		$text = trim($text, '-');

Добавить ниже:

		$text = self::makeSeoTransliterate( $text );

Перед сохранением для корректной обработки кириллицы нужно изменить кодировку файла на UTF-8 без BOM.

2. admin\sources\classes\output\publicOutput.php

Найти:

if ( ! ipsRegistry::$settings['use_friendly_urls'] )
{
	return $url;
}

Добавить ниже:

$seoTitle = IPSText::makeSeoTransliterate( $seoTitle );

Обновить кеш Furl.
1

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна