• Уважаемый Гость! Если вы зарегистрировались на нашем форуме, значит вам нужна помощь! Мы всегда рады вам помочь, еще ни один пользователь не получил отказа! Но мы так же нуждаемся в Вашей поддержке. Проект полностью бесплатный, мы не имеем права требовать от вас денег, нам это и не нужно! Но от любой финансовой поддержки не откажемся. Проект развивается, но иногда очень тяжело его поддерживать, особенно в финансовом отношении. Если у вас есть возможность поддержать нас финансово, мы будем вам очень благодарны! С уважением, команда Оскласс Россия!
  • Изменение в правилах форума! В связи с огромным количеством вопросов поступающих в адрес технической поддержки мы решили изменить правила форума! Просим всех пользователей обратить внимание на данные изменения и четко их соблюдать!
  • Ребята, нуждаемся в программистах! Если хотите зарабатывать и есть время, пишите администраторам сайта. Есть база и инструменты, нужен опыт и знания =)
  • Уважаемые пользователи! На форуме появились разделы по работе с системой Yclas. Yclas - это скрипт доски объявлений. Нужны разработчики.

ЧПУ регионов местоположения

sirius80

Новичок
Заморочился с ЧПУ регионов местоположения. Включил чистые ссылки в админке, сделал транслит с помощью данного метода:
function remove_accents($string) {
if ( !preg_match('/[\x80-\xff]/', $string) )
return $string;
после него ставим :

if (is_utf8($string)) {
$chars = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"j","З"=>"z","И"=>"i",
"Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"ts","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"i","Ь"=>"",
"Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"e","ж"=>"j",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ы"=>"i","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
" "=> "_", "."=> "", "/"=> "_", "-" => "_");
$string = strtr($string, $chars);

При наведении на ссылку отображается http://site.ru/sankt_peterburg-r781903

Но при переходе по ней изменяется на d0a1d0b0d0bdd0bad182-d09fd0b5d182d0b5d18-r781903

И еще интересует как убрать id региона в конце путей (r781903)
 
Последнее редактирование модератором:

administrator

Блудный сын.
Команда форума
Вообще это моя разработка, ссылки на сторонние ресурсы запрещены!
Пользуйтесь поиском по сайту, вообще тема ЧПУ разжована в соответствующем топике.
 

sirius80

Новичок
Сори за ссылку админ, не хотелось автора обижать что привел его пример. ЧПУ регионов нигде не встречал вроде....
 

administrator

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

sirius80

Новичок
В категориях правила отображения имеются, но они тут думаю не помогут. При включении чистых ссылок они становятся на русском языке, а при клике на регион перегенерируется в крокозябры и подставляется r781870 я так понял это id региона. И если использовать транслитизацию из первого сообщения, то она не распространяется на регионы, только на объявления и материалы. И еще использую плагин с русской картой на главной, при клике на регион таже история.... Вот как бы исправить этот недочет.
 

sirius80

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

sirius80

Новичок
Понял в чем проблема. При установки движка с оф. сайта система предлагает автоматом страну и города, при выборе даного варианта и получаются города и регионы таким видом d09ad180d0b0d181d0bdd0bed18fd180d181d0ba, так как в самом sql файле городов вбиты такие данные:
Код:
(407404, 781840, 'ru', 'Баево', 1, '%d0%91%d0%b0%d0%b5%d0%b2%d0%be'),
(407405, 781840, 'ru', 'Благовещенка', 1, '%d0%91%d0%bb%d0%b0%d0%b3%d0%be%d0%b2%d0%b5%d1%89%d0%b5%d0%bd%d0%ba%d0%b0'),
(407406, 781840, 'ru', 'Быстрый Исток', 1, '%d0%91%d1%8b%d1%81%d1%82%d1%80%d1%8b%d0%b9-%d0%98%d1%81%d1%82%d0%be%d0%ba'),
(407407, 781840, 'ru', 'Верх-Суетка', 1, '%d0%92%d0%b5%d1%80%d1%85-%d0%a1%d1%83%d0%b5%d1%82%d0%ba%d0%b0'),
(407408, 781840, 'ru', 'Волчиха', 1, '%d0%92%d0%be%d0%bb%d1%87%d0%b8%d1%85%d0%b0'),
(407409, 781840, 'ru', 'Восточный', 1, '%d0%92%d0%be%d1%81%d1%82%d0%be%d1%87%d0%bd%d1%8b%d0%b9'),

Файл с официального сайта http://geo.osclass.org/downloads/

Если в админке ручками меняем в разделе Местоположение в регионах и городах на инглише пишем область и город то все гуд. Осталось найти нормальный sql файл с городами в транслите, или я гоню....
 

DZ333

Новичок
Понял в чем проблема. При установки движка с оф. сайта система предлагает автоматом страну и города, при выборе даного варианта и получаются города и регионы таким видом d09ad180d0b0d181d0bdd0bed18fd180d181d0ba, так как в самом sql файле городов вбиты такие данные:
Код:
(407404, 781840, 'ru', 'Баево', 1, '%d0%91%d0%b0%d0%b5%d0%b2%d0%be'),
(407405, 781840, 'ru', 'Благовещенка', 1, '%d0%91%d0%bb%d0%b0%d0%b3%d0%be%d0%b2%d0%b5%d1%89%d0%b5%d0%bd%d0%ba%d0%b0'),
(407406, 781840, 'ru', 'Быстрый Исток', 1, '%d0%91%d1%8b%d1%81%d1%82%d1%80%d1%8b%d0%b9-%d0%98%d1%81%d1%82%d0%be%d0%ba'),
(407407, 781840, 'ru', 'Верх-Суетка', 1, '%d0%92%d0%b5%d1%80%d1%85-%d0%a1%d1%83%d0%b5%d1%82%d0%ba%d0%b0'),
(407408, 781840, 'ru', 'Волчиха', 1, '%d0%92%d0%be%d0%bb%d1%87%d0%b8%d1%85%d0%b0'),
(407409, 781840, 'ru', 'Восточный', 1, '%d0%92%d0%be%d1%81%d1%82%d0%be%d1%87%d0%bd%d1%8b%d0%b9'),

Файл с официального сайта http://geo.osclass.org/downloads/

Если в админке ручками меняем в разделе Местоположение в регионах и городах на инглише пишем область и город то все гуд. Осталось найти нормальный sql файл с городами в транслите, или я гоню....

У меня города на английском, и все равно движок добавляет эти -r123923... правила тоже сайт.ру/rules-p23 а надо просто /rules как я понял, 23 - это id материала

Если изменить в настройках коротких ссылок {PAGE_SLUG}-p{PAGE_ID} на {PAGE_SLUG} статические страницы работают, но перестает работать выбор регионов =((( так как там адреса типа сайт.ру/region-r2323234

Кто-нибудь знает, эти цифры хронятся в pk_i_id.
Можно ли в настройках коротких ссылок заменить с{PAGE_SLUG}-p{PAGE_ID} на {PAGE_SLUG} , а в таблице заменить значения этих pk_i_id полей на поля из s_slug ???
 
Последнее редактирование:

combat

Новичок
Проблема с ЧПУ решается довольно просто, и не только с регионами, категориями и ссылками объявлений. Ничего не нужно править в базе, достаточно пересохранить, а регионы отредактировать из админпанели, удалив изначальную ссылку в виде абры-кадабры. Тут уже на форуме предлагадся костыль в виде:
PHP:
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g"
Но все же правильней будет добавить перед:
PHP:
// Euro Sign
chr(226).chr(130).chr(172) => 'E',
Следущий код:
PHP:
//Transliteration for Cyrillic
chr(192),chr(208).chr(144) => 'a', // А
chr(224),chr(208).chr(176) => 'a', // а
chr(193),chr(208).chr(145) => 'b', // Б
chr(225),chr(208).chr(177) => 'b', // б
chr(194),chr(208).chr(146) => 'v', // В
chr(226),chr(208).chr(178) => 'v', // в
chr(195),chr(208).chr(147) => 'g', // Г
chr(227),chr(208).chr(179) => 'g', // г
chr(196),chr(208).chr(148) => 'd', // Д
chr(228),chr(208).chr(180) => 'd', // д
chr(197),chr(208).chr(149) => 'e', // Е
chr(229),chr(208).chr(181) => 'e', // е
chr(168),chr(208).chr(129) => 'yo', // Ё
chr(184),chr(209).chr(145) => 'yo', // ё
chr(198),chr(208).chr(150) => 'zh', // Ж
chr(230),chr(208).chr(182) => 'zh', // ж
chr(199),chr(208).chr(151) => 'z', // З
chr(231),chr(208).chr(183) => 'z', // з
chr(200),chr(208).chr(152) => 'i', // И
chr(232),chr(208).chr(184) => 'i', // и
chr(201),chr(208).chr(153) => 'j', // Й
chr(233),chr(208).chr(185) => 'j', // й
chr(202),chr(208).chr(154) => 'k', // К
chr(234),chr(208).chr(186) => 'k', // к
chr(203),chr(208).chr(155) => 'l', // Л
chr(235),chr(208).chr(187) => 'l', // л
chr(204),chr(208).chr(156) => 'm', // М
chr(236),chr(208).chr(188) => 'm', // м
chr(205),chr(208).chr(157) => 'n', // Н
chr(237),chr(208).chr(189) => 'n', // н
chr(206),chr(208).chr(158) => 'o', // О
chr(238),chr(208).chr(190) => 'o', // о
chr(207),chr(208).chr(159) => 'p', // П
chr(239),chr(208).chr(191) => 'p', //п
chr(208),chr(208).chr(160) => 'r', // Р
chr(240),chr(209).chr(128) => 'r', // р
chr(209),chr(208).chr(161) => 's', // С
chr(241),chr(209).chr(129) => 's', // с
chr(210),chr(208).chr(162) => 't', // Т
chr(242),chr(209).chr(130) => 't', // т
chr(211),chr(208).chr(163) => 'y', // У
chr(243),chr(209).chr(131) => 'y', // у
chr(212),chr(208).chr(164) => 'f', // Ф
chr(244),chr(209).chr(132) => 'f', // ф
chr(213),chr(208).chr(165) => 'x', // Х
chr(245),chr(209).chr(133) => 'x', // х
chr(214),chr(208).chr(166) => 'c', // Ц
chr(246),chr(209).chr(134) => 'c', //ц
chr(215),chr(208).chr(167) => 'ch', // Ч
chr(247),chr(209).chr(135) => 'ch', // ч
chr(216),chr(208).chr(168) => 'sh', // Ш
chr(248),chr(209).chr(136) => 'sh', // ш
chr(217),chr(208).chr(169) => 'sch', // Щ
chr(249),chr(209).chr(137) => 'sch', // щ
chr(218),chr(208).chr(170) => '', // Ъ
chr(250),chr(209).chr(138) => '', // ъ
chr(219),chr(208).chr(171) => 'y', // Ы
chr(251),chr(209).chr(139) => 'y', // ы
chr(220),chr(208).chr(172) => '', // Ь
chr(252),chr(209).chr(140) => '', // ь
chr(221),chr(208).chr(173) => 'e', // Э
chr(253),chr(209).chr(141) => 'e', // э
chr(222),chr(208).chr(174) => 'yu', // Ю
chr(254),chr(209).chr(142) => 'yu', // ю
chr(223),chr(208).chr(175) => 'ya', // Я
chr(255),chr(209).chr(143) => 'ya', // я
Я в нем обозначил русские буквы, кому нужно, тот может подкорректировать транслит под себя.
Успехов! :)
 

DZ333

Новичок
У меня этот транслит добавлен, но решить проблему вида ссылки так и не удалось... все равно получается сайт.ком/region-r123923
=(((
 

Олег

Новичок
Проблема с ЧПУ решается довольно просто, и не только с регионами, категориями и ссылками объявлений. Ничего не нужно править в базе, достаточно пересохранить, а регионы отредактировать из админпанели, удалив изначальную ссылку в виде абры-кадабры. Тут уже на форуме предлагадся костыль в виде:
PHP:
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g"
Но все же правильней будет добавить перед:
PHP:
// Euro Sign
chr(226).chr(130).chr(172) => 'E',
Следущий код:
PHP:
//Transliteration for Cyrillic
chr(192),chr(208).chr(144) => 'a', // А
chr(224),chr(208).chr(176) => 'a', // а
chr(193),chr(208).chr(145) => 'b', // Б
chr(225),chr(208).chr(177) => 'b', // б
chr(194),chr(208).chr(146) => 'v', // В
chr(226),chr(208).chr(178) => 'v', // в
chr(195),chr(208).chr(147) => 'g', // Г
chr(227),chr(208).chr(179) => 'g', // г
chr(196),chr(208).chr(148) => 'd', // Д
chr(228),chr(208).chr(180) => 'd', // д
chr(197),chr(208).chr(149) => 'e', // Е
chr(229),chr(208).chr(181) => 'e', // е
chr(168),chr(208).chr(129) => 'yo', // Ё
chr(184),chr(209).chr(145) => 'yo', // ё
chr(198),chr(208).chr(150) => 'zh', // Ж
chr(230),chr(208).chr(182) => 'zh', // ж
chr(199),chr(208).chr(151) => 'z', // З
chr(231),chr(208).chr(183) => 'z', // з
chr(200),chr(208).chr(152) => 'i', // И
chr(232),chr(208).chr(184) => 'i', // и
chr(201),chr(208).chr(153) => 'j', // Й
chr(233),chr(208).chr(185) => 'j', // й
chr(202),chr(208).chr(154) => 'k', // К
chr(234),chr(208).chr(186) => 'k', // к
chr(203),chr(208).chr(155) => 'l', // Л
chr(235),chr(208).chr(187) => 'l', // л
chr(204),chr(208).chr(156) => 'm', // М
chr(236),chr(208).chr(188) => 'm', // м
chr(205),chr(208).chr(157) => 'n', // Н
chr(237),chr(208).chr(189) => 'n', // н
chr(206),chr(208).chr(158) => 'o', // О
chr(238),chr(208).chr(190) => 'o', // о
chr(207),chr(208).chr(159) => 'p', // П
chr(239),chr(208).chr(191) => 'p', //п
chr(208),chr(208).chr(160) => 'r', // Р
chr(240),chr(209).chr(128) => 'r', // р
chr(209),chr(208).chr(161) => 's', // С
chr(241),chr(209).chr(129) => 's', // с
chr(210),chr(208).chr(162) => 't', // Т
chr(242),chr(209).chr(130) => 't', // т
chr(211),chr(208).chr(163) => 'y', // У
chr(243),chr(209).chr(131) => 'y', // у
chr(212),chr(208).chr(164) => 'f', // Ф
chr(244),chr(209).chr(132) => 'f', // ф
chr(213),chr(208).chr(165) => 'x', // Х
chr(245),chr(209).chr(133) => 'x', // х
chr(214),chr(208).chr(166) => 'c', // Ц
chr(246),chr(209).chr(134) => 'c', //ц
chr(215),chr(208).chr(167) => 'ch', // Ч
chr(247),chr(209).chr(135) => 'ch', // ч
chr(216),chr(208).chr(168) => 'sh', // Ш
chr(248),chr(209).chr(136) => 'sh', // ш
chr(217),chr(208).chr(169) => 'sch', // Щ
chr(249),chr(209).chr(137) => 'sch', // щ
chr(218),chr(208).chr(170) => '', // Ъ
chr(250),chr(209).chr(138) => '', // ъ
chr(219),chr(208).chr(171) => 'y', // Ы
chr(251),chr(209).chr(139) => 'y', // ы
chr(220),chr(208).chr(172) => '', // Ь
chr(252),chr(209).chr(140) => '', // ь
chr(221),chr(208).chr(173) => 'e', // Э
chr(253),chr(209).chr(141) => 'e', // э
chr(222),chr(208).chr(174) => 'yu', // Ю
chr(254),chr(209).chr(142) => 'yu', // ю
chr(223),chr(208).chr(175) => 'ya', // Я
chr(255),chr(209).chr(143) => 'ya', // я
Я в нем обозначил русские буквы, кому нужно, тот может подкорректировать транслит под себя.
Успехов! :)

А как настроить чтобы было вот так доска.рф/транспорт? сейчас у меня вот так доска.рф/transport
 
Верх