@Relike

Как верно организовать роутинг для блога?

Как наиболее удачно организовать блог на CodeIgniter (в принципе и на остальных фреймворках)? Конечно желательно не гадить в урл словами типа "/post/", "/article/", "/category/" и т.д. Есть ли какие идеи? Структура может быть следующей: /категория/пост/, /категория/(номер страницы) , /категория/подкатегория/пост/ , /категория/подкатегория/(номер страницы) . Допустим так. Есть ли какие удачные решения?

Из наработок: как-то давным-давно решал подобную задачу таким образом
function index()
	{
		$s1 = $this->uri->segment(1, FALSE);
		$s2 = $this->uri->segment(2, FALSE);
		$s3 = $this->uri->segment(3, FALSE);
		$s4 = $this->uri->segment(4, FALSE);
		if($s1 && !$s2 && !$s3 && !$s4)
		{
			$this->main_cat($s1);
			
		}
		elseif($s1 && $s2 == 'page' && intval($s3))
		{
			
			$this->main_cat($s1, intval($s3));
		}
		elseif($s1 && $this->m_categories->isCategoryUrl($s2) && $this->m_posts->isPostUrl($s3))
		{
			
			$this->post($s3, $s1, $s2);
		}
		elseif($s1 && $this->m_categories->isCategoryUrl($s2))
		{
			if($s3 == 'page' && intval($s4))
			{
			
				$this->subcat($s2, intval($s4), $s1);
			}
			elseif($s3)
			{
				show_404();
			}
			else
			{
				$this->subcat($s2, 0, $s1);
			}
		}
		elseif($s1 && $this->m_posts->isPostUrl($s2))
		{			
			$this->post($s2, $s1);
		}
		else
		{
			show_404();
		}
	}
  • Вопрос задан
  • 951 просмотр
Решения вопроса 1
dmitriylanets
@dmitriylanets
веб-разработчик
//config/routes.php
$route[':any/(:any)/(\d+)'] = "startup/subcategory/$1/$2";
$route[':any/(:any)/(:any)'] = "startup/subcategory_post/$1/$2";

$route['(:any)/(\d+)'] = "startup/category/$1/$2";
$route[':any/(:any)'] = "startup/category_post/$1";


//controllers/startup.php
class Startup extends CI_Controller{

    public function category_post($post)
    {
        echo 'category_post '.$post;
    }
    
    public function category($cat,$page)
    {
        echo 'category '.$cat.' '.$page;
    }
    public function subcategory_post($subcat,$post)
    {
        echo 'subcategory_post '.$subcat.' '.$post;
    }      
    public function subcategory($cat,$page)
    {
        echo 'subcategory '.$cat.' '.$page;
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Oh, not this shit again!

Не пиши свой велосипед, он в любом случае будет хуже остальных.

Посмотри роутер silex, lumen, laravel, symphonye, или любого другого известного фреймворка.

З.Ы. CodeIgniter - это прошлое, забудь его.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 апр. 2024, в 20:09
9000 руб./за проект
28 апр. 2024, в 19:54
2000 руб./за проект
28 апр. 2024, в 19:54
5000 руб./за проект