SEF URL для иерархии категорий и статей

Я написал небольшой фреймворк, такой как код с архитектурой HMVC, используя PHP. Ниже приведены примеры SEF-URL для доступа.

http://domain.com/controller_name/method_name/param1/param2
http://domain.com/folder_name/controller_name/method_name/param1/param2

Выше хорошо и работает с фиксированным типом данных. Но когда я попытался создать простую CMS, где у меня есть категория внутри другой категории и т. Д., То есть многоуровневая структура категорий с множеством статей внутри, я не смог использовать вышеуказанный URL. Я хочу что-то вроде

http://domain.com/category-name/sub-category-name/sub-sub-category-name
http://domain.com/category-name/sub-category-name/article-name

Может ли кто-нибудь помочь мне с сниппетом, чтобы достичь выше.

0

Решение

если я не понял, что вы хотите запросить категорию по sefurl
во-первых, вам нужно преобразовать имя данных в sefurl

function sefurl($s){
$s=trim($s);
$tr = array('ş','Ş','ı','I','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç','(',')','/',':',',');

$eng = array('s','s','i','i','i','g','g','u','u','o','o','c','c','','','-','-','');

$s = str_replace($tr,$eng,$s);$s = preg_replace('/&.+?;/', '', $s);

$s = preg_replace('/\s+/', '-', $s);

$s = preg_replace('|-+|', '-', $s);

$s = preg_replace('/#/', '', $s);

$s = str_replace('.', '.', $s);

$s = trim($s, '-');

$s = htmlspecialchars(strip_tags(urldecode(addslashes(stripslashes(stripslashes(trim(htmlspecialchars_decode($s))))))));

return $s;

}

теперь вы можете проверить это
например, мое имя категории «это тест категории»

sefurl($catname);

результат будет похож на «это тестовая категория»

Вы можете использовать это для категории ID

создайте новое двоеточие в вашей таблице БД, например, sefurl, когда вы устанавливаете новую категорию, преобразуйте имя категории в sefurl и затем установите его в двоеточие sefurl.

Вы можете запросить по sefurl из категории

http://yourdomain.com/categori/this-is-a-categor-/

проанализируйте url по «/» и получите «this-is-a-category-» после этого запроса в вашей таблице категорий.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]