routing - ¿Cómo puedo extender el enrutamiento "interno/interno" de SilverStripe?
(1)
Tengo algunas páginas de árbol como:
/business
/loans
/personal
/bad-credit
etc.
¿Cómo se pueden extender las rutas internas / marco (sin crear páginas secundarias) para obtener enlaces como:
/business/segment
/loans/some-segment
/personal/some-another-segment
/bad-credit/awesome-segment
etc.
Algo como esto:
---
Name: customroutes
After: framework/routes#coreroutes
---
Director:
rules:
''business/???'': ''Custom_Controller''
''loans/???'': ''Custom_Controller''
No necesita un enrutamiento personalizado, solo necesita agregar un allowed_actions a su controlador de página como se describe aquí: http://doc.silverstripe.com/framework/en/tutorials/2-extending-a-basic-site#creating -a-rss-feed
El ejemplo muestra la representación de una alimentación rss, pero esto se puede adaptar para hacer una página normal.
Aquí hay un ejemplo simplificado:
<?php
class MyPage extends Page {
}
class MyPage_Controller extends Page_Controller {
private static $allowed_actions = array(
"segment",
);
// URL: domain.com/page-url/segment
public function segment() {
// By default this will look for the template MyPage_segment.ss
// If that''s not found, it will fall back to MyPage.ss
// Then Page.ss and so on...
return $this->render();
}
}