Помогите реализовать ЧПУ

Basior

Новичок
Хай всем знатокам и профи)
Помогите пожалуйста доделать это грёбаное чпу, никак в голову не доходит с реализацией.
Вот как бы что имеется:
бд mysql с таблицой b, в таблице есть поле id, page_id и title, где id - это числовой индификатор, а page_id это - индификатор статьи (вида testovaya-stranichka), title - это название статьи.
Не знаю что дальше писать, каша в голове, помогите плиз.
 

Фанат

oncle terrible
Команда форума
не похоже на ЧПУ
если речь идёт о ЧПУ для всего сайта, то зачем здесь тайтл страницы и почему нету модуля, который отвечает за показ.
если это ЧПУ для единственного модуля, то оно тоже не сильно годится.

Ты можешь для начала объяснить - зачем тебе ЧПУ и много ли страниц у тебя на сайте сейчас?
 

Basior

Новичок
Где начало того, что можно доделать?
А что нужно Вам показать?
не похоже на ЧПУ
если речь идёт о ЧПУ для всего сайта, то зачем здесь тайтл страницы и почему нету модуля, который отвечает за показ.
если это ЧПУ для единственного модуля, то оно тоже не сильно годится.
Не совсем понял.
Ты можешь для начала объяснить - зачем тебе ЧПУ и много ли страниц у тебя на сайте сейчас?
Да могу объяснить.
ЧПУ нужно для красоты и для улучшения оптимизации для поисковых систем. Сейчас на сайте статтей 5, но они тестовые, и сам сайт как бы тестовий пока не зделаю всё как надо ).
 

Фанат

oncle terrible
Команда форума
ну, лично я не люблю отвечать на вопросы "пойди туда, не знаю куда".
из твоего ответа я вижу, что ты не представляешь, что тебе надо.

предлагаю сначала сделать сайт, а потом прикручивать к нему ЧПУ
 

Basior

Новичок
ну, лично я не люблю отвечать на вопросы "пойди туда, не знаю куда".
из твоего ответа я вижу, что ты не представляешь, что тебе надо.

предлагаю сначала сделать сайт, а потом прикручивать к нему ЧПУ
так он сделан, меню, навигация, поиск и т.д., работает, вот до чпу подошло время.
Я представляю что мне надо ), возможно у меня не получается объяснить это )
 

Фанат

oncle terrible
Команда форума
нет, не представляешь.
к примеру, у тебя зачем-то в таблице title страницы.
зачем?
 

Basior

Новичок
и какой смысл в этой таблице?
извлекать из неё id, page_id странниц, я так думаю...
тоисть сейчас у меня ЧПУ работает вот так http://site.com/post/55. Где post это категория в которой лежат статьи, а 55 это индификатор статьи, который берется из поля id.
для начала хочу сделать что бы после индификатора чере ('-' чёрточку) выводилось название статьи http://site.com/post/55-nazvanie-stati.html.
И самое главное что бы при добавлении статьи в админке, в поле "Добавить статью", написать по русски название статьи, то что бы автоматически оно проходило через транслитерацию и в page_id попадало "nazvanie-stati", а не "название статьи", вот хотябы так, а там дальше мелочи пойдут )))
 

Фанат

oncle terrible
Команда форума
всё равно не понимаю я твоих проблем.
какая сложность в "автоматической транслитерации"? набрать в гугле "PHP транслитерация" или применить взятую из интернета функцию к введенному заголовку?

кстати, хранить page_id в БД нет смысла. генерировать можно на лету.


Кстати, если хочется совсем уж сео-пресео, то проверяй, совпадает ли title со сгенерированным, и если нет - делай редирект
 

Фанат

oncle terrible
Команда форума
PHP:
function slugify($s) {
  $trans = array("а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y",
              "к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t", "у"=>"u","ф"=>"f",
              "х"=>"h","ц"=>"c","ч"=>"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","Ц"=>"c","Ч"=>"ch", "Ш"=>"sh","Щ"=>"sch","Ы"=>"i","Э"=>"e","Ю"=>"yu","Я"=>"ya"
             );
  $s = trim($s);
  $s = str_replace(" ","-",$s);
  $s = strtr($s, $trans);
  $s = strtolower($s);
  $s = preg_replace('![^a-z0-9-]!',"",$s);
  $s = preg_replace('!\-+!',"-",$s);
  return $s;
}
 

Basior

Новичок
всё равно не понимаю я твоих проблем.
какая сложность в "автоматической транслитерации"? набрать в гугле "PHP транслитерация" или применить взятую из интернета функцию к введенному заголовку?
вот-вот функция у меня есть своя, но как её применить я не знаю, что бы при добавлении статьи в бд переданная строка проходила транслитерацию.
кстати, хранить page_id в БД нет смысла. генерировать можно на лету.
А как? интересно, я тоже задумывался об этом но никак не получается воплотить...
Кстати, если хочется совсем уж сео-пресео, то проверяй, совпадает ли title со сгенерированным, и если нет - делай редирект
совпадает )
 

Фанат

oncle terrible
Команда форума
ты не можешь этого знать.
от пользователя может придти что угодно.
поэтому желательно проверять.

но как её примЕнить я не знаю
не понял. ты не знаешь, как применять функции в РНР, или что?
trim() применял когда-нибудь?
но никак не получается воплотить...
что не получается? не можешь вывести title при формировании ссылки?
 
Сверху