routing silverstripe

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(); } }