- Joined
- Feb 8, 2022
- Messages
- 203
- Reaction score
- 2
Преди известно време бях попитан дали рутиранията могат да избегнат ?page=1/?view=2 и т.н., и тогава категорично отказвах, тъй като знаех, че ще трябва играчка и пипане по рутиращия клас.
Днес вече е възможно да се избегнат и с помощта на бота го направихме.
Добавен е нов параметър в рутиранията, ето пример:
Става дума за addon_regex параметъра, който ще слухти за добавки с regex правила. В случая става дума за добавка с /p/ или page.
Добавил съм следното htaccess правило:
и така вече от:
може да го достъпите и от:
Естествено в момента е хардкоднато, но от екстеншъните в sql.php при sql заявките за нова страница ще добавя нова колона 'regex' и именно от там ще вкарвате regex правилата за страниците генерирани от екстеншъни.
И така вече ще може да избягвате ? query параметъра и вашите линкове ще са идея по-четливи.
Мога да си поиграя и със страницирането, да направя да слухти за /p/ в url, но това не го обещавам. Идеята е страницирането да си остане с ?page=страница, а страници без странициране главно да се правят с regex правила, като pages/server?vew=1 да стане pages/server/view/1, естествено ако си има странициране вътре би трябвало да си работи.
Не съм го тествал обстойно, но във версия 9.0 ще го вкарам като новост и ще пренапиша gmon екстеншъна, който ще търпи още промени и нови функционалности.
Предстоят много нови неща, като повечето екстеншъни ще се сдобият и с админ панели, където е имало пипане в ext.php, за да е по-удобно за вас.
Днес вече е възможно да се избегнат и с помощта на бота го направихме.
Добавен е нов параметър в рутиранията, ето пример:
Code:
// Define the route dynamically
$collection->attachRoute(new PHPRouter\Route('/pages/'.$page_name, [
'_controller' => 'App\Controllers\CustomPage::CustomPage',
'methods' => ['POST', 'GET'],
'parameters' => ['template_file' => $template_file, 'addon_regex' => '(/p/\d+)?'],
]));
Добавил съм следното htaccess правило:
Code:
RewriteRule ^pages/banlist/p/([0-9]+)$ /pages/banlist?page=$1 [L,QSA]
Code:
https://argoscms.pw/pages/banlist?page=2
Code:
https://argoscms.pw/pages/banlist/p/2
И така вече ще може да избягвате ? query параметъра и вашите линкове ще са идея по-четливи.
Мога да си поиграя и със страницирането, да направя да слухти за /p/ в url, но това не го обещавам. Идеята е страницирането да си остане с ?page=страница, а страници без странициране главно да се правят с regex правила, като pages/server?vew=1 да стане pages/server/view/1, естествено ако си има странициране вътре би трябвало да си работи.
Не съм го тествал обстойно, но във версия 9.0 ще го вкарам като новост и ще пренапиша gmon екстеншъна, който ще търпи още промени и нови функционалности.
Предстоят много нови неща, като повечето екстеншъни ще се сдобият и с админ панели, където е имало пипане в ext.php, за да е по-удобно за вас.